vk_sys/
lib.rs

1// Copyright (c) 2016 The vulkano developers
2// Licensed under the Apache License, Version 2.0
3// <LICENSE-APACHE or
4// https://www.apache.org/licenses/LICENSE-2.0> or the MIT
5// license <LICENSE-MIT or https://opensource.org/licenses/MIT>,
6// at your option. All files in the project carrying such
7// notice may not be copied, modified, or distributed except
8// according to those terms.
9
10#![doc(html_logo_url = "https://raw.githubusercontent.com/vulkano-rs/vulkano/master/logo.png")]
11#![allow(non_upper_case_globals)]
12#![allow(non_snake_case)]
13#![allow(non_camel_case_types)]
14
15use std::ffi::CStr;
16use std::fmt;
17use std::mem;
18use std::os::raw::c_char;
19use std::os::raw::c_double;
20use std::os::raw::c_ulong;
21use std::os::raw::c_void;
22use std::ptr;
23
24pub type Flags = u32;
25pub type Bool32 = u32;
26pub type DeviceSize = u64;
27pub type SampleMask = u32;
28
29pub type Instance = usize;
30pub type PhysicalDevice = usize;
31pub type Device = usize;
32pub type Queue = usize;
33pub type CommandBuffer = usize;
34
35pub type Semaphore = u64;
36pub type Fence = u64;
37pub type DeviceMemory = u64;
38pub type Buffer = u64;
39pub type Image = u64;
40pub type Event = u64;
41pub type QueryPool = u64;
42pub type BufferView = u64;
43pub type ImageView = u64;
44pub type ShaderModule = u64;
45pub type PipelineCache = u64;
46pub type PipelineLayout = u64;
47pub type RenderPass = u64;
48pub type Pipeline = u64;
49pub type DescriptorSetLayout = u64;
50pub type Sampler = u64;
51pub type DescriptorPool = u64;
52pub type DescriptorSet = u64;
53pub type Framebuffer = u64;
54pub type CommandPool = u64;
55pub type SurfaceKHR = u64;
56pub type SwapchainKHR = u64;
57pub type DisplayKHR = u64;
58pub type DisplayModeKHR = u64;
59pub type DescriptorUpdateTemplateKHR = u64;
60pub type DeviceAddress = u64;
61
62pub const LOD_CLAMP_NONE: f32 = 1000.0;
63pub const REMAINING_MIP_LEVELS: u32 = 0xffffffff;
64pub const REMAINING_ARRAY_LAYERS: u32 = 0xffffffff;
65pub const WHOLE_SIZE: u64 = 0xffffffffffffffff;
66pub const ATTACHMENT_UNUSED: u32 = 0xffffffff;
67pub const TRUE: u32 = 1;
68pub const FALSE: u32 = 0;
69pub const QUEUE_FAMILY_IGNORED: u32 = 0xffffffff;
70pub const QUEUE_FAMILY_EXTERNAL: u32 = 0xfffffffe;
71pub const SUBPASS_EXTERNAL: u32 = 0xffffffff;
72pub const MAX_PHYSICAL_DEVICE_NAME_SIZE: u32 = 256;
73pub const UUID_SIZE: u32 = 16;
74pub const MAX_MEMORY_TYPES: u32 = 32;
75pub const MAX_MEMORY_HEAPS: u32 = 16;
76pub const MAX_EXTENSION_NAME_SIZE: u32 = 256;
77pub const MAX_DESCRIPTION_SIZE: u32 = 256;
78pub const NULL_HANDLE: u64 = 0;
79
80pub type PipelineCacheHeaderVersion = u32;
81pub const PIPELINE_CACHE_HEADER_VERSION_ONE: u32 = 1;
82
83pub type Result = u32;
84pub const SUCCESS: u32 = 0;
85pub const NOT_READY: u32 = 1;
86pub const TIMEOUT: u32 = 2;
87pub const EVENT_SET: u32 = 3;
88pub const EVENT_RESET: u32 = 4;
89pub const INCOMPLETE: u32 = 5;
90pub const ERROR_OUT_OF_HOST_MEMORY: u32 = -1i32 as u32;
91pub const ERROR_OUT_OF_DEVICE_MEMORY: u32 = -2i32 as u32;
92pub const ERROR_INITIALIZATION_FAILED: u32 = -3i32 as u32;
93pub const ERROR_DEVICE_LOST: u32 = -4i32 as u32;
94pub const ERROR_MEMORY_MAP_FAILED: u32 = -5i32 as u32;
95pub const ERROR_LAYER_NOT_PRESENT: u32 = -6i32 as u32;
96pub const ERROR_EXTENSION_NOT_PRESENT: u32 = -7i32 as u32;
97pub const ERROR_FEATURE_NOT_PRESENT: u32 = -8i32 as u32;
98pub const ERROR_INCOMPATIBLE_DRIVER: u32 = -9i32 as u32;
99pub const ERROR_TOO_MANY_OBJECTS: u32 = -10i32 as u32;
100pub const ERROR_FORMAT_NOT_SUPPORTED: u32 = -11i32 as u32;
101pub const ERROR_SURFACE_LOST_KHR: u32 = -1000000000i32 as u32;
102pub const ERROR_NATIVE_WINDOW_IN_USE_KHR: u32 = -1000000001i32 as u32;
103pub const SUBOPTIMAL_KHR: u32 = 1000001003;
104pub const ERROR_OUT_OF_DATE_KHR: u32 = -1000001004i32 as u32;
105pub const ERROR_INCOMPATIBLE_DISPLAY_KHR: u32 = -1000003001i32 as u32;
106pub const ERROR_VALIDATION_FAILED_EXT: u32 = -1000011001i32 as u32;
107pub const ERROR_INVALID_SHADER_NV: u32 = -1000012000i32 as u32;
108pub const ERROR_OUT_OF_POOL_MEMORY_KHR: u32 = -1000069000i32 as u32;
109pub const ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: u32 = -1000255000i32 as u32;
110
111pub type StructureType = u32;
112pub const STRUCTURE_TYPE_APPLICATION_INFO: u32 = 0;
113pub const STRUCTURE_TYPE_INSTANCE_CREATE_INFO: u32 = 1;
114pub const STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: u32 = 2;
115pub const STRUCTURE_TYPE_DEVICE_CREATE_INFO: u32 = 3;
116pub const STRUCTURE_TYPE_SUBMIT_INFO: u32 = 4;
117pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: u32 = 5;
118pub const STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: u32 = 6;
119pub const STRUCTURE_TYPE_BIND_SPARSE_INFO: u32 = 7;
120pub const STRUCTURE_TYPE_FENCE_CREATE_INFO: u32 = 8;
121pub const STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: u32 = 9;
122pub const STRUCTURE_TYPE_EVENT_CREATE_INFO: u32 = 10;
123pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: u32 = 11;
124pub const STRUCTURE_TYPE_BUFFER_CREATE_INFO: u32 = 12;
125pub const STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: u32 = 13;
126pub const STRUCTURE_TYPE_IMAGE_CREATE_INFO: u32 = 14;
127pub const STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: u32 = 15;
128pub const STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: u32 = 16;
129pub const STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: u32 = 17;
130pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: u32 = 18;
131pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: u32 = 19;
132pub const STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: u32 = 20;
133pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: u32 = 21;
134pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: u32 = 22;
135pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: u32 = 23;
136pub const STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: u32 = 24;
137pub const STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: u32 = 25;
138pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: u32 = 26;
139pub const STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: u32 = 27;
140pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: u32 = 28;
141pub const STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: u32 = 29;
142pub const STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: u32 = 30;
143pub const STRUCTURE_TYPE_SAMPLER_CREATE_INFO: u32 = 31;
144pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: u32 = 32;
145pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: u32 = 33;
146pub const STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: u32 = 34;
147pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: u32 = 35;
148pub const STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: u32 = 36;
149pub const STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: u32 = 37;
150pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: u32 = 38;
151pub const STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: u32 = 39;
152pub const STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: u32 = 40;
153pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: u32 = 41;
154pub const STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: u32 = 42;
155pub const STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: u32 = 43;
156pub const STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: u32 = 44;
157pub const STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: u32 = 45;
158pub const STRUCTURE_TYPE_MEMORY_BARRIER: u32 = 46;
159pub const STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: u32 = 47;
160pub const STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO: u32 = 48;
161pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: u32 = 1000094000;
162pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO: u32 = 1000157000;
163pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO: u32 = 1000157001;
164pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: u32 = 1000083000;
165pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: u32 = 1000127000;
166pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: u32 = 1000127001;
167pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: u32 = 1000060000;
168pub const STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: u32 = 1000060003;
169pub const STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: u32 = 1000060004;
170pub const STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: u32 = 1000060005;
171pub const STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: u32 = 1000060006;
172pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: u32 = 1000060013;
173pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: u32 = 1000060014;
174pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES: u32 = 1000070000;
175pub const STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: u32 = 1000070001;
176pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2: u32 = 1000146000;
177pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2: u32 = 1000146001;
178pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2: u32 = 1000146002;
179pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2: u32 = 1000146003;
180pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2: u32 = 1000146004;
181pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: u32 = 1000059000;
182pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: u32 = 1000059001;
183pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2: u32 = 1000059002;
184pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2: u32 = 1000059003;
185pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2: u32 = 1000059004;
186pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2: u32 = 1000059005;
187pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2: u32 = 1000059006;
188pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2: u32 = 1000059007;
189pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2: u32 = 1000059008;
190pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: u32 = 1000117000;
191pub const STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: u32 = 1000117001;
192pub const STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: u32 = 1000117002;
193pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: u32 = 1000117003;
194pub const STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: u32 = 1000053000;
195pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: u32 = 1000053001;
196pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: u32 = 1000053002;
197pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: u32 = 1000120000;
198pub const STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: u32 = 1000145000;
199pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: u32 = 1000145001;
200pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: u32 = 1000145002;
201pub const STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2: u32 = 1000145003;
202pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO: u32 = 1000156000;
203pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: u32 = 1000156001;
204pub const STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: u32 = 1000156002;
205pub const STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: u32 = 1000156003;
206pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: u32 = 1000156004;
207pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: u32 = 1000156005;
208pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO: u32 = 1000085000;
209pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: u32 = 1000071000;
210pub const STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: u32 = 1000071001;
211pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO: u32 = 1000071002;
212pub const STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES: u32 = 1000071003;
213pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: u32 = 1000071004;
214pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: u32 = 1000072000;
215pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: u32 = 1000072001;
216pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: u32 = 1000072002;
217pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO: u32 = 1000112000;
218pub const STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES: u32 = 1000112001;
219pub const STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: u32 = 1000113000;
220pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: u32 = 1000077000;
221pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO: u32 = 1000076000;
222pub const STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES: u32 = 1000076001;
223pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: u32 = 1000168000;
224pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT: u32 = 1000168001;
225pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: u32 = 1000063000;
226pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: u32 = 49;
227pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: u32 = 50;
228pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: u32 = 51;
229pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: u32 = 52;
230pub const STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: u32 = 1000147000;
231pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2: u32 = 1000109000;
232pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2: u32 = 1000109001;
233pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2: u32 = 1000109002;
234pub const STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2: u32 = 1000109003;
235pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: u32 = 1000109004;
236pub const STRUCTURE_TYPE_SUBPASS_BEGIN_INFO: u32 = 1000109005;
237pub const STRUCTURE_TYPE_SUBPASS_END_INFO: u32 = 1000109006;
238pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: u32 = 1000177000;
239pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: u32 = 1000196000;
240pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: u32 = 1000180000;
241pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: u32 = 1000082000;
242pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: u32 = 1000197000;
243pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: u32 = 1000161000;
244pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: u32 = 1000161001;
245pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: u32 = 1000161002;
246pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: u32 = 1000161003;
247pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: u32 = 1000161004;
248pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: u32 = 1000199000;
249pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: u32 = 1000199001;
250pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: u32 = 1000221000;
251pub const STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: u32 = 1000246000;
252pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: u32 = 1000130000;
253pub const STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: u32 = 1000130001;
254pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: u32 = 1000211000;
255pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: u32 = 1000108000;
256pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: u32 = 1000108001;
257pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO: u32 = 1000108002;
258pub const STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: u32 = 1000108003;
259pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: u32 = 1000253000;
260pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: u32 = 1000175000;
261pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: u32 = 1000241000;
262pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: u32 = 1000241001;
263pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: u32 = 1000241002;
264pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: u32 = 1000261000;
265pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: u32 = 1000207000;
266pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: u32 = 1000207001;
267pub const STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: u32 = 1000207002;
268pub const STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: u32 = 1000207003;
269pub const STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO: u32 = 1000207004;
270pub const STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO: u32 = 1000207005;
271pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: u32 = 1000257000;
272pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO: u32 = 1000244001;
273pub const STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: u32 = 1000257002;
274pub const STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: u32 = 1000257003;
275pub const STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO: u32 = 1000257004;
276pub const STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR: u32 = 1000001000;
277pub const STRUCTURE_TYPE_PRESENT_INFO_KHR: u32 = 1000001001;
278pub const STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: u32 = 1000060007;
279pub const STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: u32 = 1000060008;
280pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: u32 = 1000060009;
281pub const STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR: u32 = 1000060010;
282pub const STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: u32 = 1000060011;
283pub const STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: u32 = 1000060012;
284pub const STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR: u32 = 1000002000;
285pub const STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR: u32 = 1000002001;
286pub const STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: u32 = 1000003000;
287pub const STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR: u32 = 1000004000;
288pub const STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR: u32 = 1000005000;
289pub const STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR: u32 = 1000006000;
290pub const STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR: u32 = 1000008000;
291pub const STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR: u32 = 1000009000;
292pub const STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: u32 = 1000011000;
293pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: u32 = 1000018000;
294pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT: u32 = 1000022000;
295pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT: u32 = 1000022001;
296pub const STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT: u32 = 1000022002;
297pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: u32 = 1000026000;
298pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: u32 = 1000026001;
299pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: u32 = 1000026002;
300pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: u32 = 1000028000;
301pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: u32 = 1000028001;
302pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: u32 = 1000028002;
303pub const STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX: u32 = 1000030000;
304pub const STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: u32 = 1000030001;
305pub const STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: u32 = 1000041000;
306pub const STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: u32 = 1000049000;
307pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: u32 = 1000050000;
308pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: u32 = 1000056000;
309pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: u32 = 1000056001;
310pub const STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: u32 = 1000057000;
311pub const STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: u32 = 1000057001;
312pub const STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: u32 = 1000058000;
313pub const STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: u32 = 1000061000;
314pub const STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN: u32 = 1000062000;
315pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: u32 =
316    1000066000;
317pub const STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: u32 = 1000067000;
318pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: u32 = 1000067001;
319pub const STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: u32 = 1000073000;
320pub const STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: u32 = 1000073001;
321pub const STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR: u32 = 1000073002;
322pub const STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR: u32 = 1000073003;
323pub const STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: u32 = 1000074000;
324pub const STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR: u32 = 1000074001;
325pub const STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR: u32 = 1000074002;
326pub const STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: u32 = 1000075000;
327pub const STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: u32 = 1000078000;
328pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: u32 = 1000078001;
329pub const STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR: u32 = 1000078002;
330pub const STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: u32 = 1000078003;
331pub const STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR: u32 = 1000079000;
332pub const STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR: u32 = 1000079001;
333pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: u32 = 1000080000;
334pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: u32 =
335    1000081000;
336pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: u32 = 1000081001;
337pub const STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT: u32 = 1000081002;
338pub const STRUCTURE_TYPE_PRESENT_REGIONS_KHR: u32 = 1000084000;
339pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: u32 = 1000087000;
340pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT: u32 = 1000090000;
341pub const STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT: u32 = 1000091000;
342pub const STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT: u32 = 1000091001;
343pub const STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT: u32 = 1000091002;
344pub const STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: u32 = 1000091003;
345pub const STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: u32 = 1000092000;
346pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: u32 =
347    1000097000;
348pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: u32 = 1000098000;
349pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: u32 = 1000099000;
350pub const STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: u32 = 1000099001;
351pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: u32 =
352    1000101000;
353pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: u32 =
354    1000101001;
355pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: u32 = 1000102000;
356pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: u32 = 1000102001;
357pub const STRUCTURE_TYPE_HDR_METADATA_EXT: u32 = 1000105000;
358pub const STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: u32 = 1000111000;
359pub const STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: u32 = 1000114000;
360pub const STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: u32 = 1000114001;
361pub const STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR: u32 = 1000114002;
362pub const STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR: u32 = 1000115000;
363pub const STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR: u32 = 1000115001;
364pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: u32 = 1000116000;
365pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: u32 = 1000116001;
366pub const STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: u32 = 1000116002;
367pub const STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: u32 = 1000116003;
368pub const STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR: u32 = 1000116004;
369pub const STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR: u32 = 1000116005;
370pub const STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR: u32 = 1000116006;
371pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: u32 = 1000119000;
372pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR: u32 = 1000119001;
373pub const STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR: u32 = 1000119002;
374pub const STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR: u32 = 1000121000;
375pub const STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR: u32 = 1000121001;
376pub const STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR: u32 = 1000121002;
377pub const STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR: u32 = 1000121003;
378pub const STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR: u32 = 1000121004;
379pub const STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK: u32 = 1000122000;
380pub const STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK: u32 = 1000123000;
381pub const STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: u32 = 1000128000;
382pub const STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT: u32 = 1000128001;
383pub const STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT: u32 = 1000128002;
384pub const STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: u32 = 1000128003;
385pub const STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: u32 = 1000128004;
386pub const STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: u32 = 1000129000;
387pub const STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: u32 = 1000129001;
388pub const STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: u32 = 1000129002;
389pub const STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: u32 = 1000129003;
390pub const STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: u32 = 1000129004;
391pub const STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID: u32 = 1000129005;
392pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT: u32 = 1000138000;
393pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: u32 = 1000138001;
394pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT: u32 = 1000138002;
395pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: u32 = 1000138003;
396pub const STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: u32 = 1000143000;
397pub const STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: u32 = 1000143001;
398pub const STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: u32 = 1000143002;
399pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: u32 = 1000143003;
400pub const STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT: u32 = 1000143004;
401pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: u32 = 1000148000;
402pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: u32 = 1000148001;
403pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: u32 = 1000148002;
404pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: u32 = 1000149000;
405pub const STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR: u32 = 1000165006;
406pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: u32 = 1000165007;
407pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: u32 = 1000150000;
408pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR: u32 = 1000150001;
409pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: u32 = 1000150002;
410pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: u32 = 1000150003;
411pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: u32 = 1000150004;
412pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: u32 = 1000150005;
413pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR: u32 = 1000150006;
414pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR: u32 = 1000150008;
415pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR: u32 = 1000150009;
416pub const STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR: u32 = 1000150010;
417pub const STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: u32 = 1000150011;
418pub const STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: u32 = 1000150012;
419pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR: u32 = 1000150013;
420pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR: u32 = 1000150014;
421pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR: u32 = 1000150015;
422pub const STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: u32 = 1000150016;
423pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR: u32 = 1000150017;
424pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: u32 = 1000150018;
425pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: u32 = 1000152000;
426pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: u32 = 1000154000;
427pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: u32 = 1000154001;
428pub const STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: u32 = 1000158000;
429pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: u32 = 1000158002;
430pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: u32 = 1000158003;
431pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: u32 = 1000158004;
432pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: u32 = 1000158005;
433pub const STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT: u32 = 1000160000;
434pub const STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: u32 = 1000160001;
435pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: u32 = 1000163000;
436pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: u32 = 1000163001;
437pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: u32 =
438    1000164000;
439pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: u32 = 1000164001;
440pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: u32 = 1000164002;
441pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: u32 =
442    1000164005;
443pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV: u32 = 1000165000;
444pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV: u32 = 1000165001;
445pub const STRUCTURE_TYPE_GEOMETRY_NV: u32 = 1000165003;
446pub const STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV: u32 = 1000165004;
447pub const STRUCTURE_TYPE_GEOMETRY_AABB_NV: u32 = 1000165005;
448pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: u32 = 1000165008;
449pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: u32 = 1000165009;
450pub const STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: u32 = 1000165011;
451pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV: u32 = 1000165012;
452pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: u32 = 1000166000;
453pub const STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: u32 =
454    1000166001;
455pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: u32 = 1000170000;
456pub const STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: u32 = 1000170001;
457pub const STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: u32 = 1000174000;
458pub const STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: u32 = 1000178000;
459pub const STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT: u32 = 1000178001;
460pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: u32 = 1000178002;
461pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: u32 = 1000181000;
462pub const STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: u32 = 1000183000;
463pub const STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT: u32 = 1000184000;
464pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: u32 = 1000185000;
465pub const STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: u32 = 1000189000;
466pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: u32 = 1000190000;
467pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: u32 = 1000190001;
468pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: u32 = 1000190002;
469pub const STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: u32 = 1000191000;
470pub const STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: u32 = 1000192000;
471pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: u32 = 1000201000;
472pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: u32 = 1000202000;
473pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: u32 = 1000202001;
474pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV: u32 = 1000203000;
475pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: u32 = 1000204000;
476pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: u32 = 1000205000;
477pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: u32 = 1000205002;
478pub const STRUCTURE_TYPE_CHECKPOINT_DATA_NV: u32 = 1000206000;
479pub const STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: u32 = 1000206001;
480pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: u32 =
481    1000209000;
482pub const STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: u32 = 1000210000;
483pub const STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL: u32 = 1000210001;
484pub const STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL: u32 = 1000210002;
485pub const STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL: u32 = 1000210003;
486pub const STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL: u32 = 1000210004;
487pub const STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: u32 = 1000210005;
488pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: u32 = 1000212000;
489pub const STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: u32 = 1000213000;
490pub const STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: u32 = 1000213001;
491pub const STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: u32 = 1000214000;
492pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: u32 = 1000215000;
493pub const STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT: u32 = 1000217000;
494pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: u32 = 1000218000;
495pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: u32 = 1000218001;
496pub const STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: u32 = 1000218002;
497pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT: u32 = 1000225000;
498pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: u32 =
499    1000225001;
500pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: u32 = 1000225002;
501pub const STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: u32 = 1000226000;
502pub const STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: u32 = 1000226001;
503pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: u32 = 1000226002;
504pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: u32 = 1000226003;
505pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: u32 = 1000226004;
506pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: u32 = 1000227000;
507pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: u32 = 1000229000;
508pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: u32 = 1000234000;
509pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: u32 = 1000237000;
510pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: u32 = 1000238000;
511pub const STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: u32 = 1000238001;
512pub const STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: u32 = 1000239000;
513pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: u32 =
514    1000240000;
515pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: u32 = 1000244000;
516pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: u32 = 1000244002;
517pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT: u32 = 1000245000;
518pub const STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: u32 = 1000247000;
519pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: u32 = 1000249000;
520pub const STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV: u32 = 1000249001;
521pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: u32 = 1000249002;
522pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: u32 = 1000250000;
523pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: u32 = 1000250001;
524pub const STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: u32 = 1000250002;
525pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: u32 = 1000251000;
526pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: u32 = 1000252000;
527pub const STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: u32 = 1000255000;
528pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: u32 = 1000255002;
529pub const STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: u32 = 1000255001;
530pub const STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT: u32 = 1000256000;
531pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: u32 = 1000259000;
532pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: u32 = 1000259001;
533pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: u32 = 1000259002;
534pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: u32 = 1000260000;
535pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: u32 = 1000265000;
536pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: u32 = 1000267000;
537pub const STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR: u32 = 1000268000;
538pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: u32 =
539    1000269000;
540pub const STRUCTURE_TYPE_PIPELINE_INFO_KHR: u32 = 1000269001;
541pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR: u32 = 1000269002;
542pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR: u32 = 1000269003;
543pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR: u32 = 1000269004;
544pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: u32 = 1000269005;
545pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT: u32 =
546    1000276000;
547pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: u32 = 1000277000;
548pub const STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: u32 = 1000277001;
549pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: u32 = 1000277002;
550pub const STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: u32 = 1000277003;
551pub const STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: u32 = 1000277004;
552pub const STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV: u32 = 1000277005;
553pub const STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: u32 = 1000277006;
554pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: u32 = 1000277007;
555pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: u32 = 1000281000;
556pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: u32 = 1000281001;
557pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: u32 =
558    1000282000;
559pub const STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: u32 = 1000282001;
560pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: u32 = 1000284000;
561pub const STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: u32 = 1000284001;
562pub const STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: u32 = 1000284002;
563pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: u32 = 1000286000;
564pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: u32 = 1000286001;
565pub const STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: u32 = 1000287000;
566pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: u32 = 1000287001;
567pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: u32 = 1000287002;
568pub const STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: u32 = 1000290000;
569pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: u32 = 1000295000;
570pub const STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: u32 = 1000295001;
571pub const STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT: u32 = 1000295002;
572pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: u32 =
573    1000297000;
574pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: u32 = 1000300000;
575pub const STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: u32 = 1000300001;
576pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: u32 = 1000332000;
577pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: u32 = 1000332001;
578pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: u32 = 1000335000;
579pub const STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR: u32 = 1000337000;
580pub const STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR: u32 = 1000337001;
581pub const STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR: u32 = 1000337002;
582pub const STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR: u32 = 1000337003;
583pub const STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR: u32 = 1000337004;
584pub const STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR: u32 = 1000337005;
585pub const STRUCTURE_TYPE_BUFFER_COPY_2_KHR: u32 = 1000337006;
586pub const STRUCTURE_TYPE_IMAGE_COPY_2_KHR: u32 = 1000337007;
587pub const STRUCTURE_TYPE_IMAGE_BLIT_2_KHR: u32 = 1000337008;
588pub const STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR: u32 = 1000337009;
589pub const STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR: u32 = 1000337010;
590pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: u32 = 1000340000;
591pub const STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT: u32 = 1000346000;
592pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES: u32 =
593    STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
594pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES: u32 =
595    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
596pub const STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT: u32 =
597    STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
598pub const STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR: u32 =
599    STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
600pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR: u32 =
601    STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
602pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR: u32 =
603    STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
604pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR: u32 =
605    STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
606pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR: u32 =
607    STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
608pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR: u32 = STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
609pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR: u32 =
610    STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
611pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR: u32 =
612    STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
613pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR: u32 =
614    STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
615pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR: u32 =
616    STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
617pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR: u32 =
618    STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
619pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR: u32 =
620    STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
621pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR: u32 =
622    STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
623pub const STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR: u32 =
624    STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
625pub const STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR: u32 =
626    STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
627pub const STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR: u32 =
628    STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
629pub const STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR: u32 =
630    STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
631pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR: u32 =
632    STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
633pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR: u32 =
634    STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
635pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR: u32 =
636    STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
637pub const STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR: u32 =
638    STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
639pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR: u32 =
640    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
641pub const STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR: u32 =
642    STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES;
643pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR: u32 =
644    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
645pub const STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR: u32 =
646    STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES;
647pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR: u32 =
648    STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
649pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR: u32 =
650    STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
651pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR: u32 =
652    STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
653pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR: u32 =
654    STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
655pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR: u32 =
656    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
657pub const STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR: u32 =
658    STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
659pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR: u32 =
660    STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
661pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR: u32 =
662    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
663pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR: u32 =
664    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
665pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR: u32 =
666    STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
667pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR: u32 =
668    STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
669pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT: u32 = STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT;
670pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR: u32 =
671    STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
672pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR: u32 =
673    STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
674pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR: u32 =
675    STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
676pub const STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR: u32 =
677    STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
678pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR: u32 =
679    STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
680pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR: u32 = STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
681pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR: u32 = STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
682pub const STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR: u32 = STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
683pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR: u32 =
684    STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
685pub const STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR: u32 = STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
686pub const STRUCTURE_TYPE_SUBPASS_END_INFO_KHR: u32 = STRUCTURE_TYPE_SUBPASS_END_INFO;
687pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR: u32 =
688    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
689pub const STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR: u32 =
690    STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
691pub const STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR: u32 =
692    STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
693pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR: u32 =
694    STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
695pub const STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR: u32 =
696    STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
697pub const STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR: u32 =
698    STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
699pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR: u32 =
700    STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
701pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR: u32 =
702    STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
703pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: u32 =
704    STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
705pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR: u32 =
706    STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
707pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR: u32 =
708    STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
709pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: u32 =
710    STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
711pub const STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: u32 =
712    STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
713pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: u32 =
714    STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
715pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: u32 =
716    STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
717pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: u32 =
718    STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
719pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR: u32 = STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
720pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: u32 =
721    STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
722pub const STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR: u32 =
723    STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
724pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR: u32 =
725    STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
726pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR: u32 =
727    STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
728pub const STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR: u32 =
729    STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
730pub const STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR: u32 =
731    STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
732pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR: u32 =
733    STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
734pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR: u32 =
735    STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
736pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR: u32 = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
737pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR: u32 = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
738pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: u32 =
739    STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
740pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: u32 =
741    STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
742pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT: u32 =
743    STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
744pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: u32 =
745    STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
746pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: u32 =
747    STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
748pub const STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: u32 =
749    STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR;
750pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: u32 =
751    STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR;
752pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR: u32 =
753    STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
754pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR: u32 =
755    STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
756pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR: u32 =
757    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
758pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR: u32 =
759    STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
760pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR: u32 =
761    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
762pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR: u32 =
763    STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
764pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR: u32 =
765    STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
766pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR: u32 =
767    STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
768pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR: u32 =
769    STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
770pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR: u32 =
771    STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
772pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR: u32 =
773    STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
774pub const STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR: u32 =
775    STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
776pub const STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR: u32 =
777    STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
778pub const STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR: u32 = STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
779pub const STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR: u32 = STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
780pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL: u32 =
781    STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL;
782pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: u32 =
783    STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
784pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: u32 =
785    STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
786pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR: u32 =
787    STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
788pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR: u32 =
789    STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
790pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR: u32 =
791    STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
792pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: u32 =
793    STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
794pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT: u32 =
795    STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
796pub const STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT: u32 =
797    STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
798pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: u32 =
799    STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
800pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR: u32 =
801    STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
802pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR: u32 =
803    STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
804pub const STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR: u32 =
805    STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
806pub const STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR: u32 =
807    STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
808pub const STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR: u32 =
809    STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
810pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT: u32 =
811    STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
812pub const STRUCTURE_TYPE_MAX_ENUM: u32 = 0x7FFFFFFF;
813
814pub type SystemAllocationScope = u32;
815pub const SYSTEM_ALLOCATION_SCOPE_COMMAND: u32 = 0;
816pub const SYSTEM_ALLOCATION_SCOPE_OBJECT: u32 = 1;
817pub const SYSTEM_ALLOCATION_SCOPE_CACHE: u32 = 2;
818pub const SYSTEM_ALLOCATION_SCOPE_DEVICE: u32 = 3;
819pub const SYSTEM_ALLOCATION_SCOPE_INSTANCE: u32 = 4;
820
821pub type InternalAllocationType = u32;
822pub const INTERNAL_ALLOCATION_TYPE_EXECUTABLE: u32 = 0;
823
824pub type Format = u32;
825pub const FORMAT_UNDEFINED: u32 = 0;
826pub const FORMAT_R4G4_UNORM_PACK8: u32 = 1;
827pub const FORMAT_R4G4B4A4_UNORM_PACK16: u32 = 2;
828pub const FORMAT_B4G4R4A4_UNORM_PACK16: u32 = 3;
829pub const FORMAT_R5G6B5_UNORM_PACK16: u32 = 4;
830pub const FORMAT_B5G6R5_UNORM_PACK16: u32 = 5;
831pub const FORMAT_R5G5B5A1_UNORM_PACK16: u32 = 6;
832pub const FORMAT_B5G5R5A1_UNORM_PACK16: u32 = 7;
833pub const FORMAT_A1R5G5B5_UNORM_PACK16: u32 = 8;
834pub const FORMAT_R8_UNORM: u32 = 9;
835pub const FORMAT_R8_SNORM: u32 = 10;
836pub const FORMAT_R8_USCALED: u32 = 11;
837pub const FORMAT_R8_SSCALED: u32 = 12;
838pub const FORMAT_R8_UINT: u32 = 13;
839pub const FORMAT_R8_SINT: u32 = 14;
840pub const FORMAT_R8_SRGB: u32 = 15;
841pub const FORMAT_R8G8_UNORM: u32 = 16;
842pub const FORMAT_R8G8_SNORM: u32 = 17;
843pub const FORMAT_R8G8_USCALED: u32 = 18;
844pub const FORMAT_R8G8_SSCALED: u32 = 19;
845pub const FORMAT_R8G8_UINT: u32 = 20;
846pub const FORMAT_R8G8_SINT: u32 = 21;
847pub const FORMAT_R8G8_SRGB: u32 = 22;
848pub const FORMAT_R8G8B8_UNORM: u32 = 23;
849pub const FORMAT_R8G8B8_SNORM: u32 = 24;
850pub const FORMAT_R8G8B8_USCALED: u32 = 25;
851pub const FORMAT_R8G8B8_SSCALED: u32 = 26;
852pub const FORMAT_R8G8B8_UINT: u32 = 27;
853pub const FORMAT_R8G8B8_SINT: u32 = 28;
854pub const FORMAT_R8G8B8_SRGB: u32 = 29;
855pub const FORMAT_B8G8R8_UNORM: u32 = 30;
856pub const FORMAT_B8G8R8_SNORM: u32 = 31;
857pub const FORMAT_B8G8R8_USCALED: u32 = 32;
858pub const FORMAT_B8G8R8_SSCALED: u32 = 33;
859pub const FORMAT_B8G8R8_UINT: u32 = 34;
860pub const FORMAT_B8G8R8_SINT: u32 = 35;
861pub const FORMAT_B8G8R8_SRGB: u32 = 36;
862pub const FORMAT_R8G8B8A8_UNORM: u32 = 37;
863pub const FORMAT_R8G8B8A8_SNORM: u32 = 38;
864pub const FORMAT_R8G8B8A8_USCALED: u32 = 39;
865pub const FORMAT_R8G8B8A8_SSCALED: u32 = 40;
866pub const FORMAT_R8G8B8A8_UINT: u32 = 41;
867pub const FORMAT_R8G8B8A8_SINT: u32 = 42;
868pub const FORMAT_R8G8B8A8_SRGB: u32 = 43;
869pub const FORMAT_B8G8R8A8_UNORM: u32 = 44;
870pub const FORMAT_B8G8R8A8_SNORM: u32 = 45;
871pub const FORMAT_B8G8R8A8_USCALED: u32 = 46;
872pub const FORMAT_B8G8R8A8_SSCALED: u32 = 47;
873pub const FORMAT_B8G8R8A8_UINT: u32 = 48;
874pub const FORMAT_B8G8R8A8_SINT: u32 = 49;
875pub const FORMAT_B8G8R8A8_SRGB: u32 = 50;
876pub const FORMAT_A8B8G8R8_UNORM_PACK32: u32 = 51;
877pub const FORMAT_A8B8G8R8_SNORM_PACK32: u32 = 52;
878pub const FORMAT_A8B8G8R8_USCALED_PACK32: u32 = 53;
879pub const FORMAT_A8B8G8R8_SSCALED_PACK32: u32 = 54;
880pub const FORMAT_A8B8G8R8_UINT_PACK32: u32 = 55;
881pub const FORMAT_A8B8G8R8_SINT_PACK32: u32 = 56;
882pub const FORMAT_A8B8G8R8_SRGB_PACK32: u32 = 57;
883pub const FORMAT_A2R10G10B10_UNORM_PACK32: u32 = 58;
884pub const FORMAT_A2R10G10B10_SNORM_PACK32: u32 = 59;
885pub const FORMAT_A2R10G10B10_USCALED_PACK32: u32 = 60;
886pub const FORMAT_A2R10G10B10_SSCALED_PACK32: u32 = 61;
887pub const FORMAT_A2R10G10B10_UINT_PACK32: u32 = 62;
888pub const FORMAT_A2R10G10B10_SINT_PACK32: u32 = 63;
889pub const FORMAT_A2B10G10R10_UNORM_PACK32: u32 = 64;
890pub const FORMAT_A2B10G10R10_SNORM_PACK32: u32 = 65;
891pub const FORMAT_A2B10G10R10_USCALED_PACK32: u32 = 66;
892pub const FORMAT_A2B10G10R10_SSCALED_PACK32: u32 = 67;
893pub const FORMAT_A2B10G10R10_UINT_PACK32: u32 = 68;
894pub const FORMAT_A2B10G10R10_SINT_PACK32: u32 = 69;
895pub const FORMAT_R16_UNORM: u32 = 70;
896pub const FORMAT_R16_SNORM: u32 = 71;
897pub const FORMAT_R16_USCALED: u32 = 72;
898pub const FORMAT_R16_SSCALED: u32 = 73;
899pub const FORMAT_R16_UINT: u32 = 74;
900pub const FORMAT_R16_SINT: u32 = 75;
901pub const FORMAT_R16_SFLOAT: u32 = 76;
902pub const FORMAT_R16G16_UNORM: u32 = 77;
903pub const FORMAT_R16G16_SNORM: u32 = 78;
904pub const FORMAT_R16G16_USCALED: u32 = 79;
905pub const FORMAT_R16G16_SSCALED: u32 = 80;
906pub const FORMAT_R16G16_UINT: u32 = 81;
907pub const FORMAT_R16G16_SINT: u32 = 82;
908pub const FORMAT_R16G16_SFLOAT: u32 = 83;
909pub const FORMAT_R16G16B16_UNORM: u32 = 84;
910pub const FORMAT_R16G16B16_SNORM: u32 = 85;
911pub const FORMAT_R16G16B16_USCALED: u32 = 86;
912pub const FORMAT_R16G16B16_SSCALED: u32 = 87;
913pub const FORMAT_R16G16B16_UINT: u32 = 88;
914pub const FORMAT_R16G16B16_SINT: u32 = 89;
915pub const FORMAT_R16G16B16_SFLOAT: u32 = 90;
916pub const FORMAT_R16G16B16A16_UNORM: u32 = 91;
917pub const FORMAT_R16G16B16A16_SNORM: u32 = 92;
918pub const FORMAT_R16G16B16A16_USCALED: u32 = 93;
919pub const FORMAT_R16G16B16A16_SSCALED: u32 = 94;
920pub const FORMAT_R16G16B16A16_UINT: u32 = 95;
921pub const FORMAT_R16G16B16A16_SINT: u32 = 96;
922pub const FORMAT_R16G16B16A16_SFLOAT: u32 = 97;
923pub const FORMAT_R32_UINT: u32 = 98;
924pub const FORMAT_R32_SINT: u32 = 99;
925pub const FORMAT_R32_SFLOAT: u32 = 100;
926pub const FORMAT_R32G32_UINT: u32 = 101;
927pub const FORMAT_R32G32_SINT: u32 = 102;
928pub const FORMAT_R32G32_SFLOAT: u32 = 103;
929pub const FORMAT_R32G32B32_UINT: u32 = 104;
930pub const FORMAT_R32G32B32_SINT: u32 = 105;
931pub const FORMAT_R32G32B32_SFLOAT: u32 = 106;
932pub const FORMAT_R32G32B32A32_UINT: u32 = 107;
933pub const FORMAT_R32G32B32A32_SINT: u32 = 108;
934pub const FORMAT_R32G32B32A32_SFLOAT: u32 = 109;
935pub const FORMAT_R64_UINT: u32 = 110;
936pub const FORMAT_R64_SINT: u32 = 111;
937pub const FORMAT_R64_SFLOAT: u32 = 112;
938pub const FORMAT_R64G64_UINT: u32 = 113;
939pub const FORMAT_R64G64_SINT: u32 = 114;
940pub const FORMAT_R64G64_SFLOAT: u32 = 115;
941pub const FORMAT_R64G64B64_UINT: u32 = 116;
942pub const FORMAT_R64G64B64_SINT: u32 = 117;
943pub const FORMAT_R64G64B64_SFLOAT: u32 = 118;
944pub const FORMAT_R64G64B64A64_UINT: u32 = 119;
945pub const FORMAT_R64G64B64A64_SINT: u32 = 120;
946pub const FORMAT_R64G64B64A64_SFLOAT: u32 = 121;
947pub const FORMAT_B10G11R11_UFLOAT_PACK32: u32 = 122;
948pub const FORMAT_E5B9G9R9_UFLOAT_PACK32: u32 = 123;
949pub const FORMAT_D16_UNORM: u32 = 124;
950pub const FORMAT_X8_D24_UNORM_PACK32: u32 = 125;
951pub const FORMAT_D32_SFLOAT: u32 = 126;
952pub const FORMAT_S8_UINT: u32 = 127;
953pub const FORMAT_D16_UNORM_S8_UINT: u32 = 128;
954pub const FORMAT_D24_UNORM_S8_UINT: u32 = 129;
955pub const FORMAT_D32_SFLOAT_S8_UINT: u32 = 130;
956pub const FORMAT_BC1_RGB_UNORM_BLOCK: u32 = 131;
957pub const FORMAT_BC1_RGB_SRGB_BLOCK: u32 = 132;
958pub const FORMAT_BC1_RGBA_UNORM_BLOCK: u32 = 133;
959pub const FORMAT_BC1_RGBA_SRGB_BLOCK: u32 = 134;
960pub const FORMAT_BC2_UNORM_BLOCK: u32 = 135;
961pub const FORMAT_BC2_SRGB_BLOCK: u32 = 136;
962pub const FORMAT_BC3_UNORM_BLOCK: u32 = 137;
963pub const FORMAT_BC3_SRGB_BLOCK: u32 = 138;
964pub const FORMAT_BC4_UNORM_BLOCK: u32 = 139;
965pub const FORMAT_BC4_SNORM_BLOCK: u32 = 140;
966pub const FORMAT_BC5_UNORM_BLOCK: u32 = 141;
967pub const FORMAT_BC5_SNORM_BLOCK: u32 = 142;
968pub const FORMAT_BC6H_UFLOAT_BLOCK: u32 = 143;
969pub const FORMAT_BC6H_SFLOAT_BLOCK: u32 = 144;
970pub const FORMAT_BC7_UNORM_BLOCK: u32 = 145;
971pub const FORMAT_BC7_SRGB_BLOCK: u32 = 146;
972pub const FORMAT_ETC2_R8G8B8_UNORM_BLOCK: u32 = 147;
973pub const FORMAT_ETC2_R8G8B8_SRGB_BLOCK: u32 = 148;
974pub const FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: u32 = 149;
975pub const FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: u32 = 150;
976pub const FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: u32 = 151;
977pub const FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: u32 = 152;
978pub const FORMAT_EAC_R11_UNORM_BLOCK: u32 = 153;
979pub const FORMAT_EAC_R11_SNORM_BLOCK: u32 = 154;
980pub const FORMAT_EAC_R11G11_UNORM_BLOCK: u32 = 155;
981pub const FORMAT_EAC_R11G11_SNORM_BLOCK: u32 = 156;
982pub const FORMAT_ASTC_4x4_UNORM_BLOCK: u32 = 157;
983pub const FORMAT_ASTC_4x4_SRGB_BLOCK: u32 = 158;
984pub const FORMAT_ASTC_5x4_UNORM_BLOCK: u32 = 159;
985pub const FORMAT_ASTC_5x4_SRGB_BLOCK: u32 = 160;
986pub const FORMAT_ASTC_5x5_UNORM_BLOCK: u32 = 161;
987pub const FORMAT_ASTC_5x5_SRGB_BLOCK: u32 = 162;
988pub const FORMAT_ASTC_6x5_UNORM_BLOCK: u32 = 163;
989pub const FORMAT_ASTC_6x5_SRGB_BLOCK: u32 = 164;
990pub const FORMAT_ASTC_6x6_UNORM_BLOCK: u32 = 165;
991pub const FORMAT_ASTC_6x6_SRGB_BLOCK: u32 = 166;
992pub const FORMAT_ASTC_8x5_UNORM_BLOCK: u32 = 167;
993pub const FORMAT_ASTC_8x5_SRGB_BLOCK: u32 = 168;
994pub const FORMAT_ASTC_8x6_UNORM_BLOCK: u32 = 169;
995pub const FORMAT_ASTC_8x6_SRGB_BLOCK: u32 = 170;
996pub const FORMAT_ASTC_8x8_UNORM_BLOCK: u32 = 171;
997pub const FORMAT_ASTC_8x8_SRGB_BLOCK: u32 = 172;
998pub const FORMAT_ASTC_10x5_UNORM_BLOCK: u32 = 173;
999pub const FORMAT_ASTC_10x5_SRGB_BLOCK: u32 = 174;
1000pub const FORMAT_ASTC_10x6_UNORM_BLOCK: u32 = 175;
1001pub const FORMAT_ASTC_10x6_SRGB_BLOCK: u32 = 176;
1002pub const FORMAT_ASTC_10x8_UNORM_BLOCK: u32 = 177;
1003pub const FORMAT_ASTC_10x8_SRGB_BLOCK: u32 = 178;
1004pub const FORMAT_ASTC_10x10_UNORM_BLOCK: u32 = 179;
1005pub const FORMAT_ASTC_10x10_SRGB_BLOCK: u32 = 180;
1006pub const FORMAT_ASTC_12x10_UNORM_BLOCK: u32 = 181;
1007pub const FORMAT_ASTC_12x10_SRGB_BLOCK: u32 = 182;
1008pub const FORMAT_ASTC_12x12_UNORM_BLOCK: u32 = 183;
1009pub const FORMAT_ASTC_12x12_SRGB_BLOCK: u32 = 184;
1010
1011pub const FORMAT_G8B8G8R8_422_UNORM: u32 = 1000156000;
1012pub const FORMAT_B8G8R8G8_422_UNORM: u32 = 1000156001;
1013pub const FORMAT_G8_B8_R8_3PLANE_420_UNORM: u32 = 1000156002;
1014pub const FORMAT_G8_B8R8_2PLANE_420_UNORM: u32 = 1000156003;
1015pub const FORMAT_G8_B8_R8_3PLANE_422_UNORM: u32 = 1000156004;
1016pub const FORMAT_G8_B8R8_2PLANE_422_UNORM: u32 = 1000156005;
1017pub const FORMAT_G8_B8_R8_3PLANE_444_UNORM: u32 = 1000156006;
1018pub const FORMAT_R10X6_UNORM_PACK16: u32 = 1000156007;
1019pub const FORMAT_R10X6G10X6_UNORM_2PACK16: u32 = 1000156008;
1020pub const FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: u32 = 1000156009;
1021pub const FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: u32 = 1000156010;
1022pub const FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: u32 = 1000156011;
1023pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: u32 = 1000156012;
1024pub const FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: u32 = 1000156013;
1025pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: u32 = 1000156014;
1026pub const FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: u32 = 1000156015;
1027pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: u32 = 1000156016;
1028pub const FORMAT_R12X4_UNORM_PACK16: u32 = 1000156017;
1029pub const FORMAT_R12X4G12X4_UNORM_2PACK16: u32 = 1000156018;
1030pub const FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16: u32 = 1000156019;
1031pub const FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: u32 = 1000156020;
1032pub const FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: u32 = 1000156021;
1033pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: u32 = 1000156022;
1034pub const FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: u32 = 1000156023;
1035pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: u32 = 1000156024;
1036pub const FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: u32 = 1000156025;
1037pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: u32 = 1000156026;
1038pub const FORMAT_G16B16G16R16_422_UNORM: u32 = 1000156027;
1039pub const FORMAT_B16G16R16G16_422_UNORM: u32 = 1000156028;
1040pub const FORMAT_G16_B16_R16_3PLANE_420_UNORM: u32 = 1000156029;
1041pub const FORMAT_G16_B16R16_2PLANE_420_UNORM: u32 = 1000156030;
1042pub const FORMAT_G16_B16_R16_3PLANE_422_UNORM: u32 = 1000156031;
1043pub const FORMAT_G16_B16R16_2PLANE_422_UNORM: u32 = 1000156032;
1044pub const FORMAT_G16_B16_R16_3PLANE_444_UNORM: u32 = 1000156033;
1045pub const FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG: u32 = 1000054000;
1046pub const FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG: u32 = 1000054001;
1047pub const FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG: u32 = 1000054002;
1048pub const FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG: u32 = 1000054003;
1049pub const FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG: u32 = 1000054004;
1050pub const FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG: u32 = 1000054005;
1051pub const FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG: u32 = 1000054006;
1052pub const FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: u32 = 1000054007;
1053pub const FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT: u32 = 1000066000;
1054pub const FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT: u32 = 1000066001;
1055pub const FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT: u32 = 1000066002;
1056pub const FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT: u32 = 1000066003;
1057pub const FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT: u32 = 1000066004;
1058pub const FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT: u32 = 1000066005;
1059pub const FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT: u32 = 1000066006;
1060pub const FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT: u32 = 1000066007;
1061pub const FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT: u32 = 1000066008;
1062pub const FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT: u32 = 1000066009;
1063pub const FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT: u32 = 1000066010;
1064pub const FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT: u32 = 1000066011;
1065pub const FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT: u32 = 1000066012;
1066pub const FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT: u32 = 1000066013;
1067pub const FORMAT_A4R4G4B4_UNORM_PACK16_EXT: u32 = 1000340000;
1068pub const FORMAT_A4B4G4R4_UNORM_PACK16_EXT: u32 = 1000340001;
1069pub const FORMAT_G8B8G8R8_422_UNORM_KHR: u32 = FORMAT_G8B8G8R8_422_UNORM;
1070pub const FORMAT_B8G8R8G8_422_UNORM_KHR: u32 = FORMAT_B8G8R8G8_422_UNORM;
1071pub const FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR: u32 = FORMAT_G8_B8_R8_3PLANE_420_UNORM;
1072pub const FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR: u32 = FORMAT_G8_B8R8_2PLANE_420_UNORM;
1073pub const FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR: u32 = FORMAT_G8_B8_R8_3PLANE_422_UNORM;
1074pub const FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR: u32 = FORMAT_G8_B8R8_2PLANE_422_UNORM;
1075pub const FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR: u32 = FORMAT_G8_B8_R8_3PLANE_444_UNORM;
1076pub const FORMAT_R10X6_UNORM_PACK16_KHR: u32 = FORMAT_R10X6_UNORM_PACK16;
1077pub const FORMAT_R10X6G10X6_UNORM_2PACK16_KHR: u32 = FORMAT_R10X6G10X6_UNORM_2PACK16;
1078pub const FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: u32 =
1079    FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16;
1080pub const FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: u32 =
1081    FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
1082pub const FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: u32 =
1083    FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
1084pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: u32 =
1085    FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
1086pub const FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: u32 =
1087    FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
1088pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: u32 =
1089    FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
1090pub const FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: u32 =
1091    FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
1092pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: u32 =
1093    FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
1094pub const FORMAT_R12X4_UNORM_PACK16_KHR: u32 = FORMAT_R12X4_UNORM_PACK16;
1095pub const FORMAT_R12X4G12X4_UNORM_2PACK16_KHR: u32 = FORMAT_R12X4G12X4_UNORM_2PACK16;
1096pub const FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: u32 =
1097    FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16;
1098pub const FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: u32 =
1099    FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
1100pub const FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: u32 =
1101    FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
1102pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: u32 =
1103    FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
1104pub const FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: u32 =
1105    FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
1106pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: u32 =
1107    FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
1108pub const FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: u32 =
1109    FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
1110pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: u32 =
1111    FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
1112pub const FORMAT_G16B16G16R16_422_UNORM_KHR: u32 = FORMAT_G16B16G16R16_422_UNORM;
1113pub const FORMAT_B16G16R16G16_422_UNORM_KHR: u32 = FORMAT_B16G16R16G16_422_UNORM;
1114pub const FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR: u32 = FORMAT_G16_B16_R16_3PLANE_420_UNORM;
1115pub const FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR: u32 = FORMAT_G16_B16R16_2PLANE_420_UNORM;
1116pub const FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR: u32 = FORMAT_G16_B16_R16_3PLANE_422_UNORM;
1117pub const FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR: u32 = FORMAT_G16_B16R16_2PLANE_422_UNORM;
1118pub const FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR: u32 = FORMAT_G16_B16_R16_3PLANE_444_UNORM;
1119
1120pub type ImageType = u32;
1121pub const IMAGE_TYPE_1D: u32 = 0;
1122pub const IMAGE_TYPE_2D: u32 = 1;
1123pub const IMAGE_TYPE_3D: u32 = 2;
1124
1125pub type ImageTiling = u32;
1126pub const IMAGE_TILING_OPTIMAL: u32 = 0;
1127pub const IMAGE_TILING_LINEAR: u32 = 1;
1128
1129pub type PhysicalDeviceType = u32;
1130pub const PHYSICAL_DEVICE_TYPE_OTHER: u32 = 0;
1131pub const PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: u32 = 1;
1132pub const PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: u32 = 2;
1133pub const PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: u32 = 3;
1134pub const PHYSICAL_DEVICE_TYPE_CPU: u32 = 4;
1135
1136pub type QueryType = u32;
1137pub const QUERY_TYPE_OCCLUSION: u32 = 0;
1138pub const QUERY_TYPE_PIPELINE_STATISTICS: u32 = 1;
1139pub const QUERY_TYPE_TIMESTAMP: u32 = 2;
1140
1141pub type SharingMode = u32;
1142pub const SHARING_MODE_EXCLUSIVE: u32 = 0;
1143pub const SHARING_MODE_CONCURRENT: u32 = 1;
1144
1145pub type ImageLayout = u32;
1146pub const IMAGE_LAYOUT_UNDEFINED: u32 = 0;
1147pub const IMAGE_LAYOUT_GENERAL: u32 = 1;
1148pub const IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: u32 = 2;
1149pub const IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: u32 = 3;
1150pub const IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: u32 = 4;
1151pub const IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: u32 = 5;
1152pub const IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: u32 = 6;
1153pub const IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: u32 = 7;
1154pub const IMAGE_LAYOUT_PREINITIALIZED: u32 = 8;
1155pub const IMAGE_LAYOUT_PRESENT_SRC_KHR: u32 = 1000001002;
1156
1157pub type ImageViewType = u32;
1158pub const IMAGE_VIEW_TYPE_1D: u32 = 0;
1159pub const IMAGE_VIEW_TYPE_2D: u32 = 1;
1160pub const IMAGE_VIEW_TYPE_3D: u32 = 2;
1161pub const IMAGE_VIEW_TYPE_CUBE: u32 = 3;
1162pub const IMAGE_VIEW_TYPE_1D_ARRAY: u32 = 4;
1163pub const IMAGE_VIEW_TYPE_2D_ARRAY: u32 = 5;
1164pub const IMAGE_VIEW_TYPE_CUBE_ARRAY: u32 = 6;
1165
1166pub type ComponentSwizzle = u32;
1167pub const COMPONENT_SWIZZLE_IDENTITY: u32 = 0;
1168pub const COMPONENT_SWIZZLE_ZERO: u32 = 1;
1169pub const COMPONENT_SWIZZLE_ONE: u32 = 2;
1170pub const COMPONENT_SWIZZLE_R: u32 = 3;
1171pub const COMPONENT_SWIZZLE_G: u32 = 4;
1172pub const COMPONENT_SWIZZLE_B: u32 = 5;
1173pub const COMPONENT_SWIZZLE_A: u32 = 6;
1174
1175pub type VertexInputRate = u32;
1176pub const VERTEX_INPUT_RATE_VERTEX: u32 = 0;
1177pub const VERTEX_INPUT_RATE_INSTANCE: u32 = 1;
1178
1179pub type PrimitiveTopology = u32;
1180pub const PRIMITIVE_TOPOLOGY_POINT_LIST: u32 = 0;
1181pub const PRIMITIVE_TOPOLOGY_LINE_LIST: u32 = 1;
1182pub const PRIMITIVE_TOPOLOGY_LINE_STRIP: u32 = 2;
1183pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST: u32 = 3;
1184pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP: u32 = 4;
1185pub const PRIMITIVE_TOPOLOGY_TRIANGLE_FAN: u32 = 5;
1186pub const PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY: u32 = 6;
1187pub const PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY: u32 = 7;
1188pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY: u32 = 8;
1189pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY: u32 = 9;
1190pub const PRIMITIVE_TOPOLOGY_PATCH_LIST: u32 = 10;
1191
1192pub type PolygonMode = u32;
1193pub const POLYGON_MODE_FILL: u32 = 0;
1194pub const POLYGON_MODE_LINE: u32 = 1;
1195pub const POLYGON_MODE_POINT: u32 = 2;
1196
1197pub type FrontFace = u32;
1198pub const FRONT_FACE_COUNTER_CLOCKWISE: u32 = 0;
1199pub const FRONT_FACE_CLOCKWISE: u32 = 1;
1200
1201pub type CompareOp = u32;
1202pub const COMPARE_OP_NEVER: u32 = 0;
1203pub const COMPARE_OP_LESS: u32 = 1;
1204pub const COMPARE_OP_EQUAL: u32 = 2;
1205pub const COMPARE_OP_LESS_OR_EQUAL: u32 = 3;
1206pub const COMPARE_OP_GREATER: u32 = 4;
1207pub const COMPARE_OP_NOT_EQUAL: u32 = 5;
1208pub const COMPARE_OP_GREATER_OR_EQUAL: u32 = 6;
1209pub const COMPARE_OP_ALWAYS: u32 = 7;
1210
1211pub type StencilOp = u32;
1212pub const STENCIL_OP_KEEP: u32 = 0;
1213pub const STENCIL_OP_ZERO: u32 = 1;
1214pub const STENCIL_OP_REPLACE: u32 = 2;
1215pub const STENCIL_OP_INCREMENT_AND_CLAMP: u32 = 3;
1216pub const STENCIL_OP_DECREMENT_AND_CLAMP: u32 = 4;
1217pub const STENCIL_OP_INVERT: u32 = 5;
1218pub const STENCIL_OP_INCREMENT_AND_WRAP: u32 = 6;
1219pub const STENCIL_OP_DECREMENT_AND_WRAP: u32 = 7;
1220
1221pub type LogicOp = u32;
1222pub const LOGIC_OP_CLEAR: u32 = 0;
1223pub const LOGIC_OP_AND: u32 = 1;
1224pub const LOGIC_OP_AND_REVERSE: u32 = 2;
1225pub const LOGIC_OP_COPY: u32 = 3;
1226pub const LOGIC_OP_AND_INVERTED: u32 = 4;
1227pub const LOGIC_OP_NO_OP: u32 = 5;
1228pub const LOGIC_OP_XOR: u32 = 6;
1229pub const LOGIC_OP_OR: u32 = 7;
1230pub const LOGIC_OP_NOR: u32 = 8;
1231pub const LOGIC_OP_EQUIVALENT: u32 = 9;
1232pub const LOGIC_OP_INVERT: u32 = 10;
1233pub const LOGIC_OP_OR_REVERSE: u32 = 11;
1234pub const LOGIC_OP_COPY_INVERTED: u32 = 12;
1235pub const LOGIC_OP_OR_INVERTED: u32 = 13;
1236pub const LOGIC_OP_NAND: u32 = 14;
1237pub const LOGIC_OP_SET: u32 = 15;
1238
1239pub type BlendFactor = u32;
1240pub const BLEND_FACTOR_ZERO: u32 = 0;
1241pub const BLEND_FACTOR_ONE: u32 = 1;
1242pub const BLEND_FACTOR_SRC_COLOR: u32 = 2;
1243pub const BLEND_FACTOR_ONE_MINUS_SRC_COLOR: u32 = 3;
1244pub const BLEND_FACTOR_DST_COLOR: u32 = 4;
1245pub const BLEND_FACTOR_ONE_MINUS_DST_COLOR: u32 = 5;
1246pub const BLEND_FACTOR_SRC_ALPHA: u32 = 6;
1247pub const BLEND_FACTOR_ONE_MINUS_SRC_ALPHA: u32 = 7;
1248pub const BLEND_FACTOR_DST_ALPHA: u32 = 8;
1249pub const BLEND_FACTOR_ONE_MINUS_DST_ALPHA: u32 = 9;
1250pub const BLEND_FACTOR_CONSTANT_COLOR: u32 = 10;
1251pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: u32 = 11;
1252pub const BLEND_FACTOR_CONSTANT_ALPHA: u32 = 12;
1253pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: u32 = 13;
1254pub const BLEND_FACTOR_SRC_ALPHA_SATURATE: u32 = 14;
1255pub const BLEND_FACTOR_SRC1_COLOR: u32 = 15;
1256pub const BLEND_FACTOR_ONE_MINUS_SRC1_COLOR: u32 = 16;
1257pub const BLEND_FACTOR_SRC1_ALPHA: u32 = 17;
1258pub const BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA: u32 = 18;
1259
1260pub type BlendOp = u32;
1261pub const BLEND_OP_ADD: u32 = 0;
1262pub const BLEND_OP_SUBTRACT: u32 = 1;
1263pub const BLEND_OP_REVERSE_SUBTRACT: u32 = 2;
1264pub const BLEND_OP_MIN: u32 = 3;
1265pub const BLEND_OP_MAX: u32 = 4;
1266
1267pub type DynamicState = u32;
1268pub const DYNAMIC_STATE_VIEWPORT: u32 = 0;
1269pub const DYNAMIC_STATE_SCISSOR: u32 = 1;
1270pub const DYNAMIC_STATE_LINE_WIDTH: u32 = 2;
1271pub const DYNAMIC_STATE_DEPTH_BIAS: u32 = 3;
1272pub const DYNAMIC_STATE_BLEND_CONSTANTS: u32 = 4;
1273pub const DYNAMIC_STATE_DEPTH_BOUNDS: u32 = 5;
1274pub const DYNAMIC_STATE_STENCIL_COMPARE_MASK: u32 = 6;
1275pub const DYNAMIC_STATE_STENCIL_WRITE_MASK: u32 = 7;
1276pub const DYNAMIC_STATE_STENCIL_REFERENCE: u32 = 8;
1277
1278pub type Filter = u32;
1279pub const FILTER_NEAREST: u32 = 0;
1280pub const FILTER_LINEAR: u32 = 1;
1281
1282pub type SamplerMipmapMode = u32;
1283pub const SAMPLER_MIPMAP_MODE_NEAREST: u32 = 0;
1284pub const SAMPLER_MIPMAP_MODE_LINEAR: u32 = 1;
1285
1286pub type SamplerAddressMode = u32;
1287pub const SAMPLER_ADDRESS_MODE_REPEAT: u32 = 0;
1288pub const SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT: u32 = 1;
1289pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE: u32 = 2;
1290pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER: u32 = 3;
1291pub const SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE: u32 = 4;
1292
1293pub type BorderColor = u32;
1294pub const BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: u32 = 0;
1295pub const BORDER_COLOR_INT_TRANSPARENT_BLACK: u32 = 1;
1296pub const BORDER_COLOR_FLOAT_OPAQUE_BLACK: u32 = 2;
1297pub const BORDER_COLOR_INT_OPAQUE_BLACK: u32 = 3;
1298pub const BORDER_COLOR_FLOAT_OPAQUE_WHITE: u32 = 4;
1299pub const BORDER_COLOR_INT_OPAQUE_WHITE: u32 = 5;
1300
1301pub type DescriptorType = u32;
1302pub const DESCRIPTOR_TYPE_SAMPLER: u32 = 0;
1303pub const DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: u32 = 1;
1304pub const DESCRIPTOR_TYPE_SAMPLED_IMAGE: u32 = 2;
1305pub const DESCRIPTOR_TYPE_STORAGE_IMAGE: u32 = 3;
1306pub const DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: u32 = 4;
1307pub const DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: u32 = 5;
1308pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER: u32 = 6;
1309pub const DESCRIPTOR_TYPE_STORAGE_BUFFER: u32 = 7;
1310pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: u32 = 8;
1311pub const DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: u32 = 9;
1312pub const DESCRIPTOR_TYPE_INPUT_ATTACHMENT: u32 = 10;
1313
1314pub type AttachmentLoadOp = u32;
1315pub const ATTACHMENT_LOAD_OP_LOAD: u32 = 0;
1316pub const ATTACHMENT_LOAD_OP_CLEAR: u32 = 1;
1317pub const ATTACHMENT_LOAD_OP_DONT_CARE: u32 = 2;
1318
1319pub type AttachmentStoreOp = u32;
1320pub const ATTACHMENT_STORE_OP_STORE: u32 = 0;
1321pub const ATTACHMENT_STORE_OP_DONT_CARE: u32 = 1;
1322
1323pub type PipelineBindPoint = u32;
1324pub const PIPELINE_BIND_POINT_GRAPHICS: u32 = 0;
1325pub const PIPELINE_BIND_POINT_COMPUTE: u32 = 1;
1326
1327pub type CommandBufferLevel = u32;
1328pub const COMMAND_BUFFER_LEVEL_PRIMARY: u32 = 0;
1329pub const COMMAND_BUFFER_LEVEL_SECONDARY: u32 = 1;
1330
1331pub type IndexType = u32;
1332pub const INDEX_TYPE_UINT16: u32 = 0;
1333pub const INDEX_TYPE_UINT32: u32 = 1;
1334
1335pub type SubpassContents = u32;
1336pub const SUBPASS_CONTENTS_INLINE: u32 = 0;
1337pub const SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS: u32 = 1;
1338
1339pub type InstanceCreateFlags = Flags;
1340
1341pub type FormatFeatureFlagBits = u32;
1342pub const FORMAT_FEATURE_SAMPLED_IMAGE_BIT: u32 = 0x00000001;
1343pub const FORMAT_FEATURE_STORAGE_IMAGE_BIT: u32 = 0x00000002;
1344pub const FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT: u32 = 0x00000004;
1345pub const FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT: u32 = 0x00000008;
1346pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT: u32 = 0x00000010;
1347pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: u32 = 0x00000020;
1348pub const FORMAT_FEATURE_VERTEX_BUFFER_BIT: u32 = 0x00000040;
1349pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BIT: u32 = 0x00000080;
1350pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT: u32 = 0x00000100;
1351pub const FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT: u32 = 0x00000200;
1352pub const FORMAT_FEATURE_BLIT_SRC_BIT: u32 = 0x00000400;
1353pub const FORMAT_FEATURE_BLIT_DST_BIT: u32 = 0x00000800;
1354pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT: u32 = 0x00001000;
1355pub const FORMAT_FEATURE_TRANSFER_SRC_BIT: u32 = 0x00004000;
1356pub const FORMAT_FEATURE_TRANSFER_DST_BIT: u32 = 0x00008000;
1357pub const FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT: u32 = 0x00020000;
1358pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT: u32 = 0x00040000;
1359pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT: u32 =
1360    0x00080000;
1361pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT: u32 =
1362    0x00100000;
1363pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT: u32 = 0x00200000;
1364pub const FORMAT_FEATURE_DISJOINT_BIT: u32 = 0x00400000;
1365pub const FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT: u32 = 0x00800000;
1366pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT: u32 = 0x00010000;
1367pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG: u32 = 0x00002000;
1368pub const FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR: u32 = 0x20000000;
1369pub const FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT: u32 = 0x01000000;
1370
1371pub const FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR: u32 = FORMAT_FEATURE_TRANSFER_SRC_BIT;
1372pub const FORMAT_FEATURE_TRANSFER_DST_BIT_KHR: u32 = FORMAT_FEATURE_TRANSFER_DST_BIT;
1373pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT: u32 =
1374    FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT;
1375pub const FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR: u32 =
1376    FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT;
1377pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR: u32 =
1378    FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT;
1379pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR:
1380    u32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT;
1381pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR:
1382    u32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT;
1383pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR: u32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT;
1384pub const FORMAT_FEATURE_DISJOINT_BIT_KHR: u32 = FORMAT_FEATURE_DISJOINT_BIT;
1385pub const FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR: u32 =
1386    FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT;
1387pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT: u32 =
1388    FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG;
1389pub type FormatFeatureFlags = Flags;
1390
1391pub type ImageUsageFlagBits = u32;
1392pub const IMAGE_USAGE_TRANSFER_SRC_BIT: u32 = 0x00000001;
1393pub const IMAGE_USAGE_TRANSFER_DST_BIT: u32 = 0x00000002;
1394pub const IMAGE_USAGE_SAMPLED_BIT: u32 = 0x00000004;
1395pub const IMAGE_USAGE_STORAGE_BIT: u32 = 0x00000008;
1396pub const IMAGE_USAGE_COLOR_ATTACHMENT_BIT: u32 = 0x00000010;
1397pub const IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT: u32 = 0x00000020;
1398pub const IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT: u32 = 0x00000040;
1399pub const IMAGE_USAGE_INPUT_ATTACHMENT_BIT: u32 = 0x00000080;
1400pub type ImageUsageFlags = Flags;
1401
1402pub type ImageCreateFlagBits = u32;
1403pub const IMAGE_CREATE_SPARSE_BINDING_BIT: u32 = 0x00000001;
1404pub const IMAGE_CREATE_SPARSE_RESIDENCY_BIT: u32 = 0x00000002;
1405pub const IMAGE_CREATE_SPARSE_ALIASED_BIT: u32 = 0x00000004;
1406pub const IMAGE_CREATE_MUTABLE_FORMAT_BIT: u32 = 0x00000008;
1407pub const IMAGE_CREATE_CUBE_COMPATIBLE_BIT: u32 = 0x00000010;
1408pub const IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR: u32 = 0x00000020;
1409pub type ImageCreateFlags = Flags;
1410
1411pub type SampleCountFlagBits = u32;
1412pub const SAMPLE_COUNT_1_BIT: u32 = 0x00000001;
1413pub const SAMPLE_COUNT_2_BIT: u32 = 0x00000002;
1414pub const SAMPLE_COUNT_4_BIT: u32 = 0x00000004;
1415pub const SAMPLE_COUNT_8_BIT: u32 = 0x00000008;
1416pub const SAMPLE_COUNT_16_BIT: u32 = 0x00000010;
1417pub const SAMPLE_COUNT_32_BIT: u32 = 0x00000020;
1418pub const SAMPLE_COUNT_64_BIT: u32 = 0x00000040;
1419pub type SampleCountFlags = Flags;
1420
1421pub type QueueFlagBits = u32;
1422pub const QUEUE_GRAPHICS_BIT: u32 = 0x00000001;
1423pub const QUEUE_COMPUTE_BIT: u32 = 0x00000002;
1424pub const QUEUE_TRANSFER_BIT: u32 = 0x00000004;
1425pub const QUEUE_SPARSE_BINDING_BIT: u32 = 0x00000008;
1426pub type QueueFlags = Flags;
1427
1428pub type MemoryPropertyFlagBits = u32;
1429pub const MEMORY_PROPERTY_DEVICE_LOCAL_BIT: u32 = 0x00000001;
1430pub const MEMORY_PROPERTY_HOST_VISIBLE_BIT: u32 = 0x00000002;
1431pub const MEMORY_PROPERTY_HOST_COHERENT_BIT: u32 = 0x00000004;
1432pub const MEMORY_PROPERTY_HOST_CACHED_BIT: u32 = 0x00000008;
1433pub const MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT: u32 = 0x00000010;
1434pub type MemoryPropertyFlags = Flags;
1435
1436pub type MemoryHeapFlagBits = u32;
1437pub const MEMORY_HEAP_DEVICE_LOCAL_BIT: u32 = 0x00000001;
1438pub const MEMORY_HEAP_MULTI_INSTANCE_BIT: u32 = 0x00000002;
1439pub type MemoryHeapFlags = Flags;
1440pub type DeviceCreateFlags = Flags;
1441pub type DeviceQueueCreateFlags = Flags;
1442
1443pub type PipelineStageFlagBits = u32;
1444pub const PIPELINE_STAGE_TOP_OF_PIPE_BIT: u32 = 0x00000001;
1445pub const PIPELINE_STAGE_DRAW_INDIRECT_BIT: u32 = 0x00000002;
1446pub const PIPELINE_STAGE_VERTEX_INPUT_BIT: u32 = 0x00000004;
1447pub const PIPELINE_STAGE_VERTEX_SHADER_BIT: u32 = 0x00000008;
1448pub const PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT: u32 = 0x00000010;
1449pub const PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT: u32 = 0x00000020;
1450pub const PIPELINE_STAGE_GEOMETRY_SHADER_BIT: u32 = 0x00000040;
1451pub const PIPELINE_STAGE_FRAGMENT_SHADER_BIT: u32 = 0x00000080;
1452pub const PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT: u32 = 0x00000100;
1453pub const PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT: u32 = 0x00000200;
1454pub const PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT: u32 = 0x00000400;
1455pub const PIPELINE_STAGE_COMPUTE_SHADER_BIT: u32 = 0x00000800;
1456pub const PIPELINE_STAGE_TRANSFER_BIT: u32 = 0x00001000;
1457pub const PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT: u32 = 0x00002000;
1458pub const PIPELINE_STAGE_HOST_BIT: u32 = 0x00004000;
1459pub const PIPELINE_STAGE_ALL_GRAPHICS_BIT: u32 = 0x00008000;
1460pub const PIPELINE_STAGE_ALL_COMMANDS_BIT: u32 = 0x00010000;
1461pub type PipelineStageFlags = Flags;
1462pub type MemoryMapFlags = Flags;
1463
1464pub type ImageAspectFlagBits = u32;
1465pub const IMAGE_ASPECT_COLOR_BIT: u32 = 0x00000001;
1466pub const IMAGE_ASPECT_DEPTH_BIT: u32 = 0x00000002;
1467pub const IMAGE_ASPECT_STENCIL_BIT: u32 = 0x00000004;
1468pub const IMAGE_ASPECT_METADATA_BIT: u32 = 0x00000008;
1469pub const IMAGE_ASPECT_PLANE_0_BIT: u32 = 0x00000010;
1470pub const IMAGE_ASPECT_PLANE_1_BIT: u32 = 0x00000020;
1471pub const IMAGE_ASPECT_PLANE_2_BIT: u32 = 0x00000040;
1472pub const IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT: u32 = 0x00000080;
1473pub const IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT: u32 = 0x00000100;
1474pub const IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT: u32 = 0x00000200;
1475pub const IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT: u32 = 0x00000400;
1476pub const IMAGE_ASPECT_PLANE_0_BIT_KHR: u32 = IMAGE_ASPECT_PLANE_0_BIT;
1477pub const IMAGE_ASPECT_PLANE_1_BIT_KHR: u32 = IMAGE_ASPECT_PLANE_1_BIT;
1478pub const IMAGE_ASPECT_PLANE_2_BIT_KHR: u32 = IMAGE_ASPECT_PLANE_2_BIT;
1479pub const IMAGE_ASPECT_FLAG_BITS_MAX_ENUM: u32 = 0x7FFFFFFF;
1480pub type ImageAspectFlags = Flags;
1481
1482pub type SparseImageFormatFlagBits = u32;
1483pub const SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT: u32 = 0x00000001;
1484pub const SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT: u32 = 0x00000002;
1485pub const SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT: u32 = 0x00000004;
1486pub type SparseImageFormatFlags = Flags;
1487
1488pub type SparseMemoryBindFlagBits = u32;
1489pub const SPARSE_MEMORY_BIND_METADATA_BIT: u32 = 0x00000001;
1490pub type SparseMemoryBindFlags = Flags;
1491
1492pub type FenceCreateFlagBits = u32;
1493pub const FENCE_CREATE_SIGNALED_BIT: u32 = 0x00000001;
1494pub type FenceCreateFlags = Flags;
1495pub type SemaphoreCreateFlags = Flags;
1496pub type EventCreateFlags = Flags;
1497pub type QueryPoolCreateFlags = Flags;
1498
1499pub type QueryPipelineStatisticFlagBits = u32;
1500pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT: u32 = 0x00000001;
1501pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT: u32 = 0x00000002;
1502pub const QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: u32 = 0x00000004;
1503pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT: u32 = 0x00000008;
1504pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT: u32 = 0x00000010;
1505pub const QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT: u32 = 0x00000020;
1506pub const QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT: u32 = 0x00000040;
1507pub const QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT: u32 = 0x00000080;
1508pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: u32 = 0x00000100;
1509pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: u32 = 0x00000200;
1510pub const QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT: u32 = 0x00000400;
1511pub type QueryPipelineStatisticFlags = Flags;
1512
1513pub type QueryResultFlagBits = u32;
1514pub const QUERY_RESULT_64_BIT: u32 = 0x00000001;
1515pub const QUERY_RESULT_WAIT_BIT: u32 = 0x00000002;
1516pub const QUERY_RESULT_WITH_AVAILABILITY_BIT: u32 = 0x00000004;
1517pub const QUERY_RESULT_PARTIAL_BIT: u32 = 0x00000008;
1518pub type QueryResultFlags = Flags;
1519
1520pub type BufferCreateFlagBits = u32;
1521pub const BUFFER_CREATE_SPARSE_BINDING_BIT: u32 = 0x00000001;
1522pub const BUFFER_CREATE_SPARSE_RESIDENCY_BIT: u32 = 0x00000002;
1523pub const BUFFER_CREATE_SPARSE_ALIASED_BIT: u32 = 0x00000004;
1524pub type BufferCreateFlags = Flags;
1525
1526pub type BufferUsageFlagBits = u32;
1527pub const BUFFER_USAGE_TRANSFER_SRC_BIT: u32 = 0x00000001;
1528pub const BUFFER_USAGE_TRANSFER_DST_BIT: u32 = 0x00000002;
1529pub const BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT: u32 = 0x00000004;
1530pub const BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT: u32 = 0x00000008;
1531pub const BUFFER_USAGE_UNIFORM_BUFFER_BIT: u32 = 0x00000010;
1532pub const BUFFER_USAGE_STORAGE_BUFFER_BIT: u32 = 0x00000020;
1533pub const BUFFER_USAGE_INDEX_BUFFER_BIT: u32 = 0x00000040;
1534pub const BUFFER_USAGE_VERTEX_BUFFER_BIT: u32 = 0x00000080;
1535pub const BUFFER_USAGE_INDIRECT_BUFFER_BIT: u32 = 0x00000100;
1536pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT: u32 = 0x00020000;
1537pub type BufferUsageFlags = Flags;
1538pub type BufferViewCreateFlags = Flags;
1539pub type ImageViewCreateFlags = Flags;
1540pub type ShaderModuleCreateFlags = Flags;
1541pub type PipelineCacheCreateFlags = Flags;
1542
1543pub type PipelineCreateFlagBits = u32;
1544pub const PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT: u32 = 0x00000001;
1545pub const PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT: u32 = 0x00000002;
1546pub const PIPELINE_CREATE_DERIVATIVE_BIT: u32 = 0x00000004;
1547pub type PipelineCreateFlags = Flags;
1548pub type PipelineShaderStageCreateFlags = Flags;
1549
1550pub type ShaderStageFlagBits = u32;
1551pub const SHADER_STAGE_VERTEX_BIT: u32 = 0x00000001;
1552pub const SHADER_STAGE_TESSELLATION_CONTROL_BIT: u32 = 0x00000002;
1553pub const SHADER_STAGE_TESSELLATION_EVALUATION_BIT: u32 = 0x00000004;
1554pub const SHADER_STAGE_GEOMETRY_BIT: u32 = 0x00000008;
1555pub const SHADER_STAGE_FRAGMENT_BIT: u32 = 0x00000010;
1556pub const SHADER_STAGE_COMPUTE_BIT: u32 = 0x00000020;
1557pub const SHADER_STAGE_ALL_GRAPHICS: u32 = 0x1F;
1558pub const SHADER_STAGE_ALL: u32 = 0x7FFFFFFF;
1559pub type PipelineVertexInputStateCreateFlags = Flags;
1560pub type PipelineInputAssemblyStateCreateFlags = Flags;
1561pub type PipelineTessellationStateCreateFlags = Flags;
1562pub type PipelineViewportStateCreateFlags = Flags;
1563pub type PipelineRasterizationStateCreateFlags = Flags;
1564
1565pub type CullModeFlagBits = u32;
1566pub const CULL_MODE_NONE: u32 = 0;
1567pub const CULL_MODE_FRONT_BIT: u32 = 0x00000001;
1568pub const CULL_MODE_BACK_BIT: u32 = 0x00000002;
1569pub const CULL_MODE_FRONT_AND_BACK: u32 = 0x3;
1570pub type CullModeFlags = Flags;
1571pub type PipelineMultisampleStateCreateFlags = Flags;
1572pub type PipelineDepthStencilStateCreateFlags = Flags;
1573pub type PipelineColorBlendStateCreateFlags = Flags;
1574
1575pub type ColorComponentFlagBits = u32;
1576pub const COLOR_COMPONENT_R_BIT: u32 = 0x00000001;
1577pub const COLOR_COMPONENT_G_BIT: u32 = 0x00000002;
1578pub const COLOR_COMPONENT_B_BIT: u32 = 0x00000004;
1579pub const COLOR_COMPONENT_A_BIT: u32 = 0x00000008;
1580pub type ColorComponentFlags = Flags;
1581pub type PipelineDynamicStateCreateFlags = Flags;
1582pub type PipelineLayoutCreateFlags = Flags;
1583pub type ShaderStageFlags = Flags;
1584pub type SubgroupFeatureFlags = Flags;
1585pub type SamplerCreateFlags = Flags;
1586pub type DescriptorSetLayoutCreateFlags = Flags;
1587
1588pub type DescriptorPoolCreateFlagBits = u32;
1589pub const DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT: u32 = 0x00000001;
1590pub type DescriptorPoolCreateFlags = Flags;
1591pub type DescriptorPoolResetFlags = Flags;
1592pub type FramebufferCreateFlags = Flags;
1593pub type RenderPassCreateFlags = Flags;
1594
1595pub type AttachmentDescriptionFlagBits = u32;
1596pub const ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT: u32 = 0x00000001;
1597pub type AttachmentDescriptionFlags = Flags;
1598pub type SubpassDescriptionFlags = Flags;
1599
1600pub type AccessFlagBits = u32;
1601pub const ACCESS_INDIRECT_COMMAND_READ_BIT: u32 = 0x00000001;
1602pub const ACCESS_INDEX_READ_BIT: u32 = 0x00000002;
1603pub const ACCESS_VERTEX_ATTRIBUTE_READ_BIT: u32 = 0x00000004;
1604pub const ACCESS_UNIFORM_READ_BIT: u32 = 0x00000008;
1605pub const ACCESS_INPUT_ATTACHMENT_READ_BIT: u32 = 0x00000010;
1606pub const ACCESS_SHADER_READ_BIT: u32 = 0x00000020;
1607pub const ACCESS_SHADER_WRITE_BIT: u32 = 0x00000040;
1608pub const ACCESS_COLOR_ATTACHMENT_READ_BIT: u32 = 0x00000080;
1609pub const ACCESS_COLOR_ATTACHMENT_WRITE_BIT: u32 = 0x00000100;
1610pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: u32 = 0x00000200;
1611pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: u32 = 0x00000400;
1612pub const ACCESS_TRANSFER_READ_BIT: u32 = 0x00000800;
1613pub const ACCESS_TRANSFER_WRITE_BIT: u32 = 0x00001000;
1614pub const ACCESS_HOST_READ_BIT: u32 = 0x00002000;
1615pub const ACCESS_HOST_WRITE_BIT: u32 = 0x00004000;
1616pub const ACCESS_MEMORY_READ_BIT: u32 = 0x00008000;
1617pub const ACCESS_MEMORY_WRITE_BIT: u32 = 0x00010000;
1618pub type AccessFlags = Flags;
1619
1620pub type DependencyFlagBits = u32;
1621pub const DEPENDENCY_BY_REGION_BIT: u32 = 0x00000001;
1622pub type DependencyFlags = Flags;
1623
1624pub type CommandPoolCreateFlagBits = u32;
1625pub const COMMAND_POOL_CREATE_TRANSIENT_BIT: u32 = 0x00000001;
1626pub const COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT: u32 = 0x00000002;
1627pub type CommandPoolCreateFlags = Flags;
1628
1629pub type CommandPoolResetFlagBits = u32;
1630pub const COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT: u32 = 0x00000001;
1631pub type CommandPoolResetFlags = Flags;
1632
1633pub type CommandPoolTrimFlagsKHR = Flags;
1634
1635pub type CommandBufferUsageFlagBits = u32;
1636pub const COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT: u32 = 0x00000001;
1637pub const COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT: u32 = 0x00000002;
1638pub const COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT: u32 = 0x00000004;
1639pub type CommandBufferUsageFlags = Flags;
1640
1641pub type QueryControlFlagBits = u32;
1642pub const QUERY_CONTROL_PRECISE_BIT: u32 = 0x00000001;
1643pub type QueryControlFlags = Flags;
1644
1645pub type CommandBufferResetFlagBits = u32;
1646pub const COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT: u32 = 0x00000001;
1647pub type CommandBufferResetFlags = Flags;
1648
1649pub type StencilFaceFlagBits = u32;
1650pub const STENCIL_FACE_FRONT_BIT: u32 = 0x00000001;
1651pub const STENCIL_FACE_BACK_BIT: u32 = 0x00000002;
1652pub const STENCIL_FRONT_AND_BACK: u32 = 0x3;
1653pub type StencilFaceFlags = Flags;
1654
1655pub type DisplayPlaneAlphaFlagBitsKHR = u32;
1656pub const DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR: u32 = 0x00000001;
1657pub const DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR: u32 = 0x00000002;
1658pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR: u32 = 0x00000004;
1659pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR: u32 = 0x00000008;
1660pub type DisplayModeCreateFlagsKHR = Flags;
1661pub type DisplayPlaneAlphaFlagsKHR = Flags;
1662pub type DisplaySurfaceCreateFlagsKHR = Flags;
1663
1664pub type ColorSpaceKHR = u32;
1665pub const COLOR_SPACE_SRGB_NONLINEAR_KHR: u32 = 0;
1666pub const COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT: u32 = 1000104001;
1667pub const COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT: u32 = 1000104002;
1668pub const COLOR_SPACE_DCI_P3_LINEAR_EXT: u32 = 1000104003;
1669pub const COLOR_SPACE_DCI_P3_NONLINEAR_EXT: u32 = 1000104004;
1670pub const COLOR_SPACE_BT709_LINEAR_EXT: u32 = 1000104005;
1671pub const COLOR_SPACE_BT709_NONLINEAR_EXT: u32 = 1000104006;
1672pub const COLOR_SPACE_BT2020_LINEAR_EXT: u32 = 1000104007;
1673pub const COLOR_SPACE_HDR10_ST2084_EXT: u32 = 1000104008;
1674pub const COLOR_SPACE_DOLBYVISION_EXT: u32 = 1000104009;
1675pub const COLOR_SPACE_HDR10_HLG_EXT: u32 = 1000104010;
1676pub const COLOR_SPACE_ADOBERGB_LINEAR_EXT: u32 = 1000104011;
1677pub const COLOR_SPACE_ADOBERGB_NONLINEAR_EXT: u32 = 1000104012;
1678pub const COLOR_SPACE_PASS_THROUGH_EXT: u32 = 1000104013;
1679
1680pub type PresentModeKHR = u32;
1681pub const PRESENT_MODE_IMMEDIATE_KHR: u32 = 0;
1682pub const PRESENT_MODE_MAILBOX_KHR: u32 = 1;
1683pub const PRESENT_MODE_FIFO_KHR: u32 = 2;
1684pub const PRESENT_MODE_FIFO_RELAXED_KHR: u32 = 3;
1685pub const PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: u32 = 1000111000;
1686pub const PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: u32 = 1000111001;
1687
1688pub type SurfaceTransformFlagBitsKHR = u32;
1689pub const SURFACE_TRANSFORM_IDENTITY_BIT_KHR: u32 = 0x00000001;
1690pub const SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: u32 = 0x00000002;
1691pub const SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: u32 = 0x00000004;
1692pub const SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: u32 = 0x00000008;
1693pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR: u32 = 0x00000010;
1694pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR: u32 = 0x00000020;
1695pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR: u32 = 0x00000040;
1696pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR: u32 = 0x00000080;
1697pub const SURFACE_TRANSFORM_INHERIT_BIT_KHR: u32 = 0x00000100;
1698pub type SurfaceTransformFlagsKHR = Flags;
1699
1700pub type CompositeAlphaFlagBitsKHR = u32;
1701pub const COMPOSITE_ALPHA_OPAQUE_BIT_KHR: u32 = 0x00000001;
1702pub const COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR: u32 = 0x00000002;
1703pub const COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR: u32 = 0x00000004;
1704pub const COMPOSITE_ALPHA_INHERIT_BIT_KHR: u32 = 0x00000008;
1705pub type CompositeAlphaFlagsKHR = Flags;
1706
1707pub type ExternalMemoryHandleTypeFlagBits = u32;
1708pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: u32 = 0x00000001;
1709pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT: u32 = 0x00000002;
1710pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: u32 = 0x00000004;
1711pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT: u32 = 0x00000008;
1712pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT: u32 = 0x00000010;
1713pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT: u32 = 0x00000020;
1714pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT: u32 = 0x00000040;
1715pub const EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: u32 = 0x00000200;
1716pub const EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID: u32 = 0x00000400;
1717pub const EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: u32 = 0x00000080;
1718pub const EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: u32 = 0x00000100;
1719pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR: u32 =
1720    EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
1721pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR: u32 =
1722    EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT;
1723pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR: u32 =
1724    EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
1725pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR: u32 =
1726    EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT;
1727pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR: u32 =
1728    EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT;
1729pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR: u32 =
1730    EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT;
1731pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR: u32 =
1732    EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT;
1733pub type ExternalMemoryHandleTypeFlags = Flags;
1734
1735pub type ObjectType = u32;
1736pub const OBJECT_TYPE_UNKNOWN: u32 = 0;
1737pub const OBJECT_TYPE_INSTANCE: u32 = 1;
1738pub const OBJECT_TYPE_PHYSICAL_DEVICE: u32 = 2;
1739pub const OBJECT_TYPE_DEVICE: u32 = 3;
1740pub const OBJECT_TYPE_QUEUE: u32 = 4;
1741pub const OBJECT_TYPE_SEMAPHORE: u32 = 5;
1742pub const OBJECT_TYPE_COMMAND_BUFFER: u32 = 6;
1743pub const OBJECT_TYPE_FENCE: u32 = 7;
1744pub const OBJECT_TYPE_DEVICE_MEMORY: u32 = 8;
1745pub const OBJECT_TYPE_BUFFER: u32 = 9;
1746pub const OBJECT_TYPE_IMAGE: u32 = 10;
1747pub const OBJECT_TYPE_EVENT: u32 = 11;
1748pub const OBJECT_TYPE_QUERY_POOL: u32 = 12;
1749pub const OBJECT_TYPE_BUFFER_VIEW: u32 = 13;
1750pub const OBJECT_TYPE_IMAGE_VIEW: u32 = 14;
1751pub const OBJECT_TYPE_SHADER_MODULE: u32 = 15;
1752pub const OBJECT_TYPE_PIPELINE_CACHE: u32 = 16;
1753pub const OBJECT_TYPE_PIPELINE_LAYOUT: u32 = 17;
1754pub const OBJECT_TYPE_RENDER_PASS: u32 = 18;
1755pub const OBJECT_TYPE_PIPELINE: u32 = 19;
1756pub const OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT: u32 = 20;
1757pub const OBJECT_TYPE_SAMPLER: u32 = 21;
1758pub const OBJECT_TYPE_DESCRIPTOR_POOL: u32 = 22;
1759pub const OBJECT_TYPE_DESCRIPTOR_SET: u32 = 23;
1760pub const OBJECT_TYPE_FRAMEBUFFER: u32 = 24;
1761pub const OBJECT_TYPE_COMMAND_POOL: u32 = 25;
1762pub const OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION: u32 = 1000156000;
1763pub const OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE: u32 = 1000085000;
1764pub const OBJECT_TYPE_SURFACE_KHR: u32 = 1000000000;
1765pub const OBJECT_TYPE_SWAPCHAIN_KHR: u32 = 1000001000;
1766pub const OBJECT_TYPE_DISPLAY_KHR: u32 = 1000002000;
1767pub const OBJECT_TYPE_DISPLAY_MODE_KHR: u32 = 1000002001;
1768pub const OBJECT_TYPE_OBJECT_TABLE_NVX: u32 = 1000086000;
1769pub const OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX: u32 = 1000086001;
1770pub const OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT: u32 = 1000128000;
1771pub const OBJECT_TYPE_VALIDATION_CACHE_EXT: u32 = 1000160000;
1772pub const OBJECT_TYPE_ACCELERATION_STRUCTURE_NV: u32 = 1000165000;
1773pub const OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL: u32 = 1000210000;
1774pub const OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR: u32 = OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;
1775pub const OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR: u32 = OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;
1776
1777pub type DebugUtilsMessageSeverityFlagBitsEXT = u32;
1778pub const DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: u32 = 0x00000001;
1779pub const DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: u32 = 0x00000010;
1780pub const DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: u32 = 0x00000100;
1781pub const DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: u32 = 0x00001000;
1782pub type DebugUtilsMessageSeverityFlagsEXT = Flags;
1783
1784pub type DebugUtilsMessageTypeFlagBitsEXT = u32;
1785pub const DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT: u32 = 0x00000001;
1786pub const DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT: u32 = 0x00000002;
1787pub const DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT: u32 = 0x00000004;
1788pub type DebugUtilsMessageTypeFlagsEXT = Flags;
1789
1790pub type DebugUtilsMessengerCreateFlagsEXT = Flags;
1791
1792pub type DebugUtilsMessengerCallbackDataFlagsEXT = Flags;
1793
1794pub type DebugUtilsMessengerEXT = u64;
1795
1796pub type MacOSSurfaceCreateFlagsMVK = u32;
1797
1798pub type IOSSurfaceCreateFlagsMVK = u32;
1799
1800pub type DescriptorSetLayoutCreateFlagBits = u32;
1801pub const DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR: u32 = 0x00000001;
1802
1803pub type DescriptorUpdateTemplateTypeKHR = u32;
1804pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR: u32 = 0;
1805pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: u32 = 1;
1806pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR: u32 =
1807    DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR;
1808pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR: u32 =
1809    DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR;
1810pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR: u32 =
1811    DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR
1812        - DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR
1813        + 1;
1814pub type DescriptorUpdateTemplateCreateFlagsKHR = Flags;
1815
1816pub type PFN_vkAllocationFunction =
1817    extern "system" fn(*mut c_void, usize, usize, SystemAllocationScope) -> *mut c_void;
1818pub type PFN_vkReallocationFunction = extern "system" fn(
1819    *mut c_void,
1820    *mut c_void,
1821    usize,
1822    usize,
1823    SystemAllocationScope,
1824) -> *mut c_void;
1825pub type PFN_vkFreeFunction = extern "system" fn(*mut c_void, *mut c_void);
1826pub type PFN_vkInternalAllocationNotification = extern "system" fn(
1827    *mut c_void,
1828    usize,
1829    InternalAllocationType,
1830    SystemAllocationScope,
1831) -> *mut c_void;
1832pub type PFN_vkInternalFreeNotification = extern "system" fn(
1833    *mut c_void,
1834    usize,
1835    InternalAllocationType,
1836    SystemAllocationScope,
1837) -> *mut c_void;
1838pub type PFN_vkDebugUtilsMessengerCallbackEXT = extern "system" fn(
1839    DebugUtilsMessageSeverityFlagBitsEXT,
1840    DebugUtilsMessageTypeFlagsEXT,
1841    *const DebugUtilsMessengerCallbackDataEXT,
1842    *mut c_void,
1843) -> Bool32;
1844
1845pub type PFN_vkVoidFunction = extern "system" fn() -> ();
1846
1847pub type FullScreenExclusiveEXT = u32;
1848pub const FULL_SCREEN_EXCLUSIVE_DEFAUlT_EXT: u32 = 0;
1849pub const FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT: u32 = 1;
1850pub const FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT: u32 = 2;
1851pub const FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT: u32 = 3;
1852pub const FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT: u32 = 0x7FFFFFFF;
1853
1854#[repr(C)]
1855pub struct ApplicationInfo {
1856    pub sType: StructureType,
1857    pub pNext: *const c_void,
1858    pub pApplicationName: *const c_char,
1859    pub applicationVersion: u32,
1860    pub pEngineName: *const c_char,
1861    pub engineVersion: u32,
1862    pub apiVersion: u32,
1863}
1864
1865#[repr(C)]
1866pub struct InstanceCreateInfo {
1867    pub sType: StructureType,
1868    pub pNext: *const c_void,
1869    pub flags: InstanceCreateFlags,
1870    pub pApplicationInfo: *const ApplicationInfo,
1871    pub enabledLayerCount: u32,
1872    pub ppEnabledLayerNames: *const *const c_char,
1873    pub enabledExtensionCount: u32,
1874    pub ppEnabledExtensionNames: *const *const c_char,
1875}
1876
1877#[repr(C)]
1878pub struct AllocationCallbacks {
1879    pub pUserData: *mut c_void,
1880    pub pfnAllocation: PFN_vkAllocationFunction,
1881    pub pfnReallocation: PFN_vkReallocationFunction,
1882    pub pfnFree: PFN_vkFreeFunction,
1883    pub pfnInternalAllocation: PFN_vkInternalAllocationNotification,
1884    pub pfnInternalFree: PFN_vkInternalFreeNotification,
1885}
1886
1887#[derive(Default)]
1888#[repr(C)]
1889pub struct PhysicalDeviceFeatures {
1890    pub robustBufferAccess: Bool32,
1891    pub fullDrawIndexUint32: Bool32,
1892    pub imageCubeArray: Bool32,
1893    pub independentBlend: Bool32,
1894    pub geometryShader: Bool32,
1895    pub tessellationShader: Bool32,
1896    pub sampleRateShading: Bool32,
1897    pub dualSrcBlend: Bool32,
1898    pub logicOp: Bool32,
1899    pub multiDrawIndirect: Bool32,
1900    pub drawIndirectFirstInstance: Bool32,
1901    pub depthClamp: Bool32,
1902    pub depthBiasClamp: Bool32,
1903    pub fillModeNonSolid: Bool32,
1904    pub depthBounds: Bool32,
1905    pub wideLines: Bool32,
1906    pub largePoints: Bool32,
1907    pub alphaToOne: Bool32,
1908    pub multiViewport: Bool32,
1909    pub samplerAnisotropy: Bool32,
1910    pub textureCompressionETC2: Bool32,
1911    pub textureCompressionASTC_LDR: Bool32,
1912    pub textureCompressionBC: Bool32,
1913    pub occlusionQueryPrecise: Bool32,
1914    pub pipelineStatisticsQuery: Bool32,
1915    pub vertexPipelineStoresAndAtomics: Bool32,
1916    pub fragmentStoresAndAtomics: Bool32,
1917    pub shaderTessellationAndGeometryPointSize: Bool32,
1918    pub shaderImageGatherExtended: Bool32,
1919    pub shaderStorageImageExtendedFormats: Bool32,
1920    pub shaderStorageImageMultisample: Bool32,
1921    pub shaderStorageImageReadWithoutFormat: Bool32,
1922    pub shaderStorageImageWriteWithoutFormat: Bool32,
1923    pub shaderUniformBufferArrayDynamicIndexing: Bool32,
1924    pub shaderSampledImageArrayDynamicIndexing: Bool32,
1925    pub shaderStorageBufferArrayDynamicIndexing: Bool32,
1926    pub shaderStorageImageArrayDynamicIndexing: Bool32,
1927    pub shaderClipDistance: Bool32,
1928    pub shaderCullDistance: Bool32,
1929    pub shaderFloat64: Bool32,
1930    pub shaderInt64: Bool32,
1931    pub shaderInt16: Bool32,
1932    pub shaderResourceResidency: Bool32,
1933    pub shaderResourceMinLod: Bool32,
1934    pub sparseBinding: Bool32,
1935    pub sparseResidencyBuffer: Bool32,
1936    pub sparseResidencyImage2D: Bool32,
1937    pub sparseResidencyImage3D: Bool32,
1938    pub sparseResidency2Samples: Bool32,
1939    pub sparseResidency4Samples: Bool32,
1940    pub sparseResidency8Samples: Bool32,
1941    pub sparseResidency16Samples: Bool32,
1942    pub sparseResidencyAliased: Bool32,
1943    pub variableMultisampleRate: Bool32,
1944    pub inheritedQueries: Bool32,
1945}
1946
1947#[repr(C)]
1948pub struct FormatProperties {
1949    pub linearTilingFeatures: FormatFeatureFlags,
1950    pub optimalTilingFeatures: FormatFeatureFlags,
1951    pub bufferFeatures: FormatFeatureFlags,
1952}
1953
1954#[repr(C)]
1955pub struct Extent3D {
1956    pub width: u32,
1957    pub height: u32,
1958    pub depth: u32,
1959}
1960
1961#[repr(C)]
1962pub struct ImageFormatProperties {
1963    pub maxExtent: Extent3D,
1964    pub maxMipLevels: u32,
1965    pub maxArrayLayers: u32,
1966    pub sampleCounts: SampleCountFlags,
1967    pub maxResourceSize: DeviceSize,
1968}
1969
1970#[repr(C)]
1971pub struct PhysicalDeviceLimits {
1972    pub maxImageDimension1D: u32,
1973    pub maxImageDimension2D: u32,
1974    pub maxImageDimension3D: u32,
1975    pub maxImageDimensionCube: u32,
1976    pub maxImageArrayLayers: u32,
1977    pub maxTexelBufferElements: u32,
1978    pub maxUniformBufferRange: u32,
1979    pub maxStorageBufferRange: u32,
1980    pub maxPushConstantsSize: u32,
1981    pub maxMemoryAllocationCount: u32,
1982    pub maxSamplerAllocationCount: u32,
1983    pub bufferImageGranularity: DeviceSize,
1984    pub sparseAddressSpaceSize: DeviceSize,
1985    pub maxBoundDescriptorSets: u32,
1986    pub maxPerStageDescriptorSamplers: u32,
1987    pub maxPerStageDescriptorUniformBuffers: u32,
1988    pub maxPerStageDescriptorStorageBuffers: u32,
1989    pub maxPerStageDescriptorSampledImages: u32,
1990    pub maxPerStageDescriptorStorageImages: u32,
1991    pub maxPerStageDescriptorInputAttachments: u32,
1992    pub maxPerStageResources: u32,
1993    pub maxDescriptorSetSamplers: u32,
1994    pub maxDescriptorSetUniformBuffers: u32,
1995    pub maxDescriptorSetUniformBuffersDynamic: u32,
1996    pub maxDescriptorSetStorageBuffers: u32,
1997    pub maxDescriptorSetStorageBuffersDynamic: u32,
1998    pub maxDescriptorSetSampledImages: u32,
1999    pub maxDescriptorSetStorageImages: u32,
2000    pub maxDescriptorSetInputAttachments: u32,
2001    pub maxVertexInputAttributes: u32,
2002    pub maxVertexInputBindings: u32,
2003    pub maxVertexInputAttributeOffset: u32,
2004    pub maxVertexInputBindingStride: u32,
2005    pub maxVertexOutputComponents: u32,
2006    pub maxTessellationGenerationLevel: u32,
2007    pub maxTessellationPatchSize: u32,
2008    pub maxTessellationControlPerVertexInputComponents: u32,
2009    pub maxTessellationControlPerVertexOutputComponents: u32,
2010    pub maxTessellationControlPerPatchOutputComponents: u32,
2011    pub maxTessellationControlTotalOutputComponents: u32,
2012    pub maxTessellationEvaluationInputComponents: u32,
2013    pub maxTessellationEvaluationOutputComponents: u32,
2014    pub maxGeometryShaderInvocations: u32,
2015    pub maxGeometryInputComponents: u32,
2016    pub maxGeometryOutputComponents: u32,
2017    pub maxGeometryOutputVertices: u32,
2018    pub maxGeometryTotalOutputComponents: u32,
2019    pub maxFragmentInputComponents: u32,
2020    pub maxFragmentOutputAttachments: u32,
2021    pub maxFragmentDualSrcAttachments: u32,
2022    pub maxFragmentCombinedOutputResources: u32,
2023    pub maxComputeSharedMemorySize: u32,
2024    pub maxComputeWorkGroupCount: [u32; 3],
2025    pub maxComputeWorkGroupInvocations: u32,
2026    pub maxComputeWorkGroupSize: [u32; 3],
2027    pub subPixelPrecisionBits: u32,
2028    pub subTexelPrecisionBits: u32,
2029    pub mipmapPrecisionBits: u32,
2030    pub maxDrawIndexedIndexValue: u32,
2031    pub maxDrawIndirectCount: u32,
2032    pub maxSamplerLodBias: f32,
2033    pub maxSamplerAnisotropy: f32,
2034    pub maxViewports: u32,
2035    pub maxViewportDimensions: [u32; 2],
2036    pub viewportBoundsRange: [f32; 2],
2037    pub viewportSubPixelBits: u32,
2038    pub minMemoryMapAlignment: usize,
2039    pub minTexelBufferOffsetAlignment: DeviceSize,
2040    pub minUniformBufferOffsetAlignment: DeviceSize,
2041    pub minStorageBufferOffsetAlignment: DeviceSize,
2042    pub minTexelOffset: i32,
2043    pub maxTexelOffset: u32,
2044    pub minTexelGatherOffset: i32,
2045    pub maxTexelGatherOffset: u32,
2046    pub minInterpolationOffset: f32,
2047    pub maxInterpolationOffset: f32,
2048    pub subPixelInterpolationOffsetBits: u32,
2049    pub maxFramebufferWidth: u32,
2050    pub maxFramebufferHeight: u32,
2051    pub maxFramebufferLayers: u32,
2052    pub framebufferColorSampleCounts: SampleCountFlags,
2053    pub framebufferDepthSampleCounts: SampleCountFlags,
2054    pub framebufferStencilSampleCounts: SampleCountFlags,
2055    pub framebufferNoAttachmentsSampleCounts: SampleCountFlags,
2056    pub maxColorAttachments: u32,
2057    pub sampledImageColorSampleCounts: SampleCountFlags,
2058    pub sampledImageIntegerSampleCounts: SampleCountFlags,
2059    pub sampledImageDepthSampleCounts: SampleCountFlags,
2060    pub sampledImageStencilSampleCounts: SampleCountFlags,
2061    pub storageImageSampleCounts: SampleCountFlags,
2062    pub maxSampleMaskWords: u32,
2063    pub timestampComputeAndGraphics: Bool32,
2064    pub timestampPeriod: f32,
2065    pub maxClipDistances: u32,
2066    pub maxCullDistances: u32,
2067    pub maxCombinedClipAndCullDistances: u32,
2068    pub discreteQueuePriorities: u32,
2069    pub pointSizeRange: [f32; 2],
2070    pub lineWidthRange: [f32; 2],
2071    pub pointSizeGranularity: f32,
2072    pub lineWidthGranularity: f32,
2073    pub strictLines: Bool32,
2074    pub standardSampleLocations: Bool32,
2075    pub optimalBufferCopyOffsetAlignment: DeviceSize,
2076    pub optimalBufferCopyRowPitchAlignment: DeviceSize,
2077    pub nonCoherentAtomSize: DeviceSize,
2078}
2079
2080#[repr(C)]
2081pub struct PhysicalDeviceSparseProperties {
2082    pub residencyStandard2DBlockShape: Bool32,
2083    pub residencyStandard2DMultisampleBlockShape: Bool32,
2084    pub residencyStandard3DBlockShape: Bool32,
2085    pub residencyAlignedMipSize: Bool32,
2086    pub residencyNonResidentStrict: Bool32,
2087}
2088
2089#[repr(C)]
2090pub struct PhysicalDeviceProperties {
2091    pub apiVersion: u32,
2092    pub driverVersion: u32,
2093    pub vendorID: u32,
2094    pub deviceID: u32,
2095    pub deviceType: PhysicalDeviceType,
2096    pub deviceName: [c_char; MAX_PHYSICAL_DEVICE_NAME_SIZE as usize],
2097    pub pipelineCacheUUID: [u8; UUID_SIZE as usize],
2098    pub limits: PhysicalDeviceLimits,
2099    pub sparseProperties: PhysicalDeviceSparseProperties,
2100}
2101
2102#[repr(C)]
2103pub struct QueueFamilyProperties {
2104    pub queueFlags: QueueFlags,
2105    pub queueCount: u32,
2106    pub timestampValidBits: u32,
2107    pub minImageTransferGranularity: Extent3D,
2108}
2109
2110#[repr(C)]
2111pub struct MemoryType {
2112    pub propertyFlags: MemoryPropertyFlags,
2113    pub heapIndex: u32,
2114}
2115
2116#[repr(C)]
2117pub struct MemoryHeap {
2118    pub size: DeviceSize,
2119    pub flags: MemoryHeapFlags,
2120}
2121
2122#[repr(C)]
2123pub struct PhysicalDeviceMemoryProperties {
2124    pub memoryTypeCount: u32,
2125    pub memoryTypes: [MemoryType; MAX_MEMORY_TYPES as usize],
2126    pub memoryHeapCount: u32,
2127    pub memoryHeaps: [MemoryHeap; MAX_MEMORY_HEAPS as usize],
2128}
2129
2130#[repr(C)]
2131pub struct DeviceQueueCreateInfo {
2132    pub sType: StructureType,
2133    pub pNext: *const c_void,
2134    pub flags: DeviceQueueCreateFlags,
2135    pub queueFamilyIndex: u32,
2136    pub queueCount: u32,
2137    pub pQueuePriorities: *const f32,
2138}
2139
2140#[repr(C)]
2141pub struct DeviceCreateInfo {
2142    pub sType: StructureType,
2143    pub pNext: *const c_void,
2144    pub flags: DeviceCreateFlags,
2145    pub queueCreateInfoCount: u32,
2146    pub pQueueCreateInfos: *const DeviceQueueCreateInfo,
2147    pub enabledLayerCount: u32,
2148    pub ppEnabledLayerNames: *const *const c_char,
2149    pub enabledExtensionCount: u32,
2150    pub ppEnabledExtensionNames: *const *const c_char,
2151    pub pEnabledFeatures: *const PhysicalDeviceFeatures,
2152}
2153
2154#[repr(C)]
2155pub struct ExtensionProperties {
2156    pub extensionName: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
2157    pub specVersion: u32,
2158}
2159
2160#[repr(C)]
2161pub struct LayerProperties {
2162    pub layerName: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
2163    pub specVersion: u32,
2164    pub implementationVersion: u32,
2165    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
2166}
2167
2168#[repr(C)]
2169pub struct SubmitInfo {
2170    pub sType: StructureType,
2171    pub pNext: *const c_void,
2172    pub waitSemaphoreCount: u32,
2173    pub pWaitSemaphores: *const Semaphore,
2174    pub pWaitDstStageMask: *const PipelineStageFlags,
2175    pub commandBufferCount: u32,
2176    pub pCommandBuffers: *const CommandBuffer,
2177    pub signalSemaphoreCount: u32,
2178    pub pSignalSemaphores: *const Semaphore,
2179}
2180
2181#[repr(C)]
2182pub struct MemoryAllocateInfo {
2183    pub sType: StructureType,
2184    pub pNext: *const c_void,
2185    pub allocationSize: DeviceSize,
2186    pub memoryTypeIndex: u32,
2187}
2188
2189#[repr(C)]
2190pub struct MappedMemoryRange {
2191    pub sType: StructureType,
2192    pub pNext: *const c_void,
2193    pub memory: DeviceMemory,
2194    pub offset: DeviceSize,
2195    pub size: DeviceSize,
2196}
2197
2198#[repr(C)]
2199pub struct MemoryRequirements {
2200    pub size: DeviceSize,
2201    pub alignment: DeviceSize,
2202    pub memoryTypeBits: u32,
2203}
2204
2205#[repr(C)]
2206pub struct SparseImageFormatProperties {
2207    pub aspectMask: ImageAspectFlags,
2208    pub imageGranularity: Extent3D,
2209    pub flags: SparseImageFormatFlags,
2210}
2211
2212#[repr(C)]
2213pub struct SparseImageMemoryRequirements {
2214    pub formatProperties: SparseImageFormatProperties,
2215    pub imageMipTailFirstLod: u32,
2216    pub imageMipTailSize: DeviceSize,
2217    pub imageMipTailOffset: DeviceSize,
2218    pub imageMipTailStride: DeviceSize,
2219}
2220
2221#[repr(C)]
2222pub struct SparseMemoryBind {
2223    pub resourceOffset: DeviceSize,
2224    pub size: DeviceSize,
2225    pub memory: DeviceMemory,
2226    pub memoryOffset: DeviceSize,
2227    pub flags: SparseMemoryBindFlags,
2228}
2229
2230#[repr(C)]
2231pub struct SparseBufferMemoryBindInfo {
2232    pub buffer: Buffer,
2233    pub bindCount: u32,
2234    pub pBinds: *const SparseMemoryBind,
2235}
2236
2237#[repr(C)]
2238pub struct SparseImageOpaqueMemoryBindInfo {
2239    pub image: Image,
2240    pub bindCount: u32,
2241    pub pBinds: *const SparseMemoryBind,
2242}
2243
2244#[repr(C)]
2245pub struct ImageSubresource {
2246    pub aspectMask: ImageAspectFlags,
2247    pub mipLevel: u32,
2248    pub arrayLayer: u32,
2249}
2250
2251#[repr(C)]
2252pub struct Offset3D {
2253    pub x: i32,
2254    pub y: i32,
2255    pub z: i32,
2256}
2257
2258#[repr(C)]
2259pub struct SparseImageMemoryBind {
2260    pub subresource: ImageSubresource,
2261    pub offset: Offset3D,
2262    pub extent: Extent3D,
2263    pub memory: DeviceMemory,
2264    pub memoryOffset: DeviceSize,
2265    pub flags: SparseMemoryBindFlags,
2266}
2267
2268#[repr(C)]
2269pub struct SparseImageMemoryBindInfo {
2270    pub image: Image,
2271    pub bindCount: u32,
2272    pub pBinds: *const SparseImageMemoryBind,
2273}
2274
2275#[repr(C)]
2276pub struct BindSparseInfo {
2277    pub sType: StructureType,
2278    pub pNext: *const c_void,
2279    pub waitSemaphoreCount: u32,
2280    pub pWaitSemaphores: *const Semaphore,
2281    pub bufferBindCount: u32,
2282    pub pBufferBinds: *const SparseBufferMemoryBindInfo,
2283    pub imageOpaqueBindCount: u32,
2284    pub pImageOpaqueBinds: *const SparseImageOpaqueMemoryBindInfo,
2285    pub imageBindCount: u32,
2286    pub pImageBinds: *const SparseImageMemoryBindInfo,
2287    pub signalSemaphoreCount: u32,
2288    pub pSignalSemaphores: *const Semaphore,
2289}
2290
2291#[repr(C)]
2292pub struct FenceCreateInfo {
2293    pub sType: StructureType,
2294    pub pNext: *const c_void,
2295    pub flags: FenceCreateFlags,
2296}
2297
2298#[repr(C)]
2299pub struct SemaphoreCreateInfo {
2300    pub sType: StructureType,
2301    pub pNext: *const c_void,
2302    pub flags: SemaphoreCreateFlags,
2303}
2304
2305#[repr(C)]
2306pub struct EventCreateInfo {
2307    pub sType: StructureType,
2308    pub pNext: *const c_void,
2309    pub flags: EventCreateFlags,
2310}
2311
2312#[repr(C)]
2313pub struct QueryPoolCreateInfo {
2314    pub sType: StructureType,
2315    pub pNext: *const c_void,
2316    pub flags: QueryPoolCreateFlags,
2317    pub queryType: QueryType,
2318    pub queryCount: u32,
2319    pub pipelineStatistics: QueryPipelineStatisticFlags,
2320}
2321
2322#[repr(C)]
2323pub struct BufferCreateInfo {
2324    pub sType: StructureType,
2325    pub pNext: *const c_void,
2326    pub flags: BufferCreateFlags,
2327    pub size: DeviceSize,
2328    pub usage: BufferUsageFlags,
2329    pub sharingMode: SharingMode,
2330    pub queueFamilyIndexCount: u32,
2331    pub pQueueFamilyIndices: *const u32,
2332}
2333
2334#[repr(C)]
2335pub struct BufferViewCreateInfo {
2336    pub sType: StructureType,
2337    pub pNext: *const c_void,
2338    pub flags: BufferViewCreateFlags,
2339    pub buffer: Buffer,
2340    pub format: Format,
2341    pub offset: DeviceSize,
2342    pub range: DeviceSize,
2343}
2344
2345#[repr(C)]
2346pub struct ImageCreateInfo {
2347    pub sType: StructureType,
2348    pub pNext: *const c_void,
2349    pub flags: ImageCreateFlags,
2350    pub imageType: ImageType,
2351    pub format: Format,
2352    pub extent: Extent3D,
2353    pub mipLevels: u32,
2354    pub arrayLayers: u32,
2355    pub samples: SampleCountFlagBits,
2356    pub tiling: ImageTiling,
2357    pub usage: ImageUsageFlags,
2358    pub sharingMode: SharingMode,
2359    pub queueFamilyIndexCount: u32,
2360    pub pQueueFamilyIndices: *const u32,
2361    pub initialLayout: ImageLayout,
2362}
2363
2364#[repr(C)]
2365pub struct BufferDeviceAddressInfo {
2366    pub sType: StructureType,
2367    pub pNext: *const c_void,
2368    pub buffer: Buffer,
2369}
2370
2371#[repr(C)]
2372pub struct SubresourceLayout {
2373    pub offset: DeviceSize,
2374    pub size: DeviceSize,
2375    pub rowPitch: DeviceSize,
2376    pub arrayPitch: DeviceSize,
2377    pub depthPitch: DeviceSize,
2378}
2379
2380#[repr(C)]
2381pub struct ComponentMapping {
2382    pub r: ComponentSwizzle,
2383    pub g: ComponentSwizzle,
2384    pub b: ComponentSwizzle,
2385    pub a: ComponentSwizzle,
2386}
2387
2388#[repr(C)]
2389pub struct ImageSubresourceRange {
2390    pub aspectMask: ImageAspectFlags,
2391    pub baseMipLevel: u32,
2392    pub levelCount: u32,
2393    pub baseArrayLayer: u32,
2394    pub layerCount: u32,
2395}
2396
2397#[repr(C)]
2398pub struct ImageViewCreateInfo {
2399    pub sType: StructureType,
2400    pub pNext: *const c_void,
2401    pub flags: ImageViewCreateFlags,
2402    pub image: Image,
2403    pub viewType: ImageViewType,
2404    pub format: Format,
2405    pub components: ComponentMapping,
2406    pub subresourceRange: ImageSubresourceRange,
2407}
2408
2409#[repr(C)]
2410pub struct ShaderModuleCreateInfo {
2411    pub sType: StructureType,
2412    pub pNext: *const c_void,
2413    pub flags: ShaderModuleCreateFlags,
2414    pub codeSize: usize,
2415    pub pCode: *const u32,
2416}
2417
2418#[repr(C)]
2419pub struct PipelineCacheCreateInfo {
2420    pub sType: StructureType,
2421    pub pNext: *const c_void,
2422    pub flags: PipelineCacheCreateFlags,
2423    pub initialDataSize: usize,
2424    pub pInitialData: *const c_void,
2425}
2426
2427#[repr(C)]
2428pub struct SpecializationMapEntry {
2429    pub constantID: u32,
2430    pub offset: u32,
2431    pub size: usize,
2432}
2433
2434#[repr(C)]
2435pub struct SpecializationInfo {
2436    pub mapEntryCount: u32,
2437    pub pMapEntries: *const SpecializationMapEntry,
2438    pub dataSize: usize,
2439    pub pData: *const c_void,
2440}
2441
2442#[repr(C)]
2443pub struct PipelineShaderStageCreateInfo {
2444    pub sType: StructureType,
2445    pub pNext: *const c_void,
2446    pub flags: PipelineShaderStageCreateFlags,
2447    pub stage: ShaderStageFlagBits,
2448    pub module: ShaderModule,
2449    pub pName: *const c_char,
2450    pub pSpecializationInfo: *const SpecializationInfo,
2451}
2452
2453#[repr(C)]
2454pub struct VertexInputBindingDescription {
2455    pub binding: u32,
2456    pub stride: u32,
2457    pub inputRate: VertexInputRate,
2458}
2459
2460#[repr(C)]
2461pub struct VertexInputAttributeDescription {
2462    pub location: u32,
2463    pub binding: u32,
2464    pub format: Format,
2465    pub offset: u32,
2466}
2467
2468#[repr(C)]
2469pub struct PipelineVertexInputStateCreateInfo {
2470    pub sType: StructureType,
2471    pub pNext: *const c_void,
2472    pub flags: PipelineVertexInputStateCreateFlags,
2473    pub vertexBindingDescriptionCount: u32,
2474    pub pVertexBindingDescriptions: *const VertexInputBindingDescription,
2475    pub vertexAttributeDescriptionCount: u32,
2476    pub pVertexAttributeDescriptions: *const VertexInputAttributeDescription,
2477}
2478
2479#[repr(C)]
2480pub struct PipelineInputAssemblyStateCreateInfo {
2481    pub sType: StructureType,
2482    pub pNext: *const c_void,
2483    pub flags: PipelineInputAssemblyStateCreateFlags,
2484    pub topology: PrimitiveTopology,
2485    pub primitiveRestartEnable: Bool32,
2486}
2487
2488#[repr(C)]
2489pub struct PipelineTessellationStateCreateInfo {
2490    pub sType: StructureType,
2491    pub pNext: *const c_void,
2492    pub flags: PipelineTessellationStateCreateFlags,
2493    pub patchControlPoints: u32,
2494}
2495
2496#[repr(C)]
2497pub struct Viewport {
2498    pub x: f32,
2499    pub y: f32,
2500    pub width: f32,
2501    pub height: f32,
2502    pub minDepth: f32,
2503    pub maxDepth: f32,
2504}
2505
2506#[repr(C)]
2507pub struct Offset2D {
2508    pub x: i32,
2509    pub y: i32,
2510}
2511
2512#[repr(C)]
2513pub struct Extent2D {
2514    pub width: u32,
2515    pub height: u32,
2516}
2517
2518#[repr(C)]
2519pub struct Rect2D {
2520    pub offset: Offset2D,
2521    pub extent: Extent2D,
2522}
2523
2524#[repr(C)]
2525pub struct PipelineViewportStateCreateInfo {
2526    pub sType: StructureType,
2527    pub pNext: *const c_void,
2528    pub flags: PipelineViewportStateCreateFlags,
2529    pub viewportCount: u32,
2530    pub pViewports: *const Viewport,
2531    pub scissorCount: u32,
2532    pub pScissors: *const Rect2D,
2533}
2534
2535#[repr(C)]
2536pub struct PipelineRasterizationStateCreateInfo {
2537    pub sType: StructureType,
2538    pub pNext: *const c_void,
2539    pub flags: PipelineRasterizationStateCreateFlags,
2540    pub depthClampEnable: Bool32,
2541    pub rasterizerDiscardEnable: Bool32,
2542    pub polygonMode: PolygonMode,
2543    pub cullMode: CullModeFlags,
2544    pub frontFace: FrontFace,
2545    pub depthBiasEnable: Bool32,
2546    pub depthBiasConstantFactor: f32,
2547    pub depthBiasClamp: f32,
2548    pub depthBiasSlopeFactor: f32,
2549    pub lineWidth: f32,
2550}
2551
2552#[repr(C)]
2553pub struct PipelineMultisampleStateCreateInfo {
2554    pub sType: StructureType,
2555    pub pNext: *const c_void,
2556    pub flags: PipelineMultisampleStateCreateFlags,
2557    pub rasterizationSamples: SampleCountFlagBits,
2558    pub sampleShadingEnable: Bool32,
2559    pub minSampleShading: f32,
2560    pub pSampleMask: *const SampleMask,
2561    pub alphaToCoverageEnable: Bool32,
2562    pub alphaToOneEnable: Bool32,
2563}
2564
2565#[repr(C)]
2566pub struct StencilOpState {
2567    pub failOp: StencilOp,
2568    pub passOp: StencilOp,
2569    pub depthFailOp: StencilOp,
2570    pub compareOp: CompareOp,
2571    pub compareMask: u32,
2572    pub writeMask: u32,
2573    pub reference: u32,
2574}
2575
2576#[repr(C)]
2577pub struct PipelineDepthStencilStateCreateInfo {
2578    pub sType: StructureType,
2579    pub pNext: *const c_void,
2580    pub flags: PipelineDepthStencilStateCreateFlags,
2581    pub depthTestEnable: Bool32,
2582    pub depthWriteEnable: Bool32,
2583    pub depthCompareOp: CompareOp,
2584    pub depthBoundsTestEnable: Bool32,
2585    pub stencilTestEnable: Bool32,
2586    pub front: StencilOpState,
2587    pub back: StencilOpState,
2588    pub minDepthBounds: f32,
2589    pub maxDepthBounds: f32,
2590}
2591
2592#[repr(C)]
2593pub struct PipelineColorBlendAttachmentState {
2594    pub blendEnable: Bool32,
2595    pub srcColorBlendFactor: BlendFactor,
2596    pub dstColorBlendFactor: BlendFactor,
2597    pub colorBlendOp: BlendOp,
2598    pub srcAlphaBlendFactor: BlendFactor,
2599    pub dstAlphaBlendFactor: BlendFactor,
2600    pub alphaBlendOp: BlendOp,
2601    pub colorWriteMask: ColorComponentFlags,
2602}
2603
2604#[repr(C)]
2605pub struct PipelineColorBlendStateCreateInfo {
2606    pub sType: StructureType,
2607    pub pNext: *const c_void,
2608    pub flags: PipelineColorBlendStateCreateFlags,
2609    pub logicOpEnable: Bool32,
2610    pub logicOp: LogicOp,
2611    pub attachmentCount: u32,
2612    pub pAttachments: *const PipelineColorBlendAttachmentState,
2613    pub blendConstants: [f32; 4],
2614}
2615
2616#[repr(C)]
2617pub struct PipelineDynamicStateCreateInfo {
2618    pub sType: StructureType,
2619    pub pNext: *const c_void,
2620    pub flags: PipelineDynamicStateCreateFlags,
2621    pub dynamicStateCount: u32,
2622    pub pDynamicStates: *const DynamicState,
2623}
2624
2625#[repr(C)]
2626pub struct GraphicsPipelineCreateInfo {
2627    pub sType: StructureType,
2628    pub pNext: *const c_void,
2629    pub flags: PipelineCreateFlags,
2630    pub stageCount: u32,
2631    pub pStages: *const PipelineShaderStageCreateInfo,
2632    pub pVertexInputState: *const PipelineVertexInputStateCreateInfo,
2633    pub pInputAssemblyState: *const PipelineInputAssemblyStateCreateInfo,
2634    pub pTessellationState: *const PipelineTessellationStateCreateInfo,
2635    pub pViewportState: *const PipelineViewportStateCreateInfo,
2636    pub pRasterizationState: *const PipelineRasterizationStateCreateInfo,
2637    pub pMultisampleState: *const PipelineMultisampleStateCreateInfo,
2638    pub pDepthStencilState: *const PipelineDepthStencilStateCreateInfo,
2639    pub pColorBlendState: *const PipelineColorBlendStateCreateInfo,
2640    pub pDynamicState: *const PipelineDynamicStateCreateInfo,
2641    pub layout: PipelineLayout,
2642    pub renderPass: RenderPass,
2643    pub subpass: u32,
2644    pub basePipelineHandle: Pipeline,
2645    pub basePipelineIndex: i32,
2646}
2647
2648#[repr(C)]
2649pub struct ComputePipelineCreateInfo {
2650    pub sType: StructureType,
2651    pub pNext: *const c_void,
2652    pub flags: PipelineCreateFlags,
2653    pub stage: PipelineShaderStageCreateInfo,
2654    pub layout: PipelineLayout,
2655    pub basePipelineHandle: Pipeline,
2656    pub basePipelineIndex: i32,
2657}
2658
2659#[repr(C)]
2660pub struct PushConstantRange {
2661    pub stageFlags: ShaderStageFlags,
2662    pub offset: u32,
2663    pub size: u32,
2664}
2665
2666#[repr(C)]
2667pub struct PipelineLayoutCreateInfo {
2668    pub sType: StructureType,
2669    pub pNext: *const c_void,
2670    pub flags: PipelineLayoutCreateFlags,
2671    pub setLayoutCount: u32,
2672    pub pSetLayouts: *const DescriptorSetLayout,
2673    pub pushConstantRangeCount: u32,
2674    pub pPushConstantRanges: *const PushConstantRange,
2675}
2676
2677#[repr(C)]
2678pub struct SamplerCreateInfo {
2679    pub sType: StructureType,
2680    pub pNext: *const c_void,
2681    pub flags: SamplerCreateFlags,
2682    pub magFilter: Filter,
2683    pub minFilter: Filter,
2684    pub mipmapMode: SamplerMipmapMode,
2685    pub addressModeU: SamplerAddressMode,
2686    pub addressModeV: SamplerAddressMode,
2687    pub addressModeW: SamplerAddressMode,
2688    pub mipLodBias: f32,
2689    pub anisotropyEnable: Bool32,
2690    pub maxAnisotropy: f32,
2691    pub compareEnable: Bool32,
2692    pub compareOp: CompareOp,
2693    pub minLod: f32,
2694    pub maxLod: f32,
2695    pub borderColor: BorderColor,
2696    pub unnormalizedCoordinates: Bool32,
2697}
2698
2699#[repr(C)]
2700pub struct DescriptorSetLayoutBinding {
2701    pub binding: u32,
2702    pub descriptorType: DescriptorType,
2703    pub descriptorCount: u32,
2704    pub stageFlags: ShaderStageFlags,
2705    pub pImmutableSamplers: *const Sampler,
2706}
2707
2708#[repr(C)]
2709pub struct DescriptorSetLayoutCreateInfo {
2710    pub sType: StructureType,
2711    pub pNext: *const c_void,
2712    pub flags: DescriptorSetLayoutCreateFlags,
2713    pub bindingCount: u32,
2714    pub pBindings: *const DescriptorSetLayoutBinding,
2715}
2716
2717#[repr(C)]
2718pub struct DescriptorPoolSize {
2719    pub ty: DescriptorType,
2720    pub descriptorCount: u32,
2721}
2722
2723#[repr(C)]
2724pub struct DescriptorPoolCreateInfo {
2725    pub sType: StructureType,
2726    pub pNext: *const c_void,
2727    pub flags: DescriptorPoolCreateFlags,
2728    pub maxSets: u32,
2729    pub poolSizeCount: u32,
2730    pub pPoolSizes: *const DescriptorPoolSize,
2731}
2732
2733#[repr(C)]
2734pub struct DescriptorSetAllocateInfo {
2735    pub sType: StructureType,
2736    pub pNext: *const c_void,
2737    pub descriptorPool: DescriptorPool,
2738    pub descriptorSetCount: u32,
2739    pub pSetLayouts: *const DescriptorSetLayout,
2740}
2741
2742#[repr(C)]
2743pub struct DescriptorImageInfo {
2744    pub sampler: Sampler,
2745    pub imageView: ImageView,
2746    pub imageLayout: ImageLayout,
2747}
2748
2749#[repr(C)]
2750pub struct DescriptorBufferInfo {
2751    pub buffer: Buffer,
2752    pub offset: DeviceSize,
2753    pub range: DeviceSize,
2754}
2755
2756#[repr(C)]
2757pub struct WriteDescriptorSet {
2758    pub sType: StructureType,
2759    pub pNext: *const c_void,
2760    pub dstSet: DescriptorSet,
2761    pub dstBinding: u32,
2762    pub dstArrayElement: u32,
2763    pub descriptorCount: u32,
2764    pub descriptorType: DescriptorType,
2765    pub pImageInfo: *const DescriptorImageInfo,
2766    pub pBufferInfo: *const DescriptorBufferInfo,
2767    pub pTexelBufferView: *const BufferView,
2768}
2769
2770#[repr(C)]
2771pub struct CopyDescriptorSet {
2772    pub sType: StructureType,
2773    pub pNext: *const c_void,
2774    pub srcSet: DescriptorSet,
2775    pub srcBinding: u32,
2776    pub srcArrayElement: u32,
2777    pub dstSet: DescriptorSet,
2778    pub dstBinding: u32,
2779    pub dstArrayElement: u32,
2780    pub descriptorCount: u32,
2781}
2782
2783#[repr(C)]
2784pub struct FramebufferCreateInfo {
2785    pub sType: StructureType,
2786    pub pNext: *const c_void,
2787    pub flags: FramebufferCreateFlags,
2788    pub renderPass: RenderPass,
2789    pub attachmentCount: u32,
2790    pub pAttachments: *const ImageView,
2791    pub width: u32,
2792    pub height: u32,
2793    pub layers: u32,
2794}
2795
2796#[repr(C)]
2797pub struct AttachmentDescription {
2798    pub flags: AttachmentDescriptionFlags,
2799    pub format: Format,
2800    pub samples: SampleCountFlagBits,
2801    pub loadOp: AttachmentLoadOp,
2802    pub storeOp: AttachmentStoreOp,
2803    pub stencilLoadOp: AttachmentLoadOp,
2804    pub stencilStoreOp: AttachmentStoreOp,
2805    pub initialLayout: ImageLayout,
2806    pub finalLayout: ImageLayout,
2807}
2808
2809#[repr(C)]
2810pub struct AttachmentReference {
2811    pub attachment: u32,
2812    pub layout: ImageLayout,
2813}
2814
2815#[repr(C)]
2816pub struct SubpassDescription {
2817    pub flags: SubpassDescriptionFlags,
2818    pub pipelineBindPoint: PipelineBindPoint,
2819    pub inputAttachmentCount: u32,
2820    pub pInputAttachments: *const AttachmentReference,
2821    pub colorAttachmentCount: u32,
2822    pub pColorAttachments: *const AttachmentReference,
2823    pub pResolveAttachments: *const AttachmentReference,
2824    pub pDepthStencilAttachment: *const AttachmentReference,
2825    pub preserveAttachmentCount: u32,
2826    pub pPreserveAttachments: *const u32,
2827}
2828
2829#[repr(C)]
2830pub struct SubpassDependency {
2831    pub srcSubpass: u32,
2832    pub dstSubpass: u32,
2833    pub srcStageMask: PipelineStageFlags,
2834    pub dstStageMask: PipelineStageFlags,
2835    pub srcAccessMask: AccessFlags,
2836    pub dstAccessMask: AccessFlags,
2837    pub dependencyFlags: DependencyFlags,
2838}
2839
2840#[repr(C)]
2841pub struct RenderPassCreateInfo {
2842    pub sType: StructureType,
2843    pub pNext: *const c_void,
2844    pub flags: RenderPassCreateFlags,
2845    pub attachmentCount: u32,
2846    pub pAttachments: *const AttachmentDescription,
2847    pub subpassCount: u32,
2848    pub pSubpasses: *const SubpassDescription,
2849    pub dependencyCount: u32,
2850    pub pDependencies: *const SubpassDependency,
2851}
2852
2853#[repr(C)]
2854pub struct CommandPoolCreateInfo {
2855    pub sType: StructureType,
2856    pub pNext: *const c_void,
2857    pub flags: CommandPoolCreateFlags,
2858    pub queueFamilyIndex: u32,
2859}
2860
2861#[repr(C)]
2862pub struct CommandBufferAllocateInfo {
2863    pub sType: StructureType,
2864    pub pNext: *const c_void,
2865    pub commandPool: CommandPool,
2866    pub level: CommandBufferLevel,
2867    pub commandBufferCount: u32,
2868}
2869
2870#[repr(C)]
2871pub struct CommandBufferInheritanceInfo {
2872    pub sType: StructureType,
2873    pub pNext: *const c_void,
2874    pub renderPass: RenderPass,
2875    pub subpass: u32,
2876    pub framebuffer: Framebuffer,
2877    pub occlusionQueryEnable: Bool32,
2878    pub queryFlags: QueryControlFlags,
2879    pub pipelineStatistics: QueryPipelineStatisticFlags,
2880}
2881
2882#[repr(C)]
2883pub struct CommandBufferBeginInfo {
2884    pub sType: StructureType,
2885    pub pNext: *const c_void,
2886    pub flags: CommandBufferUsageFlags,
2887    pub pInheritanceInfo: *const CommandBufferInheritanceInfo,
2888}
2889
2890#[repr(C)]
2891pub struct BufferCopy {
2892    pub srcOffset: DeviceSize,
2893    pub dstOffset: DeviceSize,
2894    pub size: DeviceSize,
2895}
2896
2897#[repr(C)]
2898pub struct ImageSubresourceLayers {
2899    pub aspectMask: ImageAspectFlags,
2900    pub mipLevel: u32,
2901    pub baseArrayLayer: u32,
2902    pub layerCount: u32,
2903}
2904
2905#[repr(C)]
2906pub struct ImageCopy {
2907    pub srcSubresource: ImageSubresourceLayers,
2908    pub srcOffset: Offset3D,
2909    pub dstSubresource: ImageSubresourceLayers,
2910    pub dstOffset: Offset3D,
2911    pub extent: Extent3D,
2912}
2913
2914#[repr(C)]
2915pub struct ImageBlit {
2916    pub srcSubresource: ImageSubresourceLayers,
2917    pub srcOffsets: [Offset3D; 2],
2918    pub dstSubresource: ImageSubresourceLayers,
2919    pub dstOffsets: [Offset3D; 2],
2920}
2921
2922#[repr(C)]
2923pub struct BufferImageCopy {
2924    pub bufferOffset: DeviceSize,
2925    pub bufferRowLength: u32,
2926    pub bufferImageHeight: u32,
2927    pub imageSubresource: ImageSubresourceLayers,
2928    pub imageOffset: Offset3D,
2929    pub imageExtent: Extent3D,
2930}
2931
2932#[repr(C)]
2933#[derive(Copy, Clone)]
2934pub union ClearColorValue {
2935    pub float32: [f32; 4],
2936    pub int32: [i32; 4],
2937    pub uint32: [u32; 4],
2938}
2939
2940#[repr(C)]
2941#[derive(Copy, Clone)]
2942pub struct ClearDepthStencilValue {
2943    pub depth: f32,
2944    pub stencil: u32,
2945}
2946
2947#[repr(C)]
2948pub union ClearValue {
2949    pub color: ClearColorValue,
2950    pub depthStencil: ClearDepthStencilValue,
2951}
2952
2953#[repr(C)]
2954pub struct ClearAttachment {
2955    pub aspectMask: ImageAspectFlags,
2956    pub colorAttachment: u32,
2957    pub clearValue: ClearValue,
2958}
2959
2960#[repr(C)]
2961pub struct ClearRect {
2962    pub rect: Rect2D,
2963    pub baseArrayLayer: u32,
2964    pub layerCount: u32,
2965}
2966
2967#[repr(C)]
2968pub struct ImageResolve {
2969    pub srcSubresource: ImageSubresourceLayers,
2970    pub srcOffset: Offset3D,
2971    pub dstSubresource: ImageSubresourceLayers,
2972    pub dstOffset: Offset3D,
2973    pub extent: Extent3D,
2974}
2975
2976#[repr(C)]
2977pub struct MemoryBarrier {
2978    pub sType: StructureType,
2979    pub pNext: *const c_void,
2980    pub srcAccessMask: AccessFlags,
2981    pub dstAccessMask: AccessFlags,
2982}
2983
2984#[repr(C)]
2985pub struct BufferMemoryBarrier {
2986    pub sType: StructureType,
2987    pub pNext: *const c_void,
2988    pub srcAccessMask: AccessFlags,
2989    pub dstAccessMask: AccessFlags,
2990    pub srcQueueFamilyIndex: u32,
2991    pub dstQueueFamilyIndex: u32,
2992    pub buffer: Buffer,
2993    pub offset: DeviceSize,
2994    pub size: DeviceSize,
2995}
2996
2997#[repr(C)]
2998pub struct ImageMemoryBarrier {
2999    pub sType: StructureType,
3000    pub pNext: *const c_void,
3001    pub srcAccessMask: AccessFlags,
3002    pub dstAccessMask: AccessFlags,
3003    pub oldLayout: ImageLayout,
3004    pub newLayout: ImageLayout,
3005    pub srcQueueFamilyIndex: u32,
3006    pub dstQueueFamilyIndex: u32,
3007    pub image: Image,
3008    pub subresourceRange: ImageSubresourceRange,
3009}
3010
3011#[repr(C)]
3012pub struct RenderPassBeginInfo {
3013    pub sType: StructureType,
3014    pub pNext: *const c_void,
3015    pub renderPass: RenderPass,
3016    pub framebuffer: Framebuffer,
3017    pub renderArea: Rect2D,
3018    pub clearValueCount: u32,
3019    pub pClearValues: *const ClearValue,
3020}
3021
3022#[repr(C)]
3023pub struct DispatchIndirectCommand {
3024    pub x: u32,
3025    pub y: u32,
3026    pub z: u32,
3027}
3028
3029#[repr(C)]
3030pub struct DrawIndexedIndirectCommand {
3031    pub indexCount: u32,
3032    pub instanceCount: u32,
3033    pub firstIndex: u32,
3034    pub vertexOffset: i32,
3035    pub firstInstance: u32,
3036}
3037
3038#[repr(C)]
3039pub struct DrawIndirectCommand {
3040    pub vertexCount: u32,
3041    pub instanceCount: u32,
3042    pub firstVertex: u32,
3043    pub firstInstance: u32,
3044}
3045
3046#[repr(C)]
3047pub struct SurfaceCapabilitiesKHR {
3048    pub minImageCount: u32,
3049    pub maxImageCount: u32,
3050    pub currentExtent: Extent2D,
3051    pub minImageExtent: Extent2D,
3052    pub maxImageExtent: Extent2D,
3053    pub maxImageArrayLayers: u32,
3054    pub supportedTransforms: SurfaceTransformFlagsKHR,
3055    pub currentTransform: SurfaceTransformFlagBitsKHR,
3056    pub supportedCompositeAlpha: CompositeAlphaFlagsKHR,
3057    pub supportedUsageFlags: ImageUsageFlags,
3058}
3059
3060#[repr(C)]
3061pub struct SurfaceFormatKHR {
3062    pub format: Format,
3063    pub colorSpace: ColorSpaceKHR,
3064}
3065
3066pub type SwapchainCreateFlagsKHR = Flags;
3067
3068#[repr(C)]
3069pub struct SwapchainCreateInfoKHR {
3070    pub sType: StructureType,
3071    pub pNext: *const c_void,
3072    pub flags: SwapchainCreateFlagsKHR,
3073    pub surface: SurfaceKHR,
3074    pub minImageCount: u32,
3075    pub imageFormat: Format,
3076    pub imageColorSpace: ColorSpaceKHR,
3077    pub imageExtent: Extent2D,
3078    pub imageArrayLayers: u32,
3079    pub imageUsage: ImageUsageFlags,
3080    pub imageSharingMode: SharingMode,
3081    pub queueFamilyIndexCount: u32,
3082    pub pQueueFamilyIndices: *const u32,
3083    pub preTransform: SurfaceTransformFlagBitsKHR,
3084    pub compositeAlpha: CompositeAlphaFlagBitsKHR,
3085    pub presentMode: PresentModeKHR,
3086    pub clipped: Bool32,
3087    pub oldSwapchain: SwapchainKHR,
3088}
3089
3090#[repr(C)]
3091pub struct PresentInfoKHR {
3092    pub sType: StructureType,
3093    pub pNext: *const c_void,
3094    pub waitSemaphoreCount: u32,
3095    pub pWaitSemaphores: *const Semaphore,
3096    pub swapchainCount: u32,
3097    pub pSwapchains: *const SwapchainKHR,
3098    pub pImageIndices: *const u32,
3099    pub pResults: *mut Result,
3100}
3101
3102#[repr(C)]
3103pub struct DisplayPropertiesKHR {
3104    pub display: DisplayKHR,
3105    pub displayName: *const c_char,
3106    pub physicalDimensions: Extent2D,
3107    pub physicalResolution: Extent2D,
3108    pub supportedTransforms: SurfaceTransformFlagsKHR,
3109    pub planeReorderPossible: Bool32,
3110    pub persistentContent: Bool32,
3111}
3112
3113#[repr(C)]
3114pub struct DisplayModeParametersKHR {
3115    pub visibleRegion: Extent2D,
3116    pub refreshRate: u32,
3117}
3118
3119#[repr(C)]
3120pub struct DisplayModePropertiesKHR {
3121    pub displayMode: DisplayModeKHR,
3122    pub parameters: DisplayModeParametersKHR,
3123}
3124
3125#[repr(C)]
3126pub struct DisplayModeCreateInfoKHR {
3127    pub sType: StructureType,
3128    pub pNext: *const c_void,
3129    pub flags: DisplayModeCreateFlagsKHR,
3130    pub parameters: DisplayModeParametersKHR,
3131}
3132
3133#[repr(C)]
3134pub struct DisplayPlaneCapabilitiesKHR {
3135    pub supportedAlpha: DisplayPlaneAlphaFlagsKHR,
3136    pub minSrcPosition: Offset2D,
3137    pub maxSrcPosition: Offset2D,
3138    pub minSrcExtent: Extent2D,
3139    pub maxSrcExtent: Extent2D,
3140    pub minDstPosition: Offset2D,
3141    pub maxDstPosition: Offset2D,
3142    pub minDstExtent: Extent2D,
3143    pub maxDstExtent: Extent2D,
3144}
3145
3146#[repr(C)]
3147pub struct DisplayPlanePropertiesKHR {
3148    pub currentDisplay: DisplayKHR,
3149    pub currentStackIndex: u32,
3150}
3151
3152#[repr(C)]
3153pub struct DisplaySurfaceCreateInfoKHR {
3154    pub sType: StructureType,
3155    pub pNext: *const c_void,
3156    pub flags: DisplaySurfaceCreateFlagsKHR,
3157    pub displayMode: DisplayModeKHR,
3158    pub planeIndex: u32,
3159    pub planeStackIndex: u32,
3160    pub transform: SurfaceTransformFlagBitsKHR,
3161    pub globalAlpha: f32,
3162    pub alphaMode: DisplayPlaneAlphaFlagBitsKHR,
3163    pub imageExtent: Extent2D,
3164}
3165
3166#[repr(C)]
3167pub struct DisplayPresentInfoKHR {
3168    pub sType: StructureType,
3169    pub pNext: *const c_void,
3170    pub srcRect: Rect2D,
3171    pub dstRect: Rect2D,
3172    pub persistent: Bool32,
3173}
3174
3175pub type XlibSurfaceCreateFlagsKHR = Flags;
3176
3177#[repr(C)]
3178pub struct XlibSurfaceCreateInfoKHR {
3179    pub sType: StructureType,
3180    pub pNext: *const c_void,
3181    pub flags: XlibSurfaceCreateFlagsKHR,
3182    pub dpy: *mut c_void,
3183    pub window: c_ulong,
3184}
3185
3186pub type XcbSurfaceCreateFlagsKHR = Flags;
3187
3188#[repr(C)]
3189pub struct XcbSurfaceCreateInfoKHR {
3190    pub sType: StructureType,
3191    pub pNext: *const c_void,
3192    pub flags: XcbSurfaceCreateFlagsKHR,
3193    pub connection: *const c_void,
3194    pub window: u32,
3195}
3196
3197pub type WaylandSurfaceCreateFlagsKHR = Flags;
3198
3199#[repr(C)]
3200pub struct WaylandSurfaceCreateInfoKHR {
3201    pub sType: StructureType,
3202    pub pNext: *const c_void,
3203    pub flags: WaylandSurfaceCreateFlagsKHR,
3204    pub display: *mut c_void,
3205    pub surface: *mut c_void,
3206}
3207
3208pub type AndroidSurfaceCreateFlagsKHR = Flags;
3209
3210#[repr(C)]
3211pub struct AndroidSurfaceCreateInfoKHR {
3212    pub sType: StructureType,
3213    pub pNext: *const c_void,
3214    pub flags: AndroidSurfaceCreateFlagsKHR,
3215    pub window: *mut c_void,
3216}
3217
3218pub type Win32SurfaceCreateFlagsKHR = Flags;
3219
3220#[repr(C)]
3221pub struct Win32SurfaceCreateInfoKHR {
3222    pub sType: StructureType,
3223    pub pNext: *const c_void,
3224    pub flags: Win32SurfaceCreateFlagsKHR,
3225    pub hinstance: *mut c_void,
3226    pub hwnd: *mut c_void,
3227}
3228
3229#[repr(C)]
3230pub struct IOSSurfaceCreateInfoMVK {
3231    pub sType: StructureType,
3232    pub pNext: *const c_void,
3233    pub flags: IOSSurfaceCreateFlagsMVK,
3234    pub pView: *const c_void,
3235}
3236
3237#[repr(C)]
3238pub struct MacOSSurfaceCreateInfoMVK {
3239    pub sType: StructureType,
3240    pub pNext: *const c_void,
3241    pub flags: MacOSSurfaceCreateFlagsMVK,
3242    pub pView: *const c_void,
3243}
3244
3245#[repr(C)]
3246pub struct MVKDeviceConfiguration {
3247    pub supportDisplayContentsScale: Bool32,
3248    pub imageFlipY: Bool32,
3249    pub shaderConversionFlipFragmentY: Bool32,
3250    pub shaderConversionFlipVertexY: Bool32,
3251    pub shaderConversionLogging: Bool32,
3252    pub performanceTracking: Bool32,
3253    pub performanceLoggingFrameCount: u32,
3254}
3255
3256#[repr(C)]
3257pub struct MVKPhysicalDeviceMetalFeatures {
3258    pub depthClipMode: Bool32,
3259    pub indirectDrawing: Bool32,
3260    pub baseVertexInstanceDrawing: Bool32,
3261    pub maxVertexBufferCount: u32,
3262    pub maxFragmentBufferCount: u32,
3263    pub bufferAlignment: DeviceSize,
3264    pub pushConstantsAlignment: DeviceSize,
3265}
3266
3267#[repr(C)]
3268pub struct MVKSwapchainPerformance {
3269    pub lastFrameInterval: c_double,
3270    pub averageFrameInterval: c_double,
3271    pub averageFramesPerSecond: c_double,
3272}
3273
3274#[repr(C)]
3275pub struct PhysicalDeviceFeatures2 {
3276    pub sType: StructureType,
3277    pub pNext: *mut c_void,
3278    pub features: PhysicalDeviceFeatures,
3279}
3280
3281impl Default for PhysicalDeviceFeatures2 {
3282    fn default() -> Self {
3283        Self {
3284            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
3285            pNext: ptr::null_mut(),
3286            features: Default::default(),
3287        }
3288    }
3289}
3290
3291pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
3292
3293#[repr(C)]
3294pub struct PhysicalDeviceProperties2KHR {
3295    pub sType: StructureType,
3296    pub pNext: *mut PhysicalDeviceSubgroupProperties,
3297    pub properties: PhysicalDeviceProperties,
3298}
3299
3300#[repr(C)]
3301pub struct PhysicalDeviceSubgroupProperties {
3302    pub sType: StructureType,
3303    pub pNext: *mut c_void,
3304    pub subgroupSize: u32,
3305    pub supportedStages: ShaderStageFlags,
3306    pub supportedOperations: SubgroupFeatureFlags,
3307    pub quadOperationsInAllStages: Bool32,
3308}
3309
3310#[repr(C)]
3311pub struct FormatProperties2KHR {
3312    pub sType: StructureType,
3313    pub pNext: *mut c_void,
3314    pub formatProperties: FormatProperties,
3315}
3316
3317#[repr(C)]
3318pub struct ImageFormatProperties2KHR {
3319    pub sType: StructureType,
3320    pub pNext: *mut c_void,
3321    pub imageFormatProperties: ImageFormatProperties,
3322}
3323
3324#[repr(C)]
3325pub struct PhysicalDeviceImageFormatInfo2KHR {
3326    pub sType: StructureType,
3327    pub pNext: *const c_void,
3328    pub format: Format,
3329    pub imageType: ImageType,
3330    pub tiling: ImageTiling,
3331    pub usage: ImageUsageFlags,
3332    pub flags: ImageCreateFlags,
3333}
3334
3335#[repr(C)]
3336pub struct QueueFamilyProperties2KHR {
3337    pub sType: StructureType,
3338    pub pNext: *mut c_void,
3339    pub queueFamilyProperties: QueueFamilyProperties,
3340}
3341
3342#[repr(C)]
3343pub struct PhysicalDeviceMemoryProperties2KHR {
3344    pub sType: StructureType,
3345    pub pNext: *mut c_void,
3346    pub memoryProperties: PhysicalDeviceMemoryProperties,
3347}
3348
3349#[repr(C)]
3350pub struct SparseImageFormatProperties2KHR {
3351    pub sType: StructureType,
3352    pub pNext: *mut c_void,
3353    pub properties: SparseImageFormatProperties,
3354}
3355
3356#[repr(C)]
3357pub struct PhysicalDeviceSparseImageFormatInfo2KHR {
3358    pub sType: StructureType,
3359    pub pNext: *const c_void,
3360    pub format: Format,
3361    pub imageType: ImageType,
3362    pub samples: SampleCountFlagBits,
3363    pub usage: ImageUsageFlags,
3364    pub tiling: ImageTiling,
3365}
3366
3367#[repr(C)]
3368pub struct PhysicalDeviceBufferAddressFeaturesEXT {
3369    pub sType: StructureType,
3370    pub pNext: *const c_void,
3371    pub bufferDeviceAddress: Bool32,
3372    pub bufferDeviceAddressCaptureReplay: Bool32,
3373    pub bufferDeviceAddressMultiDevice: Bool32,
3374}
3375
3376impl Default for PhysicalDeviceBufferAddressFeaturesEXT {
3377    fn default() -> Self {
3378        Self {
3379            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT,
3380            pNext: ptr::null_mut(),
3381            ..unsafe { mem::zeroed() }
3382        }
3383    }
3384}
3385
3386#[repr(C)]
3387pub struct PhysicalDeviceVariablePointersFeatures {
3388    pub sType: StructureType,
3389    pub pNext: *mut c_void,
3390    pub variablePointersStorageBuffer: Bool32,
3391    pub variablePointers: Bool32,
3392}
3393
3394impl Default for PhysicalDeviceVariablePointersFeatures {
3395    fn default() -> Self {
3396        Self {
3397            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
3398            pNext: ptr::null_mut(),
3399            ..unsafe { mem::zeroed() }
3400        }
3401    }
3402}
3403
3404pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
3405
3406#[repr(C)]
3407pub struct PhysicalDeviceShaderAtomicInt64Features {
3408    pub sType: StructureType,
3409    pub pNext: *mut c_void,
3410    pub shaderBufferInt64Atomics: Bool32,
3411    pub shaderSharedInt64Atomics: Bool32,
3412}
3413
3414impl Default for PhysicalDeviceShaderAtomicInt64Features {
3415    fn default() -> Self {
3416        Self {
3417            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
3418            pNext: ptr::null_mut(),
3419            ..unsafe { mem::zeroed() }
3420        }
3421    }
3422}
3423
3424pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
3425
3426#[repr(C)]
3427pub struct PhysicalDevice8BitStorageFeatures {
3428    pub sType: StructureType,
3429    pub pNext: *mut c_void,
3430    pub storageBuffer8BitAccess: Bool32,
3431    pub uniformAndStorageBuffer8BitAccess: Bool32,
3432    pub storagePushConstant8: Bool32,
3433}
3434
3435impl Default for PhysicalDevice8BitStorageFeatures {
3436    fn default() -> Self {
3437        Self {
3438            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
3439            pNext: ptr::null_mut(),
3440            ..unsafe { mem::zeroed() }
3441        }
3442    }
3443}
3444
3445pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
3446
3447#[repr(C)]
3448pub struct PhysicalDevice16BitStorageFeatures {
3449    pub sType: StructureType,
3450    pub pNext: *mut c_void,
3451    pub storageBuffer16BitAccess: Bool32,
3452    pub uniformAndStorageBuffer16BitAccess: Bool32,
3453    pub storagePushConstant16: Bool32,
3454    pub storageInputOutput16: Bool32,
3455}
3456
3457impl Default for PhysicalDevice16BitStorageFeatures {
3458    fn default() -> Self {
3459        Self {
3460            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
3461            pNext: ptr::null_mut(),
3462            ..unsafe { mem::zeroed() }
3463        }
3464    }
3465}
3466
3467pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
3468
3469#[repr(C)]
3470pub struct PhysicalDeviceShaderFloat16Int8Features {
3471    pub sType: StructureType,
3472    pub pNext: *mut c_void,
3473    pub shaderFloat16: Bool32,
3474    pub shaderInt8: Bool32,
3475}
3476
3477impl Default for PhysicalDeviceShaderFloat16Int8Features {
3478    fn default() -> Self {
3479        Self {
3480            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
3481            pNext: ptr::null_mut(),
3482            ..unsafe { mem::zeroed() }
3483        }
3484    }
3485}
3486
3487pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
3488
3489#[repr(C)]
3490pub struct PhysicalDeviceMultiviewFeatures {
3491    pub sType: StructureType,
3492    pub pNext: *mut c_void,
3493    pub multiview: Bool32,
3494    pub multiviewGeometryShader: Bool32,
3495    pub multiviewTessellationShader: Bool32,
3496}
3497
3498impl Default for PhysicalDeviceMultiviewFeatures {
3499    fn default() -> Self {
3500        Self {
3501            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
3502            pNext: ptr::null_mut(),
3503            ..unsafe { mem::zeroed() }
3504        }
3505    }
3506}
3507
3508pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
3509
3510#[repr(C)]
3511pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
3512    pub sType: StructureType,
3513    pub pNext: *mut c_void,
3514    pub samplerYcbcrConversion: Bool32,
3515}
3516
3517impl Default for PhysicalDeviceSamplerYcbcrConversionFeatures {
3518    fn default() -> Self {
3519        Self {
3520            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
3521            pNext: ptr::null_mut(),
3522            ..unsafe { mem::zeroed() }
3523        }
3524    }
3525}
3526
3527pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
3528    PhysicalDeviceSamplerYcbcrConversionFeatures;
3529
3530#[repr(C)]
3531pub struct PhysicalDeviceProtectedMemoryFeatures {
3532    pub sType: StructureType,
3533    pub pNext: *mut c_void,
3534    pub protectedMemory: Bool32,
3535}
3536
3537impl Default for PhysicalDeviceProtectedMemoryFeatures {
3538    fn default() -> Self {
3539        Self {
3540            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,
3541            pNext: ptr::null_mut(),
3542            ..unsafe { mem::zeroed() }
3543        }
3544    }
3545}
3546
3547#[repr(C)]
3548pub struct PhysicalDeviceDescriptorIndexingFeatures {
3549    pub sType: StructureType,
3550    pub pNext: *mut c_void,
3551    pub shaderInputAttachmentArrayDynamicIndexing: Bool32,
3552    pub shaderUniformTexelBufferArrayDynamicIndexing: Bool32,
3553    pub shaderStorageTexelBufferArrayDynamicIndexing: Bool32,
3554    pub shaderUniformBufferArrayNonUniformIndexing: Bool32,
3555    pub shaderSampledImageArrayNonUniformIndexing: Bool32,
3556    pub shaderStorageBufferArrayNonUniformIndexing: Bool32,
3557    pub shaderStorageImageArrayNonUniformIndexing: Bool32,
3558    pub shaderInputAttachmentArrayNonUniformIndexing: Bool32,
3559    pub shaderUniformTexelBufferArrayNonUniformIndexing: Bool32,
3560    pub shaderStorageTexelBufferArrayNonUniformIndexing: Bool32,
3561    pub descriptorBindingUniformBufferUpdateAfterBind: Bool32,
3562    pub descriptorBindingSampledImageUpdateAfterBind: Bool32,
3563    pub descriptorBindingStorageImageUpdateAfterBind: Bool32,
3564    pub descriptorBindingStorageBufferUpdateAfterBind: Bool32,
3565    pub descriptorBindingUniformTexelBufferUpdateAfterBind: Bool32,
3566    pub descriptorBindingStorageTexelBufferUpdateAfterBind: Bool32,
3567    pub descriptorBindingUpdateUnusedWhilePending: Bool32,
3568    pub descriptorBindingPartiallyBound: Bool32,
3569    pub descriptorBindingVariableDescriptorCount: Bool32,
3570    pub runtimeDescriptorArray: Bool32,
3571}
3572
3573impl Default for PhysicalDeviceDescriptorIndexingFeatures {
3574    fn default() -> Self {
3575        Self {
3576            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
3577            pNext: ptr::null_mut(),
3578            ..unsafe { mem::zeroed() }
3579        }
3580    }
3581}
3582
3583pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
3584
3585#[repr(C)]
3586pub struct PhysicalDeviceScalarBlockLayoutFeatures {
3587    pub sType: StructureType,
3588    pub pNext: *mut c_void,
3589    pub scalarBlockLayout: Bool32,
3590}
3591
3592impl Default for PhysicalDeviceScalarBlockLayoutFeatures {
3593    fn default() -> Self {
3594        Self {
3595            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
3596            pNext: ptr::null_mut(),
3597            ..unsafe { mem::zeroed() }
3598        }
3599    }
3600}
3601
3602pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
3603
3604#[repr(C)]
3605pub struct PhysicalDeviceImagelessFramebufferFeatures {
3606    pub sType: StructureType,
3607    pub pNext: *mut c_void,
3608    pub imagelessFramebuffer: Bool32,
3609}
3610
3611impl Default for PhysicalDeviceImagelessFramebufferFeatures {
3612    fn default() -> Self {
3613        Self {
3614            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
3615            pNext: ptr::null_mut(),
3616            ..unsafe { mem::zeroed() }
3617        }
3618    }
3619}
3620
3621pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
3622
3623#[repr(C)]
3624pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
3625    pub sType: StructureType,
3626    pub pNext: *mut c_void,
3627    pub uniformBufferStandardLayout: Bool32,
3628}
3629
3630impl Default for PhysicalDeviceUniformBufferStandardLayoutFeatures {
3631    fn default() -> Self {
3632        Self {
3633            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
3634            pNext: ptr::null_mut(),
3635            ..unsafe { mem::zeroed() }
3636        }
3637    }
3638}
3639
3640pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
3641    PhysicalDeviceUniformBufferStandardLayoutFeatures;
3642
3643#[repr(C)]
3644pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
3645    pub sType: StructureType,
3646    pub pNext: *mut c_void,
3647    pub shaderSubgroupExtendedTypes: Bool32,
3648}
3649
3650impl Default for PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
3651    fn default() -> Self {
3652        Self {
3653            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
3654            pNext: ptr::null_mut(),
3655            ..unsafe { mem::zeroed() }
3656        }
3657    }
3658}
3659
3660pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
3661    PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
3662
3663#[repr(C)]
3664pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
3665    pub sType: StructureType,
3666    pub pNext: *mut c_void,
3667    pub separateDepthStencilLayouts: Bool32,
3668}
3669
3670impl Default for PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
3671    fn default() -> Self {
3672        Self {
3673            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
3674            pNext: ptr::null_mut(),
3675            ..unsafe { mem::zeroed() }
3676        }
3677    }
3678}
3679
3680pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
3681    PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
3682
3683#[repr(C)]
3684pub struct PhysicalDeviceHostQueryResetFeatures {
3685    pub sType: StructureType,
3686    pub pNext: *mut c_void,
3687    pub hostQueryReset: Bool32,
3688}
3689
3690impl Default for PhysicalDeviceHostQueryResetFeatures {
3691    fn default() -> Self {
3692        Self {
3693            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
3694            pNext: ptr::null_mut(),
3695            ..unsafe { mem::zeroed() }
3696        }
3697    }
3698}
3699
3700pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
3701
3702#[repr(C)]
3703pub struct PhysicalDeviceTimelineSemaphoreFeatures {
3704    pub sType: StructureType,
3705    pub pNext: *mut c_void,
3706    pub timelineSemaphore: Bool32,
3707}
3708
3709impl Default for PhysicalDeviceTimelineSemaphoreFeatures {
3710    fn default() -> Self {
3711        Self {
3712            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
3713            pNext: ptr::null_mut(),
3714            ..unsafe { mem::zeroed() }
3715        }
3716    }
3717}
3718
3719pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
3720
3721#[repr(C)]
3722pub struct PhysicalDeviceBufferDeviceAddressFeatures {
3723    pub sType: StructureType,
3724    pub pNext: *mut c_void,
3725    pub bufferDeviceAddress: Bool32,
3726    pub bufferDeviceAddressCaptureReplay: Bool32,
3727    pub bufferDeviceAddressMultiDevice: Bool32,
3728}
3729
3730impl Default for PhysicalDeviceBufferDeviceAddressFeatures {
3731    fn default() -> Self {
3732        Self {
3733            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
3734            pNext: ptr::null_mut(),
3735            ..unsafe { mem::zeroed() }
3736        }
3737    }
3738}
3739
3740pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
3741
3742#[repr(C)]
3743pub struct PhysicalDeviceVulkanMemoryModelFeatures {
3744    pub sType: StructureType,
3745    pub pNext: *mut c_void,
3746    pub vulkanMemoryModel: Bool32,
3747    pub vulkanMemoryModelDeviceScope: Bool32,
3748    pub vulkanMemoryModelAvailabilityVisibilityChains: Bool32,
3749}
3750
3751impl Default for PhysicalDeviceVulkanMemoryModelFeatures {
3752    fn default() -> Self {
3753        Self {
3754            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
3755            pNext: ptr::null_mut(),
3756            ..unsafe { mem::zeroed() }
3757        }
3758    }
3759}
3760
3761pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
3762
3763#[repr(C)]
3764pub struct PhysicalDeviceShaderDrawParametersFeatures {
3765    pub sType: StructureType,
3766    pub pNext: *mut c_void,
3767    pub shaderDrawParameters: Bool32,
3768}
3769
3770impl Default for PhysicalDeviceShaderDrawParametersFeatures {
3771    fn default() -> Self {
3772        Self {
3773            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
3774            pNext: ptr::null_mut(),
3775            ..unsafe { mem::zeroed() }
3776        }
3777    }
3778}
3779
3780pub type ViSurfaceCreateFlagsNN = Flags;
3781
3782#[repr(C)]
3783pub struct ViSurfaceCreateInfoNN {
3784    pub sType: StructureType,
3785    pub pNext: *const c_void,
3786    pub flags: ViSurfaceCreateFlagsNN,
3787    pub window: *const c_void,
3788}
3789
3790#[repr(C)]
3791pub struct PhysicalDevicePushDescriptorPropertiesKHR {
3792    pub sType: StructureType,
3793    pub pNext: *const c_void,
3794    pub maxPushDescriptors: u32,
3795}
3796
3797#[repr(C)]
3798pub struct DescriptorUpdateTemplateEntryKHR {
3799    pub dstBinding: u32,
3800    pub dstArrayElement: u32,
3801    pub descriptorCount: u32,
3802    pub descriptorType: DescriptorType,
3803    pub offset: usize,
3804    pub stride: usize,
3805}
3806
3807#[repr(C)]
3808pub struct DescriptorUpdateTemplateCreateInfoKHR {
3809    pub sType: StructureType,
3810    pub pNext: *const c_void,
3811    pub flags: DescriptorUpdateTemplateCreateFlagsKHR,
3812    pub descriptorUpdateEntryCount: u32,
3813    pub pDescriptorUpdateEntries: *const DescriptorUpdateTemplateEntryKHR,
3814    pub templateType: DescriptorUpdateTemplateTypeKHR,
3815    pub descriptorSetLayout: DescriptorSetLayout,
3816    pub pipelineBindPoint: PipelineBindPoint,
3817    pub pipelineLayout: PipelineLayout,
3818    pub set: u32,
3819}
3820
3821#[repr(C)]
3822pub struct MemoryDedicatedRequirementsKHR {
3823    pub sType: StructureType,
3824    pub pNext: *mut c_void,
3825    pub prefersDedicatedAllocation: Bool32,
3826    pub requiresDedicatedAllocation: Bool32,
3827}
3828
3829#[repr(C)]
3830pub struct MemoryDedicatedAllocateInfoKHR {
3831    pub sType: StructureType,
3832    pub pNext: *const c_void,
3833    pub image: Image,
3834    pub buffer: Buffer,
3835}
3836
3837#[repr(C)]
3838pub struct BufferMemoryRequirementsInfo2KHR {
3839    pub sType: StructureType,
3840    pub pNext: *const c_void,
3841    pub buffer: Buffer,
3842}
3843
3844#[repr(C)]
3845pub struct ImageMemoryRequirementsInfo2KHR {
3846    pub sType: StructureType,
3847    pub pNext: *const c_void,
3848    pub image: Image,
3849}
3850
3851#[repr(C)]
3852pub struct MemoryRequirements2KHR {
3853    pub sType: StructureType,
3854    pub pNext: *mut c_void,
3855    pub memoryRequirements: MemoryRequirements,
3856}
3857
3858#[repr(C)]
3859pub struct RectLayerKHR {
3860    pub offset: Offset2D,
3861    pub extent: Extent2D,
3862    pub layer: u32,
3863}
3864
3865#[repr(C)]
3866pub struct PresentRegionKHR {
3867    pub rectangleCount: u32,
3868    pub pRectangles: *const RectLayerKHR,
3869}
3870
3871#[repr(C)]
3872pub struct PresentRegionsKHR {
3873    pub sType: StructureType,
3874    pub pNext: *const c_void,
3875    pub swapchainCount: u32,
3876    pub pRegions: *const PresentRegionKHR,
3877}
3878
3879#[repr(C)]
3880pub struct DebugUtilsMessengerCreateInfoEXT {
3881    pub sType: StructureType,
3882    pub pNext: *const c_void,
3883    pub flags: DebugUtilsMessengerCreateFlagsEXT,
3884    pub messageSeverity: DebugUtilsMessageSeverityFlagsEXT,
3885    pub messageType: DebugUtilsMessageTypeFlagsEXT,
3886    pub pfnUserCallback: PFN_vkDebugUtilsMessengerCallbackEXT,
3887    pub pUserData: *mut c_void,
3888}
3889
3890#[repr(C)]
3891pub struct DebugUtilsMessengerCallbackDataEXT {
3892    pub sType: StructureType,
3893    pub pNext: *const c_void,
3894    pub flags: DebugUtilsMessengerCallbackDataFlagsEXT,
3895    pub pMessageIdName: *const c_char,
3896    pub messageIdNumber: i32,
3897    pub pMessage: *const c_char,
3898    pub queueLabelCount: u32,
3899    pub pQueueLabels: *const DebugUtilsLabelEXT,
3900    pub cmdBufLabelCount: u32,
3901    pub pCmdBufLabels: *const DebugUtilsLabelEXT,
3902    pub objectCount: u32,
3903    pub pObject: *const DebugUtilsObjectNameInfoEXT,
3904}
3905
3906#[repr(C)]
3907pub struct DebugUtilsLabelEXT {
3908    pub sType: StructureType,
3909    pub pNext: *const c_void,
3910    pub pLabelName: *const c_char,
3911    pub color: [f32; 4],
3912}
3913
3914#[repr(C)]
3915pub struct DebugUtilsObjectNameInfoEXT {
3916    pub sType: StructureType,
3917    pub pNext: *const c_void,
3918    pub objectType: ObjectType,
3919    pub objectHandle: u64,
3920    pub pObjectName: *const c_char,
3921}
3922
3923#[repr(C)]
3924pub struct SurfaceFullScreenExclusiveInfoEXT {
3925    pub sType: StructureType,
3926    pub pNext: *mut c_void,
3927    pub fullScreenExclusive: FullScreenExclusiveEXT,
3928}
3929
3930#[repr(C)]
3931pub struct ExportMemoryAllocateInfo {
3932    pub sType: StructureType,
3933    pub pNext: *const c_void,
3934    pub handleTypes: ExternalMemoryHandleTypeFlagBits,
3935}
3936
3937#[repr(C)]
3938pub struct ExternalMemoryBufferCreateInfo {
3939    pub sType: StructureType,
3940    pub pNext: *const c_void,
3941    pub handleTypes: ExternalMemoryHandleTypeFlagBits,
3942}
3943
3944#[repr(C)]
3945pub struct ExternalMemoryImageCreateInfo {
3946    pub sType: StructureType,
3947    pub pNext: *const c_void,
3948    pub handleTypes: ExternalMemoryHandleTypeFlagBits,
3949}
3950
3951#[repr(C)]
3952pub struct MemoryFdPropertiesKHR {
3953    pub sType: StructureType,
3954    pub pNext: *mut c_void,
3955    pub handleType: ExternalMemoryHandleTypeFlagBits,
3956    pub memoryTypeBits: u32,
3957}
3958
3959#[repr(C)]
3960pub struct MemoryGetFdInfoKHR {
3961    pub sType: StructureType,
3962    pub pNext: *const c_void,
3963    pub memory: DeviceMemory,
3964    pub handleType: ExternalMemoryHandleTypeFlagBits,
3965}
3966
3967#[repr(C)]
3968pub struct ImportMemoryFdInfoKHR {
3969    pub sType: StructureType,
3970    pub pNext: *const c_void,
3971    pub handleType: ExternalMemoryHandleTypeFlagBits,
3972    pub fd: i32,
3973}
3974
3975#[repr(C)]
3976pub struct PhysicalDeviceVulkan11Features {
3977    pub sType: StructureType,
3978    pub pNext: *mut c_void,
3979    pub storageBuffer16BitAccess: Bool32,
3980    pub uniformAndStorageBuffer16BitAccess: Bool32,
3981    pub storagePushConstant16: Bool32,
3982    pub storageInputOutput16: Bool32,
3983    pub multiview: Bool32,
3984    pub multiviewGeometryShader: Bool32,
3985    pub multiviewTessellationShader: Bool32,
3986    pub variablePointersStorageBuffer: Bool32,
3987    pub variablePointers: Bool32,
3988    pub protectedMemory: Bool32,
3989    pub samplerYcbcrConversion: Bool32,
3990    pub shaderDrawParameters: Bool32,
3991}
3992
3993impl Default for PhysicalDeviceVulkan11Features {
3994    fn default() -> Self {
3995        Self {
3996            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,
3997            pNext: ptr::null_mut(),
3998            ..unsafe { mem::zeroed() }
3999        }
4000    }
4001}
4002
4003pub struct PhysicalDeviceVulkan12Features {
4004    pub sType: StructureType,
4005    pub pNext: *mut c_void,
4006    pub samplerMirrorClampToEdge: Bool32,
4007    pub drawIndirectCount: Bool32,
4008    pub storageBuffer8BitAccess: Bool32,
4009    pub uniformAndStorageBuffer8BitAccess: Bool32,
4010    pub storagePushConstant8: Bool32,
4011    pub shaderBufferInt64Atomics: Bool32,
4012    pub shaderSharedInt64Atomics: Bool32,
4013    pub shaderFloat16: Bool32,
4014    pub shaderInt8: Bool32,
4015    pub descriptorIndexing: Bool32,
4016    pub shaderInputAttachmentArrayDynamicIndexing: Bool32,
4017    pub shaderUniformTexelBufferArrayDynamicIndexing: Bool32,
4018    pub shaderStorageTexelBufferArrayDynamicIndexing: Bool32,
4019    pub shaderUniformBufferArrayNonUniformIndexing: Bool32,
4020    pub shaderSampledImageArrayNonUniformIndexing: Bool32,
4021    pub shaderStorageBufferArrayNonUniformIndexing: Bool32,
4022    pub shaderStorageImageArrayNonUniformIndexing: Bool32,
4023    pub shaderInputAttachmentArrayNonUniformIndexing: Bool32,
4024    pub shaderUniformTexelBufferArrayNonUniformIndexing: Bool32,
4025    pub shaderStorageTexelBufferArrayNonUniformIndexing: Bool32,
4026    pub descriptorBindingUniformBufferUpdateAfterBind: Bool32,
4027    pub descriptorBindingSampledImageUpdateAfterBind: Bool32,
4028    pub descriptorBindingStorageImageUpdateAfterBind: Bool32,
4029    pub descriptorBindingStorageBufferUpdateAfterBind: Bool32,
4030    pub descriptorBindingUniformTexelBufferUpdateAfterBind: Bool32,
4031    pub descriptorBindingStorageTexelBufferUpdateAfterBind: Bool32,
4032    pub descriptorBindingUpdateUnusedWhilePending: Bool32,
4033    pub descriptorBindingPartiallyBound: Bool32,
4034    pub descriptorBindingVariableDescriptorCount: Bool32,
4035    pub runtimeDescriptorArray: Bool32,
4036    pub samplerFilterMinmax: Bool32,
4037    pub scalarBlockLayout: Bool32,
4038    pub imagelessFramebuffer: Bool32,
4039    pub uniformBufferStandardLayout: Bool32,
4040    pub shaderSubgroupExtendedTypes: Bool32,
4041    pub separateDepthStencilLayouts: Bool32,
4042    pub hostQueryReset: Bool32,
4043    pub timelineSemaphore: Bool32,
4044    pub bufferDeviceAddress: Bool32,
4045    pub bufferDeviceAddressCaptureReplay: Bool32,
4046    pub bufferDeviceAddressMultiDevice: Bool32,
4047    pub vulkanMemoryModel: Bool32,
4048    pub vulkanMemoryModelDeviceScope: Bool32,
4049    pub vulkanMemoryModelAvailabilityVisibilityChains: Bool32,
4050    pub shaderOutputViewportIndex: Bool32,
4051    pub shaderOutputLayer: Bool32,
4052    pub subgroupBroadcastDynamicId: Bool32,
4053}
4054
4055impl Default for PhysicalDeviceVulkan12Features {
4056    fn default() -> Self {
4057        Self {
4058            sType: STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,
4059            pNext: ptr::null_mut(),
4060            ..unsafe { mem::zeroed() }
4061        }
4062    }
4063}
4064
4065macro_rules! ptrs {
4066    ($struct_name:ident, { $($name:ident => ($($param_n:ident: $param_ty:ty),*) -> $ret:ty,)+ }) => (
4067        pub struct $struct_name {
4068            $(
4069                pub $name: extern "system" fn($($param_ty),*) -> $ret,
4070            )+
4071        }
4072
4073        impl fmt::Debug for $struct_name {
4074            #[inline]
4075            fn fmt(&self, fmt: &mut fmt::Formatter) -> ::std::result::Result<(), fmt::Error> {
4076                write!(fmt, "<Vulkan functions>")       // TODO:
4077            }
4078        }
4079
4080        unsafe impl Send for $struct_name {}
4081        unsafe impl Sync for $struct_name {}
4082
4083        impl $struct_name {
4084            pub fn load<F>(mut f: F) -> $struct_name
4085                where F: FnMut(&CStr) -> *const c_void
4086            {
4087                $struct_name {
4088                    $(
4089                        $name: unsafe {
4090                            extern "system" fn $name($(_: $param_ty),*) { panic!("function pointer `{}` not loaded", stringify!($name)) }
4091                            let name = CStr::from_bytes_with_nul_unchecked(concat!("vk", stringify!($name), "\0").as_bytes());
4092                            let val = f(name);
4093                            if val.is_null() { mem::transmute($name as *const ()) } else { mem::transmute(val) }
4094                        },
4095                    )+
4096                }
4097            }
4098
4099            $(
4100                #[inline]
4101                pub unsafe fn $name(&self $(, $param_n: $param_ty)*) -> $ret {
4102                    let ptr = self.$name;
4103                    ptr($($param_n),*)
4104                }
4105            )+
4106        }
4107    )
4108}
4109
4110ptrs!(Static, {
4111    GetInstanceProcAddr => (instance: Instance, pName: *const c_char) -> PFN_vkVoidFunction,
4112});
4113
4114ptrs!(EntryPoints, {
4115    CreateInstance => (pCreateInfo: *const InstanceCreateInfo, pAllocator: *const AllocationCallbacks, pInstance: *mut Instance) -> Result,
4116    EnumerateInstanceExtensionProperties => (pLayerName: *const c_char, pPropertyCount: *mut u32, pProperties: *mut ExtensionProperties) -> Result,
4117    EnumerateInstanceLayerProperties => (pPropertyCount: *mut u32, pProperties: *mut LayerProperties) -> Result,
4118});
4119
4120ptrs!(InstancePointers, {
4121    DestroyInstance => (instance: Instance, pAllocator: *const AllocationCallbacks) -> (),
4122    GetDeviceProcAddr => (device: Device, pName: *const c_char) -> PFN_vkVoidFunction,
4123    EnumeratePhysicalDevices => (instance: Instance, pPhysicalDeviceCount: *mut u32, pPhysicalDevices: *mut PhysicalDevice) -> Result,
4124    EnumerateDeviceExtensionProperties => (physicalDevice: PhysicalDevice, pLayerName: *const c_char, pPropertyCount: *mut u32, pProperties: *mut ExtensionProperties) -> Result,
4125    EnumerateDeviceLayerProperties => (physicalDevice: PhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut LayerProperties) -> Result,
4126    CreateDevice => (physicalDevice: PhysicalDevice, pCreateInfo: *const DeviceCreateInfo, pAllocator: *const AllocationCallbacks, pDevice: *mut Device) -> Result,
4127    GetPhysicalDeviceFeatures => (physicalDevice: PhysicalDevice, pFeatures: *mut PhysicalDeviceFeatures) -> (),
4128    GetPhysicalDeviceFormatProperties => (physicalDevice: PhysicalDevice, format: Format, pFormatProperties: *mut FormatProperties) -> (),
4129    GetPhysicalDeviceImageFormatProperties => (physicalDevice: PhysicalDevice, format: Format, ty: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, pImageFormatProperties: *mut ImageFormatProperties) -> Result,
4130    GetPhysicalDeviceProperties => (physicalDevice: PhysicalDevice, pProperties: *mut PhysicalDeviceProperties) -> (),
4131    GetPhysicalDeviceQueueFamilyProperties => (physicalDevice: PhysicalDevice, pQueueFamilyPropertyCount: *mut u32, pQueueFamilyProperties: *mut QueueFamilyProperties) -> (),
4132    GetPhysicalDeviceMemoryProperties => (physicalDevice: PhysicalDevice, pMemoryProperties: *mut PhysicalDeviceMemoryProperties) -> (),
4133    GetPhysicalDeviceSparseImageFormatProperties => (physicalDevice: PhysicalDevice, format: Format, ty: ImageType, samples: SampleCountFlagBits, usage: ImageUsageFlags, tiling: ImageTiling, pPropertyCount: *mut u32, pProperties: *mut SparseImageFormatProperties) -> (),
4134    DestroySurfaceKHR => (instance: Instance, surface: SurfaceKHR, pAllocator: *const AllocationCallbacks) -> (),
4135    CreateXlibSurfaceKHR => (instance: Instance, pCreateInfo: *const XlibSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4136    GetPhysicalDeviceXlibPresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, dpy: *mut c_void, visualID: u32/* FIXME: VisualID */) -> Bool32,
4137    CreateXcbSurfaceKHR => (instance: Instance, pCreateInfo: *const XcbSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4138    GetPhysicalDeviceXcbPresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, connection: *mut c_void, visual_id: u32 /* FIXME: xcb_visualid */) -> Bool32,
4139    CreateWaylandSurfaceKHR => (instance: Instance, pCreateInfo: *const WaylandSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4140    GetPhysicalDeviceWaylandPresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, display: *mut c_void) -> Bool32,
4141    CreateAndroidSurfaceKHR => (instance: Instance, pCreateInfo: *const AndroidSurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4142    CreateWin32SurfaceKHR => (instance: Instance, pCreateInfo: *const Win32SurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4143    GetPhysicalDeviceWin32PresentationSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> Bool32,
4144    GetPhysicalDeviceDisplayPropertiesKHR => (physicalDevice: PhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut DisplayPropertiesKHR) -> Result,
4145    GetPhysicalDeviceDisplayPlanePropertiesKHR => (physicalDevice: PhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut DisplayPlanePropertiesKHR) -> Result,
4146    GetDisplayPlaneSupportedDisplaysKHR => (physicalDevice: PhysicalDevice, planeIndex: u32, pDisplayCount: *mut u32, pDisplays: *mut DisplayKHR) -> Result,
4147    GetDisplayModePropertiesKHR => (physicalDevice: PhysicalDevice, display: DisplayKHR, pPropertyCount: *mut u32, pProperties: *mut DisplayModePropertiesKHR) -> Result,
4148    CreateDisplayModeKHR => (physicalDevice: PhysicalDevice, display: DisplayKHR, pCreateInfo: *const DisplayModeCreateInfoKHR, pAllocator: *const AllocationCallbacks, pMode: *mut DisplayModeKHR) -> Result,
4149    GetDisplayPlaneCapabilitiesKHR => (physicalDevice: PhysicalDevice, mode: DisplayModeKHR, planeIndex: u32, pCapabilities: *mut DisplayPlaneCapabilitiesKHR) -> Result,
4150    CreateDisplayPlaneSurfaceKHR => (instance: Instance, pCreateInfo: *const DisplaySurfaceCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4151    GetPhysicalDeviceSurfaceSupportKHR => (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, surface: SurfaceKHR, pSupported: *mut Bool32) -> Result,
4152    GetPhysicalDeviceSurfaceCapabilitiesKHR => (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceCapabilities: *mut SurfaceCapabilitiesKHR) -> Result,
4153    GetPhysicalDeviceSurfaceFormatsKHR => (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pSurfaceFormatCount: *mut u32, pSurfaceFormats: *mut SurfaceFormatKHR) -> Result,
4154    GetPhysicalDeviceSurfacePresentModesKHR => (physicalDevice: PhysicalDevice, surface: SurfaceKHR, pPresentModeCount: *mut u32, pPresentModes: *mut PresentModeKHR) -> Result,
4155    CreateDebugUtilsMessengerEXT => (instance: Instance, pCreateInfo: *const DebugUtilsMessengerCreateInfoEXT, pAllocator: *const AllocationCallbacks, pMessenger: *const DebugUtilsMessengerEXT) -> Result,
4156    DestroyDebugUtilsMessengerEXT => (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: *const AllocationCallbacks) -> Result,
4157    CreateIOSSurfaceMVK => (instance: Instance, pCreateInfo: *const IOSSurfaceCreateInfoMVK, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4158    CreateMacOSSurfaceMVK => (instance: Instance, pCreateInfo: *const MacOSSurfaceCreateInfoMVK, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4159    ActivateMoltenVKLicenseMVK => (licenseID: *const c_char, licenseKey: *const c_char, acceptLicenseTermsAndConditions: Bool32) -> Result,
4160    ActivateMoltenVKLicensesMVK => () -> Result,
4161    GetMoltenVKDeviceConfigurationMVK => (device: Device, pConfiguration: *mut MVKDeviceConfiguration) -> Result,
4162    SetMoltenVKDeviceConfigurationMVK => (device: Device, pConfiguration: *mut MVKDeviceConfiguration) -> Result,
4163    GetPhysicalDeviceMetalFeaturesMVK => (physicalDevice: PhysicalDevice, pMetalFeatures: *mut MVKPhysicalDeviceMetalFeatures) -> Result,
4164    GetSwapchainPerformanceMVK => (device: Device, swapchain: SwapchainKHR, pSwapchainPerf: *mut MVKSwapchainPerformance) -> Result,
4165    CreateViSurfaceNN => (instance: Instance, pCreateInfo: *const ViSurfaceCreateInfoNN, pAllocator: *const AllocationCallbacks, pSurface: *mut SurfaceKHR) -> Result,
4166    GetPhysicalDeviceFeatures2KHR => (physicalDevice: PhysicalDevice, pFeatures: *mut PhysicalDeviceFeatures2KHR) -> (),
4167    GetPhysicalDeviceProperties2KHR => (physicalDevice: PhysicalDevice, pProperties: *mut PhysicalDeviceProperties2KHR) -> (),
4168    GetPhysicalDeviceFormatProperties2KHR => (physicalDevice: PhysicalDevice, pFormatProperties: *mut FormatProperties2KHR) -> (),
4169    GetPhysicalDeviceImageFormatProperties2KHR => (physicalDevice: PhysicalDevice, pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2KHR, pImageFormatProperties: *mut ImageFormatProperties2KHR) -> Result,
4170    GetPhysicalDeviceQueueFamilyProperties2KHR => (physicalDevice: PhysicalDevice, pQueueFamilyPropertiesCount: *mut u32, pQueueFamilyProperties: *mut QueueFamilyProperties2KHR) -> (),
4171    GetPhysicalDeviceMemoryProperties2KHR => (physicalDevice: PhysicalDevice, pMemoryProperties: *mut PhysicalDeviceMemoryProperties2KHR) -> (),
4172    GetPhysicalDeviceSparseImageFormatProperties2KHR => (physicalDevice: PhysicalDevice, pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2KHR, pPropertyCount: *mut u32, pProperties: *mut SparseImageFormatProperties2KHR) -> (),
4173});
4174
4175ptrs!(DevicePointers, {
4176    DestroyDevice => (device: Device, pAllocator: *const AllocationCallbacks) -> (),
4177    GetDeviceQueue => (device: Device, queueFamilyIndex: u32, queueIndex: u32, pQueue: *mut Queue) -> (),
4178    QueueSubmit => (queue: Queue, submitCount: u32, pSubmits: *const SubmitInfo, fence: Fence) -> Result,
4179    QueueWaitIdle => (queue: Queue) -> Result,
4180    DeviceWaitIdle => (device: Device) -> Result,
4181    AllocateMemory => (device: Device, pAllocateInfo: *const MemoryAllocateInfo, pAllocator: *const AllocationCallbacks, pMemory: *mut DeviceMemory) -> Result,
4182    FreeMemory => (device: Device, memory: DeviceMemory, pAllocator: *const AllocationCallbacks) -> (),
4183    MapMemory => (device: Device, memory: DeviceMemory, offset: DeviceSize, size: DeviceSize, flags: MemoryMapFlags, ppData: *mut *mut c_void) -> Result,
4184    UnmapMemory => (device: Device, memory: DeviceMemory) -> (),
4185    FlushMappedMemoryRanges => (device: Device, memoryRangeCount: u32, pMemoryRanges: *const MappedMemoryRange) -> Result,
4186    InvalidateMappedMemoryRanges => (device: Device, memoryRangeCount: u32, pMemoryRanges: *const MappedMemoryRange) -> Result,
4187    GetDeviceMemoryCommitment => (device: Device, memory: DeviceMemory, pCommittedMemoryInBytes: *mut DeviceSize) -> (),
4188    BindBufferMemory => (device: Device, buffer: Buffer, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result,
4189    BindImageMemory => (device: Device, image: Image, memory: DeviceMemory, memoryOffset: DeviceSize) -> Result,
4190    GetBufferMemoryRequirements => (device: Device, buffer: Buffer, pMemoryRequirements: *mut MemoryRequirements) -> (),
4191    GetImageMemoryRequirements => (device: Device, image: Image, pMemoryRequirements: *mut MemoryRequirements) -> (),
4192    GetImageSparseMemoryRequirements => (device: Device, image: Image, pSparseMemoryRequirementCount: *mut u32, pSparseMemoryRequirements: *mut SparseImageMemoryRequirements) -> (),
4193    QueueBindSparse => (queue: Queue, bindInfoCount: u32, pBindInfo: *const BindSparseInfo, fence: Fence) -> Result,
4194    CreateFence => (device: Device, pCreateInfo: *const FenceCreateInfo, pAllocator: *const AllocationCallbacks, pFence: *mut Fence) -> Result,
4195    DestroyFence => (device: Device, fence: Fence, pAllocator: *const AllocationCallbacks) -> (),
4196    ResetFences => (device: Device, fenceCount: u32, pFences: *const Fence) -> Result,
4197    GetFenceStatus => (device: Device, fence: Fence) -> Result,
4198    WaitForFences => (device: Device, fenceCount: u32, pFences: *const Fence, waitAll: Bool32, timeout: u64) -> Result,
4199    CreateSemaphore => (device: Device, pCreateInfo: *const SemaphoreCreateInfo, pAllocator: *const AllocationCallbacks, pSemaphore: *mut Semaphore) -> Result,
4200    DestroySemaphore => (device: Device, semaphore: Semaphore, pAllocator: *const AllocationCallbacks) -> (),
4201    CreateEvent => (device: Device, pCreateInfo: *const EventCreateInfo, pAllocator: *const AllocationCallbacks, pEvent: *mut Event) -> Result,
4202    DestroyEvent => (device: Device, event: Event, pAllocator: *const AllocationCallbacks) -> (),
4203    GetEventStatus => (device: Device, event: Event) -> Result,
4204    SetEvent => (device: Device, event: Event) -> Result,
4205    ResetEvent => (device: Device, event: Event) -> Result,
4206    CreateQueryPool => (device: Device, pCreateInfo: *const QueryPoolCreateInfo, pAllocator: *const AllocationCallbacks, pQueryPool: *mut QueryPool) -> Result,
4207    DestroyQueryPool => (device: Device, queryPool: QueryPool, pAllocator: *const AllocationCallbacks) -> (),
4208    GetQueryPoolResults => (device: Device, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dataSize: usize, pData: *mut c_void, stride: DeviceSize, flags: QueryResultFlags) -> Result,
4209    CreateBuffer => (device: Device, pCreateInfo: *const BufferCreateInfo, pAllocator: *const AllocationCallbacks, pBuffer: *mut Buffer) -> Result,
4210    DestroyBuffer => (device: Device, buffer: Buffer, pAllocator: *const AllocationCallbacks) -> (),
4211    CreateBufferView => (device: Device, pCreateInfo: *const BufferViewCreateInfo, pAllocator: *const AllocationCallbacks, pView: *mut BufferView) -> Result,
4212    DestroyBufferView => (device: Device, bufferView: BufferView, pAllocator: *const AllocationCallbacks) -> (),
4213    CreateImage => (device: Device, pCreateInfo: *const ImageCreateInfo, pAllocator: *const AllocationCallbacks, pImage: *mut Image) -> Result,
4214    DestroyImage => (device: Device, image: Image, pAllocator: *const AllocationCallbacks) -> (),
4215    GetImageSubresourceLayout => (device: Device, image: Image, pSubresource: *const ImageSubresource, pLayout: *mut SubresourceLayout) -> (),
4216    CreateImageView => (device: Device, pCreateInfo: *const ImageViewCreateInfo, pAllocator: *const AllocationCallbacks, pView: *mut ImageView) -> Result,
4217    DestroyImageView => (device: Device, imageView: ImageView, pAllocator: *const AllocationCallbacks) -> (),
4218    CreateShaderModule => (device: Device, pCreateInfo: *const ShaderModuleCreateInfo, pAllocator: *const AllocationCallbacks, pShaderModule: *mut ShaderModule) -> Result,
4219    DestroyShaderModule => (device: Device, shaderModule: ShaderModule, pAllocator: *const AllocationCallbacks) -> (),
4220    CreatePipelineCache => (device: Device, pCreateInfo: *const PipelineCacheCreateInfo, pAllocator: *const AllocationCallbacks, pPipelineCache: *mut PipelineCache) -> Result,
4221    DestroyPipelineCache => (device: Device, pipelineCache: PipelineCache, pAllocator: *const AllocationCallbacks) -> (),
4222    GetPipelineCacheData => (device: Device, pipelineCache: PipelineCache, pDataSize: *mut usize, pData: *mut c_void) -> Result,
4223    MergePipelineCaches => (device: Device, dstCache: PipelineCache, srcCacheCount: u32, pSrcCaches: *const PipelineCache) -> Result,
4224    CreateGraphicsPipelines => (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: *const GraphicsPipelineCreateInfo, pAllocator: *const AllocationCallbacks, pPipelines: *mut Pipeline) -> Result,
4225    CreateComputePipelines => (device: Device, pipelineCache: PipelineCache, createInfoCount: u32, pCreateInfos: *const ComputePipelineCreateInfo, pAllocator: *const AllocationCallbacks, pPipelines: *mut Pipeline) -> Result,
4226    DestroyPipeline => (device: Device, pipeline: Pipeline, pAllocator: *const AllocationCallbacks) -> (),
4227    CreatePipelineLayout => (device: Device, pCreateInfo: *const PipelineLayoutCreateInfo, pAllocator: *const AllocationCallbacks, pPipelineLayout: *mut PipelineLayout) -> Result,
4228    DestroyPipelineLayout => (device: Device, pipelineLayout: PipelineLayout, pAllocator: *const AllocationCallbacks) -> (),
4229    CreateSampler => (device: Device, pCreateInfo: *const SamplerCreateInfo, pAllocator: *const AllocationCallbacks, pSampler: *mut Sampler) -> Result,
4230    DestroySampler => (device: Device, sampler: Sampler, pAllocator: *const AllocationCallbacks) -> (),
4231    CreateDescriptorSetLayout => (device: Device, pCreateInfo: *const DescriptorSetLayoutCreateInfo, pAllocator: *const AllocationCallbacks, pSetLayout: *mut DescriptorSetLayout) -> Result,
4232    DestroyDescriptorSetLayout => (device: Device, descriptorSetLayout: DescriptorSetLayout, pAllocator: *const AllocationCallbacks) -> (),
4233    CreateDescriptorPool => (device: Device, pCreateInfo: *const DescriptorPoolCreateInfo, pAllocator: *const AllocationCallbacks, pDescriptorPool: *mut DescriptorPool) -> Result,
4234    DestroyDescriptorPool => (device: Device, descriptorPool: DescriptorPool, pAllocator: *const AllocationCallbacks) -> (),
4235    ResetDescriptorPool => (device: Device, descriptorPool: DescriptorPool, flags: DescriptorPoolResetFlags) -> Result,
4236    AllocateDescriptorSets => (device: Device, pAllocateInfo: *const DescriptorSetAllocateInfo, pDescriptorSets: *mut DescriptorSet) -> Result,
4237    FreeDescriptorSets => (device: Device, descriptorPool: DescriptorPool, descriptorSetCount: u32, pDescriptorSets: *const DescriptorSet) -> Result,
4238    UpdateDescriptorSets => (device: Device, descriptorWriteCount: u32, pDescriptorWrites: *const WriteDescriptorSet, descriptorCopyCount: u32, pDescriptorCopies: *const CopyDescriptorSet) -> (),
4239    CreateFramebuffer => (device: Device, pCreateInfo: *const FramebufferCreateInfo, pAllocator: *const AllocationCallbacks, pFramebuffer: *mut Framebuffer) -> Result,
4240    DestroyFramebuffer => (device: Device, framebuffer: Framebuffer, pAllocator: *const AllocationCallbacks) -> (),
4241    CreateRenderPass => (device: Device, pCreateInfo: *const RenderPassCreateInfo, pAllocator: *const AllocationCallbacks, pRenderPass: *mut RenderPass) -> Result,
4242    DestroyRenderPass => (device: Device, renderPass: RenderPass, pAllocator: *const AllocationCallbacks) -> (),
4243    GetRenderAreaGranularity => (device: Device, renderPass: RenderPass, pGranularity: *mut Extent2D) -> (),
4244    CreateCommandPool => (device: Device, pCreateInfo: *const CommandPoolCreateInfo, pAllocator: *const AllocationCallbacks, pCommandPool: *mut CommandPool) -> Result,
4245    DestroyCommandPool => (device: Device, commandPool: CommandPool, pAllocator: *const AllocationCallbacks) -> (),
4246    ResetCommandPool => (device: Device, commandPool: CommandPool, flags: CommandPoolResetFlags) -> Result,
4247    TrimCommandPoolKHR => (device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlagsKHR) -> (),
4248    AllocateCommandBuffers => (device: Device, pAllocateInfo: *const CommandBufferAllocateInfo, pCommandBuffers: *mut CommandBuffer) -> Result,
4249    FreeCommandBuffers => (device: Device, commandPool: CommandPool, commandBufferCount: u32, pCommandBuffers: *const CommandBuffer) -> (),
4250    BeginCommandBuffer => (commandBuffer: CommandBuffer, pBeginInfo: *const CommandBufferBeginInfo) -> Result,
4251    EndCommandBuffer => (commandBuffer: CommandBuffer) -> Result,
4252    ResetCommandBuffer => (commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result,
4253    CmdBindPipeline => (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, pipeline: Pipeline) -> (),
4254    CmdSetViewport => (commandBuffer: CommandBuffer, firstViewport: u32, viewportCount: u32, pViewports: *const Viewport) -> (),
4255    CmdSetScissor => (commandBuffer: CommandBuffer, firstScissor: u32, scissorCount: u32, pScissors: *const Rect2D) -> (),
4256    CmdSetLineWidth => (commandBuffer: CommandBuffer, lineWidth: f32) -> (),
4257    CmdSetDepthBias => (commandBuffer: CommandBuffer, depthBiasConstantFactor: f32, depthBiasClamp: f32, depthBiasSlopeFactor: f32) -> (),
4258    CmdSetBlendConstants => (commandBuffer: CommandBuffer, blendConstants: &[f32; 4]) -> (),
4259    CmdSetDepthBounds => (commandBuffer: CommandBuffer, minDepthBounds: f32, maxDepthBounds: f32) -> (),
4260    CmdSetStencilCompareMask => (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, compareMask: u32) -> (),
4261    CmdSetStencilWriteMask => (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, writeMask: u32) -> (),
4262    CmdSetStencilReference => (commandBuffer: CommandBuffer, faceMask: StencilFaceFlags, reference: u32) -> (),
4263    CmdBindDescriptorSets => (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, firstSet: u32, descriptorSetCount: u32, pDescriptorSets: *const DescriptorSet, dynamicOffsetCount: u32, pDynamicOffsets: *const u32) -> (),
4264    CmdBindIndexBuffer => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, indexType: IndexType) -> (),
4265    CmdBindVertexBuffers => (commandBuffer: CommandBuffer, firstBinding: u32, bindingCount: u32, pBuffers: *const Buffer, pOffsets: *const DeviceSize) -> (),
4266    CmdDraw => (commandBuffer: CommandBuffer, vertexCount: u32, instanceCount: u32, firstVertex: u32, firstInstance: u32) -> (),
4267    CmdDrawIndexed => (commandBuffer: CommandBuffer, indexCount: u32, instanceCount: u32, firstIndex: u32, vertexOffset: i32, firstInstance: u32) -> (),
4268    CmdDrawIndirect => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32) -> (),
4269    CmdDrawIndexedIndirect => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, drawCount: u32, stride: u32) -> (),
4270    CmdDispatch => (commandBuffer: CommandBuffer, x: u32, y: u32, z: u32) -> (),
4271    CmdDispatchIndirect => (commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize) -> (),
4272    CmdCopyBuffer => (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstBuffer: Buffer, regionCount: u32, pRegions: *const BufferCopy) -> (),
4273    CmdCopyImage => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const ImageCopy) -> (),
4274    CmdBlitImage => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const ImageBlit, filter: Filter) -> (),
4275    CmdCopyBufferToImage => (commandBuffer: CommandBuffer, srcBuffer: Buffer, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const BufferImageCopy) -> (),
4276    CmdCopyImageToBuffer => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstBuffer: Buffer, regionCount: u32, pRegions: *const BufferImageCopy) -> (),
4277    CmdUpdateBuffer => (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, dataSize: DeviceSize, pData: *const u32) -> (),
4278    CmdFillBuffer => (commandBuffer: CommandBuffer, dstBuffer: Buffer, dstOffset: DeviceSize, size: DeviceSize, data: u32) -> (),
4279    CmdClearColorImage => (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pColor: *const ClearColorValue, rangeCount: u32, pRanges: *const ImageSubresourceRange) -> (),
4280    CmdClearDepthStencilImage => (commandBuffer: CommandBuffer, image: Image, imageLayout: ImageLayout, pDepthStencil: *const ClearDepthStencilValue, rangeCount: u32, pRanges: *const ImageSubresourceRange) -> (),
4281    CmdClearAttachments => (commandBuffer: CommandBuffer, attachmentCount: u32, pAttachments: *const ClearAttachment, rectCount: u32, pRects: *const ClearRect) -> (),
4282    CmdResolveImage => (commandBuffer: CommandBuffer, srcImage: Image, srcImageLayout: ImageLayout, dstImage: Image, dstImageLayout: ImageLayout, regionCount: u32, pRegions: *const ImageResolve) -> (),
4283    CmdSetEvent => (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags) -> (),
4284    CmdResetEvent => (commandBuffer: CommandBuffer, event: Event, stageMask: PipelineStageFlags) -> (),
4285    CmdWaitEvents => (commandBuffer: CommandBuffer, eventCount: u32, pEvents: *const Event, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, memoryBarrierCount: u32, pMemoryBarriers: *const MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: *const BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: *const ImageMemoryBarrier) -> (),
4286    CmdPipelineBarrier => (commandBuffer: CommandBuffer, srcStageMask: PipelineStageFlags, dstStageMask: PipelineStageFlags, dependencyFlags: DependencyFlags, memoryBarrierCount: u32, pMemoryBarriers: *const MemoryBarrier, bufferMemoryBarrierCount: u32, pBufferMemoryBarriers: *const BufferMemoryBarrier, imageMemoryBarrierCount: u32, pImageMemoryBarriers: *const ImageMemoryBarrier) -> (),
4287    CmdBeginQuery => (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32, flags: QueryControlFlags) -> (),
4288    CmdEndQuery => (commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32) -> (),
4289    CmdResetQueryPool => (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32) -> (),
4290    CmdWriteTimestamp => (commandBuffer: CommandBuffer, pipelineStage: PipelineStageFlagBits, queryPool: QueryPool, query: u32) -> (),
4291    CmdCopyQueryPoolResults => (commandBuffer: CommandBuffer, queryPool: QueryPool, firstQuery: u32, queryCount: u32, dstBuffer: Buffer, dstOffset: DeviceSize, stride: DeviceSize, flags: QueryResultFlags) -> (),
4292    CmdPushConstants => (commandBuffer: CommandBuffer, layout: PipelineLayout, stageFlags: ShaderStageFlags, offset: u32, size: u32, pValues: *const c_void) -> (),
4293    CmdBeginRenderPass => (commandBuffer: CommandBuffer, pRenderPassBegin: *const RenderPassBeginInfo, contents: SubpassContents) -> (),
4294    CmdNextSubpass => (commandBuffer: CommandBuffer, contents: SubpassContents) -> (),
4295    CmdEndRenderPass => (commandBuffer: CommandBuffer) -> (),
4296    CmdExecuteCommands => (commandBuffer: CommandBuffer, commandBufferCount: u32, pCommandBuffers: *const CommandBuffer) -> (),
4297    CreateSwapchainKHR => (device: Device, pCreateInfo: *const SwapchainCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSwapchain: *mut SwapchainKHR) -> Result,
4298    DestroySwapchainKHR => (device: Device, swapchain: SwapchainKHR, pAllocator: *const AllocationCallbacks) -> (),
4299    GetSwapchainImagesKHR => (device: Device, swapchain: SwapchainKHR, pSwapchainImageCount: *mut u32, pSwapchainImages: *mut Image) -> Result,
4300    AcquireNextImageKHR => (device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, pImageIndex: *mut u32) -> Result,
4301    QueuePresentKHR => (queue: Queue, pPresentInfo: *const PresentInfoKHR) -> Result,
4302    CreateSharedSwapchainsKHR => (device: Device, swapchainCount: u32, pCreateInfos: *const SwapchainCreateInfoKHR, pAllocator: *const AllocationCallbacks, pSwapchains: *mut SwapchainKHR) -> Result,
4303    CmdPushDescriptorSetKHR => (commandBuffer: CommandBuffer, pipelineBindPoint: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptorWriteCount: u32, pDescriptorWrites: *const WriteDescriptorSet) -> (),
4304    CreateDescriptorUpdateTemplateKHR => (device: Device, pCreateInfo: *const DescriptorUpdateTemplateCreateInfoKHR, pAllocator: *const AllocationCallbacks, pDescriptorUpdateTemplate: *mut DescriptorUpdateTemplateKHR) -> Result,
4305    DestroyDescriptorUpdateTemplateKHR => (device: Device, descriptorUpdateTemplate: DescriptorUpdateTemplateKHR, pAllocator: *const AllocationCallbacks) -> (),
4306    UpdateDescriptorSetWithTemplateKHR => (device: Device, descriptorSet: DescriptorSet, descriptorUpdateTemplate: DescriptorUpdateTemplateKHR, pData: *const c_void) -> (),
4307    CmdPushDescriptorSetWithTemplateKHR => (commandBuffer: CommandBuffer, descriptorUpdateTemplate: DescriptorUpdateTemplateKHR, layout: PipelineLayout, set: u32, pData: *const c_void) -> (),
4308    GetImageMemoryRequirements2KHR => (device: Device, pInfo: *const ImageMemoryRequirementsInfo2KHR, pMemoryRequirements: *mut MemoryRequirements2KHR) -> (),
4309    GetBufferMemoryRequirements2KHR => (device: Device, pInfo: *const BufferMemoryRequirementsInfo2KHR, pMemoryRequirements: *mut MemoryRequirements2KHR) -> (),
4310    SetDebugUtilsObjectNameEXT => (device: Device, pNameInfo: *const DebugUtilsObjectNameInfoEXT) -> Result,
4311    CmdBeginDebugUtilsLabelEXT => (commandBuffer: CommandBuffer, pLabelInfo: *const DebugUtilsLabelEXT) -> Result,
4312    CmdEndDebugUtilsLabelEXT => (commandBuffer: CommandBuffer) -> Result,
4313    CmdInsertDebugUtilsLabelEXT => (commandBuffer: CommandBuffer, pLabelInfo: *const DebugUtilsLabelEXT) -> Result,
4314    AcquireFullScreenExclusiveModeEXT => (device: Device, swapchain: SwapchainKHR) -> Result,
4315    ReleaseFullScreenExclusiveModeEXT => (device: Device, swapchain: SwapchainKHR) -> Result,
4316    GetBufferDeviceAddressEXT => (device: Device, pInfo: *const BufferDeviceAddressInfo) -> DeviceAddress,
4317    GetMemoryFdKHR => (device: Device, pGetFdInfo: *const MemoryGetFdInfoKHR, pFd: *mut i32) -> Result,
4318    GetMemoryFdPropertiesKHR => (device: Device, handleType: ExternalMemoryHandleTypeFlagBits, fd: i32, pMemoryFdProperties: *mut MemoryFdPropertiesKHR) -> Result,
4319});