vulkan_bindings/
lib.rs

1// auto generated by vulkan-bindgen
2// vulkan spec: 1.3.238
3
4#![allow(non_upper_case_globals)]
5#![allow(non_snake_case)]
6#![allow(non_camel_case_types)]
7#![allow(dead_code)]
8
9use std::mem;
10use std::os::raw::{c_char, c_int, c_void};
11
12pub const fn make_version(major: u32, minor: u32, patch: u32) -> u32 {
13    (major << 22) | (minor << 12) | patch
14}
15
16pub const fn get_version(ver: u32) -> (u32, u32, u32) {
17    (ver >> 22, (ver >> 12) & 0x3ff, ver & 0xfff)
18}
19
20// API Constants
21
22pub const MAX_PHYSICAL_DEVICE_NAME_SIZE: u32 = 256;
23pub const UUID_SIZE: u32 = 16;
24pub const LUID_SIZE: u32 = 8;
25pub const LUID_SIZE_KHR: u32 = LUID_SIZE;
26pub const MAX_EXTENSION_NAME_SIZE: u32 = 256;
27pub const MAX_DESCRIPTION_SIZE: u32 = 256;
28pub const MAX_MEMORY_TYPES: u32 = 32;
29pub const MAX_MEMORY_HEAPS: u32 = 16;
30pub const LOD_CLAMP_NONE: f32 = 1000.0;
31pub const REMAINING_MIP_LEVELS: u32 = !0u32;
32pub const REMAINING_ARRAY_LAYERS: u32 = !0u32;
33pub const WHOLE_SIZE: u64 = !0u64;
34pub const ATTACHMENT_UNUSED: u32 = !0u32;
35pub const TRUE: u32 = 1;
36pub const FALSE: u32 = 0;
37pub const QUEUE_FAMILY_IGNORED: u32 = !0u32;
38pub const QUEUE_FAMILY_EXTERNAL: u32 = !1u32;
39pub const QUEUE_FAMILY_EXTERNAL_KHR: u32 = QUEUE_FAMILY_EXTERNAL;
40pub const QUEUE_FAMILY_FOREIGN_EXT: u32 = !2u32;
41pub const SUBPASS_EXTERNAL: u32 = !0u32;
42pub const MAX_DEVICE_GROUP_SIZE: u32 = 32;
43pub const MAX_DEVICE_GROUP_SIZE_KHR: u32 = MAX_DEVICE_GROUP_SIZE;
44pub const MAX_DRIVER_NAME_SIZE: u32 = 256;
45pub const MAX_DRIVER_NAME_SIZE_KHR: u32 = MAX_DRIVER_NAME_SIZE;
46pub const MAX_DRIVER_INFO_SIZE: u32 = 256;
47pub const MAX_DRIVER_INFO_SIZE_KHR: u32 = MAX_DRIVER_INFO_SIZE;
48pub const SHADER_UNUSED_KHR: u32 = !0u32;
49pub const SHADER_UNUSED_NV: u32 = SHADER_UNUSED_KHR;
50pub const MAX_GLOBAL_PRIORITY_SIZE_KHR: u32 = 16;
51pub const MAX_GLOBAL_PRIORITY_SIZE_EXT: u32 = MAX_GLOBAL_PRIORITY_SIZE_KHR;
52pub const MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT: u32 = 32;
53
54// defines
55
56pub const NULL_HANDLE: u64 = 0;
57
58// base types
59
60pub type SampleMask = u32;
61pub type Bool32 = u32;
62pub type Flags = u32;
63pub type Flags64 = u64;
64pub type DeviceSize = u64;
65pub type DeviceAddress = u64;
66pub type RemoteAddressNV = *mut c_void;
67
68// object handles
69
70pub type Instance = u64;
71pub type PhysicalDevice = u64;
72pub type Device = u64;
73pub type Queue = u64;
74pub type CommandBuffer = u64;
75pub type DeviceMemory = u64;
76pub type CommandPool = u64;
77pub type Buffer = u64;
78pub type BufferView = u64;
79pub type Image = u64;
80pub type ImageView = u64;
81pub type ShaderModule = u64;
82pub type Pipeline = u64;
83pub type PipelineLayout = u64;
84pub type Sampler = u64;
85pub type DescriptorSet = u64;
86pub type DescriptorSetLayout = u64;
87pub type DescriptorPool = u64;
88pub type Fence = u64;
89pub type Semaphore = u64;
90pub type Event = u64;
91pub type QueryPool = u64;
92pub type Framebuffer = u64;
93pub type RenderPass = u64;
94pub type PipelineCache = u64;
95pub type IndirectCommandsLayoutNV = u64;
96pub type DescriptorUpdateTemplate = u64;
97pub type DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate;
98pub type SamplerYcbcrConversion = u64;
99pub type SamplerYcbcrConversionKHR = SamplerYcbcrConversion;
100pub type ValidationCacheEXT = u64;
101pub type AccelerationStructureKHR = u64;
102pub type AccelerationStructureNV = u64;
103pub type PerformanceConfigurationINTEL = u64;
104pub type BufferCollectionFUCHSIA = u64;
105pub type DeferredOperationKHR = u64;
106pub type PrivateDataSlot = u64;
107pub type PrivateDataSlotEXT = PrivateDataSlot;
108pub type CuModuleNVX = u64;
109pub type CuFunctionNVX = u64;
110pub type OpticalFlowSessionNV = u64;
111pub type MicromapEXT = u64;
112pub type DisplayKHR = u64;
113pub type DisplayModeKHR = u64;
114pub type SurfaceKHR = u64;
115pub type SwapchainKHR = u64;
116pub type DebugReportCallbackEXT = u64;
117pub type DebugUtilsMessengerEXT = u64;
118pub type VideoSessionKHR = u64;
119pub type VideoSessionParametersKHR = u64;
120
121// bitmasks
122
123pub type FramebufferCreateFlags = Flags;
124pub type FramebufferCreateFlagBits = u32;
125pub const FRAMEBUFFER_CREATE_IMAGELESS_BIT: u32 = 1;
126pub const FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR: u32 = FRAMEBUFFER_CREATE_IMAGELESS_BIT;
127
128pub type QueryPoolCreateFlags = Flags;
129
130pub type RenderPassCreateFlags = Flags;
131pub type RenderPassCreateFlagBits = u32;
132pub const RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM: u32 = 2;
133
134pub type SamplerCreateFlags = Flags;
135pub type SamplerCreateFlagBits = u32;
136pub const SAMPLER_CREATE_SUBSAMPLED_BIT_EXT: u32 = 1;
137pub const SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT: u32 = 2;
138pub const SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: u32 = 8;
139pub const SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT: u32 = 4;
140pub const SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM: u32 = 16;
141
142pub type PipelineLayoutCreateFlags = Flags;
143pub type PipelineLayoutCreateFlagBits = u32;
144pub const PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT: u32 = 2;
145
146pub type PipelineCacheCreateFlags = Flags;
147pub type PipelineCacheCreateFlagBits = u32;
148pub const PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT: u32 = 1;
149pub const PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT: u32 =
150    PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT;
151
152pub type PipelineDepthStencilStateCreateFlags = Flags;
153pub type PipelineDepthStencilStateCreateFlagBits = u32;
154pub const PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM: u32 = PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT;
155pub const PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM: u32 = PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT;
156pub const PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT: u32 = 1;
157pub const PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT: u32 = 2;
158
159pub type PipelineDynamicStateCreateFlags = Flags;
160
161pub type PipelineColorBlendStateCreateFlags = Flags;
162pub type PipelineColorBlendStateCreateFlagBits = u32;
163pub const PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM: u32 =
164    PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT;
165pub const PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT: u32 = 1;
166
167pub type PipelineMultisampleStateCreateFlags = Flags;
168
169pub type PipelineRasterizationStateCreateFlags = Flags;
170
171pub type PipelineViewportStateCreateFlags = Flags;
172
173pub type PipelineTessellationStateCreateFlags = Flags;
174
175pub type PipelineInputAssemblyStateCreateFlags = Flags;
176
177pub type PipelineVertexInputStateCreateFlags = Flags;
178
179pub type PipelineShaderStageCreateFlags = Flags;
180pub type PipelineShaderStageCreateFlagBits = u32;
181pub const PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT: u32 = 1;
182pub const PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT: u32 = 2;
183pub const PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT: u32 =
184    PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT;
185pub const PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT: u32 =
186    PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT;
187
188pub type DescriptorSetLayoutCreateFlags = Flags;
189pub type DescriptorSetLayoutCreateFlagBits = u32;
190pub const DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT: u32 = 2;
191pub const DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR: u32 = 1; // Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR
192pub const DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT: u32 =
193    DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT;
194pub const DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT: u32 = 16;
195pub const DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT: u32 = 32;
196pub const DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE: u32 =
197    DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT;
198pub const DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT: u32 = 4;
199
200pub type BufferViewCreateFlags = Flags;
201
202pub type InstanceCreateFlags = Flags;
203pub type InstanceCreateFlagBits = u32;
204pub const INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR: u32 = 1;
205
206pub type DeviceCreateFlags = Flags;
207
208pub type DeviceQueueCreateFlags = Flags;
209pub type DeviceQueueCreateFlagBits = u32;
210pub const DEVICE_QUEUE_CREATE_PROTECTED_BIT: u32 = 1; // Queue is a protected-capable device queue
211
212pub type QueueFlags = Flags;
213pub type QueueFlagBits = u32;
214pub const QUEUE_GRAPHICS_BIT: u32 = 1; // Queue supports graphics operations
215pub const QUEUE_COMPUTE_BIT: u32 = 2; // Queue supports compute operations
216pub const QUEUE_TRANSFER_BIT: u32 = 4; // Queue supports transfer operations
217pub const QUEUE_SPARSE_BINDING_BIT: u32 = 8; // Queue supports sparse resource memory management operations
218pub const QUEUE_PROTECTED_BIT: u32 = 16; // Queues may support protected operations
219pub const QUEUE_VIDEO_DECODE_BIT_KHR: u32 = 32;
220pub const QUEUE_VIDEO_ENCODE_BIT_KHR: u32 = 64;
221pub const QUEUE_OPTICAL_FLOW_BIT_NV: u32 = 256;
222
223pub type MemoryPropertyFlags = Flags;
224pub type MemoryPropertyFlagBits = u32;
225pub const MEMORY_PROPERTY_DEVICE_LOCAL_BIT: u32 = 1; // If otherwise stated, then allocate memory on device
226pub const MEMORY_PROPERTY_HOST_VISIBLE_BIT: u32 = 2; // Memory is mappable by host
227pub const MEMORY_PROPERTY_HOST_COHERENT_BIT: u32 = 4; // Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache
228pub const MEMORY_PROPERTY_HOST_CACHED_BIT: u32 = 8; // Memory will be cached by the host
229pub const MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT: u32 = 16; // Memory may be allocated by the driver when it is required
230pub const MEMORY_PROPERTY_PROTECTED_BIT: u32 = 32; // Memory is protected
231pub const MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD: u32 = 64;
232pub const MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD: u32 = 128;
233pub const MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV: u32 = 256;
234
235pub type MemoryHeapFlags = Flags;
236pub type MemoryHeapFlagBits = u32;
237pub const MEMORY_HEAP_DEVICE_LOCAL_BIT: u32 = 1; // If set, heap represents device memory
238pub const MEMORY_HEAP_MULTI_INSTANCE_BIT: u32 = 2; // If set, heap allocations allocate multiple instances by default
239pub const MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR: u32 = MEMORY_HEAP_MULTI_INSTANCE_BIT;
240
241pub type AccessFlags = Flags;
242pub type AccessFlagBits = u32;
243pub const ACCESS_INDIRECT_COMMAND_READ_BIT: u32 = 1; // Controls coherency of indirect command reads
244pub const ACCESS_INDEX_READ_BIT: u32 = 2; // Controls coherency of index reads
245pub const ACCESS_VERTEX_ATTRIBUTE_READ_BIT: u32 = 4; // Controls coherency of vertex attribute reads
246pub const ACCESS_UNIFORM_READ_BIT: u32 = 8; // Controls coherency of uniform buffer reads
247pub const ACCESS_INPUT_ATTACHMENT_READ_BIT: u32 = 16; // Controls coherency of input attachment reads
248pub const ACCESS_SHADER_READ_BIT: u32 = 32; // Controls coherency of shader reads
249pub const ACCESS_SHADER_WRITE_BIT: u32 = 64; // Controls coherency of shader writes
250pub const ACCESS_COLOR_ATTACHMENT_READ_BIT: u32 = 128; // Controls coherency of color attachment reads
251pub const ACCESS_COLOR_ATTACHMENT_WRITE_BIT: u32 = 256; // Controls coherency of color attachment writes
252pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT: u32 = 512; // Controls coherency of depth/stencil attachment reads
253pub const ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT: u32 = 1024; // Controls coherency of depth/stencil attachment writes
254pub const ACCESS_TRANSFER_READ_BIT: u32 = 2048; // Controls coherency of transfer reads
255pub const ACCESS_TRANSFER_WRITE_BIT: u32 = 4096; // Controls coherency of transfer writes
256pub const ACCESS_HOST_READ_BIT: u32 = 8192; // Controls coherency of host reads
257pub const ACCESS_HOST_WRITE_BIT: u32 = 16384; // Controls coherency of host writes
258pub const ACCESS_MEMORY_READ_BIT: u32 = 32768; // Controls coherency of memory reads
259pub const ACCESS_MEMORY_WRITE_BIT: u32 = 65536; // Controls coherency of memory writes
260pub const ACCESS_NONE: u32 = 0;
261pub const ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT: u32 = 33554432;
262pub const ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT: u32 = 67108864;
263pub const ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT: u32 = 134217728;
264pub const ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT: u32 = 1048576; // read access flag for reading conditional rendering predicate
265pub const ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT: u32 = 524288;
266pub const ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR: u32 = 2097152;
267pub const ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR: u32 = 4194304;
268pub const ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV: u32 =
269    ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR;
270pub const ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV: u32 =
271    ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR;
272pub const ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV: u32 =
273    ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR;
274pub const ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT: u32 = 16777216;
275pub const ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR: u32 = 8388608;
276pub const ACCESS_COMMAND_PREPROCESS_READ_BIT_NV: u32 = 131072;
277pub const ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV: u32 = 262144;
278pub const ACCESS_NONE_KHR: u32 = ACCESS_NONE;
279
280pub type BufferUsageFlags = Flags;
281pub type BufferUsageFlagBits = u32;
282pub const BUFFER_USAGE_TRANSFER_SRC_BIT: u32 = 1; // Can be used as a source of transfer operations
283pub const BUFFER_USAGE_TRANSFER_DST_BIT: u32 = 2; // Can be used as a destination of transfer operations
284pub const BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT: u32 = 4; // Can be used as TBO
285pub const BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT: u32 = 8; // Can be used as IBO
286pub const BUFFER_USAGE_UNIFORM_BUFFER_BIT: u32 = 16; // Can be used as UBO
287pub const BUFFER_USAGE_STORAGE_BUFFER_BIT: u32 = 32; // Can be used as SSBO
288pub const BUFFER_USAGE_INDEX_BUFFER_BIT: u32 = 64; // Can be used as source of fixed-function index fetch (index buffer)
289pub const BUFFER_USAGE_VERTEX_BUFFER_BIT: u32 = 128; // Can be used as source of fixed-function vertex fetch (VBO)
290pub const BUFFER_USAGE_INDIRECT_BUFFER_BIT: u32 = 256; // Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)
291pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT: u32 = 131072;
292pub const BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR: u32 = 8192;
293pub const BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR: u32 = 16384;
294pub const BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT: u32 = 2048;
295pub const BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT: u32 = 4096;
296pub const BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT: u32 = 512; // Specifies the buffer can be used as predicate in conditional rendering
297pub const BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR: u32 = 524288;
298pub const BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR: u32 = 1048576;
299pub const BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR: u32 = 1024;
300pub const BUFFER_USAGE_RAY_TRACING_BIT_NV: u32 = BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR;
301pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT: u32 = BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT;
302pub const BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR: u32 = BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT;
303pub const BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR: u32 = 32768;
304pub const BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR: u32 = 65536;
305pub const BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT: u32 = 2097152;
306pub const BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT: u32 = 4194304;
307pub const BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT: u32 = 67108864;
308pub const BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT: u32 = 8388608;
309pub const BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT: u32 = 16777216;
310
311pub type BufferCreateFlags = Flags;
312pub type BufferCreateFlagBits = u32;
313pub const BUFFER_CREATE_SPARSE_BINDING_BIT: u32 = 1; // Buffer should support sparse backing
314pub const BUFFER_CREATE_SPARSE_RESIDENCY_BIT: u32 = 2; // Buffer should support sparse backing with partial residency
315pub const BUFFER_CREATE_SPARSE_ALIASED_BIT: u32 = 4; // Buffer should support constant data access to physical memory ranges mapped into multiple locations of sparse buffers
316pub const BUFFER_CREATE_PROTECTED_BIT: u32 = 8; // Buffer requires protected memory
317pub const BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: u32 = 16;
318pub const BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT: u32 =
319    BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
320pub const BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR: u32 =
321    BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
322pub const BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: u32 = 32;
323
324pub type ShaderStageFlags = Flags;
325pub type ShaderStageFlagBits = u32;
326pub const SHADER_STAGE_VERTEX_BIT: u32 = 1;
327pub const SHADER_STAGE_TESSELLATION_CONTROL_BIT: u32 = 2;
328pub const SHADER_STAGE_TESSELLATION_EVALUATION_BIT: u32 = 4;
329pub const SHADER_STAGE_GEOMETRY_BIT: u32 = 8;
330pub const SHADER_STAGE_FRAGMENT_BIT: u32 = 16;
331pub const SHADER_STAGE_COMPUTE_BIT: u32 = 32;
332pub const SHADER_STAGE_ALL_GRAPHICS: u32 = 0x0000001F;
333pub const SHADER_STAGE_ALL: u32 = 0x7FFFFFFF;
334pub const SHADER_STAGE_RAYGEN_BIT_KHR: u32 = 256;
335pub const SHADER_STAGE_ANY_HIT_BIT_KHR: u32 = 512;
336pub const SHADER_STAGE_CLOSEST_HIT_BIT_KHR: u32 = 1024;
337pub const SHADER_STAGE_MISS_BIT_KHR: u32 = 2048;
338pub const SHADER_STAGE_INTERSECTION_BIT_KHR: u32 = 4096;
339pub const SHADER_STAGE_CALLABLE_BIT_KHR: u32 = 8192;
340pub const SHADER_STAGE_RAYGEN_BIT_NV: u32 = SHADER_STAGE_RAYGEN_BIT_KHR;
341pub const SHADER_STAGE_ANY_HIT_BIT_NV: u32 = SHADER_STAGE_ANY_HIT_BIT_KHR;
342pub const SHADER_STAGE_CLOSEST_HIT_BIT_NV: u32 = SHADER_STAGE_CLOSEST_HIT_BIT_KHR;
343pub const SHADER_STAGE_MISS_BIT_NV: u32 = SHADER_STAGE_MISS_BIT_KHR;
344pub const SHADER_STAGE_INTERSECTION_BIT_NV: u32 = SHADER_STAGE_INTERSECTION_BIT_KHR;
345pub const SHADER_STAGE_CALLABLE_BIT_NV: u32 = SHADER_STAGE_CALLABLE_BIT_KHR;
346pub const SHADER_STAGE_TASK_BIT_NV: u32 = SHADER_STAGE_TASK_BIT_EXT;
347pub const SHADER_STAGE_MESH_BIT_NV: u32 = SHADER_STAGE_MESH_BIT_EXT;
348pub const SHADER_STAGE_TASK_BIT_EXT: u32 = 64;
349pub const SHADER_STAGE_MESH_BIT_EXT: u32 = 128;
350pub const SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI: u32 = 16384;
351
352pub type ImageUsageFlags = Flags;
353pub type ImageUsageFlagBits = u32;
354pub const IMAGE_USAGE_TRANSFER_SRC_BIT: u32 = 1; // Can be used as a source of transfer operations
355pub const IMAGE_USAGE_TRANSFER_DST_BIT: u32 = 2; // Can be used as a destination of transfer operations
356pub const IMAGE_USAGE_SAMPLED_BIT: u32 = 4; // Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
357pub const IMAGE_USAGE_STORAGE_BIT: u32 = 8; // Can be used as storage image (STORAGE_IMAGE descriptor type)
358pub const IMAGE_USAGE_COLOR_ATTACHMENT_BIT: u32 = 16; // Can be used as framebuffer color attachment
359pub const IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT: u32 = 32; // Can be used as framebuffer depth/stencil attachment
360pub const IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT: u32 = 64; // Image data not needed outside of rendering
361pub const IMAGE_USAGE_INPUT_ATTACHMENT_BIT: u32 = 128; // Can be used as framebuffer input attachment
362pub const IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR: u32 = 1024;
363pub const IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR: u32 = 2048;
364pub const IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR: u32 = 4096;
365pub const IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV: u32 =
366    IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR;
367pub const IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT: u32 = 512;
368pub const IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: u32 = 256;
369pub const IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR: u32 = 8192;
370pub const IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR: u32 = 16384;
371pub const IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR: u32 = 32768;
372pub const IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT: u32 = 524288;
373pub const IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI: u32 = 262144;
374pub const IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM: u32 = 1048576;
375pub const IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM: u32 = 2097152;
376
377pub type ImageCreateFlags = Flags;
378pub type ImageCreateFlagBits = u32;
379pub const IMAGE_CREATE_SPARSE_BINDING_BIT: u32 = 1; // Image should support sparse backing
380pub const IMAGE_CREATE_SPARSE_RESIDENCY_BIT: u32 = 2; // Image should support sparse backing with partial residency
381pub const IMAGE_CREATE_SPARSE_ALIASED_BIT: u32 = 4; // Image should support constant data access to physical memory ranges mapped into multiple locations of sparse images
382pub const IMAGE_CREATE_MUTABLE_FORMAT_BIT: u32 = 8; // Allows image views to have different format than the base image
383pub const IMAGE_CREATE_CUBE_COMPATIBLE_BIT: u32 = 16; // Allows creating image views with cube type from the created image
384pub const IMAGE_CREATE_ALIAS_BIT: u32 = 1024;
385pub const IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT: u32 = 64; // Allows using VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions when binding memory to the image
386pub const IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT: u32 = 32; // The 3D image can be viewed as a 2D or 2D array image
387pub const IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT: u32 = 128;
388pub const IMAGE_CREATE_EXTENDED_USAGE_BIT: u32 = 256;
389pub const IMAGE_CREATE_PROTECTED_BIT: u32 = 2048; // Image requires protected memory
390pub const IMAGE_CREATE_DISJOINT_BIT: u32 = 512;
391pub const IMAGE_CREATE_CORNER_SAMPLED_BIT_NV: u32 = 8192;
392pub const IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR: u32 =
393    IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT;
394pub const IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR: u32 = IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT;
395pub const IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR: u32 =
396    IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT;
397pub const IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR: u32 = IMAGE_CREATE_EXTENDED_USAGE_BIT;
398pub const IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT: u32 = 4096;
399pub const IMAGE_CREATE_DISJOINT_BIT_KHR: u32 = IMAGE_CREATE_DISJOINT_BIT;
400pub const IMAGE_CREATE_ALIAS_BIT_KHR: u32 = IMAGE_CREATE_ALIAS_BIT;
401pub const IMAGE_CREATE_SUBSAMPLED_BIT_EXT: u32 = 16384;
402pub const IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: u32 = 65536;
403pub const IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT: u32 = 262144;
404pub const IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT: u32 = 131072; // Image is created with a layout where individual slices are capable of being used as 2D images
405pub const IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM: u32 = 32768;
406
407pub type ImageViewCreateFlags = Flags;
408pub type ImageViewCreateFlagBits = u32;
409pub const IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT: u32 = 1;
410pub const IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: u32 = 4;
411pub const IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT: u32 = 2;
412
413pub type PipelineCreateFlags = Flags;
414pub type PipelineCreateFlagBits = u32;
415pub const PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT: u32 = 1;
416pub const PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT: u32 = 2;
417pub const PIPELINE_CREATE_DERIVATIVE_BIT: u32 = 4;
418pub const PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT: u32 = 8;
419pub const PIPELINE_CREATE_DISPATCH_BASE_BIT: u32 = 16;
420pub const PIPELINE_CREATE_DISPATCH_BASE: u32 = PIPELINE_CREATE_DISPATCH_BASE_BIT;
421pub const PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT: u32 = 256;
422pub const PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT: u32 = 512;
423pub const PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: u32 = 2097152;
424pub const PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: u32 =
425    PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR; // Backwards-compatible alias containing a typo
426pub const PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT: u32 = 4194304;
427pub const PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT: u32 =
428    PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT; // Backwards-compatible alias containing a typo
429pub const PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR: u32 =
430    PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT;
431pub const PIPELINE_CREATE_DISPATCH_BASE_KHR: u32 = PIPELINE_CREATE_DISPATCH_BASE;
432pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR: u32 = 16384;
433pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR: u32 = 32768;
434pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR: u32 = 65536;
435pub const PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR: u32 = 131072;
436pub const PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR: u32 = 4096;
437pub const PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR: u32 = 8192;
438pub const PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR: u32 = 524288;
439pub const PIPELINE_CREATE_DEFER_COMPILE_BIT_NV: u32 = 32;
440pub const PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR: u32 = 64;
441pub const PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR: u32 = 128;
442pub const PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV: u32 = 262144;
443pub const PIPELINE_CREATE_LIBRARY_BIT_KHR: u32 = 2048;
444pub const PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT: u32 =
445    PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT;
446pub const PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT: u32 =
447    PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT;
448pub const PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT: u32 = 536870912;
449pub const PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT: u32 = 8388608;
450pub const PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT: u32 = 1024;
451pub const PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV: u32 = 1048576;
452pub const PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT: u32 = 33554432;
453pub const PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT: u32 = 67108864;
454pub const PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT: u32 = 16777216;
455pub const PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT: u32 = 134217728;
456pub const PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT: u32 = 1073741824;
457
458pub type ColorComponentFlags = Flags;
459pub type ColorComponentFlagBits = u32;
460pub const COLOR_COMPONENT_R_BIT: u32 = 1;
461pub const COLOR_COMPONENT_G_BIT: u32 = 2;
462pub const COLOR_COMPONENT_B_BIT: u32 = 4;
463pub const COLOR_COMPONENT_A_BIT: u32 = 8;
464
465pub type FenceCreateFlags = Flags;
466pub type FenceCreateFlagBits = u32;
467pub const FENCE_CREATE_SIGNALED_BIT: u32 = 1;
468
469pub type SemaphoreCreateFlags = Flags;
470
471pub type FormatFeatureFlags = Flags;
472pub type FormatFeatureFlagBits = u32;
473pub const FORMAT_FEATURE_SAMPLED_IMAGE_BIT: u32 = 1; // Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
474pub const FORMAT_FEATURE_STORAGE_IMAGE_BIT: u32 = 2; // Format can be used for storage images (STORAGE_IMAGE descriptor type)
475pub const FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT: u32 = 4; // Format supports atomic operations in case it is used for storage images
476pub const FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT: u32 = 8; // Format can be used for uniform texel buffers (TBOs)
477pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT: u32 = 16; // Format can be used for storage texel buffers (IBOs)
478pub const FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT: u32 = 32; // Format supports atomic operations in case it is used for storage texel buffers
479pub const FORMAT_FEATURE_VERTEX_BUFFER_BIT: u32 = 64; // Format can be used for vertex buffers (VBOs)
480pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BIT: u32 = 128; // Format can be used for color attachment images
481pub const FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT: u32 = 256; // Format supports blending in case it is used for color attachment images
482pub const FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT: u32 = 512; // Format can be used for depth/stencil attachment images
483pub const FORMAT_FEATURE_BLIT_SRC_BIT: u32 = 1024; // Format can be used as the source image of blits with vkCmdBlitImage
484pub const FORMAT_FEATURE_BLIT_DST_BIT: u32 = 2048; // Format can be used as the destination image of blits with vkCmdBlitImage
485pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT: u32 = 4096; // Format can be filtered with VK_FILTER_LINEAR when being sampled
486pub const FORMAT_FEATURE_TRANSFER_SRC_BIT: u32 = 16384; // Format can be used as the source image of image transfer commands
487pub const FORMAT_FEATURE_TRANSFER_DST_BIT: u32 = 32768; // Format can be used as the destination image of image transfer commands
488pub const FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT: u32 = 131072; // Format can have midpoint rather than cosited chroma samples
489pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT: u32 = 262144; // Format can be used with linear filtering whilst color conversion is enabled
490pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT: u32 =
491    524288; // Format can have different chroma, min and mag filters
492pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT: u32 =
493    1048576;
494pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT: u32 = 2097152;
495pub const FORMAT_FEATURE_DISJOINT_BIT: u32 = 4194304; // Format supports disjoint planes
496pub const FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT: u32 = 8388608; // Format can have cosited rather than midpoint chroma samples
497pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT: u32 = 65536; // Format can be used with min/max reduction filtering
498pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG: u32 =
499    FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT; // Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled
500pub const FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR: u32 = 33554432;
501pub const FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR: u32 = 67108864;
502pub const FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR: u32 = FORMAT_FEATURE_TRANSFER_SRC_BIT;
503pub const FORMAT_FEATURE_TRANSFER_DST_BIT_KHR: u32 = FORMAT_FEATURE_TRANSFER_DST_BIT;
504pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT: u32 =
505    FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT;
506pub const FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR: u32 = 536870912;
507pub const FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR: u32 =
508    FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT;
509pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR: u32 =
510    FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT;
511pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR:
512    u32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT;
513pub const FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR:
514    u32 = FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT;
515pub 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;
516pub const FORMAT_FEATURE_DISJOINT_BIT_KHR: u32 = FORMAT_FEATURE_DISJOINT_BIT;
517pub const FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR: u32 =
518    FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT;
519pub const FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT: u32 = 8192;
520pub const FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT: u32 = 16777216;
521pub const FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: u32 = 1073741824;
522pub const FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR: u32 = 134217728;
523pub const FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR: u32 = 268435456;
524
525pub type QueryControlFlags = Flags;
526pub type QueryControlFlagBits = u32;
527pub const QUERY_CONTROL_PRECISE_BIT: u32 = 1; // Require precise results to be collected by the query
528
529pub type QueryResultFlags = Flags;
530pub type QueryResultFlagBits = u32;
531pub const QUERY_RESULT_64_BIT: u32 = 1; // Results of the queries are written to the destination buffer as 64-bit values
532pub const QUERY_RESULT_WAIT_BIT: u32 = 2; // Results of the queries are waited on before proceeding with the result copy
533pub const QUERY_RESULT_WITH_AVAILABILITY_BIT: u32 = 4; // Besides the results of the query, the availability of the results is also written
534pub const QUERY_RESULT_PARTIAL_BIT: u32 = 8; // Copy the partial results of the query even if the final results are not available
535pub const QUERY_RESULT_WITH_STATUS_BIT_KHR: u32 = 16;
536
537pub type ShaderModuleCreateFlags = Flags;
538
539pub type EventCreateFlags = Flags;
540pub type EventCreateFlagBits = u32;
541pub const EVENT_CREATE_DEVICE_ONLY_BIT: u32 = 1;
542pub const EVENT_CREATE_DEVICE_ONLY_BIT_KHR: u32 = EVENT_CREATE_DEVICE_ONLY_BIT;
543
544pub type CommandPoolCreateFlags = Flags;
545pub type CommandPoolCreateFlagBits = u32;
546pub const COMMAND_POOL_CREATE_TRANSIENT_BIT: u32 = 1; // Command buffers have a short lifetime
547pub const COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT: u32 = 2; // Command buffers may release their memory individually
548pub const COMMAND_POOL_CREATE_PROTECTED_BIT: u32 = 4; // Command buffers allocated from pool are protected command buffers
549
550pub type CommandPoolResetFlags = Flags;
551pub type CommandPoolResetFlagBits = u32;
552pub const COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT: u32 = 1; // Release resources owned by the pool
553
554pub type CommandBufferResetFlags = Flags;
555pub type CommandBufferResetFlagBits = u32;
556pub const COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT: u32 = 1; // Release resources owned by the buffer
557
558pub type CommandBufferUsageFlags = Flags;
559pub type CommandBufferUsageFlagBits = u32;
560pub const COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT: u32 = 1;
561pub const COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT: u32 = 2;
562pub const COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT: u32 = 4; // Command buffer may be submitted/executed more than once simultaneously
563
564pub type QueryPipelineStatisticFlags = Flags;
565pub type QueryPipelineStatisticFlagBits = u32;
566pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT: u32 = 1; // Optional
567pub const QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT: u32 = 2; // Optional
568pub const QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: u32 = 4; // Optional
569pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT: u32 = 8; // Optional
570pub const QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT: u32 = 16; // Optional
571pub const QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT: u32 = 32; // Optional
572pub const QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT: u32 = 64; // Optional
573pub const QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT: u32 = 128; // Optional
574pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: u32 = 256; // Optional
575pub const QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: u32 = 512; // Optional
576pub const QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT: u32 = 1024; // Optional
577pub const QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT: u32 = 2048;
578pub const QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT: u32 = 4096;
579
580pub type MemoryMapFlags = Flags;
581
582pub type ImageAspectFlags = Flags;
583pub type ImageAspectFlagBits = u32;
584pub const IMAGE_ASPECT_COLOR_BIT: u32 = 1;
585pub const IMAGE_ASPECT_DEPTH_BIT: u32 = 2;
586pub const IMAGE_ASPECT_STENCIL_BIT: u32 = 4;
587pub const IMAGE_ASPECT_METADATA_BIT: u32 = 8;
588pub const IMAGE_ASPECT_PLANE_0_BIT: u32 = 16;
589pub const IMAGE_ASPECT_PLANE_1_BIT: u32 = 32;
590pub const IMAGE_ASPECT_PLANE_2_BIT: u32 = 64;
591pub const IMAGE_ASPECT_NONE: u32 = 0;
592pub const IMAGE_ASPECT_PLANE_0_BIT_KHR: u32 = IMAGE_ASPECT_PLANE_0_BIT;
593pub const IMAGE_ASPECT_PLANE_1_BIT_KHR: u32 = IMAGE_ASPECT_PLANE_1_BIT;
594pub const IMAGE_ASPECT_PLANE_2_BIT_KHR: u32 = IMAGE_ASPECT_PLANE_2_BIT;
595pub const IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT: u32 = 128;
596pub const IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT: u32 = 256;
597pub const IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT: u32 = 512;
598pub const IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT: u32 = 1024;
599pub const IMAGE_ASPECT_NONE_KHR: u32 = IMAGE_ASPECT_NONE;
600
601pub type SparseMemoryBindFlags = Flags;
602pub type SparseMemoryBindFlagBits = u32;
603pub const SPARSE_MEMORY_BIND_METADATA_BIT: u32 = 1; // Operation binds resource metadata to memory
604
605pub type SparseImageFormatFlags = Flags;
606pub type SparseImageFormatFlagBits = u32;
607pub const SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT: u32 = 1; // Image uses a single mip tail region for all array layers
608pub const SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT: u32 = 2; // Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels.
609pub const SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT: u32 = 4; // Image uses a non-standard sparse image block dimensions
610
611pub type SubpassDescriptionFlags = Flags;
612pub type SubpassDescriptionFlagBits = u32;
613pub const SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX: u32 = 1;
614pub const SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX: u32 = 2;
615pub const SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM: u32 = 4;
616pub const SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM: u32 = 8;
617pub const SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM: u32 =
618    SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT;
619pub const SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM: u32 =
620    SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT;
621pub const SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM: u32 =
622    SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT;
623pub const SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT: u32 = 16;
624pub const SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT: u32 = 32;
625pub const SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT: u32 = 64;
626pub const SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT: u32 = 128;
627
628pub type PipelineStageFlags = Flags;
629pub type PipelineStageFlagBits = u32;
630pub const PIPELINE_STAGE_TOP_OF_PIPE_BIT: u32 = 1; // Before subsequent commands are processed
631pub const PIPELINE_STAGE_DRAW_INDIRECT_BIT: u32 = 2; // Draw/DispatchIndirect command fetch
632pub const PIPELINE_STAGE_VERTEX_INPUT_BIT: u32 = 4; // Vertex/index fetch
633pub const PIPELINE_STAGE_VERTEX_SHADER_BIT: u32 = 8; // Vertex shading
634pub const PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT: u32 = 16; // Tessellation control shading
635pub const PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT: u32 = 32; // Tessellation evaluation shading
636pub const PIPELINE_STAGE_GEOMETRY_SHADER_BIT: u32 = 64; // Geometry shading
637pub const PIPELINE_STAGE_FRAGMENT_SHADER_BIT: u32 = 128; // Fragment shading
638pub const PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT: u32 = 256; // Early fragment (depth and stencil) tests
639pub const PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT: u32 = 512; // Late fragment (depth and stencil) tests
640pub const PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT: u32 = 1024; // Color attachment writes
641pub const PIPELINE_STAGE_COMPUTE_SHADER_BIT: u32 = 2048; // Compute shading
642pub const PIPELINE_STAGE_TRANSFER_BIT: u32 = 4096; // Transfer/copy operations
643pub const PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT: u32 = 8192; // After previous commands have completed
644pub const PIPELINE_STAGE_HOST_BIT: u32 = 16384; // Indicates host (CPU) is a source/sink of the dependency
645pub const PIPELINE_STAGE_ALL_GRAPHICS_BIT: u32 = 32768; // All stages of the graphics pipeline
646pub const PIPELINE_STAGE_ALL_COMMANDS_BIT: u32 = 65536; // All stages supported on the queue
647pub const PIPELINE_STAGE_NONE: u32 = 0;
648pub const PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT: u32 = 16777216;
649pub const PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT: u32 = 262144; // A pipeline stage for conditional rendering predicate fetch
650pub const PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR: u32 = 33554432;
651pub const PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR: u32 = 2097152;
652pub const PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV: u32 =
653    PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR;
654pub const PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV: u32 = PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR;
655pub const PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV: u32 =
656    PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR;
657pub const PIPELINE_STAGE_TASK_SHADER_BIT_NV: u32 = PIPELINE_STAGE_TASK_SHADER_BIT_EXT;
658pub const PIPELINE_STAGE_MESH_SHADER_BIT_NV: u32 = PIPELINE_STAGE_MESH_SHADER_BIT_EXT;
659pub const PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT: u32 = 8388608;
660pub const PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR: u32 = 4194304;
661pub const PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV: u32 = 131072;
662pub const PIPELINE_STAGE_NONE_KHR: u32 = PIPELINE_STAGE_NONE;
663pub const PIPELINE_STAGE_TASK_SHADER_BIT_EXT: u32 = 524288;
664pub const PIPELINE_STAGE_MESH_SHADER_BIT_EXT: u32 = 1048576;
665
666pub type SampleCountFlags = Flags;
667pub type SampleCountFlagBits = u32;
668pub const SAMPLE_COUNT_1_BIT: u32 = 1; // Sample count 1 supported
669pub const SAMPLE_COUNT_2_BIT: u32 = 2; // Sample count 2 supported
670pub const SAMPLE_COUNT_4_BIT: u32 = 4; // Sample count 4 supported
671pub const SAMPLE_COUNT_8_BIT: u32 = 8; // Sample count 8 supported
672pub const SAMPLE_COUNT_16_BIT: u32 = 16; // Sample count 16 supported
673pub const SAMPLE_COUNT_32_BIT: u32 = 32; // Sample count 32 supported
674pub const SAMPLE_COUNT_64_BIT: u32 = 64; // Sample count 64 supported
675
676pub type AttachmentDescriptionFlags = Flags;
677pub type AttachmentDescriptionFlagBits = u32;
678pub const ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT: u32 = 1; // The attachment may alias physical memory of another attachment in the same render pass
679
680pub type StencilFaceFlags = Flags;
681pub type StencilFaceFlagBits = u32;
682pub const STENCIL_FACE_FRONT_BIT: u32 = 1; // Front face
683pub const STENCIL_FACE_BACK_BIT: u32 = 2; // Back face
684pub const STENCIL_FACE_FRONT_AND_BACK: u32 = 0x00000003; // Front and back faces
685pub const STENCIL_FRONT_AND_BACK: u32 = STENCIL_FACE_FRONT_AND_BACK; // Backwards-compatible alias containing a typo
686
687pub type CullModeFlags = Flags;
688pub type CullModeFlagBits = u32;
689pub const CULL_MODE_NONE: u32 = 0;
690pub const CULL_MODE_FRONT_BIT: u32 = 1;
691pub const CULL_MODE_BACK_BIT: u32 = 2;
692pub const CULL_MODE_FRONT_AND_BACK: u32 = 0x00000003;
693
694pub type DescriptorPoolCreateFlags = Flags;
695pub type DescriptorPoolCreateFlagBits = u32;
696pub const DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT: u32 = 1; // Descriptor sets may be freed individually
697pub const DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT: u32 = 2;
698pub const DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT: u32 =
699    DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT;
700pub const DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE: u32 =
701    DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT;
702pub const DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT: u32 = 4;
703
704pub type DescriptorPoolResetFlags = Flags;
705
706pub type DependencyFlags = Flags;
707pub type DependencyFlagBits = u32;
708pub const DEPENDENCY_BY_REGION_BIT: u32 = 1; // Dependency is per pixel region
709pub const DEPENDENCY_DEVICE_GROUP_BIT: u32 = 4; // Dependency is across devices
710pub const DEPENDENCY_VIEW_LOCAL_BIT: u32 = 2;
711pub const DEPENDENCY_VIEW_LOCAL_BIT_KHR: u32 = DEPENDENCY_VIEW_LOCAL_BIT;
712pub const DEPENDENCY_DEVICE_GROUP_BIT_KHR: u32 = DEPENDENCY_DEVICE_GROUP_BIT;
713pub const DEPENDENCY_FEEDBACK_LOOP_BIT_EXT: u32 = 8; // Dependency may be a feedback loop
714
715pub type SubgroupFeatureFlags = Flags;
716pub type SubgroupFeatureFlagBits = u32;
717pub const SUBGROUP_FEATURE_BASIC_BIT: u32 = 1; // Basic subgroup operations
718pub const SUBGROUP_FEATURE_VOTE_BIT: u32 = 2; // Vote subgroup operations
719pub const SUBGROUP_FEATURE_ARITHMETIC_BIT: u32 = 4; // Arithmetic subgroup operations
720pub const SUBGROUP_FEATURE_BALLOT_BIT: u32 = 8; // Ballot subgroup operations
721pub const SUBGROUP_FEATURE_SHUFFLE_BIT: u32 = 16; // Shuffle subgroup operations
722pub const SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT: u32 = 32; // Shuffle relative subgroup operations
723pub const SUBGROUP_FEATURE_CLUSTERED_BIT: u32 = 64; // Clustered subgroup operations
724pub const SUBGROUP_FEATURE_QUAD_BIT: u32 = 128; // Quad subgroup operations
725pub const SUBGROUP_FEATURE_PARTITIONED_BIT_NV: u32 = 256;
726
727pub type IndirectCommandsLayoutUsageFlagsNV = Flags;
728pub type IndirectCommandsLayoutUsageFlagBitsNV = u32;
729pub const INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV: u32 = 1;
730pub const INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV: u32 = 2;
731pub const INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV: u32 = 4;
732
733pub type IndirectStateFlagsNV = Flags;
734pub type IndirectStateFlagBitsNV = u32;
735pub const INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV: u32 = 1;
736
737pub type GeometryFlagsKHR = Flags;
738pub type GeometryFlagBitsKHR = u32;
739pub const GEOMETRY_OPAQUE_BIT_KHR: u32 = 1;
740pub const GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR: u32 = 2;
741pub const GEOMETRY_OPAQUE_BIT_NV: u32 = GEOMETRY_OPAQUE_BIT_KHR;
742pub const GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV: u32 =
743    GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR;
744
745pub type GeometryFlagsNV = GeometryFlagsKHR;
746
747pub type GeometryInstanceFlagsKHR = Flags;
748pub type GeometryInstanceFlagBitsKHR = u32;
749pub const GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR: u32 = 1;
750pub const GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR: u32 = 2;
751pub const GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR: u32 = 4;
752pub const GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR: u32 = 8;
753pub const GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR: u32 =
754    GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR;
755pub const GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV: u32 =
756    GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR;
757pub const GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV: u32 =
758    GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR;
759pub const GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV: u32 = GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR;
760pub const GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV: u32 = GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR;
761pub const GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT: u32 = 16;
762pub const GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT: u32 = 32;
763
764pub type GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
765
766pub type BuildAccelerationStructureFlagsKHR = Flags;
767pub type BuildAccelerationStructureFlagBitsKHR = u32;
768pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR: u32 = 1;
769pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR: u32 = 2;
770pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR: u32 = 4;
771pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR: u32 = 8;
772pub const BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR: u32 = 16;
773pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV: u32 =
774    BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR;
775pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV: u32 =
776    BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR;
777pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV: u32 =
778    BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
779pub const BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV: u32 =
780    BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR;
781pub const BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV: u32 =
782    BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR;
783pub const BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV: u32 = 32;
784pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT: u32 = 64;
785pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT: u32 = 128;
786pub const BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT: u32 = 256;
787
788pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
789
790pub type PrivateDataSlotCreateFlags = Flags;
791
792pub type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlags;
793
794pub type AccelerationStructureCreateFlagsKHR = Flags;
795pub type AccelerationStructureCreateFlagBitsKHR = u32;
796pub const ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR: u32 = 1;
797pub const ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT: u32 = 8;
798pub const ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV: u32 = 4;
799
800pub type DescriptorUpdateTemplateCreateFlags = Flags;
801
802pub type DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
803
804pub type PipelineCreationFeedbackFlags = Flags;
805pub type PipelineCreationFeedbackFlagBits = u32;
806pub const PIPELINE_CREATION_FEEDBACK_VALID_BIT: u32 = 1;
807pub const PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT: u32 = PIPELINE_CREATION_FEEDBACK_VALID_BIT;
808pub const PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT: u32 = 2;
809pub const PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT: u32 =
810    PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT;
811pub const PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT: u32 = 4;
812pub const PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT: u32 =
813    PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT;
814
815pub type PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlags;
816
817pub type PerformanceCounterDescriptionFlagsKHR = Flags;
818pub type PerformanceCounterDescriptionFlagBitsKHR = u32;
819pub const PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR: u32 = 1;
820pub const PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR: u32 =
821    PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR; // Backwards-compatible alias containing a typo
822pub const PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR: u32 = 2;
823pub const PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR: u32 =
824    PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR; // Backwards-compatible alias containing a typo
825
826pub type AcquireProfilingLockFlagsKHR = Flags;
827pub type AcquireProfilingLockFlagBitsKHR = u32;
828
829pub type SemaphoreWaitFlags = Flags;
830pub type SemaphoreWaitFlagBits = u32;
831pub const SEMAPHORE_WAIT_ANY_BIT: u32 = 1;
832pub const SEMAPHORE_WAIT_ANY_BIT_KHR: u32 = SEMAPHORE_WAIT_ANY_BIT;
833
834pub type SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
835
836pub type PipelineCompilerControlFlagsAMD = Flags;
837pub type PipelineCompilerControlFlagBitsAMD = u32;
838
839pub type ShaderCorePropertiesFlagsAMD = Flags;
840pub type ShaderCorePropertiesFlagBitsAMD = u32;
841
842pub type DeviceDiagnosticsConfigFlagsNV = Flags;
843pub type DeviceDiagnosticsConfigFlagBitsNV = u32;
844pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV: u32 = 1;
845pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV: u32 = 2;
846pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV: u32 = 4;
847pub const DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV: u32 = 8;
848
849pub type AccessFlags2 = Flags64;
850
851pub type AccessFlags2KHR = AccessFlags2;
852
853pub type PipelineStageFlags2 = Flags64;
854
855pub type PipelineStageFlags2KHR = PipelineStageFlags2;
856
857pub type AccelerationStructureMotionInfoFlagsNV = Flags;
858
859pub type AccelerationStructureMotionInstanceFlagsNV = Flags;
860
861pub type FormatFeatureFlags2 = Flags64;
862
863pub type FormatFeatureFlags2KHR = FormatFeatureFlags2;
864
865pub type RenderingFlags = Flags;
866pub type RenderingFlagBits = u32;
867pub const RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT: u32 = 1;
868pub const RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR: u32 =
869    RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT;
870pub const RENDERING_SUSPENDING_BIT: u32 = 2;
871pub const RENDERING_SUSPENDING_BIT_KHR: u32 = RENDERING_SUSPENDING_BIT;
872pub const RENDERING_RESUMING_BIT: u32 = 4;
873pub const RENDERING_RESUMING_BIT_KHR: u32 = RENDERING_RESUMING_BIT;
874pub const RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT: u32 = 8;
875
876pub type MemoryDecompressionMethodFlagsNV = Flags64;
877
878pub type RenderingFlagsKHR = RenderingFlags;
879
880pub type BuildMicromapFlagsEXT = Flags;
881pub type BuildMicromapFlagBitsEXT = u32;
882pub const BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT: u32 = 1;
883pub const BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT: u32 = 2;
884pub const BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT: u32 = 4;
885
886pub type MicromapCreateFlagsEXT = Flags;
887pub type MicromapCreateFlagBitsEXT = u32;
888pub const MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT: u32 = 1;
889
890pub type DirectDriverLoadingFlagsLUNARG = Flags;
891
892pub type CompositeAlphaFlagsKHR = Flags;
893pub type CompositeAlphaFlagBitsKHR = u32;
894pub const COMPOSITE_ALPHA_OPAQUE_BIT_KHR: u32 = 1;
895pub const COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR: u32 = 2;
896pub const COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR: u32 = 4;
897pub const COMPOSITE_ALPHA_INHERIT_BIT_KHR: u32 = 8;
898
899pub type DisplayPlaneAlphaFlagsKHR = Flags;
900pub type DisplayPlaneAlphaFlagBitsKHR = u32;
901pub const DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR: u32 = 1;
902pub const DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR: u32 = 2;
903pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR: u32 = 4;
904pub const DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR: u32 = 8;
905
906pub type SurfaceTransformFlagsKHR = Flags;
907pub type SurfaceTransformFlagBitsKHR = u32;
908pub const SURFACE_TRANSFORM_IDENTITY_BIT_KHR: u32 = 1;
909pub const SURFACE_TRANSFORM_ROTATE_90_BIT_KHR: u32 = 2;
910pub const SURFACE_TRANSFORM_ROTATE_180_BIT_KHR: u32 = 4;
911pub const SURFACE_TRANSFORM_ROTATE_270_BIT_KHR: u32 = 8;
912pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR: u32 = 16;
913pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR: u32 = 32;
914pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR: u32 = 64;
915pub const SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR: u32 = 128;
916pub const SURFACE_TRANSFORM_INHERIT_BIT_KHR: u32 = 256;
917
918pub type SwapchainCreateFlagsKHR = Flags;
919pub type SwapchainCreateFlagBitsKHR = u32;
920pub const SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR: u32 = 1; // Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
921pub const SWAPCHAIN_CREATE_PROTECTED_BIT_KHR: u32 = 2; // Swapchain is protected
922pub const SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR: u32 = 4;
923pub const SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT: u32 = 8;
924
925pub type DisplayModeCreateFlagsKHR = Flags;
926
927pub type DisplaySurfaceCreateFlagsKHR = Flags;
928
929pub type AndroidSurfaceCreateFlagsKHR = Flags;
930
931pub type ViSurfaceCreateFlagsNN = Flags;
932
933pub type WaylandSurfaceCreateFlagsKHR = Flags;
934
935pub type Win32SurfaceCreateFlagsKHR = Flags;
936
937pub type XlibSurfaceCreateFlagsKHR = Flags;
938
939pub type XcbSurfaceCreateFlagsKHR = Flags;
940
941pub type DirectFBSurfaceCreateFlagsEXT = Flags;
942
943pub type IOSSurfaceCreateFlagsMVK = Flags;
944
945pub type MacOSSurfaceCreateFlagsMVK = Flags;
946
947pub type MetalSurfaceCreateFlagsEXT = Flags;
948
949pub type ImagePipeSurfaceCreateFlagsFUCHSIA = Flags;
950
951pub type StreamDescriptorSurfaceCreateFlagsGGP = Flags;
952
953pub type HeadlessSurfaceCreateFlagsEXT = Flags;
954
955pub type ScreenSurfaceCreateFlagsQNX = Flags;
956
957pub type PeerMemoryFeatureFlags = Flags;
958pub type PeerMemoryFeatureFlagBits = u32;
959pub const PEER_MEMORY_FEATURE_COPY_SRC_BIT: u32 = 1; // Can read with vkCmdCopy commands
960pub const PEER_MEMORY_FEATURE_COPY_DST_BIT: u32 = 2; // Can write with vkCmdCopy commands
961pub const PEER_MEMORY_FEATURE_GENERIC_SRC_BIT: u32 = 4; // Can read with any access type/command
962pub const PEER_MEMORY_FEATURE_GENERIC_DST_BIT: u32 = 8; // Can write with and access type/command
963pub const PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR: u32 = PEER_MEMORY_FEATURE_COPY_SRC_BIT;
964pub const PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR: u32 = PEER_MEMORY_FEATURE_COPY_DST_BIT;
965pub const PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR: u32 = PEER_MEMORY_FEATURE_GENERIC_SRC_BIT;
966pub const PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR: u32 = PEER_MEMORY_FEATURE_GENERIC_DST_BIT;
967
968pub type PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
969
970pub type MemoryAllocateFlags = Flags;
971pub type MemoryAllocateFlagBits = u32;
972pub const MEMORY_ALLOCATE_DEVICE_MASK_BIT: u32 = 1; // Force allocation on specific devices
973pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT: u32 = 2;
974pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT: u32 = 4;
975pub const MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR: u32 = MEMORY_ALLOCATE_DEVICE_MASK_BIT;
976pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR: u32 = MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT;
977pub const MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR: u32 =
978    MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT;
979
980pub type MemoryAllocateFlagsKHR = MemoryAllocateFlags;
981
982pub type DeviceGroupPresentModeFlagsKHR = Flags;
983pub type DeviceGroupPresentModeFlagBitsKHR = u32;
984pub const DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR: u32 = 1; // Present from local memory
985pub const DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR: u32 = 2; // Present from remote memory
986pub const DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR: u32 = 4; // Present sum of local and/or remote memory
987pub const DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR: u32 = 8; // Each physical device presents from local memory
988
989pub type DebugReportFlagsEXT = Flags;
990pub type DebugReportFlagBitsEXT = u32;
991pub const DEBUG_REPORT_INFORMATION_BIT_EXT: u32 = 1;
992pub const DEBUG_REPORT_WARNING_BIT_EXT: u32 = 2;
993pub const DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT: u32 = 4;
994pub const DEBUG_REPORT_ERROR_BIT_EXT: u32 = 8;
995pub const DEBUG_REPORT_DEBUG_BIT_EXT: u32 = 16;
996
997pub type CommandPoolTrimFlags = Flags;
998
999pub type CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
1000
1001pub type ExternalMemoryHandleTypeFlagsNV = Flags;
1002pub type ExternalMemoryHandleTypeFlagBitsNV = u32;
1003pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV: u32 = 1;
1004pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV: u32 = 2;
1005pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV: u32 = 4;
1006pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV: u32 = 8;
1007
1008pub type ExternalMemoryFeatureFlagsNV = Flags;
1009pub type ExternalMemoryFeatureFlagBitsNV = u32;
1010pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV: u32 = 1;
1011pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV: u32 = 2;
1012pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV: u32 = 4;
1013
1014pub type ExternalMemoryHandleTypeFlags = Flags;
1015pub type ExternalMemoryHandleTypeFlagBits = u32;
1016pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT: u32 = 1;
1017pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT: u32 = 2;
1018pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: u32 = 4;
1019pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT: u32 = 8;
1020pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT: u32 = 16;
1021pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT: u32 = 32;
1022pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT: u32 = 64;
1023pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR: u32 =
1024    EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT;
1025pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR: u32 =
1026    EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT;
1027pub const EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR: u32 =
1028    EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
1029pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR: u32 =
1030    EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT;
1031pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR: u32 =
1032    EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT;
1033pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR: u32 =
1034    EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT;
1035pub const EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR: u32 =
1036    EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT;
1037pub const EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT: u32 = 512;
1038pub const EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT: u32 = 128;
1039pub const EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT: u32 = 256;
1040pub const EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV: u32 = 4096;
1041
1042pub type ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
1043
1044pub type ExternalMemoryFeatureFlags = Flags;
1045pub type ExternalMemoryFeatureFlagBits = u32;
1046pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT: u32 = 1;
1047pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT: u32 = 2;
1048pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT: u32 = 4;
1049pub const EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR: u32 =
1050    EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT;
1051pub const EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR: u32 = EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT;
1052pub const EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR: u32 = EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT;
1053
1054pub type ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
1055
1056pub type ExternalSemaphoreHandleTypeFlags = Flags;
1057pub type ExternalSemaphoreHandleTypeFlagBits = u32;
1058pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT: u32 = 1;
1059pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT: u32 = 2;
1060pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: u32 = 4;
1061pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT: u32 = 8;
1062pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT: u32 =
1063    EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT;
1064pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT: u32 = 16;
1065pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR: u32 =
1066    EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT;
1067pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR: u32 =
1068    EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT;
1069pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR: u32 =
1070    EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
1071pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR: u32 =
1072    EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT;
1073pub const EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR: u32 =
1074    EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
1075
1076pub type ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
1077
1078pub type ExternalSemaphoreFeatureFlags = Flags;
1079pub type ExternalSemaphoreFeatureFlagBits = u32;
1080pub const EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT: u32 = 1;
1081pub const EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT: u32 = 2;
1082pub const EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR: u32 =
1083    EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT;
1084pub const EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR: u32 =
1085    EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT;
1086
1087pub type ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
1088
1089pub type SemaphoreImportFlags = Flags;
1090pub type SemaphoreImportFlagBits = u32;
1091pub const SEMAPHORE_IMPORT_TEMPORARY_BIT: u32 = 1;
1092pub const SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR: u32 = SEMAPHORE_IMPORT_TEMPORARY_BIT;
1093
1094pub type SemaphoreImportFlagsKHR = SemaphoreImportFlags;
1095
1096pub type ExternalFenceHandleTypeFlags = Flags;
1097pub type ExternalFenceHandleTypeFlagBits = u32;
1098pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: u32 = 1;
1099pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT: u32 = 2;
1100pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT: u32 = 4;
1101pub const EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: u32 = 8;
1102pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR: u32 =
1103    EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT;
1104pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR: u32 =
1105    EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT;
1106pub const EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR: u32 =
1107    EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT;
1108pub const EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR: u32 = EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT;
1109
1110pub type ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
1111
1112pub type ExternalFenceFeatureFlags = Flags;
1113pub type ExternalFenceFeatureFlagBits = u32;
1114pub const EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT: u32 = 1;
1115pub const EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT: u32 = 2;
1116pub const EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR: u32 = EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT;
1117pub const EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR: u32 = EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT;
1118
1119pub type ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
1120
1121pub type FenceImportFlags = Flags;
1122pub type FenceImportFlagBits = u32;
1123pub const FENCE_IMPORT_TEMPORARY_BIT: u32 = 1;
1124pub const FENCE_IMPORT_TEMPORARY_BIT_KHR: u32 = FENCE_IMPORT_TEMPORARY_BIT;
1125
1126pub type FenceImportFlagsKHR = FenceImportFlags;
1127
1128pub type SurfaceCounterFlagsEXT = Flags;
1129pub type SurfaceCounterFlagBitsEXT = u32;
1130pub const SURFACE_COUNTER_VBLANK_BIT_EXT: u32 = 1;
1131pub const SURFACE_COUNTER_VBLANK_EXT: u32 = SURFACE_COUNTER_VBLANK_BIT_EXT; // Backwards-compatible alias containing a typo
1132
1133pub type PipelineViewportSwizzleStateCreateFlagsNV = Flags;
1134
1135pub type PipelineDiscardRectangleStateCreateFlagsEXT = Flags;
1136
1137pub type PipelineCoverageToColorStateCreateFlagsNV = Flags;
1138
1139pub type PipelineCoverageModulationStateCreateFlagsNV = Flags;
1140
1141pub type PipelineCoverageReductionStateCreateFlagsNV = Flags;
1142
1143pub type ValidationCacheCreateFlagsEXT = Flags;
1144
1145pub type DebugUtilsMessageSeverityFlagsEXT = Flags;
1146pub type DebugUtilsMessageSeverityFlagBitsEXT = u32;
1147pub const DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: u32 = 1;
1148pub const DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: u32 = 16;
1149pub const DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: u32 = 256;
1150pub const DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: u32 = 4096;
1151
1152pub type DebugUtilsMessageTypeFlagsEXT = Flags;
1153pub type DebugUtilsMessageTypeFlagBitsEXT = u32;
1154pub const DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT: u32 = 1;
1155pub const DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT: u32 = 2;
1156pub const DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT: u32 = 4;
1157pub const DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT: u32 = 8;
1158
1159pub type DebugUtilsMessengerCreateFlagsEXT = Flags;
1160
1161pub type DebugUtilsMessengerCallbackDataFlagsEXT = Flags;
1162
1163pub type DeviceMemoryReportFlagsEXT = Flags;
1164
1165pub type PipelineRasterizationConservativeStateCreateFlagsEXT = Flags;
1166
1167pub type DescriptorBindingFlags = Flags;
1168pub type DescriptorBindingFlagBits = u32;
1169pub const DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT: u32 = 1;
1170pub const DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT: u32 = 2;
1171pub const DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT: u32 = 4;
1172pub const DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT: u32 = 8;
1173pub const DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT: u32 =
1174    DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT;
1175pub const DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT: u32 =
1176    DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT;
1177pub const DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT: u32 = DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT;
1178pub const DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT: u32 =
1179    DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT;
1180
1181pub type DescriptorBindingFlagsEXT = DescriptorBindingFlags;
1182
1183pub type ConditionalRenderingFlagsEXT = Flags;
1184pub type ConditionalRenderingFlagBitsEXT = u32;
1185pub const CONDITIONAL_RENDERING_INVERTED_BIT_EXT: u32 = 1;
1186
1187pub type ResolveModeFlags = Flags;
1188pub type ResolveModeFlagBits = u32;
1189pub const RESOLVE_MODE_NONE: u32 = 0;
1190pub const RESOLVE_MODE_SAMPLE_ZERO_BIT: u32 = 1;
1191pub const RESOLVE_MODE_AVERAGE_BIT: u32 = 2;
1192pub const RESOLVE_MODE_MIN_BIT: u32 = 4;
1193pub const RESOLVE_MODE_MAX_BIT: u32 = 8;
1194pub const RESOLVE_MODE_NONE_KHR: u32 = RESOLVE_MODE_NONE;
1195pub const RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR: u32 = RESOLVE_MODE_SAMPLE_ZERO_BIT;
1196pub const RESOLVE_MODE_AVERAGE_BIT_KHR: u32 = RESOLVE_MODE_AVERAGE_BIT;
1197pub const RESOLVE_MODE_MIN_BIT_KHR: u32 = RESOLVE_MODE_MIN_BIT;
1198pub const RESOLVE_MODE_MAX_BIT_KHR: u32 = RESOLVE_MODE_MAX_BIT;
1199
1200pub type ResolveModeFlagsKHR = ResolveModeFlags;
1201
1202pub type PipelineRasterizationStateStreamCreateFlagsEXT = Flags;
1203
1204pub type PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags;
1205
1206pub type SwapchainImageUsageFlagsANDROID = Flags;
1207pub type SwapchainImageUsageFlagBitsANDROID = u32;
1208pub const SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID: u32 = 1;
1209
1210pub type ToolPurposeFlags = Flags;
1211pub type ToolPurposeFlagBits = u32;
1212pub const TOOL_PURPOSE_VALIDATION_BIT: u32 = 1;
1213pub const TOOL_PURPOSE_VALIDATION_BIT_EXT: u32 = TOOL_PURPOSE_VALIDATION_BIT;
1214pub const TOOL_PURPOSE_PROFILING_BIT: u32 = 2;
1215pub const TOOL_PURPOSE_PROFILING_BIT_EXT: u32 = TOOL_PURPOSE_PROFILING_BIT;
1216pub const TOOL_PURPOSE_TRACING_BIT: u32 = 4;
1217pub const TOOL_PURPOSE_TRACING_BIT_EXT: u32 = TOOL_PURPOSE_TRACING_BIT;
1218pub const TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT: u32 = 8;
1219pub const TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT: u32 = TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT;
1220pub const TOOL_PURPOSE_MODIFYING_FEATURES_BIT: u32 = 16;
1221pub const TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT: u32 = TOOL_PURPOSE_MODIFYING_FEATURES_BIT;
1222pub const TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT: u32 = 32;
1223pub const TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT: u32 = 64;
1224
1225pub type ToolPurposeFlagsEXT = ToolPurposeFlags;
1226
1227pub type SubmitFlags = Flags;
1228pub type SubmitFlagBits = u32;
1229pub const SUBMIT_PROTECTED_BIT: u32 = 1;
1230pub const SUBMIT_PROTECTED_BIT_KHR: u32 = SUBMIT_PROTECTED_BIT;
1231
1232pub type SubmitFlagsKHR = SubmitFlags;
1233
1234pub type ImageFormatConstraintsFlagsFUCHSIA = Flags;
1235
1236pub type ImageConstraintsInfoFlagsFUCHSIA = Flags;
1237pub type ImageConstraintsInfoFlagBitsFUCHSIA = u32;
1238pub const IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA: u32 = 1;
1239pub const IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA: u32 = 2;
1240pub const IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA: u32 = 4;
1241pub const IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA: u32 = 8;
1242pub const IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA: u32 = 16;
1243
1244pub type GraphicsPipelineLibraryFlagsEXT = Flags;
1245pub type GraphicsPipelineLibraryFlagBitsEXT = u32;
1246pub const GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT: u32 = 1;
1247pub const GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT: u32 = 2;
1248pub const GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT: u32 = 4;
1249pub const GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT: u32 = 8;
1250
1251pub type ImageCompressionFlagsEXT = Flags;
1252pub type ImageCompressionFlagBitsEXT = u32;
1253pub const IMAGE_COMPRESSION_DEFAULT_EXT: u32 = 0;
1254pub const IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT: u32 = 1;
1255pub const IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT: u32 = 2;
1256pub const IMAGE_COMPRESSION_DISABLED_EXT: u32 = 4;
1257
1258pub type ImageCompressionFixedRateFlagsEXT = Flags;
1259pub type ImageCompressionFixedRateFlagBitsEXT = u32;
1260pub const IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT: u32 = 0;
1261pub const IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT: u32 = 1;
1262pub const IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT: u32 = 2;
1263pub const IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT: u32 = 4;
1264pub const IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT: u32 = 8;
1265pub const IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT: u32 = 16;
1266pub const IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT: u32 = 32;
1267pub const IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT: u32 = 64;
1268pub const IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT: u32 = 128;
1269pub const IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT: u32 = 256;
1270pub const IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT: u32 = 512;
1271pub const IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT: u32 = 1024;
1272pub const IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT: u32 = 2048;
1273pub const IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT: u32 = 4096;
1274pub const IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT: u32 = 8192;
1275pub const IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT: u32 = 16384;
1276pub const IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT: u32 = 32768;
1277pub const IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT: u32 = 65536;
1278pub const IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT: u32 = 131072;
1279pub const IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT: u32 = 262144;
1280pub const IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT: u32 = 524288;
1281pub const IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT: u32 = 1048576;
1282pub const IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT: u32 = 2097152;
1283pub const IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT: u32 = 4194304;
1284pub const IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT: u32 = 8388608;
1285
1286pub type ExportMetalObjectTypeFlagsEXT = Flags;
1287pub type ExportMetalObjectTypeFlagBitsEXT = u32;
1288pub const EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT: u32 = 1;
1289pub const EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT: u32 = 2;
1290pub const EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT: u32 = 4;
1291pub const EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT: u32 = 8;
1292pub const EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT: u32 = 16;
1293pub const EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT: u32 = 32;
1294
1295pub type DeviceAddressBindingFlagsEXT = Flags;
1296pub type DeviceAddressBindingFlagBitsEXT = u32;
1297pub const DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT: u32 = 1;
1298
1299pub type OpticalFlowGridSizeFlagsNV = Flags;
1300pub type OpticalFlowGridSizeFlagBitsNV = u32;
1301pub const OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV: u32 = 0;
1302pub const OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV: u32 = 1;
1303pub const OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV: u32 = 2;
1304pub const OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV: u32 = 4;
1305pub const OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV: u32 = 8;
1306
1307pub type OpticalFlowUsageFlagsNV = Flags;
1308pub type OpticalFlowUsageFlagBitsNV = u32;
1309pub const OPTICAL_FLOW_USAGE_UNKNOWN_NV: u32 = 0;
1310pub const OPTICAL_FLOW_USAGE_INPUT_BIT_NV: u32 = 1;
1311pub const OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV: u32 = 2;
1312pub const OPTICAL_FLOW_USAGE_HINT_BIT_NV: u32 = 4;
1313pub const OPTICAL_FLOW_USAGE_COST_BIT_NV: u32 = 8;
1314pub const OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV: u32 = 16;
1315
1316pub type OpticalFlowSessionCreateFlagsNV = Flags;
1317pub type OpticalFlowSessionCreateFlagBitsNV = u32;
1318pub const OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV: u32 = 1;
1319pub const OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV: u32 = 2;
1320pub const OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV: u32 = 4;
1321pub const OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV: u32 = 8;
1322pub const OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV: u32 = 16;
1323
1324pub type OpticalFlowExecuteFlagsNV = Flags;
1325pub type OpticalFlowExecuteFlagBitsNV = u32;
1326pub const OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV: u32 = 1;
1327
1328pub type PresentScalingFlagsEXT = Flags;
1329pub type PresentScalingFlagBitsEXT = u32;
1330pub const PRESENT_SCALING_ONE_TO_ONE_BIT_EXT: u32 = 1;
1331pub const PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT: u32 = 2;
1332pub const PRESENT_SCALING_STRETCH_BIT_EXT: u32 = 4;
1333
1334pub type PresentGravityFlagsEXT = Flags;
1335pub type PresentGravityFlagBitsEXT = u32;
1336pub const PRESENT_GRAVITY_MIN_BIT_EXT: u32 = 1;
1337pub const PRESENT_GRAVITY_MAX_BIT_EXT: u32 = 2;
1338pub const PRESENT_GRAVITY_CENTERED_BIT_EXT: u32 = 4;
1339
1340pub type VideoCodecOperationFlagsKHR = Flags;
1341pub type VideoCodecOperationFlagBitsKHR = u32;
1342pub const VIDEO_CODEC_OPERATION_NONE_KHR: u32 = 0;
1343
1344pub type VideoCapabilityFlagsKHR = Flags;
1345pub type VideoCapabilityFlagBitsKHR = u32;
1346pub const VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR: u32 = 1;
1347pub const VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR: u32 = 2;
1348
1349pub type VideoSessionCreateFlagsKHR = Flags;
1350pub type VideoSessionCreateFlagBitsKHR = u32;
1351pub const VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR: u32 = 1;
1352
1353pub type VideoSessionParametersCreateFlagsKHR = Flags;
1354
1355pub type VideoBeginCodingFlagsKHR = Flags;
1356
1357pub type VideoEndCodingFlagsKHR = Flags;
1358
1359pub type VideoCodingControlFlagsKHR = Flags;
1360pub type VideoCodingControlFlagBitsKHR = u32;
1361pub const VIDEO_CODING_CONTROL_RESET_BIT_KHR: u32 = 1;
1362pub const VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR: u32 = 2;
1363pub const VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR: u32 = 4;
1364
1365pub type VideoDecodeUsageFlagsKHR = Flags;
1366pub type VideoDecodeUsageFlagBitsKHR = u32;
1367pub const VIDEO_DECODE_USAGE_DEFAULT_KHR: u32 = 0;
1368pub const VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR: u32 = 1;
1369pub const VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR: u32 = 2;
1370pub const VIDEO_DECODE_USAGE_STREAMING_BIT_KHR: u32 = 4;
1371
1372pub type VideoDecodeCapabilityFlagsKHR = Flags;
1373pub type VideoDecodeCapabilityFlagBitsKHR = u32;
1374pub const VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR: u32 = 1;
1375pub const VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR: u32 = 2;
1376
1377pub type VideoDecodeFlagsKHR = Flags;
1378
1379pub type VideoDecodeH264PictureLayoutFlagsKHR = Flags;
1380pub type VideoDecodeH264PictureLayoutFlagBitsKHR = u32;
1381pub const VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR: u32 = 0;
1382pub const VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR: u32 = 1;
1383pub const VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR: u32 = 2;
1384
1385pub type VideoEncodeFlagsKHR = Flags;
1386
1387pub type VideoEncodeUsageFlagsKHR = Flags;
1388pub type VideoEncodeUsageFlagBitsKHR = u32;
1389pub const VIDEO_ENCODE_USAGE_DEFAULT_KHR: u32 = 0;
1390pub const VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR: u32 = 1;
1391pub const VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR: u32 = 2;
1392pub const VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR: u32 = 4;
1393pub const VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR: u32 = 8;
1394
1395pub type VideoEncodeContentFlagsKHR = Flags;
1396pub type VideoEncodeContentFlagBitsKHR = u32;
1397pub const VIDEO_ENCODE_CONTENT_DEFAULT_KHR: u32 = 0;
1398pub const VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR: u32 = 1;
1399pub const VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR: u32 = 2;
1400pub const VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR: u32 = 4;
1401
1402pub type VideoEncodeCapabilityFlagsKHR = Flags;
1403pub type VideoEncodeCapabilityFlagBitsKHR = u32;
1404pub const VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR: u32 = 1;
1405
1406pub type VideoEncodeRateControlFlagsKHR = Flags;
1407
1408pub type VideoEncodeRateControlModeFlagsKHR = Flags;
1409pub type VideoEncodeRateControlModeFlagBitsKHR = u32;
1410pub const VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR: u32 = 0;
1411pub const VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR: u32 = 1;
1412pub const VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR: u32 = 2;
1413
1414pub type VideoChromaSubsamplingFlagsKHR = Flags;
1415pub type VideoChromaSubsamplingFlagBitsKHR = u32;
1416pub const VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR: u32 = 0;
1417pub const VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR: u32 = 1;
1418pub const VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR: u32 = 2;
1419pub const VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR: u32 = 4;
1420pub const VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR: u32 = 8;
1421
1422pub type VideoComponentBitDepthFlagsKHR = Flags;
1423pub type VideoComponentBitDepthFlagBitsKHR = u32;
1424pub const VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR: u32 = 0;
1425pub const VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR: u32 = 1;
1426pub const VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR: u32 = 4;
1427pub const VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR: u32 = 16;
1428
1429pub type VideoEncodeH264CapabilityFlagsEXT = Flags;
1430pub type VideoEncodeH264CapabilityFlagBitsEXT = u32;
1431pub const VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT: u32 = 1;
1432pub const VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT: u32 = 2;
1433pub const VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT: u32 = 4;
1434pub const VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT: u32 = 8;
1435pub const VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT: u32 = 16;
1436pub const VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT: u32 = 32;
1437pub const VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT: u32 = 64;
1438pub const VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT: u32 = 128;
1439pub const VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT: u32 = 256;
1440pub const VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT: u32 = 512;
1441pub const VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT: u32 = 1024;
1442pub const VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT: u32 = 2048;
1443pub const VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT: u32 = 4096;
1444pub const VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT: u32 = 8192;
1445pub const VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT: u32 = 16384;
1446pub const VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT: u32 = 32768;
1447pub const VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT: u32 = 65536;
1448pub const VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT: u32 = 131072;
1449pub const VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT: u32 = 262144;
1450pub const VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT: u32 = 524288;
1451pub const VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT: u32 = 1048576;
1452pub const VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT: u32 = 2097152;
1453pub const VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT: u32 = 4194304;
1454pub const VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT: u32 = 8388608;
1455pub const VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT: u32 = 16777216;
1456
1457pub type VideoEncodeH264InputModeFlagsEXT = Flags;
1458pub type VideoEncodeH264InputModeFlagBitsEXT = u32;
1459pub const VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT: u32 = 1;
1460pub const VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT: u32 = 2;
1461pub const VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT: u32 = 4;
1462
1463pub type VideoEncodeH264OutputModeFlagsEXT = Flags;
1464pub type VideoEncodeH264OutputModeFlagBitsEXT = u32;
1465pub const VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT: u32 = 1;
1466pub const VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT: u32 = 2;
1467pub const VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT: u32 = 4;
1468
1469pub type VideoEncodeH265CapabilityFlagsEXT = Flags;
1470pub type VideoEncodeH265CapabilityFlagBitsEXT = u32;
1471pub const VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT: u32 = 1;
1472pub const VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT: u32 = 2;
1473pub const VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT: u32 = 4;
1474pub const VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT: u32 = 8;
1475pub const VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT: u32 = 16;
1476pub const VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT: u32 = 32;
1477pub const VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT: u32 = 64;
1478pub const VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT: u32 = 128;
1479pub const VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT: u32 = 256;
1480pub const VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT: u32 = 512;
1481pub const VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT: u32 = 1024;
1482pub const VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT: u32 = 2048;
1483pub const VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT: u32 = 4096;
1484pub const VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT: u32 = 8192;
1485pub const VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT: u32 = 16384;
1486pub const VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT: u32 = 32768;
1487pub const VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT: u32 = 65536;
1488pub const VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT: u32 = 131072;
1489pub const VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT: u32 = 262144;
1490pub const VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT: u32 = 524288;
1491pub const VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT: u32 = 1048576;
1492pub const VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT: u32 = 2097152;
1493pub const VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT: u32 = 4194304;
1494pub const VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT: u32 = 8388608;
1495pub const VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT: u32 = 16777216;
1496pub const VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT: u32 = 33554432;
1497
1498pub type VideoEncodeH265InputModeFlagsEXT = Flags;
1499pub type VideoEncodeH265InputModeFlagBitsEXT = u32;
1500pub const VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT: u32 = 1;
1501pub const VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT: u32 = 2;
1502pub const VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT: u32 = 4;
1503
1504pub type VideoEncodeH265OutputModeFlagsEXT = Flags;
1505pub type VideoEncodeH265OutputModeFlagBitsEXT = u32;
1506pub const VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT: u32 = 1;
1507pub const VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT: u32 = 2;
1508pub const VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT: u32 = 4;
1509
1510pub type VideoEncodeH265CtbSizeFlagsEXT = Flags;
1511pub type VideoEncodeH265CtbSizeFlagBitsEXT = u32;
1512pub const VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT: u32 = 1;
1513pub const VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT: u32 = 2;
1514pub const VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT: u32 = 4;
1515
1516pub type VideoEncodeH265TransformBlockSizeFlagsEXT = Flags;
1517pub type VideoEncodeH265TransformBlockSizeFlagBitsEXT = u32;
1518pub const VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT: u32 = 1;
1519pub const VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT: u32 = 2;
1520pub const VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT: u32 = 4;
1521pub const VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT: u32 = 8;
1522
1523// enums
1524
1525pub type ImageLayout = i32;
1526pub const IMAGE_LAYOUT_UNDEFINED: i32 = 0; // Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
1527pub const IMAGE_LAYOUT_GENERAL: i32 = 1; // General layout when image can be used for any kind of access
1528pub const IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: i32 = 2; // Optimal layout when image is only used for color attachment read/write
1529pub const IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: i32 = 3; // Optimal layout when image is only used for depth/stencil attachment read/write
1530pub const IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL: i32 = 4; // Optimal layout when image is used for read only depth/stencil attachment and shader access
1531pub const IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: i32 = 5; // Optimal layout when image is used for read only shader access
1532pub const IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: i32 = 6; // Optimal layout when image is used only as source of transfer operations
1533pub const IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: i32 = 7; // Optimal layout when image is used only as destination of transfer operations
1534pub const IMAGE_LAYOUT_PREINITIALIZED: i32 = 8; // Initial layout used when the data is populated by the CPU
1535pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL: i32 = 1000117000;
1536pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL: i32 = 1000117001;
1537pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL: i32 = 1000241000;
1538pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL: i32 = 1000241001;
1539pub const IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL: i32 = 1000241002;
1540pub const IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL: i32 = 1000241003;
1541pub const IMAGE_LAYOUT_READ_ONLY_OPTIMAL: i32 = 1000314000;
1542pub const IMAGE_LAYOUT_ATTACHMENT_OPTIMAL: i32 = 1000314001;
1543pub const IMAGE_LAYOUT_PRESENT_SRC_KHR: i32 = 1000001002;
1544pub const IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR: i32 = 1000024000;
1545pub const IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR: i32 = 1000024001;
1546pub const IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR: i32 = 1000024002;
1547pub const IMAGE_LAYOUT_SHARED_PRESENT_KHR: i32 = 1000111000;
1548pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR: i32 =
1549    IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
1550pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR: i32 =
1551    IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL;
1552pub const IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV: i32 =
1553    IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR;
1554pub const IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: i32 = 1000218000;
1555pub const IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR: i32 = 1000164003;
1556pub const IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR: i32 = IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL;
1557pub const IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR: i32 = IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL;
1558pub const IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR: i32 =
1559    IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL;
1560pub const IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR: i32 = IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL;
1561pub const IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR: i32 = 1000299000;
1562pub const IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR: i32 = 1000299001;
1563pub const IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR: i32 = 1000299002;
1564pub const IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR: i32 = IMAGE_LAYOUT_READ_ONLY_OPTIMAL;
1565pub const IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR: i32 = IMAGE_LAYOUT_ATTACHMENT_OPTIMAL;
1566pub const IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT: i32 = 1000339000;
1567
1568pub type AttachmentLoadOp = i32;
1569pub const ATTACHMENT_LOAD_OP_LOAD: i32 = 0;
1570pub const ATTACHMENT_LOAD_OP_CLEAR: i32 = 1;
1571pub const ATTACHMENT_LOAD_OP_DONT_CARE: i32 = 2;
1572pub const ATTACHMENT_LOAD_OP_NONE_EXT: i32 = 1000400000;
1573
1574pub type AttachmentStoreOp = i32;
1575pub const ATTACHMENT_STORE_OP_STORE: i32 = 0;
1576pub const ATTACHMENT_STORE_OP_DONT_CARE: i32 = 1;
1577pub const ATTACHMENT_STORE_OP_NONE: i32 = 1000301000;
1578pub const ATTACHMENT_STORE_OP_NONE_KHR: i32 = ATTACHMENT_STORE_OP_NONE;
1579pub const ATTACHMENT_STORE_OP_NONE_QCOM: i32 = ATTACHMENT_STORE_OP_NONE;
1580pub const ATTACHMENT_STORE_OP_NONE_EXT: i32 = ATTACHMENT_STORE_OP_NONE;
1581
1582pub type ImageType = i32;
1583pub const IMAGE_TYPE_1D: i32 = 0;
1584pub const IMAGE_TYPE_2D: i32 = 1;
1585pub const IMAGE_TYPE_3D: i32 = 2;
1586
1587pub type ImageTiling = i32;
1588pub const IMAGE_TILING_OPTIMAL: i32 = 0;
1589pub const IMAGE_TILING_LINEAR: i32 = 1;
1590pub const IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT: i32 = 1000158000;
1591
1592pub type ImageViewType = i32;
1593pub const IMAGE_VIEW_TYPE_1D: i32 = 0;
1594pub const IMAGE_VIEW_TYPE_2D: i32 = 1;
1595pub const IMAGE_VIEW_TYPE_3D: i32 = 2;
1596pub const IMAGE_VIEW_TYPE_CUBE: i32 = 3;
1597pub const IMAGE_VIEW_TYPE_1D_ARRAY: i32 = 4;
1598pub const IMAGE_VIEW_TYPE_2D_ARRAY: i32 = 5;
1599pub const IMAGE_VIEW_TYPE_CUBE_ARRAY: i32 = 6;
1600
1601pub type CommandBufferLevel = i32;
1602pub const COMMAND_BUFFER_LEVEL_PRIMARY: i32 = 0;
1603pub const COMMAND_BUFFER_LEVEL_SECONDARY: i32 = 1;
1604
1605pub type ComponentSwizzle = i32;
1606pub const COMPONENT_SWIZZLE_IDENTITY: i32 = 0;
1607pub const COMPONENT_SWIZZLE_ZERO: i32 = 1;
1608pub const COMPONENT_SWIZZLE_ONE: i32 = 2;
1609pub const COMPONENT_SWIZZLE_R: i32 = 3;
1610pub const COMPONENT_SWIZZLE_G: i32 = 4;
1611pub const COMPONENT_SWIZZLE_B: i32 = 5;
1612pub const COMPONENT_SWIZZLE_A: i32 = 6;
1613
1614pub type DescriptorType = i32;
1615pub const DESCRIPTOR_TYPE_SAMPLER: i32 = 0;
1616pub const DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: i32 = 1;
1617pub const DESCRIPTOR_TYPE_SAMPLED_IMAGE: i32 = 2;
1618pub const DESCRIPTOR_TYPE_STORAGE_IMAGE: i32 = 3;
1619pub const DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: i32 = 4;
1620pub const DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: i32 = 5;
1621pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER: i32 = 6;
1622pub const DESCRIPTOR_TYPE_STORAGE_BUFFER: i32 = 7;
1623pub const DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: i32 = 8;
1624pub const DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: i32 = 9;
1625pub const DESCRIPTOR_TYPE_INPUT_ATTACHMENT: i32 = 10;
1626pub const DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK: i32 = 1000138000;
1627pub const DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT: i32 = DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK;
1628pub const DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR: i32 = 1000150000;
1629pub const DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV: i32 = 1000165000;
1630pub const DESCRIPTOR_TYPE_MUTABLE_VALVE: i32 = DESCRIPTOR_TYPE_MUTABLE_EXT;
1631pub const DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM: i32 = 1000440000;
1632pub const DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM: i32 = 1000440001;
1633pub const DESCRIPTOR_TYPE_MUTABLE_EXT: i32 = 1000351000;
1634
1635pub type QueryType = i32;
1636pub const QUERY_TYPE_OCCLUSION: i32 = 0;
1637pub const QUERY_TYPE_PIPELINE_STATISTICS: i32 = 1; // Optional
1638pub const QUERY_TYPE_TIMESTAMP: i32 = 2;
1639pub const QUERY_TYPE_RESULT_STATUS_ONLY_KHR: i32 = 1000023000;
1640pub const QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT: i32 = 1000028004;
1641pub const QUERY_TYPE_PERFORMANCE_QUERY_KHR: i32 = 1000116000;
1642pub const QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR: i32 = 1000150000;
1643pub const QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR: i32 = 1000150001;
1644pub const QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV: i32 = 1000165000;
1645pub const QUERY_TYPE_PERFORMANCE_QUERY_INTEL: i32 = 1000210000;
1646pub const QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR: i32 = 1000299000;
1647pub const QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT: i32 = 1000328000;
1648pub const QUERY_TYPE_PRIMITIVES_GENERATED_EXT: i32 = 1000382000;
1649pub const QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR: i32 =
1650    1000386000;
1651pub const QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR: i32 = 1000386001;
1652pub const QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT: i32 = 1000396000;
1653pub const QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT: i32 = 1000396001;
1654
1655pub type BorderColor = i32;
1656pub const BORDER_COLOR_FLOAT_TRANSPARENT_BLACK: i32 = 0;
1657pub const BORDER_COLOR_INT_TRANSPARENT_BLACK: i32 = 1;
1658pub const BORDER_COLOR_FLOAT_OPAQUE_BLACK: i32 = 2;
1659pub const BORDER_COLOR_INT_OPAQUE_BLACK: i32 = 3;
1660pub const BORDER_COLOR_FLOAT_OPAQUE_WHITE: i32 = 4;
1661pub const BORDER_COLOR_INT_OPAQUE_WHITE: i32 = 5;
1662pub const BORDER_COLOR_FLOAT_CUSTOM_EXT: i32 = 1000287003;
1663pub const BORDER_COLOR_INT_CUSTOM_EXT: i32 = 1000287004;
1664
1665pub type PipelineBindPoint = i32;
1666pub const PIPELINE_BIND_POINT_GRAPHICS: i32 = 0;
1667pub const PIPELINE_BIND_POINT_COMPUTE: i32 = 1;
1668pub const PIPELINE_BIND_POINT_RAY_TRACING_KHR: i32 = 1000165000;
1669pub const PIPELINE_BIND_POINT_RAY_TRACING_NV: i32 = PIPELINE_BIND_POINT_RAY_TRACING_KHR;
1670pub const PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI: i32 = 1000369003;
1671
1672pub type PipelineCacheHeaderVersion = i32;
1673pub const PIPELINE_CACHE_HEADER_VERSION_ONE: i32 = 1;
1674
1675pub type PrimitiveTopology = i32;
1676pub const PRIMITIVE_TOPOLOGY_POINT_LIST: i32 = 0;
1677pub const PRIMITIVE_TOPOLOGY_LINE_LIST: i32 = 1;
1678pub const PRIMITIVE_TOPOLOGY_LINE_STRIP: i32 = 2;
1679pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST: i32 = 3;
1680pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP: i32 = 4;
1681pub const PRIMITIVE_TOPOLOGY_TRIANGLE_FAN: i32 = 5;
1682pub const PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY: i32 = 6;
1683pub const PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY: i32 = 7;
1684pub const PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY: i32 = 8;
1685pub const PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY: i32 = 9;
1686pub const PRIMITIVE_TOPOLOGY_PATCH_LIST: i32 = 10;
1687
1688pub type SharingMode = i32;
1689pub const SHARING_MODE_EXCLUSIVE: i32 = 0;
1690pub const SHARING_MODE_CONCURRENT: i32 = 1;
1691
1692pub type IndexType = i32;
1693pub const INDEX_TYPE_UINT16: i32 = 0;
1694pub const INDEX_TYPE_UINT32: i32 = 1;
1695pub const INDEX_TYPE_NONE_KHR: i32 = 1000165000;
1696pub const INDEX_TYPE_NONE_NV: i32 = INDEX_TYPE_NONE_KHR;
1697pub const INDEX_TYPE_UINT8_EXT: i32 = 1000265000;
1698
1699pub type Filter = i32;
1700pub const FILTER_NEAREST: i32 = 0;
1701pub const FILTER_LINEAR: i32 = 1;
1702pub const FILTER_CUBIC_IMG: i32 = FILTER_CUBIC_EXT;
1703pub const FILTER_CUBIC_EXT: i32 = 1000015000;
1704
1705pub type SamplerMipmapMode = i32;
1706pub const SAMPLER_MIPMAP_MODE_NEAREST: i32 = 0; // Choose nearest mip level
1707pub const SAMPLER_MIPMAP_MODE_LINEAR: i32 = 1; // Linear filter between mip levels
1708
1709pub type SamplerAddressMode = i32;
1710pub const SAMPLER_ADDRESS_MODE_REPEAT: i32 = 0;
1711pub const SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT: i32 = 1;
1712pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE: i32 = 2;
1713pub const SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER: i32 = 3;
1714pub const SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE: i32 = 4; // No need to add an extnumber attribute, since this uses a core enum value
1715pub const SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR: i32 =
1716    SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; // Alias introduced for consistency with extension suffixing rules
1717
1718pub type CompareOp = i32;
1719pub const COMPARE_OP_NEVER: i32 = 0;
1720pub const COMPARE_OP_LESS: i32 = 1;
1721pub const COMPARE_OP_EQUAL: i32 = 2;
1722pub const COMPARE_OP_LESS_OR_EQUAL: i32 = 3;
1723pub const COMPARE_OP_GREATER: i32 = 4;
1724pub const COMPARE_OP_NOT_EQUAL: i32 = 5;
1725pub const COMPARE_OP_GREATER_OR_EQUAL: i32 = 6;
1726pub const COMPARE_OP_ALWAYS: i32 = 7;
1727
1728pub type PolygonMode = i32;
1729pub const POLYGON_MODE_FILL: i32 = 0;
1730pub const POLYGON_MODE_LINE: i32 = 1;
1731pub const POLYGON_MODE_POINT: i32 = 2;
1732pub const POLYGON_MODE_FILL_RECTANGLE_NV: i32 = 1000153000;
1733
1734pub type FrontFace = i32;
1735pub const FRONT_FACE_COUNTER_CLOCKWISE: i32 = 0;
1736pub const FRONT_FACE_CLOCKWISE: i32 = 1;
1737
1738pub type BlendFactor = i32;
1739pub const BLEND_FACTOR_ZERO: i32 = 0;
1740pub const BLEND_FACTOR_ONE: i32 = 1;
1741pub const BLEND_FACTOR_SRC_COLOR: i32 = 2;
1742pub const BLEND_FACTOR_ONE_MINUS_SRC_COLOR: i32 = 3;
1743pub const BLEND_FACTOR_DST_COLOR: i32 = 4;
1744pub const BLEND_FACTOR_ONE_MINUS_DST_COLOR: i32 = 5;
1745pub const BLEND_FACTOR_SRC_ALPHA: i32 = 6;
1746pub const BLEND_FACTOR_ONE_MINUS_SRC_ALPHA: i32 = 7;
1747pub const BLEND_FACTOR_DST_ALPHA: i32 = 8;
1748pub const BLEND_FACTOR_ONE_MINUS_DST_ALPHA: i32 = 9;
1749pub const BLEND_FACTOR_CONSTANT_COLOR: i32 = 10;
1750pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR: i32 = 11;
1751pub const BLEND_FACTOR_CONSTANT_ALPHA: i32 = 12;
1752pub const BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA: i32 = 13;
1753pub const BLEND_FACTOR_SRC_ALPHA_SATURATE: i32 = 14;
1754pub const BLEND_FACTOR_SRC1_COLOR: i32 = 15;
1755pub const BLEND_FACTOR_ONE_MINUS_SRC1_COLOR: i32 = 16;
1756pub const BLEND_FACTOR_SRC1_ALPHA: i32 = 17;
1757pub const BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA: i32 = 18;
1758
1759pub type BlendOp = i32;
1760pub const BLEND_OP_ADD: i32 = 0;
1761pub const BLEND_OP_SUBTRACT: i32 = 1;
1762pub const BLEND_OP_REVERSE_SUBTRACT: i32 = 2;
1763pub const BLEND_OP_MIN: i32 = 3;
1764pub const BLEND_OP_MAX: i32 = 4;
1765pub const BLEND_OP_ZERO_EXT: i32 = 1000148000;
1766pub const BLEND_OP_SRC_EXT: i32 = 1000148001;
1767pub const BLEND_OP_DST_EXT: i32 = 1000148002;
1768pub const BLEND_OP_SRC_OVER_EXT: i32 = 1000148003;
1769pub const BLEND_OP_DST_OVER_EXT: i32 = 1000148004;
1770pub const BLEND_OP_SRC_IN_EXT: i32 = 1000148005;
1771pub const BLEND_OP_DST_IN_EXT: i32 = 1000148006;
1772pub const BLEND_OP_SRC_OUT_EXT: i32 = 1000148007;
1773pub const BLEND_OP_DST_OUT_EXT: i32 = 1000148008;
1774pub const BLEND_OP_SRC_ATOP_EXT: i32 = 1000148009;
1775pub const BLEND_OP_DST_ATOP_EXT: i32 = 1000148010;
1776pub const BLEND_OP_XOR_EXT: i32 = 1000148011;
1777pub const BLEND_OP_MULTIPLY_EXT: i32 = 1000148012;
1778pub const BLEND_OP_SCREEN_EXT: i32 = 1000148013;
1779pub const BLEND_OP_OVERLAY_EXT: i32 = 1000148014;
1780pub const BLEND_OP_DARKEN_EXT: i32 = 1000148015;
1781pub const BLEND_OP_LIGHTEN_EXT: i32 = 1000148016;
1782pub const BLEND_OP_COLORDODGE_EXT: i32 = 1000148017;
1783pub const BLEND_OP_COLORBURN_EXT: i32 = 1000148018;
1784pub const BLEND_OP_HARDLIGHT_EXT: i32 = 1000148019;
1785pub const BLEND_OP_SOFTLIGHT_EXT: i32 = 1000148020;
1786pub const BLEND_OP_DIFFERENCE_EXT: i32 = 1000148021;
1787pub const BLEND_OP_EXCLUSION_EXT: i32 = 1000148022;
1788pub const BLEND_OP_INVERT_EXT: i32 = 1000148023;
1789pub const BLEND_OP_INVERT_RGB_EXT: i32 = 1000148024;
1790pub const BLEND_OP_LINEARDODGE_EXT: i32 = 1000148025;
1791pub const BLEND_OP_LINEARBURN_EXT: i32 = 1000148026;
1792pub const BLEND_OP_VIVIDLIGHT_EXT: i32 = 1000148027;
1793pub const BLEND_OP_LINEARLIGHT_EXT: i32 = 1000148028;
1794pub const BLEND_OP_PINLIGHT_EXT: i32 = 1000148029;
1795pub const BLEND_OP_HARDMIX_EXT: i32 = 1000148030;
1796pub const BLEND_OP_HSL_HUE_EXT: i32 = 1000148031;
1797pub const BLEND_OP_HSL_SATURATION_EXT: i32 = 1000148032;
1798pub const BLEND_OP_HSL_COLOR_EXT: i32 = 1000148033;
1799pub const BLEND_OP_HSL_LUMINOSITY_EXT: i32 = 1000148034;
1800pub const BLEND_OP_PLUS_EXT: i32 = 1000148035;
1801pub const BLEND_OP_PLUS_CLAMPED_EXT: i32 = 1000148036;
1802pub const BLEND_OP_PLUS_CLAMPED_ALPHA_EXT: i32 = 1000148037;
1803pub const BLEND_OP_PLUS_DARKER_EXT: i32 = 1000148038;
1804pub const BLEND_OP_MINUS_EXT: i32 = 1000148039;
1805pub const BLEND_OP_MINUS_CLAMPED_EXT: i32 = 1000148040;
1806pub const BLEND_OP_CONTRAST_EXT: i32 = 1000148041;
1807pub const BLEND_OP_INVERT_OVG_EXT: i32 = 1000148042;
1808pub const BLEND_OP_RED_EXT: i32 = 1000148043;
1809pub const BLEND_OP_GREEN_EXT: i32 = 1000148044;
1810pub const BLEND_OP_BLUE_EXT: i32 = 1000148045;
1811
1812pub type StencilOp = i32;
1813pub const STENCIL_OP_KEEP: i32 = 0;
1814pub const STENCIL_OP_ZERO: i32 = 1;
1815pub const STENCIL_OP_REPLACE: i32 = 2;
1816pub const STENCIL_OP_INCREMENT_AND_CLAMP: i32 = 3;
1817pub const STENCIL_OP_DECREMENT_AND_CLAMP: i32 = 4;
1818pub const STENCIL_OP_INVERT: i32 = 5;
1819pub const STENCIL_OP_INCREMENT_AND_WRAP: i32 = 6;
1820pub const STENCIL_OP_DECREMENT_AND_WRAP: i32 = 7;
1821
1822pub type LogicOp = i32;
1823pub const LOGIC_OP_CLEAR: i32 = 0;
1824pub const LOGIC_OP_AND: i32 = 1;
1825pub const LOGIC_OP_AND_REVERSE: i32 = 2;
1826pub const LOGIC_OP_COPY: i32 = 3;
1827pub const LOGIC_OP_AND_INVERTED: i32 = 4;
1828pub const LOGIC_OP_NO_OP: i32 = 5;
1829pub const LOGIC_OP_XOR: i32 = 6;
1830pub const LOGIC_OP_OR: i32 = 7;
1831pub const LOGIC_OP_NOR: i32 = 8;
1832pub const LOGIC_OP_EQUIVALENT: i32 = 9;
1833pub const LOGIC_OP_INVERT: i32 = 10;
1834pub const LOGIC_OP_OR_REVERSE: i32 = 11;
1835pub const LOGIC_OP_COPY_INVERTED: i32 = 12;
1836pub const LOGIC_OP_OR_INVERTED: i32 = 13;
1837pub const LOGIC_OP_NAND: i32 = 14;
1838pub const LOGIC_OP_SET: i32 = 15;
1839
1840pub type InternalAllocationType = i32;
1841pub const INTERNAL_ALLOCATION_TYPE_EXECUTABLE: i32 = 0;
1842
1843pub type SystemAllocationScope = i32;
1844pub const SYSTEM_ALLOCATION_SCOPE_COMMAND: i32 = 0;
1845pub const SYSTEM_ALLOCATION_SCOPE_OBJECT: i32 = 1;
1846pub const SYSTEM_ALLOCATION_SCOPE_CACHE: i32 = 2;
1847pub const SYSTEM_ALLOCATION_SCOPE_DEVICE: i32 = 3;
1848pub const SYSTEM_ALLOCATION_SCOPE_INSTANCE: i32 = 4;
1849
1850pub type PhysicalDeviceType = i32;
1851pub const PHYSICAL_DEVICE_TYPE_OTHER: i32 = 0;
1852pub const PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: i32 = 1;
1853pub const PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: i32 = 2;
1854pub const PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: i32 = 3;
1855pub const PHYSICAL_DEVICE_TYPE_CPU: i32 = 4;
1856
1857pub type VertexInputRate = i32;
1858pub const VERTEX_INPUT_RATE_VERTEX: i32 = 0;
1859pub const VERTEX_INPUT_RATE_INSTANCE: i32 = 1;
1860
1861// Vulkan format definitions
1862pub type Format = i32;
1863pub const FORMAT_UNDEFINED: i32 = 0;
1864pub const FORMAT_R4G4_UNORM_PACK8: i32 = 1;
1865pub const FORMAT_R4G4B4A4_UNORM_PACK16: i32 = 2;
1866pub const FORMAT_B4G4R4A4_UNORM_PACK16: i32 = 3;
1867pub const FORMAT_R5G6B5_UNORM_PACK16: i32 = 4;
1868pub const FORMAT_B5G6R5_UNORM_PACK16: i32 = 5;
1869pub const FORMAT_R5G5B5A1_UNORM_PACK16: i32 = 6;
1870pub const FORMAT_B5G5R5A1_UNORM_PACK16: i32 = 7;
1871pub const FORMAT_A1R5G5B5_UNORM_PACK16: i32 = 8;
1872pub const FORMAT_R8_UNORM: i32 = 9;
1873pub const FORMAT_R8_SNORM: i32 = 10;
1874pub const FORMAT_R8_USCALED: i32 = 11;
1875pub const FORMAT_R8_SSCALED: i32 = 12;
1876pub const FORMAT_R8_UINT: i32 = 13;
1877pub const FORMAT_R8_SINT: i32 = 14;
1878pub const FORMAT_R8_SRGB: i32 = 15;
1879pub const FORMAT_R8G8_UNORM: i32 = 16;
1880pub const FORMAT_R8G8_SNORM: i32 = 17;
1881pub const FORMAT_R8G8_USCALED: i32 = 18;
1882pub const FORMAT_R8G8_SSCALED: i32 = 19;
1883pub const FORMAT_R8G8_UINT: i32 = 20;
1884pub const FORMAT_R8G8_SINT: i32 = 21;
1885pub const FORMAT_R8G8_SRGB: i32 = 22;
1886pub const FORMAT_R8G8B8_UNORM: i32 = 23;
1887pub const FORMAT_R8G8B8_SNORM: i32 = 24;
1888pub const FORMAT_R8G8B8_USCALED: i32 = 25;
1889pub const FORMAT_R8G8B8_SSCALED: i32 = 26;
1890pub const FORMAT_R8G8B8_UINT: i32 = 27;
1891pub const FORMAT_R8G8B8_SINT: i32 = 28;
1892pub const FORMAT_R8G8B8_SRGB: i32 = 29;
1893pub const FORMAT_B8G8R8_UNORM: i32 = 30;
1894pub const FORMAT_B8G8R8_SNORM: i32 = 31;
1895pub const FORMAT_B8G8R8_USCALED: i32 = 32;
1896pub const FORMAT_B8G8R8_SSCALED: i32 = 33;
1897pub const FORMAT_B8G8R8_UINT: i32 = 34;
1898pub const FORMAT_B8G8R8_SINT: i32 = 35;
1899pub const FORMAT_B8G8R8_SRGB: i32 = 36;
1900pub const FORMAT_R8G8B8A8_UNORM: i32 = 37;
1901pub const FORMAT_R8G8B8A8_SNORM: i32 = 38;
1902pub const FORMAT_R8G8B8A8_USCALED: i32 = 39;
1903pub const FORMAT_R8G8B8A8_SSCALED: i32 = 40;
1904pub const FORMAT_R8G8B8A8_UINT: i32 = 41;
1905pub const FORMAT_R8G8B8A8_SINT: i32 = 42;
1906pub const FORMAT_R8G8B8A8_SRGB: i32 = 43;
1907pub const FORMAT_B8G8R8A8_UNORM: i32 = 44;
1908pub const FORMAT_B8G8R8A8_SNORM: i32 = 45;
1909pub const FORMAT_B8G8R8A8_USCALED: i32 = 46;
1910pub const FORMAT_B8G8R8A8_SSCALED: i32 = 47;
1911pub const FORMAT_B8G8R8A8_UINT: i32 = 48;
1912pub const FORMAT_B8G8R8A8_SINT: i32 = 49;
1913pub const FORMAT_B8G8R8A8_SRGB: i32 = 50;
1914pub const FORMAT_A8B8G8R8_UNORM_PACK32: i32 = 51;
1915pub const FORMAT_A8B8G8R8_SNORM_PACK32: i32 = 52;
1916pub const FORMAT_A8B8G8R8_USCALED_PACK32: i32 = 53;
1917pub const FORMAT_A8B8G8R8_SSCALED_PACK32: i32 = 54;
1918pub const FORMAT_A8B8G8R8_UINT_PACK32: i32 = 55;
1919pub const FORMAT_A8B8G8R8_SINT_PACK32: i32 = 56;
1920pub const FORMAT_A8B8G8R8_SRGB_PACK32: i32 = 57;
1921pub const FORMAT_A2R10G10B10_UNORM_PACK32: i32 = 58;
1922pub const FORMAT_A2R10G10B10_SNORM_PACK32: i32 = 59;
1923pub const FORMAT_A2R10G10B10_USCALED_PACK32: i32 = 60;
1924pub const FORMAT_A2R10G10B10_SSCALED_PACK32: i32 = 61;
1925pub const FORMAT_A2R10G10B10_UINT_PACK32: i32 = 62;
1926pub const FORMAT_A2R10G10B10_SINT_PACK32: i32 = 63;
1927pub const FORMAT_A2B10G10R10_UNORM_PACK32: i32 = 64;
1928pub const FORMAT_A2B10G10R10_SNORM_PACK32: i32 = 65;
1929pub const FORMAT_A2B10G10R10_USCALED_PACK32: i32 = 66;
1930pub const FORMAT_A2B10G10R10_SSCALED_PACK32: i32 = 67;
1931pub const FORMAT_A2B10G10R10_UINT_PACK32: i32 = 68;
1932pub const FORMAT_A2B10G10R10_SINT_PACK32: i32 = 69;
1933pub const FORMAT_R16_UNORM: i32 = 70;
1934pub const FORMAT_R16_SNORM: i32 = 71;
1935pub const FORMAT_R16_USCALED: i32 = 72;
1936pub const FORMAT_R16_SSCALED: i32 = 73;
1937pub const FORMAT_R16_UINT: i32 = 74;
1938pub const FORMAT_R16_SINT: i32 = 75;
1939pub const FORMAT_R16_SFLOAT: i32 = 76;
1940pub const FORMAT_R16G16_UNORM: i32 = 77;
1941pub const FORMAT_R16G16_SNORM: i32 = 78;
1942pub const FORMAT_R16G16_USCALED: i32 = 79;
1943pub const FORMAT_R16G16_SSCALED: i32 = 80;
1944pub const FORMAT_R16G16_UINT: i32 = 81;
1945pub const FORMAT_R16G16_SINT: i32 = 82;
1946pub const FORMAT_R16G16_SFLOAT: i32 = 83;
1947pub const FORMAT_R16G16B16_UNORM: i32 = 84;
1948pub const FORMAT_R16G16B16_SNORM: i32 = 85;
1949pub const FORMAT_R16G16B16_USCALED: i32 = 86;
1950pub const FORMAT_R16G16B16_SSCALED: i32 = 87;
1951pub const FORMAT_R16G16B16_UINT: i32 = 88;
1952pub const FORMAT_R16G16B16_SINT: i32 = 89;
1953pub const FORMAT_R16G16B16_SFLOAT: i32 = 90;
1954pub const FORMAT_R16G16B16A16_UNORM: i32 = 91;
1955pub const FORMAT_R16G16B16A16_SNORM: i32 = 92;
1956pub const FORMAT_R16G16B16A16_USCALED: i32 = 93;
1957pub const FORMAT_R16G16B16A16_SSCALED: i32 = 94;
1958pub const FORMAT_R16G16B16A16_UINT: i32 = 95;
1959pub const FORMAT_R16G16B16A16_SINT: i32 = 96;
1960pub const FORMAT_R16G16B16A16_SFLOAT: i32 = 97;
1961pub const FORMAT_R32_UINT: i32 = 98;
1962pub const FORMAT_R32_SINT: i32 = 99;
1963pub const FORMAT_R32_SFLOAT: i32 = 100;
1964pub const FORMAT_R32G32_UINT: i32 = 101;
1965pub const FORMAT_R32G32_SINT: i32 = 102;
1966pub const FORMAT_R32G32_SFLOAT: i32 = 103;
1967pub const FORMAT_R32G32B32_UINT: i32 = 104;
1968pub const FORMAT_R32G32B32_SINT: i32 = 105;
1969pub const FORMAT_R32G32B32_SFLOAT: i32 = 106;
1970pub const FORMAT_R32G32B32A32_UINT: i32 = 107;
1971pub const FORMAT_R32G32B32A32_SINT: i32 = 108;
1972pub const FORMAT_R32G32B32A32_SFLOAT: i32 = 109;
1973pub const FORMAT_R64_UINT: i32 = 110;
1974pub const FORMAT_R64_SINT: i32 = 111;
1975pub const FORMAT_R64_SFLOAT: i32 = 112;
1976pub const FORMAT_R64G64_UINT: i32 = 113;
1977pub const FORMAT_R64G64_SINT: i32 = 114;
1978pub const FORMAT_R64G64_SFLOAT: i32 = 115;
1979pub const FORMAT_R64G64B64_UINT: i32 = 116;
1980pub const FORMAT_R64G64B64_SINT: i32 = 117;
1981pub const FORMAT_R64G64B64_SFLOAT: i32 = 118;
1982pub const FORMAT_R64G64B64A64_UINT: i32 = 119;
1983pub const FORMAT_R64G64B64A64_SINT: i32 = 120;
1984pub const FORMAT_R64G64B64A64_SFLOAT: i32 = 121;
1985pub const FORMAT_B10G11R11_UFLOAT_PACK32: i32 = 122;
1986pub const FORMAT_E5B9G9R9_UFLOAT_PACK32: i32 = 123;
1987pub const FORMAT_D16_UNORM: i32 = 124;
1988pub const FORMAT_X8_D24_UNORM_PACK32: i32 = 125;
1989pub const FORMAT_D32_SFLOAT: i32 = 126;
1990pub const FORMAT_S8_UINT: i32 = 127;
1991pub const FORMAT_D16_UNORM_S8_UINT: i32 = 128;
1992pub const FORMAT_D24_UNORM_S8_UINT: i32 = 129;
1993pub const FORMAT_D32_SFLOAT_S8_UINT: i32 = 130;
1994pub const FORMAT_BC1_RGB_UNORM_BLOCK: i32 = 131;
1995pub const FORMAT_BC1_RGB_SRGB_BLOCK: i32 = 132;
1996pub const FORMAT_BC1_RGBA_UNORM_BLOCK: i32 = 133;
1997pub const FORMAT_BC1_RGBA_SRGB_BLOCK: i32 = 134;
1998pub const FORMAT_BC2_UNORM_BLOCK: i32 = 135;
1999pub const FORMAT_BC2_SRGB_BLOCK: i32 = 136;
2000pub const FORMAT_BC3_UNORM_BLOCK: i32 = 137;
2001pub const FORMAT_BC3_SRGB_BLOCK: i32 = 138;
2002pub const FORMAT_BC4_UNORM_BLOCK: i32 = 139;
2003pub const FORMAT_BC4_SNORM_BLOCK: i32 = 140;
2004pub const FORMAT_BC5_UNORM_BLOCK: i32 = 141;
2005pub const FORMAT_BC5_SNORM_BLOCK: i32 = 142;
2006pub const FORMAT_BC6H_UFLOAT_BLOCK: i32 = 143;
2007pub const FORMAT_BC6H_SFLOAT_BLOCK: i32 = 144;
2008pub const FORMAT_BC7_UNORM_BLOCK: i32 = 145;
2009pub const FORMAT_BC7_SRGB_BLOCK: i32 = 146;
2010pub const FORMAT_ETC2_R8G8B8_UNORM_BLOCK: i32 = 147;
2011pub const FORMAT_ETC2_R8G8B8_SRGB_BLOCK: i32 = 148;
2012pub const FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: i32 = 149;
2013pub const FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: i32 = 150;
2014pub const FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: i32 = 151;
2015pub const FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: i32 = 152;
2016pub const FORMAT_EAC_R11_UNORM_BLOCK: i32 = 153;
2017pub const FORMAT_EAC_R11_SNORM_BLOCK: i32 = 154;
2018pub const FORMAT_EAC_R11G11_UNORM_BLOCK: i32 = 155;
2019pub const FORMAT_EAC_R11G11_SNORM_BLOCK: i32 = 156;
2020pub const FORMAT_ASTC_4x4_UNORM_BLOCK: i32 = 157;
2021pub const FORMAT_ASTC_4x4_SRGB_BLOCK: i32 = 158;
2022pub const FORMAT_ASTC_5x4_UNORM_BLOCK: i32 = 159;
2023pub const FORMAT_ASTC_5x4_SRGB_BLOCK: i32 = 160;
2024pub const FORMAT_ASTC_5x5_UNORM_BLOCK: i32 = 161;
2025pub const FORMAT_ASTC_5x5_SRGB_BLOCK: i32 = 162;
2026pub const FORMAT_ASTC_6x5_UNORM_BLOCK: i32 = 163;
2027pub const FORMAT_ASTC_6x5_SRGB_BLOCK: i32 = 164;
2028pub const FORMAT_ASTC_6x6_UNORM_BLOCK: i32 = 165;
2029pub const FORMAT_ASTC_6x6_SRGB_BLOCK: i32 = 166;
2030pub const FORMAT_ASTC_8x5_UNORM_BLOCK: i32 = 167;
2031pub const FORMAT_ASTC_8x5_SRGB_BLOCK: i32 = 168;
2032pub const FORMAT_ASTC_8x6_UNORM_BLOCK: i32 = 169;
2033pub const FORMAT_ASTC_8x6_SRGB_BLOCK: i32 = 170;
2034pub const FORMAT_ASTC_8x8_UNORM_BLOCK: i32 = 171;
2035pub const FORMAT_ASTC_8x8_SRGB_BLOCK: i32 = 172;
2036pub const FORMAT_ASTC_10x5_UNORM_BLOCK: i32 = 173;
2037pub const FORMAT_ASTC_10x5_SRGB_BLOCK: i32 = 174;
2038pub const FORMAT_ASTC_10x6_UNORM_BLOCK: i32 = 175;
2039pub const FORMAT_ASTC_10x6_SRGB_BLOCK: i32 = 176;
2040pub const FORMAT_ASTC_10x8_UNORM_BLOCK: i32 = 177;
2041pub const FORMAT_ASTC_10x8_SRGB_BLOCK: i32 = 178;
2042pub const FORMAT_ASTC_10x10_UNORM_BLOCK: i32 = 179;
2043pub const FORMAT_ASTC_10x10_SRGB_BLOCK: i32 = 180;
2044pub const FORMAT_ASTC_12x10_UNORM_BLOCK: i32 = 181;
2045pub const FORMAT_ASTC_12x10_SRGB_BLOCK: i32 = 182;
2046pub const FORMAT_ASTC_12x12_UNORM_BLOCK: i32 = 183;
2047pub const FORMAT_ASTC_12x12_SRGB_BLOCK: i32 = 184;
2048pub const FORMAT_G8B8G8R8_422_UNORM: i32 = 1000156000;
2049pub const FORMAT_B8G8R8G8_422_UNORM: i32 = 1000156001;
2050pub const FORMAT_G8_B8_R8_3PLANE_420_UNORM: i32 = 1000156002;
2051pub const FORMAT_G8_B8R8_2PLANE_420_UNORM: i32 = 1000156003;
2052pub const FORMAT_G8_B8_R8_3PLANE_422_UNORM: i32 = 1000156004;
2053pub const FORMAT_G8_B8R8_2PLANE_422_UNORM: i32 = 1000156005;
2054pub const FORMAT_G8_B8_R8_3PLANE_444_UNORM: i32 = 1000156006;
2055pub const FORMAT_R10X6_UNORM_PACK16: i32 = 1000156007;
2056pub const FORMAT_R10X6G10X6_UNORM_2PACK16: i32 = 1000156008;
2057pub const FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: i32 = 1000156009;
2058pub const FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: i32 = 1000156010;
2059pub const FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: i32 = 1000156011;
2060pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: i32 = 1000156012;
2061pub const FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: i32 = 1000156013;
2062pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: i32 = 1000156014;
2063pub const FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: i32 = 1000156015;
2064pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: i32 = 1000156016;
2065pub const FORMAT_R12X4_UNORM_PACK16: i32 = 1000156017;
2066pub const FORMAT_R12X4G12X4_UNORM_2PACK16: i32 = 1000156018;
2067pub const FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16: i32 = 1000156019;
2068pub const FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: i32 = 1000156020;
2069pub const FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: i32 = 1000156021;
2070pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: i32 = 1000156022;
2071pub const FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: i32 = 1000156023;
2072pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: i32 = 1000156024;
2073pub const FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: i32 = 1000156025;
2074pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: i32 = 1000156026;
2075pub const FORMAT_G16B16G16R16_422_UNORM: i32 = 1000156027;
2076pub const FORMAT_B16G16R16G16_422_UNORM: i32 = 1000156028;
2077pub const FORMAT_G16_B16_R16_3PLANE_420_UNORM: i32 = 1000156029;
2078pub const FORMAT_G16_B16R16_2PLANE_420_UNORM: i32 = 1000156030;
2079pub const FORMAT_G16_B16_R16_3PLANE_422_UNORM: i32 = 1000156031;
2080pub const FORMAT_G16_B16R16_2PLANE_422_UNORM: i32 = 1000156032;
2081pub const FORMAT_G16_B16_R16_3PLANE_444_UNORM: i32 = 1000156033;
2082pub const FORMAT_G8_B8R8_2PLANE_444_UNORM: i32 = 1000330000;
2083pub const FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16: i32 = 1000330001;
2084pub const FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16: i32 = 1000330002;
2085pub const FORMAT_G16_B16R16_2PLANE_444_UNORM: i32 = 1000330003;
2086pub const FORMAT_A4R4G4B4_UNORM_PACK16: i32 = 1000340000;
2087pub const FORMAT_A4B4G4R4_UNORM_PACK16: i32 = 1000340001;
2088pub const FORMAT_ASTC_4x4_SFLOAT_BLOCK: i32 = 1000066000;
2089pub const FORMAT_ASTC_5x4_SFLOAT_BLOCK: i32 = 1000066001;
2090pub const FORMAT_ASTC_5x5_SFLOAT_BLOCK: i32 = 1000066002;
2091pub const FORMAT_ASTC_6x5_SFLOAT_BLOCK: i32 = 1000066003;
2092pub const FORMAT_ASTC_6x6_SFLOAT_BLOCK: i32 = 1000066004;
2093pub const FORMAT_ASTC_8x5_SFLOAT_BLOCK: i32 = 1000066005;
2094pub const FORMAT_ASTC_8x6_SFLOAT_BLOCK: i32 = 1000066006;
2095pub const FORMAT_ASTC_8x8_SFLOAT_BLOCK: i32 = 1000066007;
2096pub const FORMAT_ASTC_10x5_SFLOAT_BLOCK: i32 = 1000066008;
2097pub const FORMAT_ASTC_10x6_SFLOAT_BLOCK: i32 = 1000066009;
2098pub const FORMAT_ASTC_10x8_SFLOAT_BLOCK: i32 = 1000066010;
2099pub const FORMAT_ASTC_10x10_SFLOAT_BLOCK: i32 = 1000066011;
2100pub const FORMAT_ASTC_12x10_SFLOAT_BLOCK: i32 = 1000066012;
2101pub const FORMAT_ASTC_12x12_SFLOAT_BLOCK: i32 = 1000066013;
2102pub const FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG: i32 = 1000054000;
2103pub const FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG: i32 = 1000054001;
2104pub const FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG: i32 = 1000054002;
2105pub const FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG: i32 = 1000054003;
2106pub const FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG: i32 = 1000054004;
2107pub const FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG: i32 = 1000054005;
2108pub const FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG: i32 = 1000054006;
2109pub const FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: i32 = 1000054007;
2110pub const FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_4x4_SFLOAT_BLOCK;
2111pub const FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_5x4_SFLOAT_BLOCK;
2112pub const FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_5x5_SFLOAT_BLOCK;
2113pub const FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_6x5_SFLOAT_BLOCK;
2114pub const FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_6x6_SFLOAT_BLOCK;
2115pub const FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_8x5_SFLOAT_BLOCK;
2116pub const FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_8x6_SFLOAT_BLOCK;
2117pub const FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_8x8_SFLOAT_BLOCK;
2118pub const FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_10x5_SFLOAT_BLOCK;
2119pub const FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_10x6_SFLOAT_BLOCK;
2120pub const FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_10x8_SFLOAT_BLOCK;
2121pub const FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_10x10_SFLOAT_BLOCK;
2122pub const FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_12x10_SFLOAT_BLOCK;
2123pub const FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT: i32 = FORMAT_ASTC_12x12_SFLOAT_BLOCK;
2124pub const FORMAT_G8B8G8R8_422_UNORM_KHR: i32 = FORMAT_G8B8G8R8_422_UNORM;
2125pub const FORMAT_B8G8R8G8_422_UNORM_KHR: i32 = FORMAT_B8G8R8G8_422_UNORM;
2126pub const FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR: i32 = FORMAT_G8_B8_R8_3PLANE_420_UNORM;
2127pub const FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR: i32 = FORMAT_G8_B8R8_2PLANE_420_UNORM;
2128pub const FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR: i32 = FORMAT_G8_B8_R8_3PLANE_422_UNORM;
2129pub const FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR: i32 = FORMAT_G8_B8R8_2PLANE_422_UNORM;
2130pub const FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR: i32 = FORMAT_G8_B8_R8_3PLANE_444_UNORM;
2131pub const FORMAT_R10X6_UNORM_PACK16_KHR: i32 = FORMAT_R10X6_UNORM_PACK16;
2132pub const FORMAT_R10X6G10X6_UNORM_2PACK16_KHR: i32 = FORMAT_R10X6G10X6_UNORM_2PACK16;
2133pub const FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: i32 =
2134    FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16;
2135pub const FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: i32 =
2136    FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
2137pub const FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: i32 =
2138    FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
2139pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: i32 =
2140    FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
2141pub const FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: i32 =
2142    FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
2143pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: i32 =
2144    FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
2145pub const FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: i32 =
2146    FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
2147pub const FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: i32 =
2148    FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
2149pub const FORMAT_R12X4_UNORM_PACK16_KHR: i32 = FORMAT_R12X4_UNORM_PACK16;
2150pub const FORMAT_R12X4G12X4_UNORM_2PACK16_KHR: i32 = FORMAT_R12X4G12X4_UNORM_2PACK16;
2151pub const FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: i32 =
2152    FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16;
2153pub const FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: i32 =
2154    FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
2155pub const FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: i32 =
2156    FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
2157pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: i32 =
2158    FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
2159pub const FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: i32 =
2160    FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
2161pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: i32 =
2162    FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
2163pub const FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: i32 =
2164    FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
2165pub const FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: i32 =
2166    FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
2167pub const FORMAT_G16B16G16R16_422_UNORM_KHR: i32 = FORMAT_G16B16G16R16_422_UNORM;
2168pub const FORMAT_B16G16R16G16_422_UNORM_KHR: i32 = FORMAT_B16G16R16G16_422_UNORM;
2169pub const FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR: i32 = FORMAT_G16_B16_R16_3PLANE_420_UNORM;
2170pub const FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR: i32 = FORMAT_G16_B16R16_2PLANE_420_UNORM;
2171pub const FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR: i32 = FORMAT_G16_B16_R16_3PLANE_422_UNORM;
2172pub const FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR: i32 = FORMAT_G16_B16R16_2PLANE_422_UNORM;
2173pub const FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR: i32 = FORMAT_G16_B16_R16_3PLANE_444_UNORM;
2174pub const FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT: i32 = FORMAT_G8_B8R8_2PLANE_444_UNORM;
2175pub const FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT: i32 =
2176    FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16;
2177pub const FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT: i32 =
2178    FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16;
2179pub const FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT: i32 = FORMAT_G16_B16R16_2PLANE_444_UNORM;
2180pub const FORMAT_A4R4G4B4_UNORM_PACK16_EXT: i32 = FORMAT_A4R4G4B4_UNORM_PACK16;
2181pub const FORMAT_A4B4G4R4_UNORM_PACK16_EXT: i32 = FORMAT_A4B4G4R4_UNORM_PACK16;
2182pub const FORMAT_R16G16_S10_5_NV: i32 = 1000464000;
2183
2184// Structure type enumerant
2185pub type StructureType = i32;
2186pub const STRUCTURE_TYPE_APPLICATION_INFO: i32 = 0;
2187pub const STRUCTURE_TYPE_INSTANCE_CREATE_INFO: i32 = 1;
2188pub const STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO: i32 = 2;
2189pub const STRUCTURE_TYPE_DEVICE_CREATE_INFO: i32 = 3;
2190pub const STRUCTURE_TYPE_SUBMIT_INFO: i32 = 4;
2191pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: i32 = 5;
2192pub const STRUCTURE_TYPE_MAPPED_MEMORY_RANGE: i32 = 6;
2193pub const STRUCTURE_TYPE_BIND_SPARSE_INFO: i32 = 7;
2194pub const STRUCTURE_TYPE_FENCE_CREATE_INFO: i32 = 8;
2195pub const STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO: i32 = 9;
2196pub const STRUCTURE_TYPE_EVENT_CREATE_INFO: i32 = 10;
2197pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO: i32 = 11;
2198pub const STRUCTURE_TYPE_BUFFER_CREATE_INFO: i32 = 12;
2199pub const STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO: i32 = 13;
2200pub const STRUCTURE_TYPE_IMAGE_CREATE_INFO: i32 = 14;
2201pub const STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO: i32 = 15;
2202pub const STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: i32 = 16;
2203pub const STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO: i32 = 17;
2204pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO: i32 = 18;
2205pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: i32 = 19;
2206pub const STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: i32 = 20;
2207pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO: i32 = 21;
2208pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO: i32 = 22;
2209pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO: i32 = 23;
2210pub const STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: i32 = 24;
2211pub const STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: i32 = 25;
2212pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: i32 = 26;
2213pub const STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO: i32 = 27;
2214pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO: i32 = 28;
2215pub const STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO: i32 = 29;
2216pub const STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: i32 = 30;
2217pub const STRUCTURE_TYPE_SAMPLER_CREATE_INFO: i32 = 31;
2218pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO: i32 = 32;
2219pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO: i32 = 33;
2220pub const STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO: i32 = 34;
2221pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET: i32 = 35;
2222pub const STRUCTURE_TYPE_COPY_DESCRIPTOR_SET: i32 = 36;
2223pub const STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO: i32 = 37;
2224pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: i32 = 38;
2225pub const STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO: i32 = 39;
2226pub const STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO: i32 = 40;
2227pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO: i32 = 41;
2228pub const STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO: i32 = 42;
2229pub const STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO: i32 = 43;
2230pub const STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER: i32 = 44;
2231pub const STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER: i32 = 45;
2232pub const STRUCTURE_TYPE_MEMORY_BARRIER: i32 = 46;
2233pub const STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: i32 = 47; // Reserved for internal use by the loader, layers, and ICDs
2234pub const STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO: i32 = 48; // Reserved for internal use by the loader, layers, and ICDs
2235pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: i32 = 1000094000;
2236pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO: i32 = 1000157000;
2237pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO: i32 = 1000157001;
2238pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: i32 = 1000083000;
2239pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: i32 = 1000127000;
2240pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: i32 = 1000127001;
2241pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: i32 = 1000060000;
2242pub const STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: i32 = 1000060003;
2243pub const STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: i32 = 1000060004;
2244pub const STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: i32 = 1000060005;
2245pub const STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: i32 = 1000060006;
2246pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: i32 = 1000060013;
2247pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: i32 = 1000060014;
2248pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES: i32 = 1000070000;
2249pub const STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: i32 = 1000070001;
2250pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2: i32 = 1000146000;
2251pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2: i32 = 1000146001;
2252pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2: i32 = 1000146002;
2253pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2: i32 = 1000146003;
2254pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2: i32 = 1000146004;
2255pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: i32 = 1000059000;
2256pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: i32 = 1000059001;
2257pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2: i32 = 1000059002;
2258pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2: i32 = 1000059003;
2259pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2: i32 = 1000059004;
2260pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2: i32 = 1000059005;
2261pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2: i32 = 1000059006;
2262pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2: i32 = 1000059007;
2263pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2: i32 = 1000059008;
2264pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: i32 = 1000117000;
2265pub const STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: i32 = 1000117001;
2266pub const STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: i32 = 1000117002;
2267pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: i32 = 1000117003;
2268pub const STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: i32 = 1000053000;
2269pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: i32 = 1000053001;
2270pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: i32 = 1000053002;
2271pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: i32 = 1000120000;
2272pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES: i32 =
2273    STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
2274pub const STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: i32 = 1000145000;
2275pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: i32 = 1000145001;
2276pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: i32 = 1000145002;
2277pub const STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2: i32 = 1000145003;
2278pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO: i32 = 1000156000;
2279pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: i32 = 1000156001;
2280pub const STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: i32 = 1000156002;
2281pub const STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: i32 = 1000156003;
2282pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: i32 = 1000156004;
2283pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: i32 = 1000156005;
2284pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO: i32 = 1000085000;
2285pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: i32 = 1000071000;
2286pub const STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: i32 = 1000071001;
2287pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO: i32 = 1000071002;
2288pub const STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES: i32 = 1000071003;
2289pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: i32 = 1000071004;
2290pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: i32 = 1000072000;
2291pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: i32 = 1000072001;
2292pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: i32 = 1000072002;
2293pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO: i32 = 1000112000;
2294pub const STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES: i32 = 1000112001;
2295pub const STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: i32 = 1000113000;
2296pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: i32 = 1000077000;
2297pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO: i32 = 1000076000;
2298pub const STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES: i32 = 1000076001;
2299pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: i32 = 1000168000;
2300pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT: i32 = 1000168001;
2301pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: i32 = 1000063000;
2302pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES: i32 =
2303    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
2304pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: i32 = 49;
2305pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: i32 = 50;
2306pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: i32 = 51;
2307pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: i32 = 52;
2308pub const STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: i32 = 1000147000;
2309pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2: i32 = 1000109000;
2310pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2: i32 = 1000109001;
2311pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2: i32 = 1000109002;
2312pub const STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2: i32 = 1000109003;
2313pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: i32 = 1000109004;
2314pub const STRUCTURE_TYPE_SUBPASS_BEGIN_INFO: i32 = 1000109005;
2315pub const STRUCTURE_TYPE_SUBPASS_END_INFO: i32 = 1000109006;
2316pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: i32 = 1000177000;
2317pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: i32 = 1000196000;
2318pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: i32 = 1000180000;
2319pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: i32 = 1000082000;
2320pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: i32 = 1000197000;
2321pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: i32 = 1000161000;
2322pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: i32 = 1000161001;
2323pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: i32 = 1000161002;
2324pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: i32 = 1000161003;
2325pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: i32 = 1000161004;
2326pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: i32 = 1000199000;
2327pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: i32 = 1000199001;
2328pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: i32 = 1000221000;
2329pub const STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: i32 = 1000246000;
2330pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: i32 = 1000130000;
2331pub const STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: i32 = 1000130001;
2332pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: i32 = 1000211000;
2333pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: i32 = 1000108000;
2334pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: i32 = 1000108001;
2335pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO: i32 = 1000108002;
2336pub const STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: i32 = 1000108003;
2337pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: i32 = 1000253000;
2338pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: i32 = 1000175000;
2339pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: i32 = 1000241000;
2340pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: i32 = 1000241001;
2341pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: i32 = 1000241002;
2342pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: i32 = 1000261000;
2343pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: i32 = 1000207000;
2344pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: i32 = 1000207001;
2345pub const STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: i32 = 1000207002;
2346pub const STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: i32 = 1000207003;
2347pub const STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO: i32 = 1000207004;
2348pub const STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO: i32 = 1000207005;
2349pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: i32 = 1000257000;
2350pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO: i32 = 1000244001;
2351pub const STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: i32 = 1000257002;
2352pub const STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: i32 = 1000257003;
2353pub const STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO: i32 = 1000257004;
2354pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: i32 = 53;
2355pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: i32 = 54;
2356pub const STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: i32 = 1000192000;
2357pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: i32 = 1000215000;
2358pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES: i32 = 1000245000;
2359pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: i32 =
2360    1000276000;
2361pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: i32 = 1000295000;
2362pub const STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: i32 = 1000295001;
2363pub const STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO: i32 = 1000295002;
2364pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: i32 = 1000297000;
2365pub const STRUCTURE_TYPE_MEMORY_BARRIER_2: i32 = 1000314000;
2366pub const STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2: i32 = 1000314001;
2367pub const STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2: i32 = 1000314002;
2368pub const STRUCTURE_TYPE_DEPENDENCY_INFO: i32 = 1000314003;
2369pub const STRUCTURE_TYPE_SUBMIT_INFO_2: i32 = 1000314004;
2370pub const STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO: i32 = 1000314005;
2371pub const STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO: i32 = 1000314006;
2372pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: i32 = 1000314007;
2373pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: i32 =
2374    1000325000;
2375pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: i32 = 1000335000;
2376pub const STRUCTURE_TYPE_COPY_BUFFER_INFO_2: i32 = 1000337000;
2377pub const STRUCTURE_TYPE_COPY_IMAGE_INFO_2: i32 = 1000337001;
2378pub const STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2: i32 = 1000337002;
2379pub const STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2: i32 = 1000337003;
2380pub const STRUCTURE_TYPE_BLIT_IMAGE_INFO_2: i32 = 1000337004;
2381pub const STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2: i32 = 1000337005;
2382pub const STRUCTURE_TYPE_BUFFER_COPY_2: i32 = 1000337006;
2383pub const STRUCTURE_TYPE_IMAGE_COPY_2: i32 = 1000337007;
2384pub const STRUCTURE_TYPE_IMAGE_BLIT_2: i32 = 1000337008;
2385pub const STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2: i32 = 1000337009;
2386pub const STRUCTURE_TYPE_IMAGE_RESOLVE_2: i32 = 1000337010;
2387pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: i32 = 1000225000;
2388pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: i32 = 1000225001;
2389pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: i32 = 1000225002;
2390pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: i32 = 1000138000;
2391pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: i32 = 1000138001;
2392pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: i32 = 1000138002;
2393pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: i32 = 1000138003;
2394pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: i32 = 1000066000;
2395pub const STRUCTURE_TYPE_RENDERING_INFO: i32 = 1000044000;
2396pub const STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO: i32 = 1000044001;
2397pub const STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: i32 = 1000044002;
2398pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: i32 = 1000044003;
2399pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: i32 = 1000044004;
2400pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: i32 = 1000280000;
2401pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: i32 = 1000280001;
2402pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: i32 = 1000281001;
2403pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_3: i32 = 1000360000;
2404pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: i32 = 1000413000;
2405pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: i32 = 1000413001;
2406pub const STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS: i32 = 1000413002;
2407pub const STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS: i32 = 1000413003;
2408pub const STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR: i32 = 1000001000;
2409pub const STRUCTURE_TYPE_PRESENT_INFO_KHR: i32 = 1000001001;
2410pub const STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: i32 = 1000060007;
2411pub const STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: i32 = 1000060008;
2412pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: i32 = 1000060009;
2413pub const STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR: i32 = 1000060010;
2414pub const STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: i32 = 1000060011;
2415pub const STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: i32 = 1000060012;
2416pub const STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR: i32 = 1000002000;
2417pub const STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR: i32 = 1000002001;
2418pub const STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: i32 = 1000003000;
2419pub const STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: i32 = 1000011000;
2420pub const STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT: i32 =
2421    STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT; // Backwards-compatible alias containing a typo
2422pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: i32 = 1000018000;
2423pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT: i32 = 1000022000;
2424pub const STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT: i32 = 1000022001;
2425pub const STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT: i32 = 1000022002;
2426pub const STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: i32 = 1000023000;
2427pub const STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR: i32 = 1000023001;
2428pub const STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR: i32 = 1000023002;
2429pub const STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR: i32 = 1000023003;
2430pub const STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR: i32 = 1000023004;
2431pub const STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR: i32 = 1000023005;
2432pub const STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: i32 = 1000023006;
2433pub const STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: i32 = 1000023007;
2434pub const STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR: i32 = 1000023008;
2435pub const STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR: i32 = 1000023009;
2436pub const STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR: i32 = 1000023010;
2437pub const STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR: i32 = 1000023011;
2438pub const STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: i32 = 1000023012;
2439pub const STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: i32 = 1000023013;
2440pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: i32 = 1000023014;
2441pub const STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR: i32 = 1000023015;
2442pub const STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: i32 = 1000023016;
2443pub const STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR: i32 = 1000024000;
2444pub const STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: i32 = 1000024001;
2445pub const STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: i32 = 1000024002;
2446pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: i32 = 1000026000;
2447pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: i32 = 1000026001;
2448pub const STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: i32 = 1000026002;
2449pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: i32 = 1000028000;
2450pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: i32 = 1000028001;
2451pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: i32 = 1000028002;
2452pub const STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX: i32 = 1000029000;
2453pub const STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX: i32 = 1000029001;
2454pub const STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX: i32 = 1000029002;
2455pub const STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX: i32 = 1000030000;
2456pub const STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: i32 = 1000030001;
2457pub const STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: i32 = 1000041000;
2458pub const STRUCTURE_TYPE_RENDERING_INFO_KHR: i32 = STRUCTURE_TYPE_RENDERING_INFO;
2459pub const STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR: i32 =
2460    STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO;
2461pub const STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR: i32 =
2462    STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO;
2463pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR: i32 =
2464    STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
2465pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR: i32 =
2466    STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO;
2467pub const STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: i32 = 1000044006;
2468pub const STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: i32 = 1000044007;
2469pub const STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: i32 = 1000044008;
2470pub const STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV: i32 =
2471    STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
2472pub const STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: i32 = 1000044009;
2473pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: i32 = 1000050000;
2474pub const STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR: i32 =
2475    STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO;
2476pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR: i32 =
2477    STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
2478pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR: i32 =
2479    STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
2480pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: i32 = 1000056000;
2481pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: i32 = 1000056001;
2482pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR: i32 =
2483    STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2;
2484pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR: i32 =
2485    STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2;
2486pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR: i32 = STRUCTURE_TYPE_FORMAT_PROPERTIES_2;
2487pub const STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR: i32 =
2488    STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2;
2489pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR: i32 =
2490    STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
2491pub const STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR: i32 =
2492    STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
2493pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR: i32 =
2494    STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
2495pub const STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR: i32 =
2496    STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2;
2497pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR: i32 =
2498    STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
2499pub const STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR: i32 =
2500    STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO;
2501pub const STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR: i32 =
2502    STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
2503pub const STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR: i32 =
2504    STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
2505pub const STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR: i32 =
2506    STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO;
2507pub const STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR: i32 =
2508    STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO;
2509pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR: i32 =
2510    STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
2511pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR: i32 =
2512    STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
2513pub const STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: i32 = 1000061000;
2514pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: i32 =
2515    STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES;
2516pub const STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: i32 = 1000067000;
2517pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: i32 = 1000067001;
2518pub const STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: i32 = 1000068000;
2519pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: i32 = 1000068001;
2520pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: i32 = 1000068002;
2521pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR: i32 =
2522    STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES;
2523pub const STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR: i32 =
2524    STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO;
2525pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR: i32 =
2526    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
2527pub const STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR: i32 =
2528    STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES;
2529pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR: i32 =
2530    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
2531pub const STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR: i32 =
2532    STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES;
2533pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR: i32 =
2534    STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES;
2535pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR: i32 =
2536    STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
2537pub const STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR: i32 =
2538    STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
2539pub const STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR: i32 =
2540    STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO;
2541pub const STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR: i32 = 1000074000;
2542pub const STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR: i32 = 1000074001;
2543pub const STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR: i32 = 1000074002;
2544pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR: i32 =
2545    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
2546pub const STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR: i32 =
2547    STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES;
2548pub const STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR: i32 =
2549    STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
2550pub const STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR: i32 = 1000079000;
2551pub const STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR: i32 = 1000079001;
2552pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: i32 = 1000080000;
2553pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: i32 =
2554    1000081000;
2555pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: i32 = 1000081001;
2556pub const STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT: i32 = 1000081002;
2557pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR: i32 =
2558    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
2559pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR: i32 =
2560    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
2561pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR: i32 =
2562    STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
2563pub const STRUCTURE_TYPE_PRESENT_REGIONS_KHR: i32 = 1000084000;
2564pub const STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR: i32 =
2565    STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
2566pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: i32 = 1000087000;
2567pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT: i32 = 1000090000;
2568pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT: i32 = STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT; // Backwards-compatible alias containing a typo
2569pub const STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT: i32 = 1000091000;
2570pub const STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT: i32 = 1000091001;
2571pub const STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT: i32 = 1000091002;
2572pub const STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: i32 = 1000091003;
2573pub const STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: i32 = 1000092000;
2574pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: i32 =
2575    1000097000;
2576pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: i32 = 1000098000;
2577pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: i32 = 1000099000;
2578pub const STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: i32 = 1000099001;
2579pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: i32 =
2580    1000101000;
2581pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: i32 =
2582    1000101001;
2583pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: i32 = 1000102000;
2584pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: i32 = 1000102001;
2585pub const STRUCTURE_TYPE_HDR_METADATA_EXT: i32 = 1000105000;
2586pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR: i32 =
2587    STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
2588pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR: i32 =
2589    STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
2590pub const STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR: i32 =
2591    STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
2592pub const STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR: i32 =
2593    STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO;
2594pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR: i32 =
2595    STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2;
2596pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR: i32 = STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2;
2597pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR: i32 = STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2;
2598pub const STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR: i32 = STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2;
2599pub const STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR: i32 =
2600    STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2;
2601pub const STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR: i32 = STRUCTURE_TYPE_SUBPASS_BEGIN_INFO;
2602pub const STRUCTURE_TYPE_SUBPASS_END_INFO_KHR: i32 = STRUCTURE_TYPE_SUBPASS_END_INFO;
2603pub const STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: i32 = 1000111000;
2604pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR: i32 =
2605    STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
2606pub const STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR: i32 =
2607    STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES;
2608pub const STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR: i32 =
2609    STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO;
2610pub const STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR: i32 = 1000115000;
2611pub const STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR: i32 = 1000115001;
2612pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: i32 = 1000116000;
2613pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: i32 = 1000116001;
2614pub const STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: i32 = 1000116002;
2615pub const STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: i32 = 1000116003;
2616pub const STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR: i32 = 1000116004;
2617pub const STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR: i32 = 1000116005;
2618pub const STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR: i32 = 1000116006;
2619pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR: i32 =
2620    STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
2621pub const STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR: i32 =
2622    STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
2623pub const STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR: i32 =
2624    STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO;
2625pub const STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR: i32 =
2626    STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
2627pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: i32 = 1000119000;
2628pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR: i32 = 1000119001;
2629pub const STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR: i32 = 1000119002;
2630pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR: i32 =
2631    STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
2632pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: i32 =
2633    STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
2634pub const STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR: i32 = 1000121000;
2635pub const STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR: i32 = 1000121001;
2636pub const STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR: i32 = 1000121002;
2637pub const STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR: i32 = 1000121003;
2638pub const STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR: i32 = 1000121004;
2639pub const STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR: i32 =
2640    STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS;
2641pub const STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR: i32 =
2642    STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO;
2643pub const STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: i32 = 1000128000;
2644pub const STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT: i32 = 1000128001;
2645pub const STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT: i32 = 1000128002;
2646pub const STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: i32 = 1000128003;
2647pub const STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: i32 = 1000128004;
2648pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: i32 =
2649    STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
2650pub const STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: i32 =
2651    STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO;
2652pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT: i32 =
2653    STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES;
2654pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: i32 =
2655    STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES;
2656pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT: i32 =
2657    STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK;
2658pub const STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: i32 =
2659    STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO;
2660pub const STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: i32 = 1000143000;
2661pub const STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: i32 = 1000143001;
2662pub const STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: i32 = 1000143002;
2663pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: i32 = 1000143003;
2664pub const STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT: i32 = 1000143004;
2665pub const STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: i32 =
2666    STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2;
2667pub const STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: i32 =
2668    STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2;
2669pub const STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: i32 =
2670    STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
2671pub const STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR: i32 = STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2;
2672pub const STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: i32 =
2673    STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
2674pub const STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR: i32 =
2675    STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO;
2676pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: i32 = 1000148000;
2677pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: i32 = 1000148001;
2678pub const STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: i32 = 1000148002;
2679pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: i32 = 1000149000;
2680pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: i32 = 1000150007;
2681pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: i32 = 1000150000;
2682pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: i32 = 1000150002;
2683pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: i32 = 1000150003;
2684pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: i32 = 1000150004;
2685pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: i32 = 1000150005;
2686pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR: i32 = 1000150006;
2687pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR: i32 = 1000150009;
2688pub const STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR: i32 = 1000150010;
2689pub const STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: i32 = 1000150011;
2690pub const STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: i32 = 1000150012;
2691pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: i32 = 1000150013;
2692pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: i32 = 1000150014;
2693pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR: i32 = 1000150017;
2694pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: i32 = 1000150020;
2695pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: i32 = 1000347000;
2696pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: i32 = 1000347001;
2697pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR: i32 = 1000150015;
2698pub const STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: i32 = 1000150016;
2699pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: i32 = 1000150018;
2700pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: i32 = 1000348013;
2701pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: i32 = 1000152000;
2702pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: i32 = 1000154000;
2703pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: i32 = 1000154001;
2704pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR: i32 =
2705    STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
2706pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR: i32 =
2707    STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO;
2708pub const STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR: i32 =
2709    STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO;
2710pub const STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR: i32 =
2711    STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
2712pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR: i32 =
2713    STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
2714pub const STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR: i32 =
2715    STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
2716pub const STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR: i32 = STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO;
2717pub const STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR: i32 = STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO;
2718pub const STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: i32 = 1000158000;
2719pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: i32 = 1000158002;
2720pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: i32 = 1000158003;
2721pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: i32 = 1000158004;
2722pub const STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: i32 = 1000158005;
2723pub const STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: i32 = 1000158006;
2724pub const STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT: i32 = 1000160000;
2725pub const STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: i32 = 1000160001;
2726pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: i32 =
2727    STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
2728pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: i32 =
2729    STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
2730pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT: i32 =
2731    STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
2732pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: i32 =
2733    STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
2734pub const STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: i32 =
2735    STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
2736pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: i32 = 1000163000;
2737pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: i32 = 1000163001;
2738pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: i32 =
2739    1000164000;
2740pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: i32 = 1000164001;
2741pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: i32 = 1000164002;
2742pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: i32 =
2743    1000164005;
2744pub const STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV: i32 = 1000165000;
2745pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV: i32 = 1000165001;
2746pub const STRUCTURE_TYPE_GEOMETRY_NV: i32 = 1000165003;
2747pub const STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV: i32 = 1000165004;
2748pub const STRUCTURE_TYPE_GEOMETRY_AABB_NV: i32 = 1000165005;
2749pub const STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: i32 = 1000165006;
2750pub const STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: i32 = 1000165007;
2751pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: i32 = 1000165008;
2752pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: i32 = 1000165009;
2753pub const STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: i32 = 1000165011;
2754pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV: i32 = 1000165012;
2755pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: i32 = 1000166000;
2756pub const STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: i32 =
2757    1000166001;
2758pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR: i32 =
2759    STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
2760pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR: i32 =
2761    STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT;
2762pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: i32 = 1000170000;
2763pub const STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: i32 = 1000170001;
2764pub const STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: i32 =
2765    STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR;
2766pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR: i32 =
2767    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
2768pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR: i32 =
2769    STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
2770pub const STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: i32 = 1000178000;
2771pub const STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT: i32 = 1000178001;
2772pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: i32 = 1000178002;
2773pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR: i32 =
2774    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
2775pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: i32 = 1000181000;
2776pub const STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: i32 = 1000183000;
2777pub const STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT: i32 = 1000184000;
2778pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: i32 = 1000185000;
2779pub const STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: i32 = 1000174000;
2780pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: i32 = 1000388000;
2781pub const STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: i32 = 1000388001;
2782pub const STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: i32 = 1000189000;
2783pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: i32 = 1000190000;
2784pub const STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: i32 = 1000190001;
2785pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: i32 = 1000190002;
2786pub const STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: i32 =
2787    STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO;
2788pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR: i32 =
2789    STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
2790pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR: i32 =
2791    STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
2792pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR: i32 =
2793    STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
2794pub const STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR: i32 =
2795    STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
2796pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: i32 = 1000201000;
2797pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: i32 = 1000202000;
2798pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: i32 = 1000202001;
2799pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV: i32 =
2800    STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR;
2801pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: i32 = 1000204000;
2802pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: i32 = 1000205000;
2803pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: i32 = 1000205002;
2804pub const STRUCTURE_TYPE_CHECKPOINT_DATA_NV: i32 = 1000206000;
2805pub const STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: i32 = 1000206001;
2806pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR: i32 =
2807    STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
2808pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR: i32 =
2809    STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
2810pub const STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR: i32 =
2811    STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO;
2812pub const STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR: i32 =
2813    STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO;
2814pub const STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR: i32 = STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO;
2815pub const STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR: i32 = STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO;
2816pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: i32 =
2817    1000209000;
2818pub const STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: i32 = 1000210000;
2819pub const STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL: i32 =
2820    STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL; // Backwards-compatible alias containing a typo
2821pub const STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL: i32 = 1000210001;
2822pub const STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL: i32 = 1000210002;
2823pub const STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL: i32 = 1000210003;
2824pub const STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL: i32 = 1000210004;
2825pub const STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: i32 = 1000210005;
2826pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: i32 =
2827    STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
2828pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: i32 = 1000212000;
2829pub const STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: i32 = 1000213000;
2830pub const STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: i32 = 1000213001;
2831pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: i32 =
2832    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES;
2833pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: i32 = 1000218000;
2834pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: i32 = 1000218001;
2835pub const STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: i32 = 1000218002;
2836pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: i32 =
2837    STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
2838pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT: i32 =
2839    STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES;
2840pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: i32 =
2841    STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO;
2842pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: i32 =
2843    STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES;
2844pub const STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: i32 = 1000226000;
2845pub const STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: i32 = 1000226001;
2846pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: i32 = 1000226002;
2847pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: i32 = 1000226003;
2848pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: i32 = 1000226004;
2849pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: i32 = 1000227000;
2850pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: i32 = 1000229000;
2851pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: i32 = 1000234000;
2852pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: i32 = 1000237000;
2853pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: i32 = 1000238000;
2854pub const STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: i32 = 1000238001;
2855pub const STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: i32 = 1000239000;
2856pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: i32 =
2857    1000240000;
2858pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR: i32 =
2859    STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
2860pub const STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR: i32 =
2861    STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
2862pub const STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR: i32 =
2863    STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
2864pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: i32 = 1000244000;
2865pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: i32 =
2866    STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
2867pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT: i32 =
2868    STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
2869pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: i32 = 1000244002;
2870pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT: i32 =
2871    STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES;
2872pub const STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT: i32 =
2873    STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO;
2874pub const STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: i32 = 1000247000;
2875pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: i32 = 1000248000;
2876pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: i32 = 1000249000;
2877pub const STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV: i32 = 1000249001;
2878pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: i32 = 1000249002;
2879pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: i32 = 1000250000;
2880pub const STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: i32 = 1000250001;
2881pub const STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: i32 = 1000250002;
2882pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: i32 = 1000251000;
2883pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: i32 = 1000252000;
2884pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: i32 =
2885    STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
2886pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: i32 = 1000254000;
2887pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: i32 =
2888    1000254001;
2889pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: i32 = 1000254002;
2890pub const STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT: i32 = 1000256000;
2891pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR: i32 =
2892    STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
2893pub const STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR: i32 =
2894    STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO;
2895pub const STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR: i32 =
2896    STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
2897pub const STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR: i32 =
2898    STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
2899pub const STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR: i32 =
2900    STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
2901pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: i32 = 1000259000;
2902pub const STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: i32 = 1000259001;
2903pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: i32 = 1000259002;
2904pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: i32 = 1000260000;
2905pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT: i32 =
2906    STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
2907pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: i32 = 1000265000;
2908pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: i32 = 1000267000; // Not promoted to 1.3
2909pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: i32 =
2910    1000269000;
2911pub const STRUCTURE_TYPE_PIPELINE_INFO_KHR: i32 = 1000269001;
2912pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR: i32 = 1000269002;
2913pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR: i32 = 1000269003;
2914pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR: i32 = 1000269004;
2915pub const STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: i32 = 1000269005;
2916pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: i32 = 1000273000;
2917pub const STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: i32 = 1000274000;
2918pub const STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: i32 = 1000274001;
2919pub const STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: i32 = 1000274002;
2920pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: i32 = 1000275000;
2921pub const STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: i32 = 1000275001;
2922pub const STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: i32 = 1000275002;
2923pub const STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: i32 = 1000275003;
2924pub const STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: i32 = 1000275004;
2925pub const STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT: i32 = 1000275005;
2926pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT: i32 =
2927    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES;
2928pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: i32 = 1000277000;
2929pub const STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: i32 = 1000277001;
2930pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: i32 = 1000277002;
2931pub const STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: i32 = 1000277003;
2932pub const STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: i32 = 1000277004;
2933pub const STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV: i32 = 1000277005;
2934pub const STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: i32 = 1000277006;
2935pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: i32 = 1000277007;
2936pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: i32 = 1000278000;
2937pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: i32 = 1000278001;
2938pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR: i32 =
2939    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES;
2940pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR: i32 =
2941    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES;
2942pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: i32 = 1000281000; // Not promoted to 1.3
2943pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: i32 =
2944    STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES;
2945pub const STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: i32 =
2946    1000282000;
2947pub const STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: i32 = 1000282001;
2948pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: i32 = 1000284000;
2949pub const STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: i32 = 1000284001;
2950pub const STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: i32 = 1000284002;
2951pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: i32 = 1000286000;
2952pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: i32 = 1000286001;
2953pub const STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: i32 = 1000287000;
2954pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: i32 = 1000287001;
2955pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: i32 = 1000287002;
2956pub const STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: i32 = 1000290000;
2957pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: i32 = 1000292000;
2958pub const STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: i32 = 1000292001;
2959pub const STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: i32 = 1000292002;
2960pub const STRUCTURE_TYPE_PRESENT_ID_KHR: i32 = 1000294000;
2961pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: i32 = 1000294001;
2962pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: i32 =
2963    STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES;
2964pub const STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: i32 =
2965    STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO;
2966pub const STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT: i32 =
2967    STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO;
2968pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: i32 =
2969    STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES;
2970pub const STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR: i32 = 1000299000;
2971pub const STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: i32 = 1000299001;
2972pub const STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: i32 = 1000299002;
2973pub const STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: i32 = 1000299003;
2974pub const STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: i32 = 1000299004;
2975pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: i32 = 1000300000;
2976pub const STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: i32 = 1000300001;
2977pub const STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR: i32 = STRUCTURE_TYPE_MEMORY_BARRIER_2;
2978pub const STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR: i32 = STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2;
2979pub const STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR: i32 = STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2;
2980pub const STRUCTURE_TYPE_DEPENDENCY_INFO_KHR: i32 = STRUCTURE_TYPE_DEPENDENCY_INFO;
2981pub const STRUCTURE_TYPE_SUBMIT_INFO_2_KHR: i32 = STRUCTURE_TYPE_SUBMIT_INFO_2;
2982pub const STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR: i32 = STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO;
2983pub const STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR: i32 =
2984    STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO;
2985pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: i32 =
2986    STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES;
2987pub const STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: i32 = 1000314008;
2988pub const STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV: i32 = 1000314009;
2989pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: i32 = 1000316000;
2990pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: i32 =
2991    1000316001;
2992pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: i32 = 1000316002;
2993pub const STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT: i32 = 1000316003;
2994pub const STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT: i32 = 1000316004;
2995pub const STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: i32 = 1000316005;
2996pub const STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: i32 = 1000316006;
2997pub const STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: i32 = 1000316007;
2998pub const STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: i32 = 1000316008;
2999pub const STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: i32 = 1000316010;
3000pub const STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT: i32 = 1000316011;
3001pub const STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: i32 =
3002    1000316012;
3003pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT: i32 = 1000316009;
3004pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: i32 = 1000320000;
3005pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: i32 = 1000320001;
3006pub const STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: i32 = 1000320002;
3007pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: i32 =
3008    1000321000;
3009pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: i32 = 1000203000;
3010pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: i32 =
3011    1000322000;
3012pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: i32 =
3013    1000323000;
3014pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR: i32 =
3015    STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES;
3016pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: i32 =
3017    1000326000;
3018pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: i32 = 1000326001;
3019pub const STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: i32 = 1000326002;
3020pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: i32 = 1000327000;
3021pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: i32 = 1000327001;
3022pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: i32 = 1000327002;
3023pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: i32 = 1000328000;
3024pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: i32 = 1000328001;
3025pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: i32 = 1000330000;
3026pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: i32 = 1000332000;
3027pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: i32 = 1000332001;
3028pub const STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: i32 = 1000333000;
3029pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: i32 =
3030    STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES;
3031pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: i32 =
3032    1000336000;
3033pub const STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR: i32 = STRUCTURE_TYPE_COPY_BUFFER_INFO_2;
3034pub const STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR: i32 = STRUCTURE_TYPE_COPY_IMAGE_INFO_2;
3035pub const STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR: i32 =
3036    STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2;
3037pub const STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR: i32 =
3038    STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2;
3039pub const STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR: i32 = STRUCTURE_TYPE_BLIT_IMAGE_INFO_2;
3040pub const STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR: i32 = STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2;
3041pub const STRUCTURE_TYPE_BUFFER_COPY_2_KHR: i32 = STRUCTURE_TYPE_BUFFER_COPY_2;
3042pub const STRUCTURE_TYPE_IMAGE_COPY_2_KHR: i32 = STRUCTURE_TYPE_IMAGE_COPY_2;
3043pub const STRUCTURE_TYPE_IMAGE_BLIT_2_KHR: i32 = STRUCTURE_TYPE_IMAGE_BLIT_2;
3044pub const STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR: i32 = STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2;
3045pub const STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR: i32 = STRUCTURE_TYPE_IMAGE_RESOLVE_2;
3046pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: i32 = 1000338000;
3047pub const STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: i32 = 1000338001;
3048pub const STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT: i32 = 1000338002;
3049pub const STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT: i32 = 1000338003;
3050pub const STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: i32 = 1000338004;
3051pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: i32 =
3052    1000339000;
3053pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: i32 = 1000340000;
3054pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: i32 = 1000341000;
3055pub const STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT: i32 = 1000341001;
3056pub const STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT: i32 = 1000341002;
3057pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM: i32 =
3058    STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT;
3059pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: i32 = 1000344000;
3060pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: i32 =
3061    STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT;
3062pub const STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: i32 =
3063    STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT;
3064pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: i32 = 1000352000;
3065pub const STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: i32 = 1000352001;
3066pub const STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: i32 = 1000352002;
3067pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: i32 = 1000353000;
3068pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: i32 = 1000354000;
3069pub const STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: i32 = 1000354001;
3070pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: i32 = 1000355000;
3071pub const STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: i32 = 1000355001;
3072pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: i32 =
3073    1000356000;
3074pub const STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR: i32 = STRUCTURE_TYPE_FORMAT_PROPERTIES_3;
3075pub const STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: i32 = 1000369000;
3076pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: i32 = 1000369001;
3077pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: i32 = 1000369002;
3078pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: i32 = 1000370000;
3079pub const STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV: i32 = 1000371000;
3080pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: i32 = 1000371001;
3081pub const STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT: i32 = 1000372000;
3082pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: i32 = 1000372001;
3083pub const STRUCTURE_TYPE_PIPELINE_INFO_EXT: i32 = STRUCTURE_TYPE_PIPELINE_INFO_KHR;
3084pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: i32 =
3085    1000376000;
3086pub const STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: i32 = 1000376001;
3087pub const STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: i32 = 1000376002;
3088pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: i32 = 1000377000; // Not promoted to 1.3
3089pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: i32 = 1000381000;
3090pub const STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: i32 = 1000381001;
3091pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: i32 = 1000382000;
3092pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: i32 = 1000386000;
3093pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT: i32 =
3094    STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR;
3095pub const STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT: i32 =
3096    STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;
3097pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: i32 = 1000391000;
3098pub const STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: i32 = 1000391001;
3099pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: i32 = 1000392000;
3100pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: i32 = 1000392001;
3101pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: i32 = 1000393000;
3102pub const STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT: i32 = 1000396000;
3103pub const STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT: i32 = 1000396001;
3104pub const STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT: i32 = 1000396002;
3105pub const STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT: i32 = 1000396003;
3106pub const STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT: i32 = 1000396004;
3107pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: i32 = 1000396005;
3108pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: i32 = 1000396006;
3109pub const STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT: i32 = 1000396007;
3110pub const STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT: i32 = 1000396008;
3111pub const STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: i32 = 1000396009;
3112pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: i32 = 1000411000;
3113pub const STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: i32 = 1000411001;
3114pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: i32 =
3115    1000412000;
3116pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR: i32 =
3117    STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES;
3118pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR: i32 =
3119    STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES;
3120pub const STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR: i32 =
3121    STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS;
3122pub const STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR: i32 =
3123    STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS;
3124pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: i32 =
3125    1000420000;
3126pub const STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE: i32 = 1000420001;
3127pub const STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE: i32 = 1000420002;
3128pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: i32 = 1000421000;
3129pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: i32 = 1000422000;
3130pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: i32 =
3131    1000425000;
3132pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: i32 =
3133    1000425001;
3134pub const STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: i32 = 1000425002;
3135pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: i32 = 1000426000;
3136pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: i32 = 1000426001;
3137pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: i32 = 1000427000;
3138pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: i32 = 1000427001;
3139pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: i32 = 1000430000;
3140pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: i32 =
3141    1000437000;
3142pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: i32 = 1000440000;
3143pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: i32 = 1000440001;
3144pub const STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: i32 = 1000440002;
3145pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: i32 = 1000455000;
3146pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: i32 = 1000455001;
3147pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: i32 = 1000458000;
3148pub const STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: i32 = 1000458001;
3149pub const STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: i32 = 1000458002;
3150pub const STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: i32 = 1000458003;
3151pub const STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG: i32 = 1000459000;
3152pub const STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: i32 = 1000459001;
3153pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: i32 = 1000462000;
3154pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: i32 = 1000462001;
3155pub const STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: i32 = 1000462002;
3156pub const STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT: i32 = 1000462003;
3157pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: i32 =
3158    1000342000;
3159pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: i32 = 1000464000;
3160pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: i32 = 1000464001;
3161pub const STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: i32 = 1000464002;
3162pub const STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV: i32 = 1000464003;
3163pub const STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV: i32 = 1000464004;
3164pub const STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV: i32 = 1000464005;
3165pub const STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: i32 = 1000464010;
3166pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: i32 = 1000465000;
3167pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: i32 = 1000466000;
3168pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: i32 = 1000484000;
3169pub const STRUCTURE_TYPE_TILE_PROPERTIES_QCOM: i32 = 1000484001;
3170pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: i32 = 1000485000;
3171pub const STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: i32 = 1000485001;
3172pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: i32 =
3173    1000488000;
3174pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: i32 =
3175    1000490000;
3176pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: i32 =
3177    1000490001;
3178pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: i32 = 1000351000;
3179pub const STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: i32 = 1000351002;
3180pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: i32 = 1000497000;
3181pub const STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: i32 = 1000497001;
3182
3183pub type SubpassContents = i32;
3184pub const SUBPASS_CONTENTS_INLINE: i32 = 0;
3185pub const SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS: i32 = 1;
3186
3187// API result codes
3188pub type Result = i32;
3189pub const SUCCESS: i32 = 0; // Command completed successfully
3190pub const NOT_READY: i32 = 1; // A fence or query has not yet completed
3191pub const TIMEOUT: i32 = 2; // A wait operation has not completed in the specified time
3192pub const EVENT_SET: i32 = 3; // An event is signaled
3193pub const EVENT_RESET: i32 = 4; // An event is unsignaled
3194pub const INCOMPLETE: i32 = 5; // A return array was too small for the result
3195pub const ERROR_OUT_OF_HOST_MEMORY: i32 = -1; // A host memory allocation has failed
3196pub const ERROR_OUT_OF_DEVICE_MEMORY: i32 = -2; // A device memory allocation has failed
3197pub const ERROR_INITIALIZATION_FAILED: i32 = -3; // Initialization of an object has failed
3198pub const ERROR_DEVICE_LOST: i32 = -4; // The logical device has been lost. See <<devsandqueues-lost-device>>
3199pub const ERROR_MEMORY_MAP_FAILED: i32 = -5; // Mapping of a memory object has failed
3200pub const ERROR_LAYER_NOT_PRESENT: i32 = -6; // Layer specified does not exist
3201pub const ERROR_EXTENSION_NOT_PRESENT: i32 = -7; // Extension specified does not exist
3202pub const ERROR_FEATURE_NOT_PRESENT: i32 = -8; // Requested feature is not available on this device
3203pub const ERROR_INCOMPATIBLE_DRIVER: i32 = -9; // Unable to find a Vulkan driver
3204pub const ERROR_TOO_MANY_OBJECTS: i32 = -10; // Too many objects of the type have already been created
3205pub const ERROR_FORMAT_NOT_SUPPORTED: i32 = -11; // Requested format is not supported on this device
3206pub const ERROR_FRAGMENTED_POOL: i32 = -12; // A requested pool allocation has failed due to fragmentation of the pool's memory
3207pub const ERROR_UNKNOWN: i32 = -13; // An unknown error has occurred, due to an implementation or application bug
3208pub const ERROR_OUT_OF_POOL_MEMORY: i32 = -1000069000;
3209pub const ERROR_INVALID_EXTERNAL_HANDLE: i32 = -1000072003;
3210pub const ERROR_FRAGMENTATION: i32 = -1000161000;
3211pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS: i32 = -1000257000;
3212pub const PIPELINE_COMPILE_REQUIRED: i32 = 1000297000;
3213pub const ERROR_SURFACE_LOST_KHR: i32 = -1000000000;
3214pub const ERROR_NATIVE_WINDOW_IN_USE_KHR: i32 = -1000000001;
3215pub const SUBOPTIMAL_KHR: i32 = 1000001003;
3216pub const ERROR_OUT_OF_DATE_KHR: i32 = -1000001004;
3217pub const ERROR_INCOMPATIBLE_DISPLAY_KHR: i32 = -1000003001;
3218pub const ERROR_VALIDATION_FAILED_EXT: i32 = -1000011001;
3219pub const ERROR_INVALID_SHADER_NV: i32 = -1000012000;
3220pub const ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR: i32 = -1000023000;
3221pub const ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR: i32 = -1000023001;
3222pub const ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR: i32 = -1000023002;
3223pub const ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR: i32 = -1000023003;
3224pub const ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR: i32 = -1000023004;
3225pub const ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR: i32 = -1000023005;
3226pub const ERROR_OUT_OF_POOL_MEMORY_KHR: i32 = ERROR_OUT_OF_POOL_MEMORY;
3227pub const ERROR_INVALID_EXTERNAL_HANDLE_KHR: i32 = ERROR_INVALID_EXTERNAL_HANDLE;
3228pub const ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: i32 = -1000158000;
3229pub const ERROR_FRAGMENTATION_EXT: i32 = ERROR_FRAGMENTATION;
3230pub const ERROR_NOT_PERMITTED_EXT: i32 = ERROR_NOT_PERMITTED_KHR;
3231pub const ERROR_NOT_PERMITTED_KHR: i32 = -1000174001;
3232pub const ERROR_INVALID_DEVICE_ADDRESS_EXT: i32 = ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
3233pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR: i32 = ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
3234pub const THREAD_IDLE_KHR: i32 = 1000268000;
3235pub const THREAD_DONE_KHR: i32 = 1000268001;
3236pub const OPERATION_DEFERRED_KHR: i32 = 1000268002;
3237pub const OPERATION_NOT_DEFERRED_KHR: i32 = 1000268003;
3238pub const PIPELINE_COMPILE_REQUIRED_EXT: i32 = PIPELINE_COMPILE_REQUIRED;
3239pub const ERROR_PIPELINE_COMPILE_REQUIRED_EXT: i32 = PIPELINE_COMPILE_REQUIRED;
3240pub const ERROR_COMPRESSION_EXHAUSTED_EXT: i32 = -1000338000;
3241
3242pub type DynamicState = i32;
3243pub const DYNAMIC_STATE_VIEWPORT: i32 = 0;
3244pub const DYNAMIC_STATE_SCISSOR: i32 = 1;
3245pub const DYNAMIC_STATE_LINE_WIDTH: i32 = 2;
3246pub const DYNAMIC_STATE_DEPTH_BIAS: i32 = 3;
3247pub const DYNAMIC_STATE_BLEND_CONSTANTS: i32 = 4;
3248pub const DYNAMIC_STATE_DEPTH_BOUNDS: i32 = 5;
3249pub const DYNAMIC_STATE_STENCIL_COMPARE_MASK: i32 = 6;
3250pub const DYNAMIC_STATE_STENCIL_WRITE_MASK: i32 = 7;
3251pub const DYNAMIC_STATE_STENCIL_REFERENCE: i32 = 8;
3252pub const DYNAMIC_STATE_CULL_MODE: i32 = 1000267000;
3253pub const DYNAMIC_STATE_FRONT_FACE: i32 = 1000267001;
3254pub const DYNAMIC_STATE_PRIMITIVE_TOPOLOGY: i32 = 1000267002;
3255pub const DYNAMIC_STATE_VIEWPORT_WITH_COUNT: i32 = 1000267003;
3256pub const DYNAMIC_STATE_SCISSOR_WITH_COUNT: i32 = 1000267004;
3257pub const DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE: i32 = 1000267005;
3258pub const DYNAMIC_STATE_DEPTH_TEST_ENABLE: i32 = 1000267006;
3259pub const DYNAMIC_STATE_DEPTH_WRITE_ENABLE: i32 = 1000267007;
3260pub const DYNAMIC_STATE_DEPTH_COMPARE_OP: i32 = 1000267008;
3261pub const DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE: i32 = 1000267009;
3262pub const DYNAMIC_STATE_STENCIL_TEST_ENABLE: i32 = 1000267010;
3263pub const DYNAMIC_STATE_STENCIL_OP: i32 = 1000267011;
3264pub const DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE: i32 = 1000377001;
3265pub const DYNAMIC_STATE_DEPTH_BIAS_ENABLE: i32 = 1000377002;
3266pub const DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE: i32 = 1000377004;
3267pub const DYNAMIC_STATE_VIEWPORT_W_SCALING_NV: i32 = 1000087000;
3268pub const DYNAMIC_STATE_DISCARD_RECTANGLE_EXT: i32 = 1000099000;
3269pub const DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT: i32 = 1000143000;
3270pub const DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR: i32 = 1000347000;
3271pub const DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV: i32 = 1000164004;
3272pub const DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV: i32 = 1000164006;
3273pub const DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV: i32 = 1000205001;
3274pub const DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR: i32 = 1000226000;
3275pub const DYNAMIC_STATE_LINE_STIPPLE_EXT: i32 = 1000259000;
3276pub const DYNAMIC_STATE_CULL_MODE_EXT: i32 = DYNAMIC_STATE_CULL_MODE;
3277pub const DYNAMIC_STATE_FRONT_FACE_EXT: i32 = DYNAMIC_STATE_FRONT_FACE;
3278pub const DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT: i32 = DYNAMIC_STATE_PRIMITIVE_TOPOLOGY;
3279pub const DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT: i32 = DYNAMIC_STATE_VIEWPORT_WITH_COUNT;
3280pub const DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT: i32 = DYNAMIC_STATE_SCISSOR_WITH_COUNT;
3281pub const DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT: i32 =
3282    DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE;
3283pub const DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT: i32 = DYNAMIC_STATE_DEPTH_TEST_ENABLE;
3284pub const DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT: i32 = DYNAMIC_STATE_DEPTH_WRITE_ENABLE;
3285pub const DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT: i32 = DYNAMIC_STATE_DEPTH_COMPARE_OP;
3286pub const DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT: i32 = DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE;
3287pub const DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT: i32 = DYNAMIC_STATE_STENCIL_TEST_ENABLE;
3288pub const DYNAMIC_STATE_STENCIL_OP_EXT: i32 = DYNAMIC_STATE_STENCIL_OP;
3289pub const DYNAMIC_STATE_VERTEX_INPUT_EXT: i32 = 1000352000;
3290pub const DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT: i32 = 1000377000; // Not promoted to 1.3
3291pub const DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT: i32 =
3292    DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE;
3293pub const DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT: i32 = DYNAMIC_STATE_DEPTH_BIAS_ENABLE;
3294pub const DYNAMIC_STATE_LOGIC_OP_EXT: i32 = 1000377003; // Not promoted to 1.3
3295pub const DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT: i32 = DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE;
3296pub const DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT: i32 = 1000381000;
3297pub const DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT: i32 = 1000455002;
3298pub const DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT: i32 = 1000455003;
3299pub const DYNAMIC_STATE_POLYGON_MODE_EXT: i32 = 1000455004;
3300pub const DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT: i32 = 1000455005;
3301pub const DYNAMIC_STATE_SAMPLE_MASK_EXT: i32 = 1000455006;
3302pub const DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT: i32 = 1000455007;
3303pub const DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT: i32 = 1000455008;
3304pub const DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT: i32 = 1000455009;
3305pub const DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT: i32 = 1000455010;
3306pub const DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT: i32 = 1000455011;
3307pub const DYNAMIC_STATE_COLOR_WRITE_MASK_EXT: i32 = 1000455012;
3308pub const DYNAMIC_STATE_RASTERIZATION_STREAM_EXT: i32 = 1000455013;
3309pub const DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT: i32 = 1000455014;
3310pub const DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT: i32 = 1000455015;
3311pub const DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT: i32 = 1000455016;
3312pub const DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT: i32 = 1000455017;
3313pub const DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT: i32 = 1000455018;
3314pub const DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT: i32 = 1000455019;
3315pub const DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT: i32 = 1000455020;
3316pub const DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT: i32 = 1000455021;
3317pub const DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT: i32 = 1000455022;
3318pub const DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV: i32 = 1000455023;
3319pub const DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV: i32 = 1000455024;
3320pub const DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV: i32 = 1000455025;
3321pub const DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV: i32 = 1000455026;
3322pub const DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV: i32 = 1000455027;
3323pub const DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV: i32 = 1000455028;
3324pub const DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV: i32 = 1000455029;
3325pub const DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV: i32 = 1000455030;
3326pub const DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV: i32 = 1000455031;
3327pub const DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV: i32 = 1000455032;
3328
3329pub type DescriptorUpdateTemplateType = i32;
3330pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET: i32 = 0; // Create descriptor update template for descriptor set updates
3331pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR: i32 = 1; // Create descriptor update template for pushed descriptor updates
3332pub const DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR: i32 =
3333    DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET;
3334
3335// Enums to track objects of various types - also see objtypeenum attributes on type tags
3336pub type ObjectType = i32;
3337pub const OBJECT_TYPE_UNKNOWN: i32 = 0;
3338pub const OBJECT_TYPE_INSTANCE: i32 = 1;
3339pub const OBJECT_TYPE_PHYSICAL_DEVICE: i32 = 2;
3340pub const OBJECT_TYPE_DEVICE: i32 = 3;
3341pub const OBJECT_TYPE_QUEUE: i32 = 4;
3342pub const OBJECT_TYPE_SEMAPHORE: i32 = 5;
3343pub const OBJECT_TYPE_COMMAND_BUFFER: i32 = 6;
3344pub const OBJECT_TYPE_FENCE: i32 = 7;
3345pub const OBJECT_TYPE_DEVICE_MEMORY: i32 = 8;
3346pub const OBJECT_TYPE_BUFFER: i32 = 9;
3347pub const OBJECT_TYPE_IMAGE: i32 = 10;
3348pub const OBJECT_TYPE_EVENT: i32 = 11;
3349pub const OBJECT_TYPE_QUERY_POOL: i32 = 12;
3350pub const OBJECT_TYPE_BUFFER_VIEW: i32 = 13;
3351pub const OBJECT_TYPE_IMAGE_VIEW: i32 = 14;
3352pub const OBJECT_TYPE_SHADER_MODULE: i32 = 15;
3353pub const OBJECT_TYPE_PIPELINE_CACHE: i32 = 16;
3354pub const OBJECT_TYPE_PIPELINE_LAYOUT: i32 = 17;
3355pub const OBJECT_TYPE_RENDER_PASS: i32 = 18;
3356pub const OBJECT_TYPE_PIPELINE: i32 = 19;
3357pub const OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT: i32 = 20;
3358pub const OBJECT_TYPE_SAMPLER: i32 = 21;
3359pub const OBJECT_TYPE_DESCRIPTOR_POOL: i32 = 22;
3360pub const OBJECT_TYPE_DESCRIPTOR_SET: i32 = 23;
3361pub const OBJECT_TYPE_FRAMEBUFFER: i32 = 24;
3362pub const OBJECT_TYPE_COMMAND_POOL: i32 = 25;
3363pub const OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION: i32 = 1000156000;
3364pub const OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE: i32 = 1000085000;
3365pub const OBJECT_TYPE_PRIVATE_DATA_SLOT: i32 = 1000295000;
3366pub const OBJECT_TYPE_SURFACE_KHR: i32 = 1000000000;
3367pub const OBJECT_TYPE_SWAPCHAIN_KHR: i32 = 1000001000;
3368pub const OBJECT_TYPE_DISPLAY_KHR: i32 = 1000002000;
3369pub const OBJECT_TYPE_DISPLAY_MODE_KHR: i32 = 1000002001;
3370pub const OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT: i32 = 1000011000;
3371pub const OBJECT_TYPE_VIDEO_SESSION_KHR: i32 = 1000023000; // VkVideoSessionKHR
3372pub const OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR: i32 = 1000023001; // VkVideoSessionParametersKHR
3373pub const OBJECT_TYPE_CU_MODULE_NVX: i32 = 1000029000;
3374pub const OBJECT_TYPE_CU_FUNCTION_NVX: i32 = 1000029001;
3375pub const OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR: i32 = OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE;
3376pub const OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT: i32 = 1000128000;
3377pub const OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR: i32 = 1000150000;
3378pub const OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR: i32 = OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION;
3379pub const OBJECT_TYPE_VALIDATION_CACHE_EXT: i32 = 1000160000;
3380pub const OBJECT_TYPE_ACCELERATION_STRUCTURE_NV: i32 = 1000165000;
3381pub const OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL: i32 = 1000210000;
3382pub const OBJECT_TYPE_DEFERRED_OPERATION_KHR: i32 = 1000268000;
3383pub const OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV: i32 = 1000277000;
3384pub const OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT: i32 = OBJECT_TYPE_PRIVATE_DATA_SLOT;
3385pub const OBJECT_TYPE_MICROMAP_EXT: i32 = 1000396000;
3386pub const OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV: i32 = 1000464000;
3387
3388pub type RayTracingInvocationReorderModeNV = i32;
3389pub const RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV: i32 = 0;
3390pub const RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV: i32 = 1;
3391
3392pub type DirectDriverLoadingModeLUNARG = i32;
3393pub const DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG: i32 = 0;
3394pub const DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG: i32 = 1;
3395
3396pub type SemaphoreCreateFlagBits = u32;
3397
3398pub type SemaphoreType = i32;
3399pub const SEMAPHORE_TYPE_BINARY: i32 = 0;
3400pub const SEMAPHORE_TYPE_TIMELINE: i32 = 1;
3401pub const SEMAPHORE_TYPE_BINARY_KHR: i32 = SEMAPHORE_TYPE_BINARY;
3402pub const SEMAPHORE_TYPE_TIMELINE_KHR: i32 = SEMAPHORE_TYPE_TIMELINE;
3403
3404pub type PresentModeKHR = i32;
3405pub const PRESENT_MODE_IMMEDIATE_KHR: i32 = 0;
3406pub const PRESENT_MODE_MAILBOX_KHR: i32 = 1;
3407pub const PRESENT_MODE_FIFO_KHR: i32 = 2;
3408pub const PRESENT_MODE_FIFO_RELAXED_KHR: i32 = 3;
3409pub const PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR: i32 = 1000111000;
3410pub const PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR: i32 = 1000111001;
3411
3412pub type ColorSpaceKHR = i32;
3413pub const COLOR_SPACE_SRGB_NONLINEAR_KHR: i32 = 0;
3414pub const COLORSPACE_SRGB_NONLINEAR_KHR: i32 = COLOR_SPACE_SRGB_NONLINEAR_KHR; // Backwards-compatible alias containing a typo
3415pub const COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT: i32 = 1000104001;
3416pub const COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT: i32 = 1000104002;
3417pub const COLOR_SPACE_DISPLAY_P3_LINEAR_EXT: i32 = 1000104003;
3418pub const COLOR_SPACE_DCI_P3_NONLINEAR_EXT: i32 = 1000104004;
3419pub const COLOR_SPACE_BT709_LINEAR_EXT: i32 = 1000104005;
3420pub const COLOR_SPACE_BT709_NONLINEAR_EXT: i32 = 1000104006;
3421pub const COLOR_SPACE_BT2020_LINEAR_EXT: i32 = 1000104007;
3422pub const COLOR_SPACE_HDR10_ST2084_EXT: i32 = 1000104008;
3423pub const COLOR_SPACE_DOLBYVISION_EXT: i32 = 1000104009;
3424pub const COLOR_SPACE_HDR10_HLG_EXT: i32 = 1000104010;
3425pub const COLOR_SPACE_ADOBERGB_LINEAR_EXT: i32 = 1000104011;
3426pub const COLOR_SPACE_ADOBERGB_NONLINEAR_EXT: i32 = 1000104012;
3427pub const COLOR_SPACE_PASS_THROUGH_EXT: i32 = 1000104013;
3428pub const COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT: i32 = 1000104014;
3429pub const COLOR_SPACE_DCI_P3_LINEAR_EXT: i32 = COLOR_SPACE_DISPLAY_P3_LINEAR_EXT; // Backwards-compatible alias containing a typo
3430pub const COLOR_SPACE_DISPLAY_NATIVE_AMD: i32 = 1000213000;
3431
3432pub type TimeDomainEXT = i32;
3433pub const TIME_DOMAIN_DEVICE_EXT: i32 = 0;
3434pub const TIME_DOMAIN_CLOCK_MONOTONIC_EXT: i32 = 1;
3435pub const TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT: i32 = 2;
3436pub const TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT: i32 = 3;
3437
3438pub type DebugReportObjectTypeEXT = i32;
3439pub const DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT: i32 = 0;
3440pub const DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT: i32 = 1;
3441pub const DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT: i32 = 2;
3442pub const DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT: i32 = 3;
3443pub const DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT: i32 = 4;
3444pub const DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT: i32 = 5;
3445pub const DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT: i32 = 6;
3446pub const DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT: i32 = 7;
3447pub const DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT: i32 = 8;
3448pub const DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT: i32 = 9;
3449pub const DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT: i32 = 10;
3450pub const DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT: i32 = 11;
3451pub const DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT: i32 = 12;
3452pub const DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT: i32 = 13;
3453pub const DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT: i32 = 14;
3454pub const DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT: i32 = 15;
3455pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT: i32 = 16;
3456pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT: i32 = 17;
3457pub const DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT: i32 = 18;
3458pub const DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT: i32 = 19;
3459pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT: i32 = 20;
3460pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT: i32 = 21;
3461pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT: i32 = 22;
3462pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT: i32 = 23;
3463pub const DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT: i32 = 24;
3464pub const DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT: i32 = 25;
3465pub const DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT: i32 = 26;
3466pub const DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT: i32 = 27;
3467pub const DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT: i32 = 28;
3468pub const DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT: i32 =
3469    DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT; // Backwards-compatible alias containing a typo
3470pub const DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT: i32 = 29;
3471pub const DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT: i32 = 30;
3472pub const DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT: i32 = 33;
3473pub const DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT: i32 =
3474    DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT; // Backwards-compatible alias containing a typo
3475pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT: i32 = 1000156000;
3476pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT: i32 = 1000085000;
3477pub const DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT: i32 = 1000029000;
3478pub const DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT: i32 = 1000029001;
3479pub const DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT: i32 =
3480    DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT;
3481pub const DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT: i32 = 1000150000;
3482pub const DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT: i32 =
3483    DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT;
3484pub const DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT: i32 = 1000165000;
3485
3486pub type DeviceMemoryReportEventTypeEXT = i32;
3487pub const DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT: i32 = 0;
3488pub const DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT: i32 = 1;
3489pub const DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT: i32 = 2;
3490pub const DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT: i32 = 3;
3491pub const DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT: i32 = 4;
3492
3493pub type RasterizationOrderAMD = i32;
3494pub const RASTERIZATION_ORDER_STRICT_AMD: i32 = 0;
3495pub const RASTERIZATION_ORDER_RELAXED_AMD: i32 = 1;
3496
3497pub type ValidationCheckEXT = i32;
3498pub const VALIDATION_CHECK_ALL_EXT: i32 = 0;
3499pub const VALIDATION_CHECK_SHADERS_EXT: i32 = 1;
3500
3501pub type ValidationFeatureEnableEXT = i32;
3502pub const VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT: i32 = 0;
3503pub const VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT: i32 = 1;
3504pub const VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT: i32 = 2;
3505pub const VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT: i32 = 3;
3506pub const VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT: i32 = 4;
3507
3508pub type ValidationFeatureDisableEXT = i32;
3509pub const VALIDATION_FEATURE_DISABLE_ALL_EXT: i32 = 0;
3510pub const VALIDATION_FEATURE_DISABLE_SHADERS_EXT: i32 = 1;
3511pub const VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT: i32 = 2;
3512pub const VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT: i32 = 3;
3513pub const VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT: i32 = 4;
3514pub const VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT: i32 = 5;
3515pub const VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT: i32 = 6;
3516pub const VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT: i32 = 7;
3517
3518pub type IndirectCommandsTokenTypeNV = i32;
3519pub const INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV: i32 = 0;
3520pub const INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV: i32 = 1;
3521pub const INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV: i32 = 2;
3522pub const INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV: i32 = 3;
3523pub const INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV: i32 = 4;
3524pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV: i32 = 5;
3525pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV: i32 = 6;
3526pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV: i32 = 7;
3527pub const INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV: i32 = 1000328000;
3528
3529pub type PrivateDataSlotCreateFlagBits = u32;
3530
3531pub type DisplayPowerStateEXT = i32;
3532pub const DISPLAY_POWER_STATE_OFF_EXT: i32 = 0;
3533pub const DISPLAY_POWER_STATE_SUSPEND_EXT: i32 = 1;
3534pub const DISPLAY_POWER_STATE_ON_EXT: i32 = 2;
3535
3536pub type DeviceEventTypeEXT = i32;
3537pub const DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT: i32 = 0;
3538
3539pub type DisplayEventTypeEXT = i32;
3540pub const DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT: i32 = 0;
3541
3542pub type ViewportCoordinateSwizzleNV = i32;
3543pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV: i32 = 0;
3544pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV: i32 = 1;
3545pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV: i32 = 2;
3546pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV: i32 = 3;
3547pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV: i32 = 4;
3548pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV: i32 = 5;
3549pub const VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV: i32 = 6;
3550pub const VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV: i32 = 7;
3551
3552pub type DiscardRectangleModeEXT = i32;
3553pub const DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT: i32 = 0;
3554pub const DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT: i32 = 1;
3555
3556pub type PointClippingBehavior = i32;
3557pub const POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES: i32 = 0;
3558pub const POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY: i32 = 1;
3559pub const POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR: i32 =
3560    POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES;
3561pub const POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR: i32 =
3562    POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY;
3563
3564pub type SamplerReductionMode = i32;
3565pub const SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE: i32 = 0;
3566pub const SAMPLER_REDUCTION_MODE_MIN: i32 = 1;
3567pub const SAMPLER_REDUCTION_MODE_MAX: i32 = 2;
3568pub const SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT: i32 =
3569    SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE;
3570pub const SAMPLER_REDUCTION_MODE_MIN_EXT: i32 = SAMPLER_REDUCTION_MODE_MIN;
3571pub const SAMPLER_REDUCTION_MODE_MAX_EXT: i32 = SAMPLER_REDUCTION_MODE_MAX;
3572
3573pub type TessellationDomainOrigin = i32;
3574pub const TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT: i32 = 0;
3575pub const TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT: i32 = 1;
3576pub const TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR: i32 = TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT;
3577pub const TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR: i32 = TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT;
3578
3579pub type SamplerYcbcrModelConversion = i32;
3580pub const SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY: i32 = 0;
3581pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY: i32 = 1; // just range expansion
3582pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709: i32 = 2; // aka HD YUV
3583pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601: i32 = 3; // aka SD YUV
3584pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020: i32 = 4; // aka UHD YUV
3585pub const SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR: i32 =
3586    SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY;
3587pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR: i32 =
3588    SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY;
3589pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR: i32 =
3590    SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709;
3591pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR: i32 =
3592    SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601;
3593pub const SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR: i32 =
3594    SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020;
3595
3596pub type SamplerYcbcrRange = i32;
3597pub const SAMPLER_YCBCR_RANGE_ITU_FULL: i32 = 0; // Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)
3598pub const SAMPLER_YCBCR_RANGE_ITU_NARROW: i32 = 1; // Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240
3599pub const SAMPLER_YCBCR_RANGE_ITU_FULL_KHR: i32 = SAMPLER_YCBCR_RANGE_ITU_FULL;
3600pub const SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR: i32 = SAMPLER_YCBCR_RANGE_ITU_NARROW;
3601
3602pub type ChromaLocation = i32;
3603pub const CHROMA_LOCATION_COSITED_EVEN: i32 = 0;
3604pub const CHROMA_LOCATION_MIDPOINT: i32 = 1;
3605pub const CHROMA_LOCATION_COSITED_EVEN_KHR: i32 = CHROMA_LOCATION_COSITED_EVEN;
3606pub const CHROMA_LOCATION_MIDPOINT_KHR: i32 = CHROMA_LOCATION_MIDPOINT;
3607
3608pub type BlendOverlapEXT = i32;
3609pub const BLEND_OVERLAP_UNCORRELATED_EXT: i32 = 0;
3610pub const BLEND_OVERLAP_DISJOINT_EXT: i32 = 1;
3611pub const BLEND_OVERLAP_CONJOINT_EXT: i32 = 2;
3612
3613pub type CoverageModulationModeNV = i32;
3614pub const COVERAGE_MODULATION_MODE_NONE_NV: i32 = 0;
3615pub const COVERAGE_MODULATION_MODE_RGB_NV: i32 = 1;
3616pub const COVERAGE_MODULATION_MODE_ALPHA_NV: i32 = 2;
3617pub const COVERAGE_MODULATION_MODE_RGBA_NV: i32 = 3;
3618
3619pub type CoverageReductionModeNV = i32;
3620pub const COVERAGE_REDUCTION_MODE_MERGE_NV: i32 = 0;
3621pub const COVERAGE_REDUCTION_MODE_TRUNCATE_NV: i32 = 1;
3622
3623pub type ValidationCacheHeaderVersionEXT = i32;
3624pub const VALIDATION_CACHE_HEADER_VERSION_ONE_EXT: i32 = 1;
3625
3626pub type ShaderInfoTypeAMD = i32;
3627pub const SHADER_INFO_TYPE_STATISTICS_AMD: i32 = 0;
3628pub const SHADER_INFO_TYPE_BINARY_AMD: i32 = 1;
3629pub const SHADER_INFO_TYPE_DISASSEMBLY_AMD: i32 = 2;
3630
3631pub type QueueGlobalPriorityKHR = i32;
3632pub const QUEUE_GLOBAL_PRIORITY_LOW_KHR: i32 = 128;
3633pub const QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR: i32 = 256;
3634pub const QUEUE_GLOBAL_PRIORITY_HIGH_KHR: i32 = 512;
3635pub const QUEUE_GLOBAL_PRIORITY_REALTIME_KHR: i32 = 1024;
3636pub const QUEUE_GLOBAL_PRIORITY_LOW_EXT: i32 = QUEUE_GLOBAL_PRIORITY_LOW_KHR;
3637pub const QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT: i32 = QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR;
3638pub const QUEUE_GLOBAL_PRIORITY_HIGH_EXT: i32 = QUEUE_GLOBAL_PRIORITY_HIGH_KHR;
3639pub const QUEUE_GLOBAL_PRIORITY_REALTIME_EXT: i32 = QUEUE_GLOBAL_PRIORITY_REALTIME_KHR;
3640
3641pub type ConservativeRasterizationModeEXT = i32;
3642pub const CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT: i32 = 0;
3643pub const CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT: i32 = 1;
3644pub const CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT: i32 = 2;
3645
3646pub type VendorId = i32;
3647pub const VENDOR_ID_VIV: i32 = 0x10001; // Vivante vendor ID
3648pub const VENDOR_ID_VSI: i32 = 0x10002; // VeriSilicon vendor ID
3649pub const VENDOR_ID_KAZAN: i32 = 0x10003; // Kazan Software Renderer
3650pub const VENDOR_ID_CODEPLAY: i32 = 0x10004; // Codeplay Software Ltd. vendor ID
3651pub const VENDOR_ID_MESA: i32 = 0x10005; // Mesa vendor ID
3652pub const VENDOR_ID_POCL: i32 = 0x10006; // PoCL vendor ID
3653
3654pub type DriverId = i32;
3655pub const DRIVER_ID_AMD_PROPRIETARY: i32 = 1; // Advanced Micro Devices, Inc.
3656pub const DRIVER_ID_AMD_OPEN_SOURCE: i32 = 2; // Advanced Micro Devices, Inc.
3657pub const DRIVER_ID_MESA_RADV: i32 = 3; // Mesa open source project
3658pub const DRIVER_ID_NVIDIA_PROPRIETARY: i32 = 4; // NVIDIA Corporation
3659pub const DRIVER_ID_INTEL_PROPRIETARY_WINDOWS: i32 = 5; // Intel Corporation
3660pub const DRIVER_ID_INTEL_OPEN_SOURCE_MESA: i32 = 6; // Intel Corporation
3661pub const DRIVER_ID_IMAGINATION_PROPRIETARY: i32 = 7; // Imagination Technologies
3662pub const DRIVER_ID_QUALCOMM_PROPRIETARY: i32 = 8; // Qualcomm Technologies, Inc.
3663pub const DRIVER_ID_ARM_PROPRIETARY: i32 = 9; // Arm Limited
3664pub const DRIVER_ID_GOOGLE_SWIFTSHADER: i32 = 10; // Google LLC
3665pub const DRIVER_ID_GGP_PROPRIETARY: i32 = 11; // Google LLC
3666pub const DRIVER_ID_BROADCOM_PROPRIETARY: i32 = 12; // Broadcom Inc.
3667pub const DRIVER_ID_MESA_LLVMPIPE: i32 = 13; // Mesa
3668pub const DRIVER_ID_MOLTENVK: i32 = 14; // MoltenVK
3669pub const DRIVER_ID_COREAVI_PROPRIETARY: i32 = 15; // Core Avionics & Industrial Inc.
3670pub const DRIVER_ID_JUICE_PROPRIETARY: i32 = 16; // Juice Technologies, Inc.
3671pub const DRIVER_ID_VERISILICON_PROPRIETARY: i32 = 17; // Verisilicon, Inc.
3672pub const DRIVER_ID_MESA_TURNIP: i32 = 18; // Mesa open source project
3673pub const DRIVER_ID_MESA_V3DV: i32 = 19; // Mesa open source project
3674pub const DRIVER_ID_MESA_PANVK: i32 = 20; // Mesa open source project
3675pub const DRIVER_ID_SAMSUNG_PROPRIETARY: i32 = 21; // Samsung Electronics Co., Ltd.
3676pub const DRIVER_ID_MESA_VENUS: i32 = 22; // Mesa open source project
3677pub const DRIVER_ID_MESA_DOZEN: i32 = 23; // Mesa open source project
3678pub const DRIVER_ID_MESA_NVK: i32 = 24; // Mesa open source project
3679pub const DRIVER_ID_AMD_PROPRIETARY_KHR: i32 = DRIVER_ID_AMD_PROPRIETARY;
3680pub const DRIVER_ID_AMD_OPEN_SOURCE_KHR: i32 = DRIVER_ID_AMD_OPEN_SOURCE;
3681pub const DRIVER_ID_MESA_RADV_KHR: i32 = DRIVER_ID_MESA_RADV;
3682pub const DRIVER_ID_NVIDIA_PROPRIETARY_KHR: i32 = DRIVER_ID_NVIDIA_PROPRIETARY;
3683pub const DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR: i32 = DRIVER_ID_INTEL_PROPRIETARY_WINDOWS;
3684pub const DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR: i32 = DRIVER_ID_INTEL_OPEN_SOURCE_MESA;
3685pub const DRIVER_ID_IMAGINATION_PROPRIETARY_KHR: i32 = DRIVER_ID_IMAGINATION_PROPRIETARY;
3686pub const DRIVER_ID_QUALCOMM_PROPRIETARY_KHR: i32 = DRIVER_ID_QUALCOMM_PROPRIETARY;
3687pub const DRIVER_ID_ARM_PROPRIETARY_KHR: i32 = DRIVER_ID_ARM_PROPRIETARY;
3688pub const DRIVER_ID_GOOGLE_SWIFTSHADER_KHR: i32 = DRIVER_ID_GOOGLE_SWIFTSHADER;
3689pub const DRIVER_ID_GGP_PROPRIETARY_KHR: i32 = DRIVER_ID_GGP_PROPRIETARY;
3690pub const DRIVER_ID_BROADCOM_PROPRIETARY_KHR: i32 = DRIVER_ID_BROADCOM_PROPRIETARY;
3691
3692pub type ShadingRatePaletteEntryNV = i32;
3693pub const SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV: i32 = 0;
3694pub const SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV: i32 = 1;
3695pub const SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV: i32 = 2;
3696pub const SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV: i32 = 3;
3697pub const SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV: i32 = 4;
3698pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV: i32 = 5;
3699pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV: i32 = 6;
3700pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV: i32 = 7;
3701pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV: i32 = 8;
3702pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV: i32 = 9;
3703pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV: i32 = 10;
3704pub const SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV: i32 = 11;
3705
3706pub type CoarseSampleOrderTypeNV = i32;
3707pub const COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV: i32 = 0;
3708pub const COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV: i32 = 1;
3709pub const COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV: i32 = 2;
3710pub const COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV: i32 = 3;
3711
3712pub type CopyAccelerationStructureModeKHR = i32;
3713pub const COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR: i32 = 0;
3714pub const COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR: i32 = 1;
3715pub const COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR: i32 = 2;
3716pub const COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR: i32 = 3;
3717pub const COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV: i32 =
3718    COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR;
3719pub const COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV: i32 =
3720    COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR;
3721
3722pub type BuildAccelerationStructureModeKHR = i32;
3723pub const BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR: i32 = 0;
3724pub const BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR: i32 = 1;
3725
3726pub type AccelerationStructureTypeKHR = i32;
3727pub const ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR: i32 = 0;
3728pub const ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR: i32 = 1;
3729pub const ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR: i32 = 2;
3730pub const ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV: i32 = ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR;
3731pub const ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV: i32 =
3732    ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR;
3733
3734pub type GeometryTypeKHR = i32;
3735pub const GEOMETRY_TYPE_TRIANGLES_KHR: i32 = 0;
3736pub const GEOMETRY_TYPE_AABBS_KHR: i32 = 1;
3737pub const GEOMETRY_TYPE_INSTANCES_KHR: i32 = 2;
3738pub const GEOMETRY_TYPE_TRIANGLES_NV: i32 = GEOMETRY_TYPE_TRIANGLES_KHR;
3739pub const GEOMETRY_TYPE_AABBS_NV: i32 = GEOMETRY_TYPE_AABBS_KHR;
3740
3741pub type AccelerationStructureMemoryRequirementsTypeNV = i32;
3742pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV: i32 = 0;
3743pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV: i32 = 1;
3744pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV: i32 = 2;
3745
3746pub type AccelerationStructureBuildTypeKHR = i32;
3747pub const ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR: i32 = 0;
3748pub const ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR: i32 = 1;
3749pub const ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR: i32 = 2;
3750
3751pub type RayTracingShaderGroupTypeKHR = i32;
3752pub const RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR: i32 = 0;
3753pub const RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR: i32 = 1;
3754pub const RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR: i32 = 2;
3755pub const RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV: i32 = RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR;
3756pub const RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV: i32 =
3757    RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR;
3758pub const RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV: i32 =
3759    RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR;
3760
3761pub type AccelerationStructureCompatibilityKHR = i32;
3762pub const ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR: i32 = 0;
3763pub const ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR: i32 = 1;
3764
3765pub type ShaderGroupShaderKHR = i32;
3766pub const SHADER_GROUP_SHADER_GENERAL_KHR: i32 = 0;
3767pub const SHADER_GROUP_SHADER_CLOSEST_HIT_KHR: i32 = 1;
3768pub const SHADER_GROUP_SHADER_ANY_HIT_KHR: i32 = 2;
3769pub const SHADER_GROUP_SHADER_INTERSECTION_KHR: i32 = 3;
3770
3771pub type MemoryOverallocationBehaviorAMD = i32;
3772pub const MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD: i32 = 0;
3773pub const MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD: i32 = 1;
3774pub const MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD: i32 = 2;
3775
3776pub type ScopeNV = i32;
3777pub const SCOPE_DEVICE_NV: i32 = 1;
3778pub const SCOPE_WORKGROUP_NV: i32 = 2;
3779pub const SCOPE_SUBGROUP_NV: i32 = 3;
3780pub const SCOPE_QUEUE_FAMILY_NV: i32 = 5;
3781
3782pub type ComponentTypeNV = i32;
3783pub const COMPONENT_TYPE_FLOAT16_NV: i32 = 0;
3784pub const COMPONENT_TYPE_FLOAT32_NV: i32 = 1;
3785pub const COMPONENT_TYPE_FLOAT64_NV: i32 = 2;
3786pub const COMPONENT_TYPE_SINT8_NV: i32 = 3;
3787pub const COMPONENT_TYPE_SINT16_NV: i32 = 4;
3788pub const COMPONENT_TYPE_SINT32_NV: i32 = 5;
3789pub const COMPONENT_TYPE_SINT64_NV: i32 = 6;
3790pub const COMPONENT_TYPE_UINT8_NV: i32 = 7;
3791pub const COMPONENT_TYPE_UINT16_NV: i32 = 8;
3792pub const COMPONENT_TYPE_UINT32_NV: i32 = 9;
3793pub const COMPONENT_TYPE_UINT64_NV: i32 = 10;
3794
3795pub type FullScreenExclusiveEXT = i32;
3796pub const FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT: i32 = 0;
3797pub const FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT: i32 = 1;
3798pub const FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT: i32 = 2;
3799pub const FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT: i32 = 3;
3800
3801pub type PerformanceCounterScopeKHR = i32;
3802pub const PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR: i32 = 0;
3803pub const PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR: i32 = 1;
3804pub const PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR: i32 = 2;
3805pub const QUERY_SCOPE_COMMAND_BUFFER_KHR: i32 = PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR; // Backwards-compatible alias containing a typo
3806pub const QUERY_SCOPE_RENDER_PASS_KHR: i32 = PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR; // Backwards-compatible alias containing a typo
3807pub const QUERY_SCOPE_COMMAND_KHR: i32 = PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR; // Backwards-compatible alias containing a typo
3808
3809pub type MemoryDecompressionMethodFlagBitsNV = u32;
3810
3811pub type PerformanceCounterUnitKHR = i32;
3812pub const PERFORMANCE_COUNTER_UNIT_GENERIC_KHR: i32 = 0;
3813pub const PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR: i32 = 1;
3814pub const PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR: i32 = 2;
3815pub const PERFORMANCE_COUNTER_UNIT_BYTES_KHR: i32 = 3;
3816pub const PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR: i32 = 4;
3817pub const PERFORMANCE_COUNTER_UNIT_KELVIN_KHR: i32 = 5;
3818pub const PERFORMANCE_COUNTER_UNIT_WATTS_KHR: i32 = 6;
3819pub const PERFORMANCE_COUNTER_UNIT_VOLTS_KHR: i32 = 7;
3820pub const PERFORMANCE_COUNTER_UNIT_AMPS_KHR: i32 = 8;
3821pub const PERFORMANCE_COUNTER_UNIT_HERTZ_KHR: i32 = 9;
3822pub const PERFORMANCE_COUNTER_UNIT_CYCLES_KHR: i32 = 10;
3823
3824pub type PerformanceCounterStorageKHR = i32;
3825pub const PERFORMANCE_COUNTER_STORAGE_INT32_KHR: i32 = 0;
3826pub const PERFORMANCE_COUNTER_STORAGE_INT64_KHR: i32 = 1;
3827pub const PERFORMANCE_COUNTER_STORAGE_UINT32_KHR: i32 = 2;
3828pub const PERFORMANCE_COUNTER_STORAGE_UINT64_KHR: i32 = 3;
3829pub const PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR: i32 = 4;
3830pub const PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR: i32 = 5;
3831
3832pub type PerformanceConfigurationTypeINTEL = i32;
3833pub const PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: i32 = 0;
3834
3835pub type QueryPoolSamplingModeINTEL = i32;
3836pub const QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL: i32 = 0;
3837
3838pub type PerformanceOverrideTypeINTEL = i32;
3839pub const PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL: i32 = 0;
3840pub const PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL: i32 = 1;
3841
3842pub type PerformanceParameterTypeINTEL = i32;
3843pub const PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL: i32 = 0;
3844pub const PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL: i32 = 1;
3845
3846pub type PerformanceValueTypeINTEL = i32;
3847pub const PERFORMANCE_VALUE_TYPE_UINT32_INTEL: i32 = 0;
3848pub const PERFORMANCE_VALUE_TYPE_UINT64_INTEL: i32 = 1;
3849pub const PERFORMANCE_VALUE_TYPE_FLOAT_INTEL: i32 = 2;
3850pub const PERFORMANCE_VALUE_TYPE_BOOL_INTEL: i32 = 3;
3851pub const PERFORMANCE_VALUE_TYPE_STRING_INTEL: i32 = 4;
3852
3853pub type ShaderFloatControlsIndependence = i32;
3854pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY: i32 = 0;
3855pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL: i32 = 1;
3856pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE: i32 = 2;
3857pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR: i32 =
3858    SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY;
3859pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR: i32 = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL;
3860pub const SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR: i32 =
3861    SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE;
3862
3863pub type PipelineExecutableStatisticFormatKHR = i32;
3864pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR: i32 = 0;
3865pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR: i32 = 1;
3866pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR: i32 = 2;
3867pub const PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR: i32 = 3;
3868
3869pub type LineRasterizationModeEXT = i32;
3870pub const LINE_RASTERIZATION_MODE_DEFAULT_EXT: i32 = 0;
3871pub const LINE_RASTERIZATION_MODE_RECTANGULAR_EXT: i32 = 1;
3872pub const LINE_RASTERIZATION_MODE_BRESENHAM_EXT: i32 = 2;
3873pub const LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT: i32 = 3;
3874
3875pub type ShaderModuleCreateFlagBits = u32;
3876
3877pub type FragmentShadingRateCombinerOpKHR = i32;
3878pub const FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR: i32 = 0;
3879pub const FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR: i32 = 1;
3880pub const FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR: i32 = 2;
3881pub const FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR: i32 = 3;
3882pub const FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR: i32 = 4;
3883
3884pub type FragmentShadingRateNV = i32;
3885pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV: i32 = 0;
3886pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV: i32 = 1;
3887pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV: i32 = 4;
3888pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV: i32 = 5;
3889pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV: i32 = 6;
3890pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV: i32 = 9;
3891pub const FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV: i32 = 10;
3892pub const FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV: i32 = 11;
3893pub const FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV: i32 = 12;
3894pub const FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV: i32 = 13;
3895pub const FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV: i32 = 14;
3896pub const FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV: i32 = 15;
3897
3898pub type FragmentShadingRateTypeNV = i32;
3899pub const FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV: i32 = 0;
3900pub const FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV: i32 = 1;
3901
3902pub type SubpassMergeStatusEXT = i32;
3903pub const SUBPASS_MERGE_STATUS_MERGED_EXT: i32 = 0;
3904pub const SUBPASS_MERGE_STATUS_DISALLOWED_EXT: i32 = 1;
3905pub const SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT: i32 = 2;
3906pub const SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT: i32 = 3;
3907pub const SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT: i32 = 4;
3908pub const SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT: i32 = 5;
3909pub const SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT: i32 = 6;
3910pub const SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT: i32 = 7;
3911pub const SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT: i32 = 8;
3912pub const SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT: i32 = 9;
3913pub const SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT: i32 = 10;
3914pub const SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT: i32 = 11;
3915pub const SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT: i32 = 12;
3916pub const SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT: i32 = 13;
3917
3918pub type AccessFlagBits2 = u32;
3919
3920pub type PipelineStageFlagBits2 = u32;
3921
3922pub type ProvokingVertexModeEXT = i32;
3923pub const PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT: i32 = 0;
3924pub const PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT: i32 = 1;
3925
3926pub type AccelerationStructureMotionInstanceTypeNV = i32;
3927pub const ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV: i32 = 0;
3928pub const ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV: i32 = 1;
3929pub const ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV: i32 = 2;
3930
3931pub type DeviceAddressBindingTypeEXT = i32;
3932pub const DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT: i32 = 0;
3933pub const DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT: i32 = 1;
3934
3935pub type QueryResultStatusKHR = i32;
3936pub const QUERY_RESULT_STATUS_ERROR_KHR: i32 = -1;
3937pub const QUERY_RESULT_STATUS_NOT_READY_KHR: i32 = 0;
3938pub const QUERY_RESULT_STATUS_COMPLETE_KHR: i32 = 1;
3939
3940pub type VideoEncodeTuningModeKHR = i32;
3941pub const VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR: i32 = 0;
3942pub const VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR: i32 = 1;
3943pub const VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR: i32 = 2;
3944pub const VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR: i32 = 3;
3945pub const VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR: i32 = 4;
3946
3947pub type VideoEncodeH264RateControlStructureEXT = i32;
3948pub const VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT: i32 = 0;
3949pub const VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT: i32 = 1;
3950pub const VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT: i32 = 2;
3951
3952pub type ImageFormatConstraintsFlagBitsFUCHSIA = u32;
3953
3954pub type FormatFeatureFlagBits2 = u32;
3955
3956pub type VideoEncodeH265RateControlStructureEXT = i32;
3957pub const VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT: i32 = 0;
3958pub const VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT: i32 = 1;
3959pub const VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT: i32 = 2;
3960
3961pub type PipelineRobustnessBufferBehaviorEXT = i32;
3962pub const PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT: i32 = 0;
3963pub const PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT: i32 = 1;
3964pub const PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT: i32 = 2;
3965pub const PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT: i32 = 3;
3966
3967pub type PipelineRobustnessImageBehaviorEXT = i32;
3968pub const PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT: i32 = 0;
3969pub const PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT: i32 = 1;
3970pub const PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT: i32 = 2;
3971pub const PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT: i32 = 3;
3972
3973pub type OpticalFlowPerformanceLevelNV = i32;
3974pub const OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV: i32 = 0;
3975pub const OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV: i32 = 1;
3976pub const OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV: i32 = 2;
3977pub const OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV: i32 = 3;
3978
3979pub type OpticalFlowSessionBindingPointNV = i32;
3980pub const OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV: i32 = 0;
3981pub const OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV: i32 = 1;
3982pub const OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV: i32 = 2;
3983pub const OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV: i32 = 3;
3984pub const OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV: i32 = 4;
3985pub const OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV: i32 = 5;
3986pub const OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV: i32 = 6;
3987pub const OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV: i32 = 7;
3988pub const OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV: i32 = 8;
3989
3990pub type MicromapTypeEXT = i32;
3991pub const MICROMAP_TYPE_OPACITY_MICROMAP_EXT: i32 = 0;
3992
3993pub type CopyMicromapModeEXT = i32;
3994pub const COPY_MICROMAP_MODE_CLONE_EXT: i32 = 0;
3995pub const COPY_MICROMAP_MODE_SERIALIZE_EXT: i32 = 1;
3996pub const COPY_MICROMAP_MODE_DESERIALIZE_EXT: i32 = 2;
3997pub const COPY_MICROMAP_MODE_COMPACT_EXT: i32 = 3;
3998
3999pub type BuildMicromapModeEXT = i32;
4000pub const BUILD_MICROMAP_MODE_BUILD_EXT: i32 = 0;
4001
4002pub type OpacityMicromapFormatEXT = i32;
4003pub const OPACITY_MICROMAP_FORMAT_2_STATE_EXT: i32 = 1;
4004pub const OPACITY_MICROMAP_FORMAT_4_STATE_EXT: i32 = 2;
4005
4006pub type OpacityMicromapSpecialIndexEXT = i32;
4007pub const OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT: i32 = -1;
4008pub const OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT: i32 = -2;
4009pub const OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT: i32 = -3;
4010pub const OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT: i32 = -4;
4011
4012pub type DeviceFaultAddressTypeEXT = i32;
4013pub const DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT: i32 = 0; // Currently unused
4014pub const DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT: i32 = 1;
4015pub const DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT: i32 = 2;
4016pub const DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT: i32 = 3;
4017pub const DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT: i32 = 4;
4018pub const DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT: i32 = 5;
4019pub const DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT: i32 = 6;
4020
4021pub type DeviceFaultVendorBinaryHeaderVersionEXT = i32;
4022pub const DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT: i32 = 1;
4023
4024// enum aliases
4025pub type PrivateDataSlotCreateFlagBitsEXT = PrivateDataSlotCreateFlagBits;
4026
4027pub type DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType;
4028
4029pub type PointClippingBehaviorKHR = PointClippingBehavior;
4030
4031pub type QueueGlobalPriorityEXT = QueueGlobalPriorityKHR;
4032
4033pub type ResolveModeFlagBitsKHR = ResolveModeFlagBits;
4034
4035pub type DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits;
4036
4037pub type SemaphoreTypeKHR = SemaphoreType;
4038
4039pub type GeometryFlagBitsNV = GeometryFlagBitsKHR;
4040
4041pub type GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR;
4042
4043pub type BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR;
4044
4045pub type CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR;
4046
4047pub type AccelerationStructureTypeNV = AccelerationStructureTypeKHR;
4048
4049pub type GeometryTypeNV = GeometryTypeKHR;
4050
4051pub type RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR;
4052
4053pub type PipelineCreationFeedbackFlagBitsEXT = PipelineCreationFeedbackFlagBits;
4054
4055pub type SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits;
4056
4057pub type ToolPurposeFlagBitsEXT = ToolPurposeFlagBits;
4058
4059pub type AccessFlagBits2KHR = AccessFlagBits2;
4060
4061pub type PipelineStageFlagBits2KHR = PipelineStageFlagBits2;
4062
4063pub type FormatFeatureFlagBits2KHR = FormatFeatureFlagBits2;
4064
4065pub type RenderingFlagBitsKHR = RenderingFlagBits;
4066
4067pub type ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits;
4068
4069pub type ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits;
4070
4071pub type ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits;
4072
4073pub type ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits;
4074
4075pub type SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits;
4076
4077pub type ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits;
4078
4079pub type ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits;
4080
4081pub type FenceImportFlagBitsKHR = FenceImportFlagBits;
4082
4083pub type PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits;
4084
4085pub type MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits;
4086
4087pub type TessellationDomainOriginKHR = TessellationDomainOrigin;
4088
4089pub type SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion;
4090
4091pub type SamplerYcbcrRangeKHR = SamplerYcbcrRange;
4092
4093pub type ChromaLocationKHR = ChromaLocation;
4094
4095pub type SamplerReductionModeEXT = SamplerReductionMode;
4096
4097pub type ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence;
4098
4099pub type SubmitFlagBitsKHR = SubmitFlagBits;
4100
4101pub type DriverIdKHR = DriverId;
4102
4103// unions
4104
4105// // Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4106#[repr(C)]
4107#[derive(Copy, Clone)]
4108pub union ClearColorValue {
4109    pub float32: [f32; 4],
4110    pub int32: [i32; 4],
4111    pub uint32: [u32; 4],
4112}
4113
4114// // Union allowing specification of color or depth and stencil values. Actual value selected is based on attachment being cleared.
4115#[repr(C)]
4116#[derive(Copy, Clone)]
4117pub union ClearValue {
4118    pub color: ClearColorValue,
4119    pub depthStencil: ClearDepthStencilValue,
4120}
4121
4122// // Union of all the possible return types a counter result could return
4123#[repr(C)]
4124#[derive(Copy, Clone)]
4125pub union PerformanceCounterResultKHR {
4126    pub int32: i32,
4127    pub int64: i64,
4128    pub uint32: u32,
4129    pub uint64: u64,
4130    pub float32: f32,
4131    pub float64: f64,
4132}
4133
4134#[repr(C)]
4135#[derive(Copy, Clone)]
4136pub union PerformanceValueDataINTEL {
4137    pub value32: u32,
4138    pub value64: u64,
4139    pub valueFloat: f32,
4140    pub valueBool: Bool32,
4141    pub valueString: *const c_char,
4142}
4143
4144#[repr(C)]
4145#[derive(Copy, Clone)]
4146pub union PipelineExecutableStatisticValueKHR {
4147    pub b32: Bool32,
4148    pub i64: i64,
4149    pub u64: u64,
4150    pub f64: f64,
4151}
4152
4153#[repr(C)]
4154#[derive(Copy, Clone)]
4155pub union DeviceOrHostAddressKHR {
4156    pub deviceAddress: DeviceAddress,
4157    pub hostAddress: *mut c_void,
4158}
4159
4160#[repr(C)]
4161#[derive(Copy, Clone)]
4162pub union DeviceOrHostAddressConstKHR {
4163    pub deviceAddress: DeviceAddress,
4164    pub hostAddress: *const c_void,
4165}
4166
4167#[repr(C)]
4168#[derive(Copy, Clone)]
4169pub union AccelerationStructureGeometryDataKHR {
4170    pub triangles: AccelerationStructureGeometryTrianglesDataKHR,
4171    pub aabbs: AccelerationStructureGeometryAabbsDataKHR,
4172    pub instances: AccelerationStructureGeometryInstancesDataKHR,
4173}
4174
4175#[repr(C)]
4176#[derive(Copy, Clone)]
4177pub union DescriptorDataEXT {
4178    pub pSampler: *const Sampler,
4179    pub pCombinedImageSampler: *const DescriptorImageInfo,
4180    pub pInputAttachmentImage: *const DescriptorImageInfo,
4181    pub pSampledImage: *const DescriptorImageInfo,
4182    pub pStorageImage: *const DescriptorImageInfo,
4183    pub pUniformTexelBuffer: *const DescriptorAddressInfoEXT,
4184    pub pStorageTexelBuffer: *const DescriptorAddressInfoEXT,
4185    pub pUniformBuffer: *const DescriptorAddressInfoEXT,
4186    pub pStorageBuffer: *const DescriptorAddressInfoEXT,
4187    pub accelerationStructure: DeviceAddress,
4188}
4189
4190#[repr(C)]
4191#[derive(Copy, Clone)]
4192pub union AccelerationStructureMotionInstanceDataNV {
4193    pub staticInstance: AccelerationStructureInstanceKHR,
4194    pub matrixMotionInstance: AccelerationStructureMatrixMotionInstanceNV,
4195    pub srtMotionInstance: AccelerationStructureSRTMotionInstanceNV,
4196}
4197
4198// structs
4199
4200#[repr(C)]
4201#[derive(Copy, Clone)]
4202pub struct BaseOutStructure {
4203    pub sType: StructureType,
4204    pub pNext: *mut BaseOutStructure,
4205}
4206
4207#[repr(C)]
4208#[derive(Copy, Clone)]
4209pub struct BaseInStructure {
4210    pub sType: StructureType,
4211    pub pNext: *const BaseInStructure,
4212}
4213
4214#[repr(C)]
4215#[derive(Copy, Clone)]
4216pub struct Offset2D {
4217    pub x: i32,
4218    pub y: i32,
4219}
4220
4221#[repr(C)]
4222#[derive(Copy, Clone)]
4223pub struct Offset3D {
4224    pub x: i32,
4225    pub y: i32,
4226    pub z: i32,
4227}
4228
4229#[repr(C)]
4230#[derive(Copy, Clone)]
4231pub struct Extent2D {
4232    pub width: u32,
4233    pub height: u32,
4234}
4235
4236#[repr(C)]
4237#[derive(Copy, Clone)]
4238pub struct Extent3D {
4239    pub width: u32,
4240    pub height: u32,
4241    pub depth: u32,
4242}
4243
4244#[repr(C)]
4245#[derive(Copy, Clone)]
4246pub struct Viewport {
4247    pub x: f32,
4248    pub y: f32,
4249    pub width: f32,
4250    pub height: f32,
4251    pub minDepth: f32,
4252    pub maxDepth: f32,
4253}
4254
4255#[repr(C)]
4256#[derive(Copy, Clone)]
4257pub struct Rect2D {
4258    pub offset: Offset2D,
4259    pub extent: Extent2D,
4260}
4261
4262#[repr(C)]
4263#[derive(Copy, Clone)]
4264pub struct ClearRect {
4265    pub rect: Rect2D,
4266    pub baseArrayLayer: u32,
4267    pub layerCount: u32,
4268}
4269
4270#[repr(C)]
4271#[derive(Copy, Clone)]
4272pub struct ComponentMapping {
4273    pub r: ComponentSwizzle,
4274    pub g: ComponentSwizzle,
4275    pub b: ComponentSwizzle,
4276    pub a: ComponentSwizzle,
4277}
4278
4279#[repr(C)]
4280#[derive(Copy, Clone)]
4281pub struct PhysicalDeviceProperties {
4282    pub apiVersion: u32,
4283    pub driverVersion: u32,
4284    pub vendorID: u32,
4285    pub deviceID: u32,
4286    pub deviceType: PhysicalDeviceType,
4287    pub deviceName: [c_char; MAX_PHYSICAL_DEVICE_NAME_SIZE as usize],
4288    pub pipelineCacheUUID: [u8; UUID_SIZE as usize],
4289    pub limits: PhysicalDeviceLimits,
4290    pub sparseProperties: PhysicalDeviceSparseProperties,
4291}
4292
4293#[repr(C)]
4294#[derive(Copy, Clone)]
4295pub struct ExtensionProperties {
4296    pub extensionName: [c_char; MAX_EXTENSION_NAME_SIZE as usize], // extension name
4297    pub specVersion: u32, // version of the extension specification implemented
4298}
4299
4300#[repr(C)]
4301#[derive(Copy, Clone)]
4302pub struct LayerProperties {
4303    pub layerName: [c_char; MAX_EXTENSION_NAME_SIZE as usize], // layer name
4304    pub specVersion: u32, // version of the layer specification implemented
4305    pub implementationVersion: u32, // build or release version of the layer's library
4306    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize], // Free-form description of the layer
4307}
4308
4309#[repr(C)]
4310#[derive(Copy, Clone)]
4311pub struct ApplicationInfo {
4312    pub sType: StructureType,
4313    pub pNext: *const c_void,
4314    pub pApplicationName: *const c_char,
4315    pub applicationVersion: u32,
4316    pub pEngineName: *const c_char,
4317    pub engineVersion: u32,
4318    pub apiVersion: u32,
4319}
4320
4321#[repr(C)]
4322#[derive(Copy, Clone)]
4323pub struct AllocationCallbacks {
4324    pub pUserData: *mut c_void,
4325    pub pfnAllocation: FnAllocationFunction,
4326    pub pfnReallocation: FnReallocationFunction,
4327    pub pfnFree: FnFreeFunction,
4328    pub pfnInternalAllocation: FnInternalAllocationNotification,
4329    pub pfnInternalFree: FnInternalFreeNotification,
4330}
4331
4332#[repr(C)]
4333#[derive(Copy, Clone)]
4334pub struct DeviceQueueCreateInfo {
4335    pub sType: StructureType,
4336    pub pNext: *const c_void,
4337    pub flags: DeviceQueueCreateFlags,
4338    pub queueFamilyIndex: u32,
4339    pub queueCount: u32,
4340    pub pQueuePriorities: *const f32,
4341}
4342
4343#[repr(C)]
4344#[derive(Copy, Clone)]
4345pub struct DeviceCreateInfo {
4346    pub sType: StructureType,
4347    pub pNext: *const c_void,
4348    pub flags: DeviceCreateFlags,
4349    pub queueCreateInfoCount: u32,
4350    pub pQueueCreateInfos: *const DeviceQueueCreateInfo,
4351    pub enabledLayerCount: u32,
4352    pub ppEnabledLayerNames: *const *const c_char, // Ordered list of layer names to be enabled
4353    pub enabledExtensionCount: u32,
4354    pub ppEnabledExtensionNames: *const *const c_char,
4355    pub pEnabledFeatures: *const PhysicalDeviceFeatures,
4356}
4357
4358#[repr(C)]
4359#[derive(Copy, Clone)]
4360pub struct InstanceCreateInfo {
4361    pub sType: StructureType,
4362    pub pNext: *const c_void,
4363    pub flags: InstanceCreateFlags,
4364    pub pApplicationInfo: *const ApplicationInfo,
4365    pub enabledLayerCount: u32,
4366    pub ppEnabledLayerNames: *const *const c_char, // Ordered list of layer names to be enabled
4367    pub enabledExtensionCount: u32,
4368    pub ppEnabledExtensionNames: *const *const c_char, // Extension names to be enabled
4369}
4370
4371#[repr(C)]
4372#[derive(Copy, Clone)]
4373pub struct QueueFamilyProperties {
4374    pub queueFlags: QueueFlags, // Queue flags
4375    pub queueCount: u32,
4376    pub timestampValidBits: u32,
4377    pub minImageTransferGranularity: Extent3D, // Minimum alignment requirement for image transfers
4378}
4379
4380#[repr(C)]
4381#[derive(Copy, Clone)]
4382pub struct PhysicalDeviceMemoryProperties {
4383    pub memoryTypeCount: u32,
4384    pub memoryTypes: [MemoryType; MAX_MEMORY_TYPES as usize],
4385    pub memoryHeapCount: u32,
4386    pub memoryHeaps: [MemoryHeap; MAX_MEMORY_HEAPS as usize],
4387}
4388
4389#[repr(C)]
4390#[derive(Copy, Clone)]
4391pub struct MemoryAllocateInfo {
4392    pub sType: StructureType,
4393    pub pNext: *const c_void,
4394    pub allocationSize: DeviceSize, // Size of memory allocation
4395    pub memoryTypeIndex: u32,       // Index of the of the memory type to allocate from
4396}
4397
4398#[repr(C)]
4399#[derive(Copy, Clone)]
4400pub struct MemoryRequirements {
4401    pub size: DeviceSize,      // Specified in bytes
4402    pub alignment: DeviceSize, // Specified in bytes
4403    pub memoryTypeBits: u32, // Bitmask of the allowed memory type indices into memoryTypes[] for this object
4404}
4405
4406#[repr(C)]
4407#[derive(Copy, Clone)]
4408pub struct SparseImageFormatProperties {
4409    pub aspectMask: ImageAspectFlags,
4410    pub imageGranularity: Extent3D,
4411    pub flags: SparseImageFormatFlags,
4412}
4413
4414#[repr(C)]
4415#[derive(Copy, Clone)]
4416pub struct SparseImageMemoryRequirements {
4417    pub formatProperties: SparseImageFormatProperties,
4418    pub imageMipTailFirstLod: u32,
4419    pub imageMipTailSize: DeviceSize, // Specified in bytes, must be a multiple of sparse block size in bytes / alignment
4420    pub imageMipTailOffset: DeviceSize, // Specified in bytes, must be a multiple of sparse block size in bytes / alignment
4421    pub imageMipTailStride: DeviceSize, // Specified in bytes, must be a multiple of sparse block size in bytes / alignment
4422}
4423
4424#[repr(C)]
4425#[derive(Copy, Clone)]
4426pub struct MemoryType {
4427    pub propertyFlags: MemoryPropertyFlags, // Memory properties of this memory type
4428    pub heapIndex: u32, // Index of the memory heap allocations of this memory type are taken from
4429}
4430
4431#[repr(C)]
4432#[derive(Copy, Clone)]
4433pub struct MemoryHeap {
4434    pub size: DeviceSize,       // Available memory in the heap
4435    pub flags: MemoryHeapFlags, // Flags for the heap
4436}
4437
4438#[repr(C)]
4439#[derive(Copy, Clone)]
4440pub struct MappedMemoryRange {
4441    pub sType: StructureType,
4442    pub pNext: *const c_void,
4443    pub memory: DeviceMemory, // Mapped memory object
4444    pub offset: DeviceSize,   // Offset within the memory object where the range starts
4445    pub size: DeviceSize,     // Size of the range within the memory object
4446}
4447
4448#[repr(C)]
4449#[derive(Copy, Clone)]
4450pub struct FormatProperties {
4451    pub linearTilingFeatures: FormatFeatureFlags, // Format features in case of linear tiling
4452    pub optimalTilingFeatures: FormatFeatureFlags, // Format features in case of optimal tiling
4453    pub bufferFeatures: FormatFeatureFlags,       // Format features supported by buffers
4454}
4455
4456#[repr(C)]
4457#[derive(Copy, Clone)]
4458pub struct ImageFormatProperties {
4459    pub maxExtent: Extent3D, // max image dimensions for this resource type
4460    pub maxMipLevels: u32,   // max number of mipmap levels for this resource type
4461    pub maxArrayLayers: u32, // max array size for this resource type
4462    pub sampleCounts: SampleCountFlags, // supported sample counts for this resource type
4463    pub maxResourceSize: DeviceSize, // max size (in bytes) of this resource type
4464}
4465
4466#[repr(C)]
4467#[derive(Copy, Clone)]
4468pub struct DescriptorBufferInfo {
4469    pub buffer: Buffer,     // Buffer used for this descriptor slot.
4470    pub offset: DeviceSize, // Base offset from buffer start in bytes to update in the descriptor set.
4471    pub range: DeviceSize,  // Size in bytes of the buffer resource for this descriptor update.
4472}
4473
4474#[repr(C)]
4475#[derive(Copy, Clone)]
4476pub struct DescriptorImageInfo {
4477    pub sampler: Sampler, // Sampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise.
4478    pub imageView: ImageView, // Image view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise.
4479    pub imageLayout: ImageLayout, // Layout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE).
4480}
4481
4482#[repr(C)]
4483#[derive(Copy, Clone)]
4484pub struct WriteDescriptorSet {
4485    pub sType: StructureType,
4486    pub pNext: *const c_void,
4487    pub dstSet: DescriptorSet,          // Destination descriptor set
4488    pub dstBinding: u32,                // Binding within the destination descriptor set to write
4489    pub dstArrayElement: u32,           // Array element within the destination binding to write
4490    pub descriptorCount: u32, // Number of descriptors to write (determines the size of the array pointed by pDescriptors)
4491    pub descriptorType: DescriptorType, // Descriptor type to write (determines which members of the array pointed by pDescriptors are going to be used)
4492    pub pImageInfo: *const DescriptorImageInfo, // Sampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types.
4493    pub pBufferInfo: *const DescriptorBufferInfo, // Raw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types.
4494    pub pTexelBufferView: *const BufferView, // Buffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types.
4495}
4496
4497#[repr(C)]
4498#[derive(Copy, Clone)]
4499pub struct CopyDescriptorSet {
4500    pub sType: StructureType,
4501    pub pNext: *const c_void,
4502    pub srcSet: DescriptorSet, // Source descriptor set
4503    pub srcBinding: u32,       // Binding within the source descriptor set to copy from
4504    pub srcArrayElement: u32,  // Array element within the source binding to copy from
4505    pub dstSet: DescriptorSet, // Destination descriptor set
4506    pub dstBinding: u32,       // Binding within the destination descriptor set to copy to
4507    pub dstArrayElement: u32,  // Array element within the destination binding to copy to
4508    pub descriptorCount: u32, // Number of descriptors to write (determines the size of the array pointed by pDescriptors)
4509}
4510
4511#[repr(C)]
4512#[derive(Copy, Clone)]
4513pub struct BufferCreateInfo {
4514    pub sType: StructureType,
4515    pub pNext: *const c_void,
4516    pub flags: BufferCreateFlags, // Buffer creation flags
4517    pub size: DeviceSize,         // Specified in bytes
4518    pub usage: BufferUsageFlags,  // Buffer usage flags
4519    pub sharingMode: SharingMode,
4520    pub queueFamilyIndexCount: u32,
4521    pub pQueueFamilyIndices: *const u32,
4522}
4523
4524#[repr(C)]
4525#[derive(Copy, Clone)]
4526pub struct BufferViewCreateInfo {
4527    pub sType: StructureType,
4528    pub pNext: *const c_void,
4529    pub flags: BufferViewCreateFlags,
4530    pub buffer: Buffer,
4531    pub format: Format,     // Optionally specifies format of elements
4532    pub offset: DeviceSize, // Specified in bytes
4533    pub range: DeviceSize,  // View size specified in bytes
4534}
4535
4536#[repr(C)]
4537#[derive(Copy, Clone)]
4538pub struct ImageSubresource {
4539    pub aspectMask: ImageAspectFlags,
4540    pub mipLevel: u32,
4541    pub arrayLayer: u32,
4542}
4543
4544#[repr(C)]
4545#[derive(Copy, Clone)]
4546pub struct ImageSubresourceLayers {
4547    pub aspectMask: ImageAspectFlags,
4548    pub mipLevel: u32,
4549    pub baseArrayLayer: u32,
4550    pub layerCount: u32,
4551}
4552
4553#[repr(C)]
4554#[derive(Copy, Clone)]
4555pub struct ImageSubresourceRange {
4556    pub aspectMask: ImageAspectFlags,
4557    pub baseMipLevel: u32,
4558    pub levelCount: u32,
4559    pub baseArrayLayer: u32,
4560    pub layerCount: u32,
4561}
4562
4563#[repr(C)]
4564#[derive(Copy, Clone)]
4565pub struct MemoryBarrier {
4566    pub sType: StructureType,
4567    pub pNext: *const c_void,
4568    pub srcAccessMask: AccessFlags, // Memory accesses from the source of the dependency to synchronize
4569    pub dstAccessMask: AccessFlags, // Memory accesses from the destination of the dependency to synchronize
4570}
4571
4572#[repr(C)]
4573#[derive(Copy, Clone)]
4574pub struct BufferMemoryBarrier {
4575    pub sType: StructureType,
4576    pub pNext: *const c_void,
4577    pub srcAccessMask: AccessFlags, // Memory accesses from the source of the dependency to synchronize
4578    pub dstAccessMask: AccessFlags, // Memory accesses from the destination of the dependency to synchronize
4579    pub srcQueueFamilyIndex: u32,   // Queue family to transition ownership from
4580    pub dstQueueFamilyIndex: u32,   // Queue family to transition ownership to
4581    pub buffer: Buffer,             // Buffer to sync
4582    pub offset: DeviceSize,         // Offset within the buffer to sync
4583    pub size: DeviceSize,           // Amount of bytes to sync
4584}
4585
4586#[repr(C)]
4587#[derive(Copy, Clone)]
4588pub struct ImageMemoryBarrier {
4589    pub sType: StructureType,
4590    pub pNext: *const c_void,
4591    pub srcAccessMask: AccessFlags, // Memory accesses from the source of the dependency to synchronize
4592    pub dstAccessMask: AccessFlags, // Memory accesses from the destination of the dependency to synchronize
4593    pub oldLayout: ImageLayout,     // Current layout of the image
4594    pub newLayout: ImageLayout,     // New layout to transition the image to
4595    pub srcQueueFamilyIndex: u32,   // Queue family to transition ownership from
4596    pub dstQueueFamilyIndex: u32,   // Queue family to transition ownership to
4597    pub image: Image,               // Image to sync
4598    pub subresourceRange: ImageSubresourceRange, // Subresource range to sync
4599}
4600
4601#[repr(C)]
4602#[derive(Copy, Clone)]
4603pub struct ImageCreateInfo {
4604    pub sType: StructureType,
4605    pub pNext: *const c_void,
4606    pub flags: ImageCreateFlags, // Image creation flags
4607    pub imageType: ImageType,
4608    pub format: Format,
4609    pub extent: Extent3D,
4610    pub mipLevels: u32,
4611    pub arrayLayers: u32,
4612    pub samples: SampleCountFlagBits,
4613    pub tiling: ImageTiling,
4614    pub usage: ImageUsageFlags,          // Image usage flags
4615    pub sharingMode: SharingMode,        // Cross-queue-family sharing mode
4616    pub queueFamilyIndexCount: u32,      // Number of queue families to share across
4617    pub pQueueFamilyIndices: *const u32, // Array of queue family indices to share across
4618    pub initialLayout: ImageLayout,      // Initial image layout for all subresources
4619}
4620
4621#[repr(C)]
4622#[derive(Copy, Clone)]
4623pub struct SubresourceLayout {
4624    pub offset: DeviceSize,     // Specified in bytes
4625    pub size: DeviceSize,       // Specified in bytes
4626    pub rowPitch: DeviceSize,   // Specified in bytes
4627    pub arrayPitch: DeviceSize, // Specified in bytes
4628    pub depthPitch: DeviceSize, // Specified in bytes
4629}
4630
4631#[repr(C)]
4632#[derive(Copy, Clone)]
4633pub struct ImageViewCreateInfo {
4634    pub sType: StructureType,
4635    pub pNext: *const c_void,
4636    pub flags: ImageViewCreateFlags,
4637    pub image: Image,
4638    pub viewType: ImageViewType,
4639    pub format: Format,
4640    pub components: ComponentMapping,
4641    pub subresourceRange: ImageSubresourceRange,
4642}
4643
4644#[repr(C)]
4645#[derive(Copy, Clone)]
4646pub struct BufferCopy {
4647    pub srcOffset: DeviceSize, // Specified in bytes
4648    pub dstOffset: DeviceSize, // Specified in bytes
4649    pub size: DeviceSize,      // Specified in bytes
4650}
4651
4652#[repr(C)]
4653#[derive(Copy, Clone)]
4654pub struct SparseMemoryBind {
4655    pub resourceOffset: DeviceSize, // Specified in bytes
4656    pub size: DeviceSize,           // Specified in bytes
4657    pub memory: DeviceMemory,
4658    pub memoryOffset: DeviceSize, // Specified in bytes
4659    pub flags: SparseMemoryBindFlags,
4660}
4661
4662#[repr(C)]
4663#[derive(Copy, Clone)]
4664pub struct SparseImageMemoryBind {
4665    pub subresource: ImageSubresource,
4666    pub offset: Offset3D,
4667    pub extent: Extent3D,
4668    pub memory: DeviceMemory,
4669    pub memoryOffset: DeviceSize, // Specified in bytes
4670    pub flags: SparseMemoryBindFlags,
4671}
4672
4673#[repr(C)]
4674#[derive(Copy, Clone)]
4675pub struct SparseBufferMemoryBindInfo {
4676    pub buffer: Buffer,
4677    pub bindCount: u32,
4678    pub pBinds: *const SparseMemoryBind,
4679}
4680
4681#[repr(C)]
4682#[derive(Copy, Clone)]
4683pub struct SparseImageOpaqueMemoryBindInfo {
4684    pub image: Image,
4685    pub bindCount: u32,
4686    pub pBinds: *const SparseMemoryBind,
4687}
4688
4689#[repr(C)]
4690#[derive(Copy, Clone)]
4691pub struct SparseImageMemoryBindInfo {
4692    pub image: Image,
4693    pub bindCount: u32,
4694    pub pBinds: *const SparseImageMemoryBind,
4695}
4696
4697#[repr(C)]
4698#[derive(Copy, Clone)]
4699pub struct BindSparseInfo {
4700    pub sType: StructureType,
4701    pub pNext: *const c_void,
4702    pub waitSemaphoreCount: u32,
4703    pub pWaitSemaphores: *const Semaphore,
4704    pub bufferBindCount: u32,
4705    pub pBufferBinds: *const SparseBufferMemoryBindInfo,
4706    pub imageOpaqueBindCount: u32,
4707    pub pImageOpaqueBinds: *const SparseImageOpaqueMemoryBindInfo,
4708    pub imageBindCount: u32,
4709    pub pImageBinds: *const SparseImageMemoryBindInfo,
4710    pub signalSemaphoreCount: u32,
4711    pub pSignalSemaphores: *const Semaphore,
4712}
4713
4714#[repr(C)]
4715#[derive(Copy, Clone)]
4716pub struct ImageCopy {
4717    pub srcSubresource: ImageSubresourceLayers,
4718    pub srcOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
4719    pub dstSubresource: ImageSubresourceLayers,
4720    pub dstOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
4721    pub extent: Extent3D,    // Specified in pixels for both compressed and uncompressed images
4722}
4723
4724#[repr(C)]
4725#[derive(Copy, Clone)]
4726pub struct ImageBlit {
4727    pub srcSubresource: ImageSubresourceLayers,
4728    pub srcOffsets: [Offset3D; 2], // Specified in pixels for both compressed and uncompressed images
4729    pub dstSubresource: ImageSubresourceLayers,
4730    pub dstOffsets: [Offset3D; 2], // Specified in pixels for both compressed and uncompressed images
4731}
4732
4733#[repr(C)]
4734#[derive(Copy, Clone)]
4735pub struct BufferImageCopy {
4736    pub bufferOffset: DeviceSize, // Specified in bytes
4737    pub bufferRowLength: u32,     // Specified in texels
4738    pub bufferImageHeight: u32,
4739    pub imageSubresource: ImageSubresourceLayers,
4740    pub imageOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
4741    pub imageExtent: Extent3D, // Specified in pixels for both compressed and uncompressed images
4742}
4743
4744#[repr(C)]
4745#[derive(Copy, Clone)]
4746pub struct CopyMemoryIndirectCommandNV {
4747    pub srcAddress: DeviceAddress,
4748    pub dstAddress: DeviceAddress,
4749    pub size: DeviceSize, // Specified in bytes
4750}
4751
4752#[repr(C)]
4753#[derive(Copy, Clone)]
4754pub struct CopyMemoryToImageIndirectCommandNV {
4755    pub srcAddress: DeviceAddress,
4756    pub bufferRowLength: u32, // Specified in texels
4757    pub bufferImageHeight: u32,
4758    pub imageSubresource: ImageSubresourceLayers,
4759    pub imageOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
4760    pub imageExtent: Extent3D, // Specified in pixels for both compressed and uncompressed images
4761}
4762
4763#[repr(C)]
4764#[derive(Copy, Clone)]
4765pub struct ImageResolve {
4766    pub srcSubresource: ImageSubresourceLayers,
4767    pub srcOffset: Offset3D,
4768    pub dstSubresource: ImageSubresourceLayers,
4769    pub dstOffset: Offset3D,
4770    pub extent: Extent3D,
4771}
4772
4773#[repr(C)]
4774#[derive(Copy, Clone)]
4775pub struct ShaderModuleCreateInfo {
4776    pub sType: StructureType,
4777    pub pNext: *const c_void, // noautovalidity because this structure can be either an explicit parameter, or passed in a pNext chain
4778    pub flags: ShaderModuleCreateFlags,
4779    pub codeSize: usize,   // Specified in bytes
4780    pub pCode: *const u32, // Binary code of size codeSize
4781}
4782
4783#[repr(C)]
4784#[derive(Copy, Clone)]
4785pub struct DescriptorSetLayoutBinding {
4786    pub binding: u32,                       // Binding number for this entry
4787    pub descriptorType: DescriptorType,     // Type of the descriptors in this binding
4788    pub descriptorCount: u32,               // Number of descriptors in this binding
4789    pub stageFlags: ShaderStageFlags,       // Shader stages this binding is visible to
4790    pub pImmutableSamplers: *const Sampler, // Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements)
4791}
4792
4793#[repr(C)]
4794#[derive(Copy, Clone)]
4795pub struct DescriptorSetLayoutCreateInfo {
4796    pub sType: StructureType,
4797    pub pNext: *const c_void,
4798    pub flags: DescriptorSetLayoutCreateFlags,
4799    pub bindingCount: u32, // Number of bindings in the descriptor set layout
4800    pub pBindings: *const DescriptorSetLayoutBinding, // Array of descriptor set layout bindings
4801}
4802
4803#[repr(C)]
4804#[derive(Copy, Clone)]
4805pub struct DescriptorPoolSize {
4806    pub typ: DescriptorType,
4807    pub descriptorCount: u32,
4808}
4809
4810#[repr(C)]
4811#[derive(Copy, Clone)]
4812pub struct DescriptorPoolCreateInfo {
4813    pub sType: StructureType,
4814    pub pNext: *const c_void,
4815    pub flags: DescriptorPoolCreateFlags,
4816    pub maxSets: u32,
4817    pub poolSizeCount: u32,
4818    pub pPoolSizes: *const DescriptorPoolSize,
4819}
4820
4821#[repr(C)]
4822#[derive(Copy, Clone)]
4823pub struct DescriptorSetAllocateInfo {
4824    pub sType: StructureType,
4825    pub pNext: *const c_void,
4826    pub descriptorPool: DescriptorPool,
4827    pub descriptorSetCount: u32,
4828    pub pSetLayouts: *const DescriptorSetLayout,
4829}
4830
4831#[repr(C)]
4832#[derive(Copy, Clone)]
4833pub struct SpecializationMapEntry {
4834    pub constantID: u32, // The SpecConstant ID specified in the BIL
4835    pub offset: u32,     // Offset of the value in the data block
4836    pub size: usize,     // Size in bytes of the SpecConstant
4837}
4838
4839#[repr(C)]
4840#[derive(Copy, Clone)]
4841pub struct SpecializationInfo {
4842    pub mapEntryCount: u32,                         // Number of entries in the map
4843    pub pMapEntries: *const SpecializationMapEntry, // Array of map entries
4844    pub dataSize: usize,                            // Size in bytes of pData
4845    pub pData: *const c_void,                       // Pointer to SpecConstant data
4846}
4847
4848#[repr(C)]
4849#[derive(Copy, Clone)]
4850pub struct PipelineShaderStageCreateInfo {
4851    pub sType: StructureType,
4852    pub pNext: *const c_void,
4853    pub flags: PipelineShaderStageCreateFlags,
4854    pub stage: ShaderStageFlagBits, // Shader stage
4855    pub module: ShaderModule,       // Module containing entry point
4856    pub pName: *const c_char,       // Null-terminated entry point name
4857    pub pSpecializationInfo: *const SpecializationInfo,
4858}
4859
4860#[repr(C)]
4861#[derive(Copy, Clone)]
4862pub struct ComputePipelineCreateInfo {
4863    pub sType: StructureType,
4864    pub pNext: *const c_void,
4865    pub flags: PipelineCreateFlags, // Pipeline creation flags
4866    pub stage: PipelineShaderStageCreateInfo,
4867    pub layout: PipelineLayout,       // Interface layout of the pipeline
4868    pub basePipelineHandle: Pipeline, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
4869    pub basePipelineIndex: i32, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
4870}
4871
4872#[repr(C)]
4873#[derive(Copy, Clone)]
4874pub struct VertexInputBindingDescription {
4875    pub binding: u32,               // Vertex buffer binding id
4876    pub stride: u32,                // Distance between vertices in bytes (0 = no advancement)
4877    pub inputRate: VertexInputRate, // The rate at which the vertex data is consumed
4878}
4879
4880#[repr(C)]
4881#[derive(Copy, Clone)]
4882pub struct VertexInputAttributeDescription {
4883    pub location: u32,  // location of the shader vertex attrib
4884    pub binding: u32,   // Vertex buffer binding id
4885    pub format: Format, // format of source data
4886    pub offset: u32,    // Offset of first element in bytes from base of vertex
4887}
4888
4889#[repr(C)]
4890#[derive(Copy, Clone)]
4891pub struct PipelineVertexInputStateCreateInfo {
4892    pub sType: StructureType,
4893    pub pNext: *const c_void,
4894    pub flags: PipelineVertexInputStateCreateFlags,
4895    pub vertexBindingDescriptionCount: u32, // number of bindings
4896    pub pVertexBindingDescriptions: *const VertexInputBindingDescription,
4897    pub vertexAttributeDescriptionCount: u32, // number of attributes
4898    pub pVertexAttributeDescriptions: *const VertexInputAttributeDescription,
4899}
4900
4901#[repr(C)]
4902#[derive(Copy, Clone)]
4903pub struct PipelineInputAssemblyStateCreateInfo {
4904    pub sType: StructureType,
4905    pub pNext: *const c_void,
4906    pub flags: PipelineInputAssemblyStateCreateFlags,
4907    pub topology: PrimitiveTopology,
4908    pub primitiveRestartEnable: Bool32,
4909}
4910
4911#[repr(C)]
4912#[derive(Copy, Clone)]
4913pub struct PipelineTessellationStateCreateInfo {
4914    pub sType: StructureType,
4915    pub pNext: *const c_void,
4916    pub flags: PipelineTessellationStateCreateFlags,
4917    pub patchControlPoints: u32,
4918}
4919
4920#[repr(C)]
4921#[derive(Copy, Clone)]
4922pub struct PipelineViewportStateCreateInfo {
4923    pub sType: StructureType,
4924    pub pNext: *const c_void,
4925    pub flags: PipelineViewportStateCreateFlags,
4926    pub viewportCount: u32,
4927    pub pViewports: *const Viewport,
4928    pub scissorCount: u32,
4929    pub pScissors: *const Rect2D,
4930}
4931
4932#[repr(C)]
4933#[derive(Copy, Clone)]
4934pub struct PipelineRasterizationStateCreateInfo {
4935    pub sType: StructureType,
4936    pub pNext: *const c_void,
4937    pub flags: PipelineRasterizationStateCreateFlags,
4938    pub depthClampEnable: Bool32,
4939    pub rasterizerDiscardEnable: Bool32,
4940    pub polygonMode: PolygonMode, // optional (GL45)
4941    pub cullMode: CullModeFlags,
4942    pub frontFace: FrontFace,
4943    pub depthBiasEnable: Bool32,
4944    pub depthBiasConstantFactor: f32,
4945    pub depthBiasClamp: f32,
4946    pub depthBiasSlopeFactor: f32,
4947    pub lineWidth: f32,
4948}
4949
4950#[repr(C)]
4951#[derive(Copy, Clone)]
4952pub struct PipelineMultisampleStateCreateInfo {
4953    pub sType: StructureType,
4954    pub pNext: *const c_void,
4955    pub flags: PipelineMultisampleStateCreateFlags,
4956    pub rasterizationSamples: SampleCountFlagBits, // Number of samples used for rasterization
4957    pub sampleShadingEnable: Bool32,               // optional (GL45)
4958    pub minSampleShading: f32,                     // optional (GL45)
4959    pub pSampleMask: *const SampleMask,            // Array of sampleMask words
4960    pub alphaToCoverageEnable: Bool32,
4961    pub alphaToOneEnable: Bool32,
4962}
4963
4964#[repr(C)]
4965#[derive(Copy, Clone)]
4966pub struct PipelineColorBlendAttachmentState {
4967    pub blendEnable: Bool32,
4968    pub srcColorBlendFactor: BlendFactor,
4969    pub dstColorBlendFactor: BlendFactor,
4970    pub colorBlendOp: BlendOp,
4971    pub srcAlphaBlendFactor: BlendFactor,
4972    pub dstAlphaBlendFactor: BlendFactor,
4973    pub alphaBlendOp: BlendOp,
4974    pub colorWriteMask: ColorComponentFlags,
4975}
4976
4977#[repr(C)]
4978#[derive(Copy, Clone)]
4979pub struct PipelineColorBlendStateCreateInfo {
4980    pub sType: StructureType,
4981    pub pNext: *const c_void,
4982    pub flags: PipelineColorBlendStateCreateFlags,
4983    pub logicOpEnable: Bool32,
4984    pub logicOp: LogicOp,
4985    pub attachmentCount: u32, // # of pAttachments
4986    pub pAttachments: *const PipelineColorBlendAttachmentState,
4987    pub blendConstants: [f32; 4],
4988}
4989
4990#[repr(C)]
4991#[derive(Copy, Clone)]
4992pub struct PipelineDynamicStateCreateInfo {
4993    pub sType: StructureType,
4994    pub pNext: *const c_void,
4995    pub flags: PipelineDynamicStateCreateFlags,
4996    pub dynamicStateCount: u32,
4997    pub pDynamicStates: *const DynamicState,
4998}
4999
5000#[repr(C)]
5001#[derive(Copy, Clone)]
5002pub struct StencilOpState {
5003    pub failOp: StencilOp,
5004    pub passOp: StencilOp,
5005    pub depthFailOp: StencilOp,
5006    pub compareOp: CompareOp,
5007    pub compareMask: u32,
5008    pub writeMask: u32,
5009    pub reference: u32,
5010}
5011
5012#[repr(C)]
5013#[derive(Copy, Clone)]
5014pub struct PipelineDepthStencilStateCreateInfo {
5015    pub sType: StructureType,
5016    pub pNext: *const c_void,
5017    pub flags: PipelineDepthStencilStateCreateFlags,
5018    pub depthTestEnable: Bool32,
5019    pub depthWriteEnable: Bool32,
5020    pub depthCompareOp: CompareOp,
5021    pub depthBoundsTestEnable: Bool32, // optional (depth_bounds_test)
5022    pub stencilTestEnable: Bool32,
5023    pub front: StencilOpState,
5024    pub back: StencilOpState,
5025    pub minDepthBounds: f32,
5026    pub maxDepthBounds: f32,
5027}
5028
5029#[repr(C)]
5030#[derive(Copy, Clone)]
5031pub struct GraphicsPipelineCreateInfo {
5032    pub sType: StructureType,
5033    pub pNext: *const c_void,
5034    pub flags: PipelineCreateFlags, // Pipeline creation flags
5035    pub stageCount: u32,
5036    pub pStages: *const PipelineShaderStageCreateInfo, // One entry for each active shader stage
5037    pub pVertexInputState: *const PipelineVertexInputStateCreateInfo,
5038    pub pInputAssemblyState: *const PipelineInputAssemblyStateCreateInfo,
5039    pub pTessellationState: *const PipelineTessellationStateCreateInfo,
5040    pub pViewportState: *const PipelineViewportStateCreateInfo,
5041    pub pRasterizationState: *const PipelineRasterizationStateCreateInfo,
5042    pub pMultisampleState: *const PipelineMultisampleStateCreateInfo,
5043    pub pDepthStencilState: *const PipelineDepthStencilStateCreateInfo,
5044    pub pColorBlendState: *const PipelineColorBlendStateCreateInfo,
5045    pub pDynamicState: *const PipelineDynamicStateCreateInfo,
5046    pub layout: PipelineLayout, // Interface layout of the pipeline
5047    pub renderPass: RenderPass,
5048    pub subpass: u32,
5049    pub basePipelineHandle: Pipeline, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
5050    pub basePipelineIndex: i32, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
5051}
5052
5053#[repr(C)]
5054#[derive(Copy, Clone)]
5055pub struct PipelineCacheCreateInfo {
5056    pub sType: StructureType,
5057    pub pNext: *const c_void,
5058    pub flags: PipelineCacheCreateFlags,
5059    pub initialDataSize: usize, // Size of initial data to populate cache, in bytes
5060    pub pInitialData: *const c_void, // Initial data to populate cache
5061}
5062
5063#[repr(C)]
5064#[derive(Copy, Clone)]
5065pub struct PipelineCacheHeaderVersionOne {
5066    // The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.
5067    pub headerSize: u32,
5068    pub headerVersion: PipelineCacheHeaderVersion,
5069    pub vendorID: u32,
5070    pub deviceID: u32,
5071    pub pipelineCacheUUID: [u8; UUID_SIZE as usize],
5072}
5073
5074#[repr(C)]
5075#[derive(Copy, Clone)]
5076pub struct PushConstantRange {
5077    pub stageFlags: ShaderStageFlags, // Which stages use the range
5078    pub offset: u32,                  // Start of the range, in bytes
5079    pub size: u32,                    // Size of the range, in bytes
5080}
5081
5082#[repr(C)]
5083#[derive(Copy, Clone)]
5084pub struct PipelineLayoutCreateInfo {
5085    pub sType: StructureType,
5086    pub pNext: *const c_void,
5087    pub flags: PipelineLayoutCreateFlags,
5088    pub setLayoutCount: u32, // Number of descriptor sets interfaced by the pipeline
5089    pub pSetLayouts: *const DescriptorSetLayout, // Array of setCount number of descriptor set layout objects defining the layout of the
5090    pub pushConstantRangeCount: u32, // Number of push-constant ranges used by the pipeline
5091    pub pPushConstantRanges: *const PushConstantRange, // Array of pushConstantRangeCount number of ranges used by various shader stages
5092}
5093
5094#[repr(C)]
5095#[derive(Copy, Clone)]
5096pub struct SamplerCreateInfo {
5097    pub sType: StructureType,
5098    pub pNext: *const c_void,
5099    pub flags: SamplerCreateFlags,
5100    pub magFilter: Filter,             // Filter mode for magnification
5101    pub minFilter: Filter,             // Filter mode for minifiation
5102    pub mipmapMode: SamplerMipmapMode, // Mipmap selection mode
5103    pub addressModeU: SamplerAddressMode,
5104    pub addressModeV: SamplerAddressMode,
5105    pub addressModeW: SamplerAddressMode,
5106    pub mipLodBias: f32,
5107    pub anisotropyEnable: Bool32,
5108    pub maxAnisotropy: f32,
5109    pub compareEnable: Bool32,
5110    pub compareOp: CompareOp,
5111    pub minLod: f32,
5112    pub maxLod: f32,
5113    pub borderColor: BorderColor,
5114    pub unnormalizedCoordinates: Bool32,
5115}
5116
5117#[repr(C)]
5118#[derive(Copy, Clone)]
5119pub struct CommandPoolCreateInfo {
5120    pub sType: StructureType,
5121    pub pNext: *const c_void,
5122    pub flags: CommandPoolCreateFlags, // Command pool creation flags
5123    pub queueFamilyIndex: u32,
5124}
5125
5126#[repr(C)]
5127#[derive(Copy, Clone)]
5128pub struct CommandBufferAllocateInfo {
5129    pub sType: StructureType,
5130    pub pNext: *const c_void,
5131    pub commandPool: CommandPool,
5132    pub level: CommandBufferLevel,
5133    pub commandBufferCount: u32,
5134}
5135
5136#[repr(C)]
5137#[derive(Copy, Clone)]
5138pub struct CommandBufferInheritanceInfo {
5139    pub sType: StructureType,
5140    pub pNext: *const c_void,
5141    pub renderPass: RenderPass, // Render pass for secondary command buffers
5142    pub subpass: u32,
5143    pub framebuffer: Framebuffer, // Framebuffer for secondary command buffers
5144    pub occlusionQueryEnable: Bool32, // Whether this secondary command buffer may be executed during an occlusion query
5145    pub queryFlags: QueryControlFlags, // Query flags used by this secondary command buffer, if executed during an occlusion query
5146    pub pipelineStatistics: QueryPipelineStatisticFlags, // Pipeline statistics that may be counted for this secondary command buffer
5147}
5148
5149#[repr(C)]
5150#[derive(Copy, Clone)]
5151pub struct CommandBufferBeginInfo {
5152    pub sType: StructureType,
5153    pub pNext: *const c_void,
5154    pub flags: CommandBufferUsageFlags, // Command buffer usage flags
5155    pub pInheritanceInfo: *const CommandBufferInheritanceInfo, // Pointer to inheritance info for secondary command buffers
5156}
5157
5158#[repr(C)]
5159#[derive(Copy, Clone)]
5160pub struct RenderPassBeginInfo {
5161    pub sType: StructureType,
5162    pub pNext: *const c_void,
5163    pub renderPass: RenderPass,
5164    pub framebuffer: Framebuffer,
5165    pub renderArea: Rect2D,
5166    pub clearValueCount: u32,
5167    pub pClearValues: *const ClearValue,
5168}
5169
5170#[repr(C)]
5171#[derive(Copy, Clone)]
5172pub struct ClearDepthStencilValue {
5173    pub depth: f32,
5174    pub stencil: u32,
5175}
5176
5177#[repr(C)]
5178#[derive(Copy, Clone)]
5179pub struct ClearAttachment {
5180    pub aspectMask: ImageAspectFlags,
5181    pub colorAttachment: u32,
5182    pub clearValue: ClearValue,
5183}
5184
5185#[repr(C)]
5186#[derive(Copy, Clone)]
5187pub struct AttachmentDescription {
5188    pub flags: AttachmentDescriptionFlags,
5189    pub format: Format,
5190    pub samples: SampleCountFlagBits,
5191    pub loadOp: AttachmentLoadOp, // Load operation for color or depth data
5192    pub storeOp: AttachmentStoreOp, // Store operation for color or depth data
5193    pub stencilLoadOp: AttachmentLoadOp, // Load operation for stencil data
5194    pub stencilStoreOp: AttachmentStoreOp, // Store operation for stencil data
5195    pub initialLayout: ImageLayout,
5196    pub finalLayout: ImageLayout,
5197}
5198
5199#[repr(C)]
5200#[derive(Copy, Clone)]
5201pub struct AttachmentReference {
5202    pub attachment: u32,
5203    pub layout: ImageLayout,
5204}
5205
5206#[repr(C)]
5207#[derive(Copy, Clone)]
5208pub struct SubpassDescription {
5209    pub flags: SubpassDescriptionFlags,
5210    pub pipelineBindPoint: PipelineBindPoint, // Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
5211    pub inputAttachmentCount: u32,
5212    pub pInputAttachments: *const AttachmentReference,
5213    pub colorAttachmentCount: u32,
5214    pub pColorAttachments: *const AttachmentReference,
5215    pub pResolveAttachments: *const AttachmentReference,
5216    pub pDepthStencilAttachment: *const AttachmentReference,
5217    pub preserveAttachmentCount: u32,
5218    pub pPreserveAttachments: *const u32,
5219}
5220
5221#[repr(C)]
5222#[derive(Copy, Clone)]
5223pub struct SubpassDependency {
5224    pub srcSubpass: u32,
5225    pub dstSubpass: u32,
5226    pub srcStageMask: PipelineStageFlags,
5227    pub dstStageMask: PipelineStageFlags,
5228    pub srcAccessMask: AccessFlags, // Memory accesses from the source of the dependency to synchronize
5229    pub dstAccessMask: AccessFlags, // Memory accesses from the destination of the dependency to synchronize
5230    pub dependencyFlags: DependencyFlags,
5231}
5232
5233#[repr(C)]
5234#[derive(Copy, Clone)]
5235pub struct RenderPassCreateInfo {
5236    pub sType: StructureType,
5237    pub pNext: *const c_void,
5238    pub flags: RenderPassCreateFlags,
5239    pub attachmentCount: u32,
5240    pub pAttachments: *const AttachmentDescription,
5241    pub subpassCount: u32,
5242    pub pSubpasses: *const SubpassDescription,
5243    pub dependencyCount: u32,
5244    pub pDependencies: *const SubpassDependency,
5245}
5246
5247#[repr(C)]
5248#[derive(Copy, Clone)]
5249pub struct EventCreateInfo {
5250    pub sType: StructureType,
5251    pub pNext: *const c_void,
5252    pub flags: EventCreateFlags, // Event creation flags
5253}
5254
5255#[repr(C)]
5256#[derive(Copy, Clone)]
5257pub struct FenceCreateInfo {
5258    pub sType: StructureType,
5259    pub pNext: *const c_void,
5260    pub flags: FenceCreateFlags, // Fence creation flags
5261}
5262
5263#[repr(C)]
5264#[derive(Copy, Clone)]
5265pub struct PhysicalDeviceFeatures {
5266    pub robustBufferAccess: Bool32, // out of bounds buffer accesses are well defined
5267    pub fullDrawIndexUint32: Bool32, // full 32-bit range of indices for indexed draw calls
5268    pub imageCubeArray: Bool32,     // image views which are arrays of cube maps
5269    pub independentBlend: Bool32,   // blending operations are controlled per-attachment
5270    pub geometryShader: Bool32,     // geometry stage
5271    pub tessellationShader: Bool32, // tessellation control and evaluation stage
5272    pub sampleRateShading: Bool32,  // per-sample shading and interpolation
5273    pub dualSrcBlend: Bool32,       // blend operations which take two sources
5274    pub logicOp: Bool32,            // logic operations
5275    pub multiDrawIndirect: Bool32,  // multi draw indirect
5276    pub drawIndirectFirstInstance: Bool32, // indirect drawing can use non-zero firstInstance
5277    pub depthClamp: Bool32,         // depth clamping
5278    pub depthBiasClamp: Bool32,     // depth bias clamping
5279    pub fillModeNonSolid: Bool32,   // point and wireframe fill modes
5280    pub depthBounds: Bool32,        // depth bounds test
5281    pub wideLines: Bool32,          // lines with width greater than 1
5282    pub largePoints: Bool32,        // points with size greater than 1
5283    pub alphaToOne: Bool32, // the fragment alpha component can be forced to maximum representable alpha value
5284    pub multiViewport: Bool32, // viewport arrays
5285    pub samplerAnisotropy: Bool32, // anisotropic sampler filtering
5286    pub textureCompressionETC2: Bool32, // ETC texture compression formats
5287    pub textureCompressionASTC_LDR: Bool32, // ASTC LDR texture compression formats
5288    pub textureCompressionBC: Bool32, // BC1-7 texture compressed formats
5289    pub occlusionQueryPrecise: Bool32, // precise occlusion queries returning actual sample counts
5290    pub pipelineStatisticsQuery: Bool32, // pipeline statistics query
5291    pub vertexPipelineStoresAndAtomics: Bool32, // stores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages
5292    pub fragmentStoresAndAtomics: Bool32, // stores and atomic ops on storage buffers and images are supported in the fragment stage
5293    pub shaderTessellationAndGeometryPointSize: Bool32, // tessellation and geometry stages can export point size
5294    pub shaderImageGatherExtended: Bool32, // image gather with run-time values and independent offsets
5295    pub shaderStorageImageExtendedFormats: Bool32, // the extended set of formats can be used for storage images
5296    pub shaderStorageImageMultisample: Bool32, // multisample images can be used for storage images
5297    pub shaderStorageImageReadWithoutFormat: Bool32, // read from storage image does not require format qualifier
5298    pub shaderStorageImageWriteWithoutFormat: Bool32, // write to storage image does not require format qualifier
5299    pub shaderUniformBufferArrayDynamicIndexing: Bool32, // arrays of uniform buffers can be accessed with dynamically uniform indices
5300    pub shaderSampledImageArrayDynamicIndexing: Bool32, // arrays of sampled images can be accessed with dynamically uniform indices
5301    pub shaderStorageBufferArrayDynamicIndexing: Bool32, // arrays of storage buffers can be accessed with dynamically uniform indices
5302    pub shaderStorageImageArrayDynamicIndexing: Bool32, // arrays of storage images can be accessed with dynamically uniform indices
5303    pub shaderClipDistance: Bool32,                     // clip distance in shaders
5304    pub shaderCullDistance: Bool32,                     // cull distance in shaders
5305    pub shaderFloat64: Bool32,                          // 64-bit floats (doubles) in shaders
5306    pub shaderInt64: Bool32,                            // 64-bit integers in shaders
5307    pub shaderInt16: Bool32,                            // 16-bit integers in shaders
5308    pub shaderResourceResidency: Bool32, // shader can use texture operations that return resource residency information (requires sparseNonResident support)
5309    pub shaderResourceMinLod: Bool32, // shader can use texture operations that specify minimum resource LOD
5310    pub sparseBinding: Bool32, // Sparse resources support: Resource memory can be managed at opaque page level rather than object level
5311    pub sparseResidencyBuffer: Bool32, // Sparse resources support: GPU can access partially resident buffers
5312    pub sparseResidencyImage2D: Bool32, // Sparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images
5313    pub sparseResidencyImage3D: Bool32, // Sparse resources support: GPU can access partially resident 3D images
5314    pub sparseResidency2Samples: Bool32, // Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
5315    pub sparseResidency4Samples: Bool32, // Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
5316    pub sparseResidency8Samples: Bool32, // Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
5317    pub sparseResidency16Samples: Bool32, // Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
5318    pub sparseResidencyAliased: Bool32, // Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
5319    pub variableMultisampleRate: Bool32, // multisample rate must be the same for all pipelines in a subpass
5320    pub inheritedQueries: Bool32, // Queries may be inherited from primary to secondary command buffers
5321}
5322
5323#[repr(C)]
5324#[derive(Copy, Clone)]
5325pub struct PhysicalDeviceSparseProperties {
5326    pub residencyStandard2DBlockShape: Bool32, // Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format)
5327    pub residencyStandard2DMultisampleBlockShape: Bool32, // Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format)
5328    pub residencyStandard3DBlockShape: Bool32, // Sparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format)
5329    pub residencyAlignedMipSize: Bool32, // Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail
5330    pub residencyNonResidentStrict: Bool32, // Sparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded
5331}
5332
5333#[repr(C)]
5334#[derive(Copy, Clone)]
5335pub struct PhysicalDeviceLimits {
5336    // resource maximum sizes
5337    pub maxImageDimension1D: u32,    // max 1D image dimension
5338    pub maxImageDimension2D: u32,    // max 2D image dimension
5339    pub maxImageDimension3D: u32,    // max 3D image dimension
5340    pub maxImageDimensionCube: u32,  // max cubemap image dimension
5341    pub maxImageArrayLayers: u32,    // max layers for image arrays
5342    pub maxTexelBufferElements: u32, // max texel buffer size (fstexels)
5343    pub maxUniformBufferRange: u32,  // max uniform buffer range (bytes)
5344    pub maxStorageBufferRange: u32,  // max storage buffer range (bytes)
5345    pub maxPushConstantsSize: u32,   // max size of the push constants pool (bytes)
5346    // memory limits
5347    pub maxMemoryAllocationCount: u32, // max number of device memory allocations supported
5348    pub maxSamplerAllocationCount: u32, // max number of samplers that can be allocated on a device
5349    pub bufferImageGranularity: DeviceSize, // Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
5350    pub sparseAddressSpaceSize: DeviceSize, // Total address space available for sparse allocations (bytes)
5351    // descriptor set limits
5352    pub maxBoundDescriptorSets: u32, // max number of descriptors sets that can be bound to a pipeline
5353    pub maxPerStageDescriptorSamplers: u32, // max number of samplers allowed per-stage in a descriptor set
5354    pub maxPerStageDescriptorUniformBuffers: u32, // max number of uniform buffers allowed per-stage in a descriptor set
5355    pub maxPerStageDescriptorStorageBuffers: u32, // max number of storage buffers allowed per-stage in a descriptor set
5356    pub maxPerStageDescriptorSampledImages: u32, // max number of sampled images allowed per-stage in a descriptor set
5357    pub maxPerStageDescriptorStorageImages: u32, // max number of storage images allowed per-stage in a descriptor set
5358    pub maxPerStageDescriptorInputAttachments: u32, // max number of input attachments allowed per-stage in a descriptor set
5359    pub maxPerStageResources: u32, // max number of resources allowed by a single stage
5360    pub maxDescriptorSetSamplers: u32, // max number of samplers allowed in all stages in a descriptor set
5361    pub maxDescriptorSetUniformBuffers: u32, // max number of uniform buffers allowed in all stages in a descriptor set
5362    pub maxDescriptorSetUniformBuffersDynamic: u32, // max number of dynamic uniform buffers allowed in all stages in a descriptor set
5363    pub maxDescriptorSetStorageBuffers: u32, // max number of storage buffers allowed in all stages in a descriptor set
5364    pub maxDescriptorSetStorageBuffersDynamic: u32, // max number of dynamic storage buffers allowed in all stages in a descriptor set
5365    pub maxDescriptorSetSampledImages: u32, // max number of sampled images allowed in all stages in a descriptor set
5366    pub maxDescriptorSetStorageImages: u32, // max number of storage images allowed in all stages in a descriptor set
5367    pub maxDescriptorSetInputAttachments: u32, // max number of input attachments allowed in all stages in a descriptor set
5368    // vertex stage limits
5369    pub maxVertexInputAttributes: u32, // max number of vertex input attribute slots
5370    pub maxVertexInputBindings: u32,   // max number of vertex input binding slots
5371    pub maxVertexInputAttributeOffset: u32, // max vertex input attribute offset added to vertex buffer offset
5372    pub maxVertexInputBindingStride: u32,   // max vertex input binding stride
5373    pub maxVertexOutputComponents: u32, // max number of output components written by vertex shader
5374    // tessellation control stage limits
5375    pub maxTessellationGenerationLevel: u32, // max level supported by tessellation primitive generator
5376    pub maxTessellationPatchSize: u32,       // max patch size (vertices)
5377    pub maxTessellationControlPerVertexInputComponents: u32, // max number of input components per-vertex in TCS
5378    pub maxTessellationControlPerVertexOutputComponents: u32, // max number of output components per-vertex in TCS
5379    pub maxTessellationControlPerPatchOutputComponents: u32, // max number of output components per-patch in TCS
5380    pub maxTessellationControlTotalOutputComponents: u32, // max total number of per-vertex and per-patch output components in TCS
5381    // tessellation evaluation stage limits
5382    pub maxTessellationEvaluationInputComponents: u32, // max number of input components per vertex in TES
5383    pub maxTessellationEvaluationOutputComponents: u32, // max number of output components per vertex in TES
5384    // geometry stage limits
5385    pub maxGeometryShaderInvocations: u32, // max invocation count supported in geometry shader
5386    pub maxGeometryInputComponents: u32,   // max number of input components read in geometry stage
5387    pub maxGeometryOutputComponents: u32, // max number of output components written in geometry stage
5388    pub maxGeometryOutputVertices: u32, // max number of vertices that can be emitted in geometry stage
5389    pub maxGeometryTotalOutputComponents: u32, // max total number of components (all vertices) written in geometry stage
5390    // fragment stage limits
5391    pub maxFragmentInputComponents: u32, // max number of input components read in fragment stage
5392    pub maxFragmentOutputAttachments: u32, // max number of output attachments written in fragment stage
5393    pub maxFragmentDualSrcAttachments: u32, // max number of output attachments written when using dual source blending
5394    pub maxFragmentCombinedOutputResources: u32, // max total number of storage buffers, storage images and output buffers
5395    // compute stage limits
5396    pub maxComputeSharedMemorySize: u32, // max total storage size of work group local storage (bytes)
5397    pub maxComputeWorkGroupCount: [u32; 3], // max num of compute work groups that may be dispatched by a single command (x,y,z)
5398    pub maxComputeWorkGroupInvocations: u32, // max total compute invocations in a single local work group
5399    pub maxComputeWorkGroupSize: [u32; 3],   // max local size of a compute work group (x,y,z)
5400    pub subPixelPrecisionBits: u32,          // number bits of subpixel precision in screen x and y
5401    pub subTexelPrecisionBits: u32,          // number bits of precision for selecting texel weights
5402    pub mipmapPrecisionBits: u32, // number bits of precision for selecting mipmap weights
5403    pub maxDrawIndexedIndexValue: u32, // max index value for indexed draw calls (for 32-bit indices)
5404    pub maxDrawIndirectCount: u32,     // max draw count for indirect drawing calls
5405    pub maxSamplerLodBias: f32,        // max absolute sampler LOD bias
5406    pub maxSamplerAnisotropy: f32,     // max degree of sampler anisotropy
5407    pub maxViewports: u32,             // max number of active viewports
5408    pub maxViewportDimensions: [u32; 2], // max viewport dimensions (x,y)
5409    pub viewportBoundsRange: [f32; 2], // viewport bounds range (min,max)
5410    pub viewportSubPixelBits: u32,     // number bits of subpixel precision for viewport
5411    pub minMemoryMapAlignment: usize, // min required alignment of pointers returned by MapMemory (bytes)
5412    pub minTexelBufferOffsetAlignment: DeviceSize, // min required alignment for texel buffer offsets (bytes)
5413    pub minUniformBufferOffsetAlignment: DeviceSize, // min required alignment for uniform buffer sizes and offsets (bytes)
5414    pub minStorageBufferOffsetAlignment: DeviceSize, // min required alignment for storage buffer offsets (bytes)
5415    pub minTexelOffset: i32,                         // min texel offset for OpTextureSampleOffset
5416    pub maxTexelOffset: u32,                         // max texel offset for OpTextureSampleOffset
5417    pub minTexelGatherOffset: i32,                   // min texel offset for OpTextureGatherOffset
5418    pub maxTexelGatherOffset: u32,                   // max texel offset for OpTextureGatherOffset
5419    pub minInterpolationOffset: f32, // furthest negative offset for interpolateAtOffset
5420    pub maxInterpolationOffset: f32, // furthest positive offset for interpolateAtOffset
5421    pub subPixelInterpolationOffsetBits: u32, // number of subpixel bits for interpolateAtOffset
5422    pub maxFramebufferWidth: u32,    // max width for a framebuffer
5423    pub maxFramebufferHeight: u32,   // max height for a framebuffer
5424    pub maxFramebufferLayers: u32,   // max layer count for a layered framebuffer
5425    pub framebufferColorSampleCounts: SampleCountFlags, // supported color sample counts for a framebuffer
5426    pub framebufferDepthSampleCounts: SampleCountFlags, // supported depth sample counts for a framebuffer
5427    pub framebufferStencilSampleCounts: SampleCountFlags, // supported stencil sample counts for a framebuffer
5428    pub framebufferNoAttachmentsSampleCounts: SampleCountFlags, // supported sample counts for a subpass which uses no attachments
5429    pub maxColorAttachments: u32, // max number of color attachments per subpass
5430    pub sampledImageColorSampleCounts: SampleCountFlags, // supported color sample counts for a non-integer sampled image
5431    pub sampledImageIntegerSampleCounts: SampleCountFlags, // supported sample counts for an integer image
5432    pub sampledImageDepthSampleCounts: SampleCountFlags, // supported depth sample counts for a sampled image
5433    pub sampledImageStencilSampleCounts: SampleCountFlags, // supported stencil sample counts for a sampled image
5434    pub storageImageSampleCounts: SampleCountFlags, // supported sample counts for a storage image
5435    pub maxSampleMaskWords: u32,                    // max number of sample mask words
5436    pub timestampComputeAndGraphics: Bool32,        // timestamps on graphics and compute queues
5437    pub timestampPeriod: f32, // number of nanoseconds it takes for timestamp query value to increment by 1
5438    pub maxClipDistances: u32, // max number of clip distances
5439    pub maxCullDistances: u32, // max number of cull distances
5440    pub maxCombinedClipAndCullDistances: u32, // max combined number of user clipping
5441    pub discreteQueuePriorities: u32, // distinct queue priorities available
5442    pub pointSizeRange: [f32; 2], // range (min,max) of supported point sizes
5443    pub lineWidthRange: [f32; 2], // range (min,max) of supported line widths
5444    pub pointSizeGranularity: f32, // granularity of supported point sizes
5445    pub lineWidthGranularity: f32, // granularity of supported line widths
5446    pub strictLines: Bool32,  // line rasterization follows preferred rules
5447    pub standardSampleLocations: Bool32, // supports standard sample locations for all supported sample counts
5448    pub optimalBufferCopyOffsetAlignment: DeviceSize, // optimal offset of buffer copies
5449    pub optimalBufferCopyRowPitchAlignment: DeviceSize, // optimal pitch of buffer copies
5450    pub nonCoherentAtomSize: DeviceSize, // minimum size and alignment for non-coherent host-mapped device memory access
5451}
5452
5453#[repr(C)]
5454#[derive(Copy, Clone)]
5455pub struct SemaphoreCreateInfo {
5456    pub sType: StructureType,
5457    pub pNext: *const c_void,
5458    pub flags: SemaphoreCreateFlags, // Semaphore creation flags
5459}
5460
5461#[repr(C)]
5462#[derive(Copy, Clone)]
5463pub struct QueryPoolCreateInfo {
5464    pub sType: StructureType,
5465    pub pNext: *const c_void,
5466    pub flags: QueryPoolCreateFlags,
5467    pub queryType: QueryType,
5468    pub queryCount: u32,
5469    pub pipelineStatistics: QueryPipelineStatisticFlags, // Optional
5470}
5471
5472#[repr(C)]
5473#[derive(Copy, Clone)]
5474pub struct FramebufferCreateInfo {
5475    pub sType: StructureType,
5476    pub pNext: *const c_void,
5477    pub flags: FramebufferCreateFlags,
5478    pub renderPass: RenderPass,
5479    pub attachmentCount: u32,
5480    pub pAttachments: *const ImageView,
5481    pub width: u32,
5482    pub height: u32,
5483    pub layers: u32,
5484}
5485
5486#[repr(C)]
5487#[derive(Copy, Clone)]
5488pub struct DrawIndirectCommand {
5489    pub vertexCount: u32,
5490    pub instanceCount: u32,
5491    pub firstVertex: u32,
5492    pub firstInstance: u32,
5493}
5494
5495#[repr(C)]
5496#[derive(Copy, Clone)]
5497pub struct DrawIndexedIndirectCommand {
5498    pub indexCount: u32,
5499    pub instanceCount: u32,
5500    pub firstIndex: u32,
5501    pub vertexOffset: i32,
5502    pub firstInstance: u32,
5503}
5504
5505#[repr(C)]
5506#[derive(Copy, Clone)]
5507pub struct DispatchIndirectCommand {
5508    pub x: u32,
5509    pub y: u32,
5510    pub z: u32,
5511}
5512
5513#[repr(C)]
5514#[derive(Copy, Clone)]
5515pub struct MultiDrawInfoEXT {
5516    pub firstVertex: u32,
5517    pub vertexCount: u32,
5518}
5519
5520#[repr(C)]
5521#[derive(Copy, Clone)]
5522pub struct MultiDrawIndexedInfoEXT {
5523    pub firstIndex: u32,
5524    pub indexCount: u32,
5525    pub vertexOffset: i32,
5526}
5527
5528#[repr(C)]
5529#[derive(Copy, Clone)]
5530pub struct SubmitInfo {
5531    pub sType: StructureType,
5532    pub pNext: *const c_void,
5533    pub waitSemaphoreCount: u32,
5534    pub pWaitSemaphores: *const Semaphore,
5535    pub pWaitDstStageMask: *const PipelineStageFlags,
5536    pub commandBufferCount: u32,
5537    pub pCommandBuffers: *const CommandBuffer,
5538    pub signalSemaphoreCount: u32,
5539    pub pSignalSemaphores: *const Semaphore,
5540}
5541
5542#[repr(C)]
5543#[derive(Copy, Clone)]
5544pub struct DisplayPropertiesKHR {
5545    pub display: DisplayKHR,          // Handle of the display object
5546    pub displayName: *const c_char,   // Name of the display
5547    pub physicalDimensions: Extent2D, // In millimeters?
5548    pub physicalResolution: Extent2D, // Max resolution for CRT?
5549    pub supportedTransforms: SurfaceTransformFlagsKHR, // one or more bits from VkSurfaceTransformFlagsKHR
5550    pub planeReorderPossible: Bool32, // VK_TRUE if the overlay plane's z-order can be changed on this display.
5551    pub persistentContent: Bool32, // VK_TRUE if this is a "smart" display that supports self-refresh/internal buffering.
5552}
5553
5554#[repr(C)]
5555#[derive(Copy, Clone)]
5556pub struct DisplayPlanePropertiesKHR {
5557    pub currentDisplay: DisplayKHR, // Display the plane is currently associated with.  Will be VK_NULL_HANDLE if the plane is not in use.
5558    pub currentStackIndex: u32,     // Current z-order of the plane.
5559}
5560
5561#[repr(C)]
5562#[derive(Copy, Clone)]
5563pub struct DisplayModeParametersKHR {
5564    pub visibleRegion: Extent2D, // Visible scanout region.
5565    pub refreshRate: u32,        // Number of times per second the display is updated.
5566}
5567
5568#[repr(C)]
5569#[derive(Copy, Clone)]
5570pub struct DisplayModePropertiesKHR {
5571    pub displayMode: DisplayModeKHR, // Handle of this display mode.
5572    pub parameters: DisplayModeParametersKHR, // The parameters this mode uses.
5573}
5574
5575#[repr(C)]
5576#[derive(Copy, Clone)]
5577pub struct DisplayModeCreateInfoKHR {
5578    pub sType: StructureType,
5579    pub pNext: *const c_void,
5580    pub flags: DisplayModeCreateFlagsKHR,
5581    pub parameters: DisplayModeParametersKHR, // The parameters this mode uses.
5582}
5583
5584#[repr(C)]
5585#[derive(Copy, Clone)]
5586pub struct DisplayPlaneCapabilitiesKHR {
5587    pub supportedAlpha: DisplayPlaneAlphaFlagsKHR, // Types of alpha blending supported, if any.
5588    pub minSrcPosition: Offset2D, // Does the plane have any position and extent restrictions?
5589    pub maxSrcPosition: Offset2D,
5590    pub minSrcExtent: Extent2D,
5591    pub maxSrcExtent: Extent2D,
5592    pub minDstPosition: Offset2D,
5593    pub maxDstPosition: Offset2D,
5594    pub minDstExtent: Extent2D,
5595    pub maxDstExtent: Extent2D,
5596}
5597
5598#[repr(C)]
5599#[derive(Copy, Clone)]
5600pub struct DisplaySurfaceCreateInfoKHR {
5601    pub sType: StructureType,
5602    pub pNext: *const c_void,
5603    pub flags: DisplaySurfaceCreateFlagsKHR,
5604    pub displayMode: DisplayModeKHR, // The mode to use when displaying this surface
5605    pub planeIndex: u32, // The plane on which this surface appears.  Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount.
5606    pub planeStackIndex: u32, // The z-order of the plane.
5607    pub transform: SurfaceTransformFlagBitsKHR, // Transform to apply to the images as part of the scanout operation
5608    pub globalAlpha: f32, // Global alpha value.  Must be between 0 and 1, inclusive.  Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR
5609    pub alphaMode: DisplayPlaneAlphaFlagBitsKHR, // What type of alpha blending to use.  Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha.
5610    pub imageExtent: Extent2D,                   // size of the images to use with this surface
5611}
5612
5613#[repr(C)]
5614#[derive(Copy, Clone)]
5615pub struct DisplayPresentInfoKHR {
5616    pub sType: StructureType,
5617    pub pNext: *const c_void,
5618    pub srcRect: Rect2D, // Rectangle within the presentable image to read pixel data from when presenting to the display.
5619    pub dstRect: Rect2D, // Rectangle within the current display mode's visible region to display srcRectangle in.
5620    pub persistent: Bool32, // For smart displays, use buffered mode.  If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE.
5621}
5622
5623#[repr(C)]
5624#[derive(Copy, Clone)]
5625pub struct SurfaceCapabilitiesKHR {
5626    pub minImageCount: u32, // Supported minimum number of images for the surface
5627    pub maxImageCount: u32, // Supported maximum number of images for the surface, 0 for unlimited
5628    pub currentExtent: Extent2D, // Current image width and height for the surface, (0, 0) if undefined
5629    pub minImageExtent: Extent2D, // Supported minimum image width and height for the surface
5630    pub maxImageExtent: Extent2D, // Supported maximum image width and height for the surface
5631    pub maxImageArrayLayers: u32, // Supported maximum number of image layers for the surface
5632    pub supportedTransforms: SurfaceTransformFlagsKHR, // 1 or more bits representing the transforms supported
5633    pub currentTransform: SurfaceTransformFlagBitsKHR, // The surface's current transform relative to the device's natural orientation
5634    pub supportedCompositeAlpha: CompositeAlphaFlagsKHR, // 1 or more bits representing the alpha compositing modes supported
5635    pub supportedUsageFlags: ImageUsageFlags, // Supported image usage flags for the surface
5636}
5637
5638#[repr(C)]
5639#[derive(Copy, Clone)]
5640pub struct SurfaceFormatKHR {
5641    pub format: Format,            // Supported pair of rendering format
5642    pub colorSpace: ColorSpaceKHR, // and color space for the surface
5643}
5644
5645#[repr(C)]
5646#[derive(Copy, Clone)]
5647pub struct SwapchainCreateInfoKHR {
5648    pub sType: StructureType,
5649    pub pNext: *const c_void,
5650    pub flags: SwapchainCreateFlagsKHR,
5651    pub surface: SurfaceKHR,             // The swapchain's target surface
5652    pub minImageCount: u32, // Minimum number of presentation images the application needs
5653    pub imageFormat: Format, // Format of the presentation images
5654    pub imageColorSpace: ColorSpaceKHR, // Colorspace of the presentation images
5655    pub imageExtent: Extent2D, // Dimensions of the presentation images
5656    pub imageArrayLayers: u32, // Determines the number of views for multiview/stereo presentation
5657    pub imageUsage: ImageUsageFlags, // Bits indicating how the presentation images will be used
5658    pub imageSharingMode: SharingMode, // Sharing mode used for the presentation images
5659    pub queueFamilyIndexCount: u32, // Number of queue families having access to the images in case of concurrent sharing mode
5660    pub pQueueFamilyIndices: *const u32, // Array of queue family indices having access to the images in case of concurrent sharing mode
5661    pub preTransform: SurfaceTransformFlagBitsKHR, // The transform, relative to the device's natural orientation, applied to the image content prior to presentation
5662    pub compositeAlpha: CompositeAlphaFlagBitsKHR, // The alpha blending mode used when compositing this surface with other surfaces in the window system
5663    pub presentMode: PresentModeKHR, // Which presentation mode to use for presents on this swap chain
5664    pub clipped: Bool32, // Specifies whether presentable images may be affected by window clip regions
5665    pub oldSwapchain: SwapchainKHR, // Existing swap chain to replace, if any
5666}
5667
5668#[repr(C)]
5669#[derive(Copy, Clone)]
5670pub struct PresentInfoKHR {
5671    pub sType: StructureType,
5672    pub pNext: *const c_void,
5673    pub waitSemaphoreCount: u32, // Number of semaphores to wait for before presenting
5674    pub pWaitSemaphores: *const Semaphore, // Semaphores to wait for before presenting
5675    pub swapchainCount: u32,     // Number of swapchains to present in this call
5676    pub pSwapchains: *const SwapchainKHR, // Swapchains to present an image from
5677    pub pImageIndices: *const u32, // Indices of which presentable images to present
5678    pub pResults: *mut Result,   // Optional (i.e. if non-NULL) VkResult for each swapchain
5679}
5680
5681#[repr(C)]
5682#[derive(Copy, Clone)]
5683pub struct DebugReportCallbackCreateInfoEXT {
5684    pub sType: StructureType,
5685    pub pNext: *const c_void,
5686    pub flags: DebugReportFlagsEXT, // Indicates which events call this callback
5687    pub pfnCallback: FnDebugReportCallbackEXT, // Function pointer of a callback function
5688    pub pUserData: *mut c_void,     // User data provided to callback function
5689}
5690
5691#[repr(C)]
5692#[derive(Copy, Clone)]
5693pub struct ValidationFlagsEXT {
5694    pub sType: StructureType, // Must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT
5695    pub pNext: *const c_void,
5696    pub disabledValidationCheckCount: u32, // Number of validation checks to disable
5697    pub pDisabledValidationChecks: *const ValidationCheckEXT, // Validation checks to disable
5698}
5699
5700#[repr(C)]
5701#[derive(Copy, Clone)]
5702pub struct ValidationFeaturesEXT {
5703    pub sType: StructureType, // Must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT
5704    pub pNext: *const c_void,
5705    pub enabledValidationFeatureCount: u32, // Number of validation features to enable
5706    pub pEnabledValidationFeatures: *const ValidationFeatureEnableEXT, // Validation features to enable
5707    pub disabledValidationFeatureCount: u32, // Number of validation features to disable
5708    pub pDisabledValidationFeatures: *const ValidationFeatureDisableEXT, // Validation features to disable
5709}
5710
5711#[repr(C)]
5712#[derive(Copy, Clone)]
5713pub struct PipelineRasterizationStateRasterizationOrderAMD {
5714    pub sType: StructureType,
5715    pub pNext: *const c_void,
5716    pub rasterizationOrder: RasterizationOrderAMD, // Rasterization order to use for the pipeline
5717}
5718
5719#[repr(C)]
5720#[derive(Copy, Clone)]
5721pub struct DebugMarkerObjectNameInfoEXT {
5722    pub sType: StructureType,
5723    pub pNext: *const c_void,
5724    pub objectType: DebugReportObjectTypeEXT, // The type of the object
5725    pub object: u64,                          // The handle of the object, cast to uint64_t
5726    pub pObjectName: *const c_char,           // Name to apply to the object
5727}
5728
5729#[repr(C)]
5730#[derive(Copy, Clone)]
5731pub struct DebugMarkerObjectTagInfoEXT {
5732    pub sType: StructureType,
5733    pub pNext: *const c_void,
5734    pub objectType: DebugReportObjectTypeEXT, // The type of the object
5735    pub object: u64,                          // The handle of the object, cast to uint64_t
5736    pub tagName: u64,                         // The name of the tag to set on the object
5737    pub tagSize: usize,                       // The length in bytes of the tag data
5738    pub pTag: *const c_void,                  // Tag data to attach to the object
5739}
5740
5741#[repr(C)]
5742#[derive(Copy, Clone)]
5743pub struct DebugMarkerMarkerInfoEXT {
5744    pub sType: StructureType,
5745    pub pNext: *const c_void,
5746    pub pMarkerName: *const c_char, // Name of the debug marker
5747    pub color: [f32; 4],            // Optional color for debug marker
5748}
5749
5750#[repr(C)]
5751#[derive(Copy, Clone)]
5752pub struct DedicatedAllocationImageCreateInfoNV {
5753    pub sType: StructureType,
5754    pub pNext: *const c_void,
5755    pub dedicatedAllocation: Bool32, // Whether this image uses a dedicated allocation
5756}
5757
5758#[repr(C)]
5759#[derive(Copy, Clone)]
5760pub struct DedicatedAllocationBufferCreateInfoNV {
5761    pub sType: StructureType,
5762    pub pNext: *const c_void,
5763    pub dedicatedAllocation: Bool32, // Whether this buffer uses a dedicated allocation
5764}
5765
5766#[repr(C)]
5767#[derive(Copy, Clone)]
5768pub struct DedicatedAllocationMemoryAllocateInfoNV {
5769    pub sType: StructureType,
5770    pub pNext: *const c_void,
5771    pub image: Image,   // Image that this allocation will be bound to
5772    pub buffer: Buffer, // Buffer that this allocation will be bound to
5773}
5774
5775#[repr(C)]
5776#[derive(Copy, Clone)]
5777pub struct ExternalImageFormatPropertiesNV {
5778    pub imageFormatProperties: ImageFormatProperties,
5779    pub externalMemoryFeatures: ExternalMemoryFeatureFlagsNV,
5780    pub exportFromImportedHandleTypes: ExternalMemoryHandleTypeFlagsNV,
5781    pub compatibleHandleTypes: ExternalMemoryHandleTypeFlagsNV,
5782}
5783
5784#[repr(C)]
5785#[derive(Copy, Clone)]
5786pub struct ExternalMemoryImageCreateInfoNV {
5787    pub sType: StructureType,
5788    pub pNext: *const c_void,
5789    pub handleTypes: ExternalMemoryHandleTypeFlagsNV,
5790}
5791
5792#[repr(C)]
5793#[derive(Copy, Clone)]
5794pub struct ExportMemoryAllocateInfoNV {
5795    pub sType: StructureType,
5796    pub pNext: *const c_void,
5797    pub handleTypes: ExternalMemoryHandleTypeFlagsNV,
5798}
5799
5800#[repr(C)]
5801#[derive(Copy, Clone)]
5802pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
5803    pub sType: StructureType,
5804    pub pNext: *mut c_void,
5805    pub deviceGeneratedCommands: Bool32,
5806}
5807
5808#[repr(C)]
5809#[derive(Copy, Clone)]
5810pub struct DevicePrivateDataCreateInfo {
5811    pub sType: StructureType,
5812    pub pNext: *const c_void,
5813    pub privateDataSlotRequestCount: u32,
5814}
5815
5816pub type DevicePrivateDataCreateInfoEXT = DevicePrivateDataCreateInfo;
5817
5818#[repr(C)]
5819#[derive(Copy, Clone)]
5820pub struct PrivateDataSlotCreateInfo {
5821    pub sType: StructureType,
5822    pub pNext: *const c_void,
5823    pub flags: PrivateDataSlotCreateFlags,
5824}
5825
5826pub type PrivateDataSlotCreateInfoEXT = PrivateDataSlotCreateInfo;
5827
5828#[repr(C)]
5829#[derive(Copy, Clone)]
5830pub struct PhysicalDevicePrivateDataFeatures {
5831    pub sType: StructureType,
5832    pub pNext: *mut c_void,
5833    pub privateData: Bool32,
5834}
5835
5836pub type PhysicalDevicePrivateDataFeaturesEXT = PhysicalDevicePrivateDataFeatures;
5837
5838#[repr(C)]
5839#[derive(Copy, Clone)]
5840pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
5841    pub sType: StructureType,
5842    pub pNext: *mut c_void,
5843    pub maxGraphicsShaderGroupCount: u32,
5844    pub maxIndirectSequenceCount: u32,
5845    pub maxIndirectCommandsTokenCount: u32,
5846    pub maxIndirectCommandsStreamCount: u32,
5847    pub maxIndirectCommandsTokenOffset: u32,
5848    pub maxIndirectCommandsStreamStride: u32,
5849    pub minSequencesCountBufferOffsetAlignment: u32,
5850    pub minSequencesIndexBufferOffsetAlignment: u32,
5851    pub minIndirectCommandsBufferOffsetAlignment: u32,
5852}
5853
5854#[repr(C)]
5855#[derive(Copy, Clone)]
5856pub struct PhysicalDeviceMultiDrawPropertiesEXT {
5857    pub sType: StructureType,
5858    pub pNext: *mut c_void,
5859    pub maxMultiDrawCount: u32,
5860}
5861
5862#[repr(C)]
5863#[derive(Copy, Clone)]
5864pub struct GraphicsShaderGroupCreateInfoNV {
5865    pub sType: StructureType,
5866    pub pNext: *const c_void,
5867    pub stageCount: u32,
5868    pub pStages: *const PipelineShaderStageCreateInfo,
5869    pub pVertexInputState: *const PipelineVertexInputStateCreateInfo,
5870    pub pTessellationState: *const PipelineTessellationStateCreateInfo,
5871}
5872
5873#[repr(C)]
5874#[derive(Copy, Clone)]
5875pub struct GraphicsPipelineShaderGroupsCreateInfoNV {
5876    pub sType: StructureType,
5877    pub pNext: *const c_void,
5878    pub groupCount: u32,
5879    pub pGroups: *const GraphicsShaderGroupCreateInfoNV,
5880    pub pipelineCount: u32,
5881    pub pPipelines: *const Pipeline,
5882}
5883
5884#[repr(C)]
5885#[derive(Copy, Clone)]
5886pub struct BindShaderGroupIndirectCommandNV {
5887    pub groupIndex: u32,
5888}
5889
5890#[repr(C)]
5891#[derive(Copy, Clone)]
5892pub struct BindIndexBufferIndirectCommandNV {
5893    pub bufferAddress: DeviceAddress,
5894    pub size: u32,
5895    pub indexType: IndexType,
5896}
5897
5898#[repr(C)]
5899#[derive(Copy, Clone)]
5900pub struct BindVertexBufferIndirectCommandNV {
5901    pub bufferAddress: DeviceAddress,
5902    pub size: u32,
5903    pub stride: u32,
5904}
5905
5906#[repr(C)]
5907#[derive(Copy, Clone)]
5908pub struct SetStateFlagsIndirectCommandNV {
5909    pub data: u32,
5910}
5911
5912#[repr(C)]
5913#[derive(Copy, Clone)]
5914pub struct IndirectCommandsStreamNV {
5915    pub buffer: Buffer,
5916    pub offset: DeviceSize,
5917}
5918
5919#[repr(C)]
5920#[derive(Copy, Clone)]
5921pub struct IndirectCommandsLayoutTokenNV {
5922    pub sType: StructureType,
5923    pub pNext: *const c_void,
5924    pub tokenType: IndirectCommandsTokenTypeNV,
5925    pub stream: u32,
5926    pub offset: u32,
5927    pub vertexBindingUnit: u32,
5928    pub vertexDynamicStride: Bool32,
5929    pub pushconstantPipelineLayout: PipelineLayout,
5930    pub pushconstantShaderStageFlags: ShaderStageFlags,
5931    pub pushconstantOffset: u32,
5932    pub pushconstantSize: u32,
5933    pub indirectStateFlags: IndirectStateFlagsNV,
5934    pub indexTypeCount: u32,
5935    pub pIndexTypes: *const IndexType,
5936    pub pIndexTypeValues: *const u32,
5937}
5938
5939#[repr(C)]
5940#[derive(Copy, Clone)]
5941pub struct IndirectCommandsLayoutCreateInfoNV {
5942    pub sType: StructureType,
5943    pub pNext: *const c_void,
5944    pub flags: IndirectCommandsLayoutUsageFlagsNV,
5945    pub pipelineBindPoint: PipelineBindPoint,
5946    pub tokenCount: u32,
5947    pub pTokens: *const IndirectCommandsLayoutTokenNV,
5948    pub streamCount: u32,
5949    pub pStreamStrides: *const u32,
5950}
5951
5952#[repr(C)]
5953#[derive(Copy, Clone)]
5954pub struct GeneratedCommandsInfoNV {
5955    pub sType: StructureType,
5956    pub pNext: *const c_void,
5957    pub pipelineBindPoint: PipelineBindPoint,
5958    pub pipeline: Pipeline,
5959    pub indirectCommandsLayout: IndirectCommandsLayoutNV,
5960    pub streamCount: u32,
5961    pub pStreams: *const IndirectCommandsStreamNV,
5962    pub sequencesCount: u32,
5963    pub preprocessBuffer: Buffer,
5964    pub preprocessOffset: DeviceSize,
5965    pub preprocessSize: DeviceSize,
5966    pub sequencesCountBuffer: Buffer,
5967    pub sequencesCountOffset: DeviceSize,
5968    pub sequencesIndexBuffer: Buffer,
5969    pub sequencesIndexOffset: DeviceSize,
5970}
5971
5972#[repr(C)]
5973#[derive(Copy, Clone)]
5974pub struct GeneratedCommandsMemoryRequirementsInfoNV {
5975    pub sType: StructureType,
5976    pub pNext: *const c_void,
5977    pub pipelineBindPoint: PipelineBindPoint,
5978    pub pipeline: Pipeline,
5979    pub indirectCommandsLayout: IndirectCommandsLayoutNV,
5980    pub maxSequencesCount: u32,
5981}
5982
5983#[repr(C)]
5984#[derive(Copy, Clone)]
5985pub struct PhysicalDeviceFeatures2 {
5986    pub sType: StructureType,
5987    pub pNext: *mut c_void,
5988    pub features: PhysicalDeviceFeatures,
5989}
5990
5991pub type PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2;
5992
5993#[repr(C)]
5994#[derive(Copy, Clone)]
5995pub struct PhysicalDeviceProperties2 {
5996    pub sType: StructureType,
5997    pub pNext: *mut c_void,
5998    pub properties: PhysicalDeviceProperties,
5999}
6000
6001pub type PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2;
6002
6003#[repr(C)]
6004#[derive(Copy, Clone)]
6005pub struct FormatProperties2 {
6006    pub sType: StructureType,
6007    pub pNext: *mut c_void,
6008    pub formatProperties: FormatProperties,
6009}
6010
6011pub type FormatProperties2KHR = FormatProperties2;
6012
6013#[repr(C)]
6014#[derive(Copy, Clone)]
6015pub struct ImageFormatProperties2 {
6016    pub sType: StructureType,
6017    pub pNext: *mut c_void,
6018    pub imageFormatProperties: ImageFormatProperties,
6019}
6020
6021pub type ImageFormatProperties2KHR = ImageFormatProperties2;
6022
6023#[repr(C)]
6024#[derive(Copy, Clone)]
6025pub struct PhysicalDeviceImageFormatInfo2 {
6026    pub sType: StructureType,
6027    pub pNext: *const c_void,
6028    pub format: Format,
6029    pub typ: ImageType,
6030    pub tiling: ImageTiling,
6031    pub usage: ImageUsageFlags,
6032    pub flags: ImageCreateFlags,
6033}
6034
6035pub type PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2;
6036
6037#[repr(C)]
6038#[derive(Copy, Clone)]
6039pub struct QueueFamilyProperties2 {
6040    pub sType: StructureType,
6041    pub pNext: *mut c_void,
6042    pub queueFamilyProperties: QueueFamilyProperties,
6043}
6044
6045pub type QueueFamilyProperties2KHR = QueueFamilyProperties2;
6046
6047#[repr(C)]
6048#[derive(Copy, Clone)]
6049pub struct PhysicalDeviceMemoryProperties2 {
6050    pub sType: StructureType,
6051    pub pNext: *mut c_void,
6052    pub memoryProperties: PhysicalDeviceMemoryProperties,
6053}
6054
6055pub type PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2;
6056
6057#[repr(C)]
6058#[derive(Copy, Clone)]
6059pub struct SparseImageFormatProperties2 {
6060    pub sType: StructureType,
6061    pub pNext: *mut c_void,
6062    pub properties: SparseImageFormatProperties,
6063}
6064
6065pub type SparseImageFormatProperties2KHR = SparseImageFormatProperties2;
6066
6067#[repr(C)]
6068#[derive(Copy, Clone)]
6069pub struct PhysicalDeviceSparseImageFormatInfo2 {
6070    pub sType: StructureType,
6071    pub pNext: *const c_void,
6072    pub format: Format,
6073    pub typ: ImageType,
6074    pub samples: SampleCountFlagBits,
6075    pub usage: ImageUsageFlags,
6076    pub tiling: ImageTiling,
6077}
6078
6079pub type PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2;
6080
6081#[repr(C)]
6082#[derive(Copy, Clone)]
6083pub struct PhysicalDevicePushDescriptorPropertiesKHR {
6084    pub sType: StructureType,
6085    pub pNext: *mut c_void,
6086    pub maxPushDescriptors: u32,
6087}
6088
6089#[repr(C)]
6090#[derive(Copy, Clone)]
6091pub struct ConformanceVersion {
6092    pub major: u8,
6093    pub minor: u8,
6094    pub subminor: u8,
6095    pub patch: u8,
6096}
6097
6098pub type ConformanceVersionKHR = ConformanceVersion;
6099
6100#[repr(C)]
6101#[derive(Copy, Clone)]
6102pub struct PhysicalDeviceDriverProperties {
6103    pub sType: StructureType,
6104    pub pNext: *mut c_void,
6105    pub driverID: DriverId,
6106    pub driverName: [c_char; MAX_DRIVER_NAME_SIZE as usize],
6107    pub driverInfo: [c_char; MAX_DRIVER_INFO_SIZE as usize],
6108    pub conformanceVersion: ConformanceVersion,
6109}
6110
6111pub type PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties;
6112
6113#[repr(C)]
6114#[derive(Copy, Clone)]
6115pub struct PresentRegionsKHR {
6116    pub sType: StructureType,
6117    pub pNext: *const c_void,
6118    pub swapchainCount: u32, // Copy of VkPresentInfoKHR::swapchainCount
6119    pub pRegions: *const PresentRegionKHR, // The regions that have changed
6120}
6121
6122#[repr(C)]
6123#[derive(Copy, Clone)]
6124pub struct PresentRegionKHR {
6125    pub rectangleCount: u32,              // Number of rectangles in pRectangles
6126    pub pRectangles: *const RectLayerKHR, // Array of rectangles that have changed in a swapchain's image(s)
6127}
6128
6129#[repr(C)]
6130#[derive(Copy, Clone)]
6131pub struct RectLayerKHR {
6132    pub offset: Offset2D, // upper-left corner of a rectangle that has not changed, in pixels of a presentation images
6133    pub extent: Extent2D, // Dimensions of a rectangle that has not changed, in pixels of a presentation images
6134    pub layer: u32,       // Layer of a swapchain's image(s), for stereoscopic-3D images
6135}
6136
6137#[repr(C)]
6138#[derive(Copy, Clone)]
6139pub struct PhysicalDeviceVariablePointersFeatures {
6140    pub sType: StructureType,
6141    pub pNext: *mut c_void,
6142    pub variablePointersStorageBuffer: Bool32,
6143    pub variablePointers: Bool32,
6144}
6145
6146pub type PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
6147
6148pub type PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures;
6149
6150pub type PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures;
6151
6152#[repr(C)]
6153#[derive(Copy, Clone)]
6154pub struct ExternalMemoryProperties {
6155    pub externalMemoryFeatures: ExternalMemoryFeatureFlags,
6156    pub exportFromImportedHandleTypes: ExternalMemoryHandleTypeFlags,
6157    pub compatibleHandleTypes: ExternalMemoryHandleTypeFlags,
6158}
6159
6160pub type ExternalMemoryPropertiesKHR = ExternalMemoryProperties;
6161
6162#[repr(C)]
6163#[derive(Copy, Clone)]
6164pub struct PhysicalDeviceExternalImageFormatInfo {
6165    pub sType: StructureType,
6166    pub pNext: *const c_void,
6167    pub handleType: ExternalMemoryHandleTypeFlagBits,
6168}
6169
6170pub type PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo;
6171
6172#[repr(C)]
6173#[derive(Copy, Clone)]
6174pub struct ExternalImageFormatProperties {
6175    pub sType: StructureType,
6176    pub pNext: *mut c_void,
6177    pub externalMemoryProperties: ExternalMemoryProperties,
6178}
6179
6180pub type ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties;
6181
6182#[repr(C)]
6183#[derive(Copy, Clone)]
6184pub struct PhysicalDeviceExternalBufferInfo {
6185    pub sType: StructureType,
6186    pub pNext: *const c_void,
6187    pub flags: BufferCreateFlags,
6188    pub usage: BufferUsageFlags,
6189    pub handleType: ExternalMemoryHandleTypeFlagBits,
6190}
6191
6192pub type PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo;
6193
6194#[repr(C)]
6195#[derive(Copy, Clone)]
6196pub struct ExternalBufferProperties {
6197    pub sType: StructureType,
6198    pub pNext: *mut c_void,
6199    pub externalMemoryProperties: ExternalMemoryProperties,
6200}
6201
6202pub type ExternalBufferPropertiesKHR = ExternalBufferProperties;
6203
6204#[repr(C)]
6205#[derive(Copy, Clone)]
6206pub struct PhysicalDeviceIDProperties {
6207    pub sType: StructureType,
6208    pub pNext: *mut c_void,
6209    pub deviceUUID: [u8; UUID_SIZE as usize],
6210    pub driverUUID: [u8; UUID_SIZE as usize],
6211    pub deviceLUID: [u8; LUID_SIZE as usize],
6212    pub deviceNodeMask: u32,
6213    pub deviceLUIDValid: Bool32,
6214}
6215
6216pub type PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties;
6217
6218#[repr(C)]
6219#[derive(Copy, Clone)]
6220pub struct ExternalMemoryImageCreateInfo {
6221    pub sType: StructureType,
6222    pub pNext: *const c_void,
6223    pub handleTypes: ExternalMemoryHandleTypeFlags,
6224}
6225
6226pub type ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo;
6227
6228#[repr(C)]
6229#[derive(Copy, Clone)]
6230pub struct ExternalMemoryBufferCreateInfo {
6231    pub sType: StructureType,
6232    pub pNext: *const c_void,
6233    pub handleTypes: ExternalMemoryHandleTypeFlags,
6234}
6235
6236pub type ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo;
6237
6238#[repr(C)]
6239#[derive(Copy, Clone)]
6240pub struct ExportMemoryAllocateInfo {
6241    pub sType: StructureType,
6242    pub pNext: *const c_void,
6243    pub handleTypes: ExternalMemoryHandleTypeFlags,
6244}
6245
6246pub type ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo;
6247
6248#[repr(C)]
6249#[derive(Copy, Clone)]
6250pub struct ImportMemoryFdInfoKHR {
6251    pub sType: StructureType,
6252    pub pNext: *const c_void,
6253    pub handleType: ExternalMemoryHandleTypeFlagBits,
6254    pub fd: c_int,
6255}
6256
6257#[repr(C)]
6258#[derive(Copy, Clone)]
6259pub struct MemoryFdPropertiesKHR {
6260    pub sType: StructureType,
6261    pub pNext: *mut c_void,
6262    pub memoryTypeBits: u32,
6263}
6264
6265#[repr(C)]
6266#[derive(Copy, Clone)]
6267pub struct MemoryGetFdInfoKHR {
6268    pub sType: StructureType,
6269    pub pNext: *const c_void,
6270    pub memory: DeviceMemory,
6271    pub handleType: ExternalMemoryHandleTypeFlagBits,
6272}
6273
6274#[repr(C)]
6275#[derive(Copy, Clone)]
6276pub struct PhysicalDeviceExternalSemaphoreInfo {
6277    pub sType: StructureType,
6278    pub pNext: *const c_void,
6279    pub handleType: ExternalSemaphoreHandleTypeFlagBits,
6280}
6281
6282pub type PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo;
6283
6284#[repr(C)]
6285#[derive(Copy, Clone)]
6286pub struct ExternalSemaphoreProperties {
6287    pub sType: StructureType,
6288    pub pNext: *mut c_void,
6289    pub exportFromImportedHandleTypes: ExternalSemaphoreHandleTypeFlags,
6290    pub compatibleHandleTypes: ExternalSemaphoreHandleTypeFlags,
6291    pub externalSemaphoreFeatures: ExternalSemaphoreFeatureFlags,
6292}
6293
6294pub type ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties;
6295
6296#[repr(C)]
6297#[derive(Copy, Clone)]
6298pub struct ExportSemaphoreCreateInfo {
6299    pub sType: StructureType,
6300    pub pNext: *const c_void,
6301    pub handleTypes: ExternalSemaphoreHandleTypeFlags,
6302}
6303
6304pub type ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo;
6305
6306#[repr(C)]
6307#[derive(Copy, Clone)]
6308pub struct ImportSemaphoreFdInfoKHR {
6309    pub sType: StructureType,
6310    pub pNext: *const c_void,
6311    pub semaphore: Semaphore,
6312    pub flags: SemaphoreImportFlags,
6313    pub handleType: ExternalSemaphoreHandleTypeFlagBits,
6314    pub fd: c_int,
6315}
6316
6317#[repr(C)]
6318#[derive(Copy, Clone)]
6319pub struct SemaphoreGetFdInfoKHR {
6320    pub sType: StructureType,
6321    pub pNext: *const c_void,
6322    pub semaphore: Semaphore,
6323    pub handleType: ExternalSemaphoreHandleTypeFlagBits,
6324}
6325
6326#[repr(C)]
6327#[derive(Copy, Clone)]
6328pub struct PhysicalDeviceExternalFenceInfo {
6329    pub sType: StructureType,
6330    pub pNext: *const c_void,
6331    pub handleType: ExternalFenceHandleTypeFlagBits,
6332}
6333
6334pub type PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo;
6335
6336#[repr(C)]
6337#[derive(Copy, Clone)]
6338pub struct ExternalFenceProperties {
6339    pub sType: StructureType,
6340    pub pNext: *mut c_void,
6341    pub exportFromImportedHandleTypes: ExternalFenceHandleTypeFlags,
6342    pub compatibleHandleTypes: ExternalFenceHandleTypeFlags,
6343    pub externalFenceFeatures: ExternalFenceFeatureFlags,
6344}
6345
6346pub type ExternalFencePropertiesKHR = ExternalFenceProperties;
6347
6348#[repr(C)]
6349#[derive(Copy, Clone)]
6350pub struct ExportFenceCreateInfo {
6351    pub sType: StructureType,
6352    pub pNext: *const c_void,
6353    pub handleTypes: ExternalFenceHandleTypeFlags,
6354}
6355
6356pub type ExportFenceCreateInfoKHR = ExportFenceCreateInfo;
6357
6358#[repr(C)]
6359#[derive(Copy, Clone)]
6360pub struct ImportFenceFdInfoKHR {
6361    pub sType: StructureType,
6362    pub pNext: *const c_void,
6363    pub fence: Fence,
6364    pub flags: FenceImportFlags,
6365    pub handleType: ExternalFenceHandleTypeFlagBits,
6366    pub fd: c_int,
6367}
6368
6369#[repr(C)]
6370#[derive(Copy, Clone)]
6371pub struct FenceGetFdInfoKHR {
6372    pub sType: StructureType,
6373    pub pNext: *const c_void,
6374    pub fence: Fence,
6375    pub handleType: ExternalFenceHandleTypeFlagBits,
6376}
6377
6378#[repr(C)]
6379#[derive(Copy, Clone)]
6380pub struct PhysicalDeviceMultiviewFeatures {
6381    pub sType: StructureType,
6382    pub pNext: *mut c_void,
6383    pub multiview: Bool32,                   // Multiple views in a renderpass
6384    pub multiviewGeometryShader: Bool32,     // Multiple views in a renderpass w/ geometry shader
6385    pub multiviewTessellationShader: Bool32, // Multiple views in a renderpass w/ tessellation shader
6386}
6387
6388pub type PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures;
6389
6390#[repr(C)]
6391#[derive(Copy, Clone)]
6392pub struct PhysicalDeviceMultiviewProperties {
6393    pub sType: StructureType,
6394    pub pNext: *mut c_void,
6395    pub maxMultiviewViewCount: u32, // max number of views in a subpass
6396    pub maxMultiviewInstanceIndex: u32, // max instance index for a draw in a multiview subpass
6397}
6398
6399pub type PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties;
6400
6401#[repr(C)]
6402#[derive(Copy, Clone)]
6403pub struct RenderPassMultiviewCreateInfo {
6404    pub sType: StructureType,
6405    pub pNext: *const c_void,
6406    pub subpassCount: u32,
6407    pub pViewMasks: *const u32,
6408    pub dependencyCount: u32,
6409    pub pViewOffsets: *const i32,
6410    pub correlationMaskCount: u32,
6411    pub pCorrelationMasks: *const u32,
6412}
6413
6414pub type RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo;
6415
6416#[repr(C)]
6417#[derive(Copy, Clone)]
6418pub struct SurfaceCapabilities2EXT {
6419    pub sType: StructureType,
6420    pub pNext: *mut c_void,
6421    pub minImageCount: u32, // Supported minimum number of images for the surface
6422    pub maxImageCount: u32, // Supported maximum number of images for the surface, 0 for unlimited
6423    pub currentExtent: Extent2D, // Current image width and height for the surface, (0, 0) if undefined
6424    pub minImageExtent: Extent2D, // Supported minimum image width and height for the surface
6425    pub maxImageExtent: Extent2D, // Supported maximum image width and height for the surface
6426    pub maxImageArrayLayers: u32, // Supported maximum number of image layers for the surface
6427    pub supportedTransforms: SurfaceTransformFlagsKHR, // 1 or more bits representing the transforms supported
6428    pub currentTransform: SurfaceTransformFlagBitsKHR, // The surface's current transform relative to the device's natural orientation
6429    pub supportedCompositeAlpha: CompositeAlphaFlagsKHR, // 1 or more bits representing the alpha compositing modes supported
6430    pub supportedUsageFlags: ImageUsageFlags, // Supported image usage flags for the surface
6431    pub supportedSurfaceCounters: SurfaceCounterFlagsEXT,
6432}
6433
6434#[repr(C)]
6435#[derive(Copy, Clone)]
6436pub struct DisplayPowerInfoEXT {
6437    pub sType: StructureType,
6438    pub pNext: *const c_void,
6439    pub powerState: DisplayPowerStateEXT,
6440}
6441
6442#[repr(C)]
6443#[derive(Copy, Clone)]
6444pub struct DeviceEventInfoEXT {
6445    pub sType: StructureType,
6446    pub pNext: *const c_void,
6447    pub deviceEvent: DeviceEventTypeEXT,
6448}
6449
6450#[repr(C)]
6451#[derive(Copy, Clone)]
6452pub struct DisplayEventInfoEXT {
6453    pub sType: StructureType,
6454    pub pNext: *const c_void,
6455    pub displayEvent: DisplayEventTypeEXT,
6456}
6457
6458#[repr(C)]
6459#[derive(Copy, Clone)]
6460pub struct SwapchainCounterCreateInfoEXT {
6461    pub sType: StructureType,
6462    pub pNext: *const c_void,
6463    pub surfaceCounters: SurfaceCounterFlagsEXT,
6464}
6465
6466#[repr(C)]
6467#[derive(Copy, Clone)]
6468pub struct PhysicalDeviceGroupProperties {
6469    pub sType: StructureType,
6470    pub pNext: *mut c_void,
6471    pub physicalDeviceCount: u32,
6472    pub physicalDevices: [PhysicalDevice; MAX_DEVICE_GROUP_SIZE as usize],
6473    pub subsetAllocation: Bool32,
6474}
6475
6476pub type PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties;
6477
6478#[repr(C)]
6479#[derive(Copy, Clone)]
6480pub struct MemoryAllocateFlagsInfo {
6481    pub sType: StructureType,
6482    pub pNext: *const c_void,
6483    pub flags: MemoryAllocateFlags,
6484    pub deviceMask: u32,
6485}
6486
6487pub type MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo;
6488
6489#[repr(C)]
6490#[derive(Copy, Clone)]
6491pub struct BindBufferMemoryInfo {
6492    pub sType: StructureType,
6493    pub pNext: *const c_void,
6494    pub buffer: Buffer,
6495    pub memory: DeviceMemory,
6496    pub memoryOffset: DeviceSize,
6497}
6498
6499pub type BindBufferMemoryInfoKHR = BindBufferMemoryInfo;
6500
6501#[repr(C)]
6502#[derive(Copy, Clone)]
6503pub struct BindBufferMemoryDeviceGroupInfo {
6504    pub sType: StructureType,
6505    pub pNext: *const c_void,
6506    pub deviceIndexCount: u32,
6507    pub pDeviceIndices: *const u32,
6508}
6509
6510pub type BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo;
6511
6512#[repr(C)]
6513#[derive(Copy, Clone)]
6514pub struct BindImageMemoryInfo {
6515    pub sType: StructureType,
6516    pub pNext: *const c_void,
6517    pub image: Image,
6518    pub memory: DeviceMemory,
6519    pub memoryOffset: DeviceSize,
6520}
6521
6522pub type BindImageMemoryInfoKHR = BindImageMemoryInfo;
6523
6524#[repr(C)]
6525#[derive(Copy, Clone)]
6526pub struct BindImageMemoryDeviceGroupInfo {
6527    pub sType: StructureType,
6528    pub pNext: *const c_void,
6529    pub deviceIndexCount: u32,
6530    pub pDeviceIndices: *const u32,
6531    pub splitInstanceBindRegionCount: u32,
6532    pub pSplitInstanceBindRegions: *const Rect2D,
6533}
6534
6535pub type BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo;
6536
6537#[repr(C)]
6538#[derive(Copy, Clone)]
6539pub struct DeviceGroupRenderPassBeginInfo {
6540    pub sType: StructureType,
6541    pub pNext: *const c_void,
6542    pub deviceMask: u32,
6543    pub deviceRenderAreaCount: u32,
6544    pub pDeviceRenderAreas: *const Rect2D,
6545}
6546
6547pub type DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo;
6548
6549#[repr(C)]
6550#[derive(Copy, Clone)]
6551pub struct DeviceGroupCommandBufferBeginInfo {
6552    pub sType: StructureType,
6553    pub pNext: *const c_void,
6554    pub deviceMask: u32,
6555}
6556
6557pub type DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo;
6558
6559#[repr(C)]
6560#[derive(Copy, Clone)]
6561pub struct DeviceGroupSubmitInfo {
6562    pub sType: StructureType,
6563    pub pNext: *const c_void,
6564    pub waitSemaphoreCount: u32,
6565    pub pWaitSemaphoreDeviceIndices: *const u32,
6566    pub commandBufferCount: u32,
6567    pub pCommandBufferDeviceMasks: *const u32,
6568    pub signalSemaphoreCount: u32,
6569    pub pSignalSemaphoreDeviceIndices: *const u32,
6570}
6571
6572pub type DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo;
6573
6574#[repr(C)]
6575#[derive(Copy, Clone)]
6576pub struct DeviceGroupBindSparseInfo {
6577    pub sType: StructureType,
6578    pub pNext: *const c_void,
6579    pub resourceDeviceIndex: u32,
6580    pub memoryDeviceIndex: u32,
6581}
6582
6583pub type DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo;
6584
6585#[repr(C)]
6586#[derive(Copy, Clone)]
6587pub struct DeviceGroupPresentCapabilitiesKHR {
6588    pub sType: StructureType,
6589    pub pNext: *mut c_void,
6590    pub presentMask: [u32; MAX_DEVICE_GROUP_SIZE as usize],
6591    pub modes: DeviceGroupPresentModeFlagsKHR,
6592}
6593
6594#[repr(C)]
6595#[derive(Copy, Clone)]
6596pub struct ImageSwapchainCreateInfoKHR {
6597    pub sType: StructureType,
6598    pub pNext: *const c_void,
6599    pub swapchain: SwapchainKHR,
6600}
6601
6602#[repr(C)]
6603#[derive(Copy, Clone)]
6604pub struct BindImageMemorySwapchainInfoKHR {
6605    pub sType: StructureType,
6606    pub pNext: *const c_void,
6607    pub swapchain: SwapchainKHR,
6608    pub imageIndex: u32,
6609}
6610
6611#[repr(C)]
6612#[derive(Copy, Clone)]
6613pub struct AcquireNextImageInfoKHR {
6614    pub sType: StructureType,
6615    pub pNext: *const c_void,
6616    pub swapchain: SwapchainKHR,
6617    pub timeout: u64,
6618    pub semaphore: Semaphore,
6619    pub fence: Fence,
6620    pub deviceMask: u32,
6621}
6622
6623#[repr(C)]
6624#[derive(Copy, Clone)]
6625pub struct DeviceGroupPresentInfoKHR {
6626    pub sType: StructureType,
6627    pub pNext: *const c_void,
6628    pub swapchainCount: u32,
6629    pub pDeviceMasks: *const u32,
6630    pub mode: DeviceGroupPresentModeFlagBitsKHR,
6631}
6632
6633#[repr(C)]
6634#[derive(Copy, Clone)]
6635pub struct DeviceGroupDeviceCreateInfo {
6636    pub sType: StructureType,
6637    pub pNext: *const c_void,
6638    pub physicalDeviceCount: u32,
6639    pub pPhysicalDevices: *const PhysicalDevice,
6640}
6641
6642pub type DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo;
6643
6644#[repr(C)]
6645#[derive(Copy, Clone)]
6646pub struct DeviceGroupSwapchainCreateInfoKHR {
6647    pub sType: StructureType,
6648    pub pNext: *const c_void,
6649    pub modes: DeviceGroupPresentModeFlagsKHR,
6650}
6651
6652#[repr(C)]
6653#[derive(Copy, Clone)]
6654pub struct DescriptorUpdateTemplateEntry {
6655    pub dstBinding: u32, // Binding within the destination descriptor set to write
6656    pub dstArrayElement: u32, // Array element within the destination binding to write
6657    pub descriptorCount: u32, // Number of descriptors to write
6658    pub descriptorType: DescriptorType, // Descriptor type to write
6659    pub offset: usize,   // Offset into pData where the descriptors to update are stored
6660    pub stride: usize, // Stride between two descriptors in pData when writing more than one descriptor
6661}
6662
6663pub type DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry;
6664
6665#[repr(C)]
6666#[derive(Copy, Clone)]
6667pub struct DescriptorUpdateTemplateCreateInfo {
6668    pub sType: StructureType,
6669    pub pNext: *const c_void,
6670    pub flags: DescriptorUpdateTemplateCreateFlags,
6671    pub descriptorUpdateEntryCount: u32, // Number of descriptor update entries to use for the update template
6672    pub pDescriptorUpdateEntries: *const DescriptorUpdateTemplateEntry, // Descriptor update entries for the template
6673    pub templateType: DescriptorUpdateTemplateType,
6674    pub descriptorSetLayout: DescriptorSetLayout,
6675    pub pipelineBindPoint: PipelineBindPoint,
6676    pub pipelineLayout: PipelineLayout, // If used for push descriptors, this is the only allowed layout
6677    pub set: u32,
6678}
6679
6680pub type DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo;
6681
6682// Chromaticity coordinate
6683#[repr(C)]
6684#[derive(Copy, Clone)]
6685pub struct XYColorEXT {
6686    pub x: f32,
6687    pub y: f32,
6688}
6689
6690#[repr(C)]
6691#[derive(Copy, Clone)]
6692pub struct PhysicalDevicePresentIdFeaturesKHR {
6693    pub sType: StructureType,
6694    pub pNext: *mut c_void,
6695    pub presentId: Bool32, // Present ID in VkPresentInfoKHR
6696}
6697
6698#[repr(C)]
6699#[derive(Copy, Clone)]
6700pub struct PresentIdKHR {
6701    pub sType: StructureType,
6702    pub pNext: *const c_void,
6703    pub swapchainCount: u32,     // Copy of VkPresentInfoKHR::swapchainCount
6704    pub pPresentIds: *const u64, // Present ID values for each swapchain
6705}
6706
6707#[repr(C)]
6708#[derive(Copy, Clone)]
6709pub struct PhysicalDevicePresentWaitFeaturesKHR {
6710    pub sType: StructureType,
6711    pub pNext: *mut c_void,
6712    pub presentWait: Bool32, // vkWaitForPresentKHR is supported
6713}
6714
6715#[repr(C)]
6716#[derive(Copy, Clone)]
6717pub struct HdrMetadataEXT {
6718    // Display primary in chromaticity coordinates
6719    pub sType: StructureType,
6720    pub pNext: *const c_void,
6721    // From SMPTE 2086
6722    pub displayPrimaryRed: XYColorEXT,   // Display primary's Red
6723    pub displayPrimaryGreen: XYColorEXT, // Display primary's Green
6724    pub displayPrimaryBlue: XYColorEXT,  // Display primary's Blue
6725    pub whitePoint: XYColorEXT,          // Display primary's Blue
6726    pub maxLuminance: f32,               // Display maximum luminance
6727    pub minLuminance: f32,               // Display minimum luminance
6728    // From CTA 861.3
6729    pub maxContentLightLevel: f32, // Content maximum luminance
6730    pub maxFrameAverageLightLevel: f32,
6731}
6732
6733#[repr(C)]
6734#[derive(Copy, Clone)]
6735pub struct DisplayNativeHdrSurfaceCapabilitiesAMD {
6736    pub sType: StructureType,
6737    pub pNext: *mut c_void,
6738    pub localDimmingSupport: Bool32,
6739}
6740
6741#[repr(C)]
6742#[derive(Copy, Clone)]
6743pub struct SwapchainDisplayNativeHdrCreateInfoAMD {
6744    pub sType: StructureType,
6745    pub pNext: *const c_void,
6746    pub localDimmingEnable: Bool32,
6747}
6748
6749#[repr(C)]
6750#[derive(Copy, Clone)]
6751pub struct RefreshCycleDurationGOOGLE {
6752    pub refreshDuration: u64, // Number of nanoseconds from the start of one refresh cycle to the next
6753}
6754
6755#[repr(C)]
6756#[derive(Copy, Clone)]
6757pub struct PastPresentationTimingGOOGLE {
6758    pub presentID: u32, // Application-provided identifier, previously given to vkQueuePresentKHR
6759    pub desiredPresentTime: u64, // Earliest time an image should have been presented, previously given to vkQueuePresentKHR
6760    pub actualPresentTime: u64,  // Time the image was actually displayed
6761    pub earliestPresentTime: u64, // Earliest time the image could have been displayed
6762    pub presentMargin: u64, // How early vkQueuePresentKHR was processed vs. how soon it needed to be and make earliestPresentTime
6763}
6764
6765#[repr(C)]
6766#[derive(Copy, Clone)]
6767pub struct PresentTimesInfoGOOGLE {
6768    pub sType: StructureType,
6769    pub pNext: *const c_void,
6770    pub swapchainCount: u32, // Copy of VkPresentInfoKHR::swapchainCount
6771    pub pTimes: *const PresentTimeGOOGLE, // The earliest times to present images
6772}
6773
6774#[repr(C)]
6775#[derive(Copy, Clone)]
6776pub struct PresentTimeGOOGLE {
6777    pub presentID: u32,          // Application-provided identifier
6778    pub desiredPresentTime: u64, // Earliest time an image should be presented
6779}
6780
6781#[repr(C)]
6782#[derive(Copy, Clone)]
6783pub struct ViewportWScalingNV {
6784    pub xcoeff: f32,
6785    pub ycoeff: f32,
6786}
6787
6788#[repr(C)]
6789#[derive(Copy, Clone)]
6790pub struct PipelineViewportWScalingStateCreateInfoNV {
6791    pub sType: StructureType,
6792    pub pNext: *const c_void,
6793    pub viewportWScalingEnable: Bool32,
6794    pub viewportCount: u32,
6795    pub pViewportWScalings: *const ViewportWScalingNV,
6796}
6797
6798#[repr(C)]
6799#[derive(Copy, Clone)]
6800pub struct ViewportSwizzleNV {
6801    pub x: ViewportCoordinateSwizzleNV,
6802    pub y: ViewportCoordinateSwizzleNV,
6803    pub z: ViewportCoordinateSwizzleNV,
6804    pub w: ViewportCoordinateSwizzleNV,
6805}
6806
6807#[repr(C)]
6808#[derive(Copy, Clone)]
6809pub struct PipelineViewportSwizzleStateCreateInfoNV {
6810    pub sType: StructureType,
6811    pub pNext: *const c_void,
6812    pub flags: PipelineViewportSwizzleStateCreateFlagsNV,
6813    pub viewportCount: u32,
6814    pub pViewportSwizzles: *const ViewportSwizzleNV,
6815}
6816
6817#[repr(C)]
6818#[derive(Copy, Clone)]
6819pub struct PhysicalDeviceDiscardRectanglePropertiesEXT {
6820    pub sType: StructureType,
6821    pub pNext: *mut c_void,
6822    pub maxDiscardRectangles: u32, // max number of active discard rectangles
6823}
6824
6825#[repr(C)]
6826#[derive(Copy, Clone)]
6827pub struct PipelineDiscardRectangleStateCreateInfoEXT {
6828    pub sType: StructureType,
6829    pub pNext: *const c_void,
6830    pub flags: PipelineDiscardRectangleStateCreateFlagsEXT,
6831    pub discardRectangleMode: DiscardRectangleModeEXT,
6832    pub discardRectangleCount: u32,
6833    pub pDiscardRectangles: *const Rect2D,
6834}
6835
6836#[repr(C)]
6837#[derive(Copy, Clone)]
6838pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6839    pub sType: StructureType,
6840    pub pNext: *mut c_void,
6841    pub perViewPositionAllComponents: Bool32,
6842}
6843
6844#[repr(C)]
6845#[derive(Copy, Clone)]
6846pub struct InputAttachmentAspectReference {
6847    pub subpass: u32,
6848    pub inputAttachmentIndex: u32,
6849    pub aspectMask: ImageAspectFlags,
6850}
6851
6852pub type InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference;
6853
6854#[repr(C)]
6855#[derive(Copy, Clone)]
6856pub struct RenderPassInputAttachmentAspectCreateInfo {
6857    pub sType: StructureType,
6858    pub pNext: *const c_void,
6859    pub aspectReferenceCount: u32,
6860    pub pAspectReferences: *const InputAttachmentAspectReference,
6861}
6862
6863pub type RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo;
6864
6865#[repr(C)]
6866#[derive(Copy, Clone)]
6867pub struct PhysicalDeviceSurfaceInfo2KHR {
6868    pub sType: StructureType,
6869    pub pNext: *const c_void,
6870    pub surface: SurfaceKHR,
6871}
6872
6873#[repr(C)]
6874#[derive(Copy, Clone)]
6875pub struct SurfaceCapabilities2KHR {
6876    pub sType: StructureType,
6877    pub pNext: *mut c_void,
6878    pub surfaceCapabilities: SurfaceCapabilitiesKHR,
6879}
6880
6881#[repr(C)]
6882#[derive(Copy, Clone)]
6883pub struct SurfaceFormat2KHR {
6884    pub sType: StructureType,
6885    pub pNext: *mut c_void,
6886    pub surfaceFormat: SurfaceFormatKHR,
6887}
6888
6889#[repr(C)]
6890#[derive(Copy, Clone)]
6891pub struct DisplayProperties2KHR {
6892    pub sType: StructureType,
6893    pub pNext: *mut c_void,
6894    pub displayProperties: DisplayPropertiesKHR,
6895}
6896
6897#[repr(C)]
6898#[derive(Copy, Clone)]
6899pub struct DisplayPlaneProperties2KHR {
6900    pub sType: StructureType,
6901    pub pNext: *mut c_void,
6902    pub displayPlaneProperties: DisplayPlanePropertiesKHR,
6903}
6904
6905#[repr(C)]
6906#[derive(Copy, Clone)]
6907pub struct DisplayModeProperties2KHR {
6908    pub sType: StructureType,
6909    pub pNext: *mut c_void,
6910    pub displayModeProperties: DisplayModePropertiesKHR,
6911}
6912
6913#[repr(C)]
6914#[derive(Copy, Clone)]
6915pub struct DisplayPlaneInfo2KHR {
6916    pub sType: StructureType,
6917    pub pNext: *const c_void,
6918    pub mode: DisplayModeKHR,
6919    pub planeIndex: u32,
6920}
6921
6922#[repr(C)]
6923#[derive(Copy, Clone)]
6924pub struct DisplayPlaneCapabilities2KHR {
6925    pub sType: StructureType,
6926    pub pNext: *mut c_void,
6927    pub capabilities: DisplayPlaneCapabilitiesKHR,
6928}
6929
6930#[repr(C)]
6931#[derive(Copy, Clone)]
6932pub struct SharedPresentSurfaceCapabilitiesKHR {
6933    pub sType: StructureType,
6934    pub pNext: *mut c_void,
6935    pub sharedPresentSupportedUsageFlags: ImageUsageFlags, // Supported image usage flags if swapchain created using a shared present mode
6936}
6937
6938#[repr(C)]
6939#[derive(Copy, Clone)]
6940pub struct PhysicalDevice16BitStorageFeatures {
6941    pub sType: StructureType,
6942    pub pNext: *mut c_void,
6943    pub storageBuffer16BitAccess: Bool32, // 16-bit integer/floating-point variables supported in BufferBlock
6944    pub uniformAndStorageBuffer16BitAccess: Bool32, // 16-bit integer/floating-point variables supported in BufferBlock and Block
6945    pub storagePushConstant16: Bool32, // 16-bit integer/floating-point variables supported in PushConstant
6946    pub storageInputOutput16: Bool32, // 16-bit integer/floating-point variables supported in shader inputs and outputs
6947}
6948
6949pub type PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures;
6950
6951#[repr(C)]
6952#[derive(Copy, Clone)]
6953pub struct PhysicalDeviceSubgroupProperties {
6954    pub sType: StructureType,
6955    pub pNext: *mut c_void,
6956    pub subgroupSize: u32, // The size of a subgroup for this queue.
6957    pub supportedStages: ShaderStageFlags, // Bitfield of what shader stages support subgroup operations
6958    pub supportedOperations: SubgroupFeatureFlags, // Bitfield of what subgroup operations are supported.
6959    pub quadOperationsInAllStages: Bool32, // Flag to specify whether quad operations are available in all stages.
6960}
6961
6962#[repr(C)]
6963#[derive(Copy, Clone)]
6964pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6965    pub sType: StructureType,
6966    pub pNext: *mut c_void,
6967    pub shaderSubgroupExtendedTypes: Bool32, // Flag to specify whether subgroup operations with extended types are supported
6968}
6969
6970pub type PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR =
6971    PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6972
6973#[repr(C)]
6974#[derive(Copy, Clone)]
6975pub struct BufferMemoryRequirementsInfo2 {
6976    pub sType: StructureType,
6977    pub pNext: *const c_void,
6978    pub buffer: Buffer,
6979}
6980
6981pub type BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2;
6982
6983#[repr(C)]
6984#[derive(Copy, Clone)]
6985pub struct DeviceBufferMemoryRequirements {
6986    pub sType: StructureType,
6987    pub pNext: *const c_void,
6988    pub pCreateInfo: *const BufferCreateInfo,
6989}
6990
6991pub type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements;
6992
6993#[repr(C)]
6994#[derive(Copy, Clone)]
6995pub struct ImageMemoryRequirementsInfo2 {
6996    pub sType: StructureType,
6997    pub pNext: *const c_void,
6998    pub image: Image,
6999}
7000
7001pub type ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2;
7002
7003#[repr(C)]
7004#[derive(Copy, Clone)]
7005pub struct ImageSparseMemoryRequirementsInfo2 {
7006    pub sType: StructureType,
7007    pub pNext: *const c_void,
7008    pub image: Image,
7009}
7010
7011pub type ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2;
7012
7013#[repr(C)]
7014#[derive(Copy, Clone)]
7015pub struct DeviceImageMemoryRequirements {
7016    pub sType: StructureType,
7017    pub pNext: *const c_void,
7018    pub pCreateInfo: *const ImageCreateInfo,
7019    pub planeAspect: ImageAspectFlagBits,
7020}
7021
7022pub type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements;
7023
7024#[repr(C)]
7025#[derive(Copy, Clone)]
7026pub struct MemoryRequirements2 {
7027    pub sType: StructureType,
7028    pub pNext: *mut c_void,
7029    pub memoryRequirements: MemoryRequirements,
7030}
7031
7032pub type MemoryRequirements2KHR = MemoryRequirements2;
7033
7034#[repr(C)]
7035#[derive(Copy, Clone)]
7036pub struct SparseImageMemoryRequirements2 {
7037    pub sType: StructureType,
7038    pub pNext: *mut c_void,
7039    pub memoryRequirements: SparseImageMemoryRequirements,
7040}
7041
7042pub type SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2;
7043
7044#[repr(C)]
7045#[derive(Copy, Clone)]
7046pub struct PhysicalDevicePointClippingProperties {
7047    pub sType: StructureType,
7048    pub pNext: *mut c_void,
7049    pub pointClippingBehavior: PointClippingBehavior,
7050}
7051
7052pub type PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties;
7053
7054#[repr(C)]
7055#[derive(Copy, Clone)]
7056pub struct MemoryDedicatedRequirements {
7057    pub sType: StructureType,
7058    pub pNext: *mut c_void,
7059    pub prefersDedicatedAllocation: Bool32,
7060    pub requiresDedicatedAllocation: Bool32,
7061}
7062
7063pub type MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements;
7064
7065#[repr(C)]
7066#[derive(Copy, Clone)]
7067pub struct MemoryDedicatedAllocateInfo {
7068    pub sType: StructureType,
7069    pub pNext: *const c_void,
7070    pub image: Image,   // Image that this allocation will be bound to
7071    pub buffer: Buffer, // Buffer that this allocation will be bound to
7072}
7073
7074pub type MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo;
7075
7076#[repr(C)]
7077#[derive(Copy, Clone)]
7078pub struct ImageViewUsageCreateInfo {
7079    pub sType: StructureType,
7080    pub pNext: *const c_void,
7081    pub usage: ImageUsageFlags,
7082}
7083
7084pub type ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo;
7085
7086#[repr(C)]
7087#[derive(Copy, Clone)]
7088pub struct PipelineTessellationDomainOriginStateCreateInfo {
7089    pub sType: StructureType,
7090    pub pNext: *const c_void,
7091    pub domainOrigin: TessellationDomainOrigin,
7092}
7093
7094pub type PipelineTessellationDomainOriginStateCreateInfoKHR =
7095    PipelineTessellationDomainOriginStateCreateInfo;
7096
7097#[repr(C)]
7098#[derive(Copy, Clone)]
7099pub struct SamplerYcbcrConversionInfo {
7100    pub sType: StructureType,
7101    pub pNext: *const c_void,
7102    pub conversion: SamplerYcbcrConversion,
7103}
7104
7105pub type SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo;
7106
7107#[repr(C)]
7108#[derive(Copy, Clone)]
7109pub struct SamplerYcbcrConversionCreateInfo {
7110    pub sType: StructureType,
7111    pub pNext: *const c_void,
7112    pub format: Format,
7113    pub ycbcrModel: SamplerYcbcrModelConversion,
7114    pub ycbcrRange: SamplerYcbcrRange,
7115    pub components: ComponentMapping,
7116    pub xChromaOffset: ChromaLocation,
7117    pub yChromaOffset: ChromaLocation,
7118    pub chromaFilter: Filter,
7119    pub forceExplicitReconstruction: Bool32,
7120}
7121
7122pub type SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo;
7123
7124#[repr(C)]
7125#[derive(Copy, Clone)]
7126pub struct BindImagePlaneMemoryInfo {
7127    pub sType: StructureType,
7128    pub pNext: *const c_void,
7129    pub planeAspect: ImageAspectFlagBits,
7130}
7131
7132pub type BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
7133
7134#[repr(C)]
7135#[derive(Copy, Clone)]
7136pub struct ImagePlaneMemoryRequirementsInfo {
7137    pub sType: StructureType,
7138    pub pNext: *const c_void,
7139    pub planeAspect: ImageAspectFlagBits,
7140}
7141
7142pub type ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo;
7143
7144#[repr(C)]
7145#[derive(Copy, Clone)]
7146pub struct PhysicalDeviceSamplerYcbcrConversionFeatures {
7147    pub sType: StructureType,
7148    pub pNext: *mut c_void,
7149    pub samplerYcbcrConversion: Bool32, // Sampler color conversion supported
7150}
7151
7152pub type PhysicalDeviceSamplerYcbcrConversionFeaturesKHR =
7153    PhysicalDeviceSamplerYcbcrConversionFeatures;
7154
7155#[repr(C)]
7156#[derive(Copy, Clone)]
7157pub struct SamplerYcbcrConversionImageFormatProperties {
7158    pub sType: StructureType,
7159    pub pNext: *mut c_void,
7160    pub combinedImageSamplerDescriptorCount: u32,
7161}
7162
7163pub type SamplerYcbcrConversionImageFormatPropertiesKHR =
7164    SamplerYcbcrConversionImageFormatProperties;
7165
7166#[repr(C)]
7167#[derive(Copy, Clone)]
7168pub struct TextureLODGatherFormatPropertiesAMD {
7169    pub sType: StructureType,
7170    pub pNext: *mut c_void,
7171    pub supportsTextureGatherLODBiasAMD: Bool32,
7172}
7173
7174#[repr(C)]
7175#[derive(Copy, Clone)]
7176pub struct ConditionalRenderingBeginInfoEXT {
7177    pub sType: StructureType,
7178    pub pNext: *const c_void,
7179    pub buffer: Buffer,
7180    pub offset: DeviceSize,
7181    pub flags: ConditionalRenderingFlagsEXT,
7182}
7183
7184#[repr(C)]
7185#[derive(Copy, Clone)]
7186pub struct ProtectedSubmitInfo {
7187    pub sType: StructureType,
7188    pub pNext: *const c_void,
7189    pub protectedSubmit: Bool32, // Submit protected command buffers
7190}
7191
7192#[repr(C)]
7193#[derive(Copy, Clone)]
7194pub struct PhysicalDeviceProtectedMemoryFeatures {
7195    pub sType: StructureType,
7196    pub pNext: *mut c_void,
7197    pub protectedMemory: Bool32,
7198}
7199
7200#[repr(C)]
7201#[derive(Copy, Clone)]
7202pub struct PhysicalDeviceProtectedMemoryProperties {
7203    pub sType: StructureType,
7204    pub pNext: *mut c_void,
7205    pub protectedNoFault: Bool32,
7206}
7207
7208#[repr(C)]
7209#[derive(Copy, Clone)]
7210pub struct DeviceQueueInfo2 {
7211    pub sType: StructureType,
7212    pub pNext: *const c_void,
7213    pub flags: DeviceQueueCreateFlags,
7214    pub queueFamilyIndex: u32,
7215    pub queueIndex: u32,
7216}
7217
7218#[repr(C)]
7219#[derive(Copy, Clone)]
7220pub struct PipelineCoverageToColorStateCreateInfoNV {
7221    pub sType: StructureType,
7222    pub pNext: *const c_void,
7223    pub flags: PipelineCoverageToColorStateCreateFlagsNV,
7224    pub coverageToColorEnable: Bool32,
7225    pub coverageToColorLocation: u32,
7226}
7227
7228#[repr(C)]
7229#[derive(Copy, Clone)]
7230pub struct PhysicalDeviceSamplerFilterMinmaxProperties {
7231    pub sType: StructureType,
7232    pub pNext: *mut c_void,
7233    pub filterMinmaxSingleComponentFormats: Bool32,
7234    pub filterMinmaxImageComponentMapping: Bool32,
7235}
7236
7237pub type PhysicalDeviceSamplerFilterMinmaxPropertiesEXT =
7238    PhysicalDeviceSamplerFilterMinmaxProperties;
7239
7240#[repr(C)]
7241#[derive(Copy, Clone)]
7242pub struct SampleLocationEXT {
7243    pub x: f32,
7244    pub y: f32,
7245}
7246
7247#[repr(C)]
7248#[derive(Copy, Clone)]
7249pub struct SampleLocationsInfoEXT {
7250    pub sType: StructureType,
7251    pub pNext: *const c_void,
7252    pub sampleLocationsPerPixel: SampleCountFlagBits,
7253    pub sampleLocationGridSize: Extent2D,
7254    pub sampleLocationsCount: u32,
7255    pub pSampleLocations: *const SampleLocationEXT,
7256}
7257
7258#[repr(C)]
7259#[derive(Copy, Clone)]
7260pub struct AttachmentSampleLocationsEXT {
7261    pub attachmentIndex: u32,
7262    pub sampleLocationsInfo: SampleLocationsInfoEXT,
7263}
7264
7265#[repr(C)]
7266#[derive(Copy, Clone)]
7267pub struct SubpassSampleLocationsEXT {
7268    pub subpassIndex: u32,
7269    pub sampleLocationsInfo: SampleLocationsInfoEXT,
7270}
7271
7272#[repr(C)]
7273#[derive(Copy, Clone)]
7274pub struct RenderPassSampleLocationsBeginInfoEXT {
7275    pub sType: StructureType,
7276    pub pNext: *const c_void,
7277    pub attachmentInitialSampleLocationsCount: u32,
7278    pub pAttachmentInitialSampleLocations: *const AttachmentSampleLocationsEXT,
7279    pub postSubpassSampleLocationsCount: u32,
7280    pub pPostSubpassSampleLocations: *const SubpassSampleLocationsEXT,
7281}
7282
7283#[repr(C)]
7284#[derive(Copy, Clone)]
7285pub struct PipelineSampleLocationsStateCreateInfoEXT {
7286    pub sType: StructureType,
7287    pub pNext: *const c_void,
7288    pub sampleLocationsEnable: Bool32,
7289    pub sampleLocationsInfo: SampleLocationsInfoEXT,
7290}
7291
7292#[repr(C)]
7293#[derive(Copy, Clone)]
7294pub struct PhysicalDeviceSampleLocationsPropertiesEXT {
7295    pub sType: StructureType,
7296    pub pNext: *mut c_void,
7297    pub sampleLocationSampleCounts: SampleCountFlags,
7298    pub maxSampleLocationGridSize: Extent2D,
7299    pub sampleLocationCoordinateRange: [f32; 2],
7300    pub sampleLocationSubPixelBits: u32,
7301    pub variableSampleLocations: Bool32,
7302}
7303
7304#[repr(C)]
7305#[derive(Copy, Clone)]
7306pub struct MultisamplePropertiesEXT {
7307    pub sType: StructureType,
7308    pub pNext: *mut c_void,
7309    pub maxSampleLocationGridSize: Extent2D,
7310}
7311
7312#[repr(C)]
7313#[derive(Copy, Clone)]
7314pub struct SamplerReductionModeCreateInfo {
7315    pub sType: StructureType,
7316    pub pNext: *const c_void,
7317    pub reductionMode: SamplerReductionMode,
7318}
7319
7320pub type SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo;
7321
7322#[repr(C)]
7323#[derive(Copy, Clone)]
7324pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7325    pub sType: StructureType,
7326    pub pNext: *mut c_void,
7327    pub advancedBlendCoherentOperations: Bool32,
7328}
7329
7330#[repr(C)]
7331#[derive(Copy, Clone)]
7332pub struct PhysicalDeviceMultiDrawFeaturesEXT {
7333    pub sType: StructureType,
7334    pub pNext: *mut c_void,
7335    pub multiDraw: Bool32,
7336}
7337
7338#[repr(C)]
7339#[derive(Copy, Clone)]
7340pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7341    pub sType: StructureType,
7342    pub pNext: *mut c_void,
7343    pub advancedBlendMaxColorAttachments: u32,
7344    pub advancedBlendIndependentBlend: Bool32,
7345    pub advancedBlendNonPremultipliedSrcColor: Bool32,
7346    pub advancedBlendNonPremultipliedDstColor: Bool32,
7347    pub advancedBlendCorrelatedOverlap: Bool32,
7348    pub advancedBlendAllOperations: Bool32,
7349}
7350
7351#[repr(C)]
7352#[derive(Copy, Clone)]
7353pub struct PipelineColorBlendAdvancedStateCreateInfoEXT {
7354    pub sType: StructureType,
7355    pub pNext: *const c_void,
7356    pub srcPremultiplied: Bool32,
7357    pub dstPremultiplied: Bool32,
7358    pub blendOverlap: BlendOverlapEXT,
7359}
7360
7361#[repr(C)]
7362#[derive(Copy, Clone)]
7363pub struct PhysicalDeviceInlineUniformBlockFeatures {
7364    pub sType: StructureType,
7365    pub pNext: *mut c_void,
7366    pub inlineUniformBlock: Bool32,
7367    pub descriptorBindingInlineUniformBlockUpdateAfterBind: Bool32,
7368}
7369
7370pub type PhysicalDeviceInlineUniformBlockFeaturesEXT = PhysicalDeviceInlineUniformBlockFeatures;
7371
7372#[repr(C)]
7373#[derive(Copy, Clone)]
7374pub struct PhysicalDeviceInlineUniformBlockProperties {
7375    pub sType: StructureType,
7376    pub pNext: *mut c_void,
7377    pub maxInlineUniformBlockSize: u32,
7378    pub maxPerStageDescriptorInlineUniformBlocks: u32,
7379    pub maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32,
7380    pub maxDescriptorSetInlineUniformBlocks: u32,
7381    pub maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32,
7382}
7383
7384pub type PhysicalDeviceInlineUniformBlockPropertiesEXT = PhysicalDeviceInlineUniformBlockProperties;
7385
7386#[repr(C)]
7387#[derive(Copy, Clone)]
7388pub struct WriteDescriptorSetInlineUniformBlock {
7389    pub sType: StructureType,
7390    pub pNext: *const c_void,
7391    pub dataSize: u32,
7392    pub pData: *const c_void,
7393}
7394
7395pub type WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
7396
7397#[repr(C)]
7398#[derive(Copy, Clone)]
7399pub struct DescriptorPoolInlineUniformBlockCreateInfo {
7400    pub sType: StructureType,
7401    pub pNext: *const c_void,
7402    pub maxInlineUniformBlockBindings: u32,
7403}
7404
7405pub type DescriptorPoolInlineUniformBlockCreateInfoEXT = DescriptorPoolInlineUniformBlockCreateInfo;
7406
7407#[repr(C)]
7408#[derive(Copy, Clone)]
7409pub struct PipelineCoverageModulationStateCreateInfoNV {
7410    pub sType: StructureType,
7411    pub pNext: *const c_void,
7412    pub flags: PipelineCoverageModulationStateCreateFlagsNV,
7413    pub coverageModulationMode: CoverageModulationModeNV,
7414    pub coverageModulationTableEnable: Bool32,
7415    pub coverageModulationTableCount: u32,
7416    pub pCoverageModulationTable: *const f32,
7417}
7418
7419#[repr(C)]
7420#[derive(Copy, Clone)]
7421pub struct ImageFormatListCreateInfo {
7422    pub sType: StructureType,
7423    pub pNext: *const c_void,
7424    pub viewFormatCount: u32,
7425    pub pViewFormats: *const Format,
7426}
7427
7428pub type ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo;
7429
7430#[repr(C)]
7431#[derive(Copy, Clone)]
7432pub struct ValidationCacheCreateInfoEXT {
7433    pub sType: StructureType,
7434    pub pNext: *const c_void,
7435    pub flags: ValidationCacheCreateFlagsEXT,
7436    pub initialDataSize: usize,
7437    pub pInitialData: *const c_void,
7438}
7439
7440#[repr(C)]
7441#[derive(Copy, Clone)]
7442pub struct ShaderModuleValidationCacheCreateInfoEXT {
7443    pub sType: StructureType,
7444    pub pNext: *const c_void,
7445    pub validationCache: ValidationCacheEXT,
7446}
7447
7448#[repr(C)]
7449#[derive(Copy, Clone)]
7450pub struct PhysicalDeviceMaintenance3Properties {
7451    pub sType: StructureType,
7452    pub pNext: *mut c_void,
7453    pub maxPerSetDescriptors: u32,
7454    pub maxMemoryAllocationSize: DeviceSize,
7455}
7456
7457pub type PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties;
7458
7459#[repr(C)]
7460#[derive(Copy, Clone)]
7461pub struct PhysicalDeviceMaintenance4Features {
7462    pub sType: StructureType,
7463    pub pNext: *mut c_void,
7464    pub maintenance4: Bool32,
7465}
7466
7467pub type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features;
7468
7469#[repr(C)]
7470#[derive(Copy, Clone)]
7471pub struct PhysicalDeviceMaintenance4Properties {
7472    pub sType: StructureType,
7473    pub pNext: *mut c_void,
7474    pub maxBufferSize: DeviceSize,
7475}
7476
7477pub type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties;
7478
7479#[repr(C)]
7480#[derive(Copy, Clone)]
7481pub struct DescriptorSetLayoutSupport {
7482    pub sType: StructureType,
7483    pub pNext: *mut c_void,
7484    pub supported: Bool32,
7485}
7486
7487pub type DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport;
7488
7489#[repr(C)]
7490#[derive(Copy, Clone)]
7491pub struct PhysicalDeviceShaderDrawParametersFeatures {
7492    pub sType: StructureType,
7493    pub pNext: *mut c_void,
7494    pub shaderDrawParameters: Bool32,
7495}
7496
7497pub type PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures;
7498
7499#[repr(C)]
7500#[derive(Copy, Clone)]
7501pub struct PhysicalDeviceShaderFloat16Int8Features {
7502    pub sType: StructureType,
7503    pub pNext: *mut c_void,
7504    pub shaderFloat16: Bool32, // 16-bit floats (halfs) in shaders
7505    pub shaderInt8: Bool32,    // 8-bit integers in shaders
7506}
7507
7508pub type PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
7509
7510pub type PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features;
7511
7512#[repr(C)]
7513#[derive(Copy, Clone)]
7514pub struct PhysicalDeviceFloatControlsProperties {
7515    pub sType: StructureType,
7516    pub pNext: *mut c_void,
7517    pub denormBehaviorIndependence: ShaderFloatControlsIndependence,
7518    pub roundingModeIndependence: ShaderFloatControlsIndependence,
7519    pub shaderSignedZeroInfNanPreserveFloat16: Bool32, // An implementation can preserve signed zero, nan, inf
7520    pub shaderSignedZeroInfNanPreserveFloat32: Bool32, // An implementation can preserve signed zero, nan, inf
7521    pub shaderSignedZeroInfNanPreserveFloat64: Bool32, // An implementation can preserve signed zero, nan, inf
7522    pub shaderDenormPreserveFloat16: Bool32,           // An implementation can preserve  denormals
7523    pub shaderDenormPreserveFloat32: Bool32,           // An implementation can preserve  denormals
7524    pub shaderDenormPreserveFloat64: Bool32,           // An implementation can preserve  denormals
7525    pub shaderDenormFlushToZeroFloat16: Bool32, // An implementation can flush to zero  denormals
7526    pub shaderDenormFlushToZeroFloat32: Bool32, // An implementation can flush to zero  denormals
7527    pub shaderDenormFlushToZeroFloat64: Bool32, // An implementation can flush to zero  denormals
7528    pub shaderRoundingModeRTEFloat16: Bool32,   // An implementation can support RTE
7529    pub shaderRoundingModeRTEFloat32: Bool32,   // An implementation can support RTE
7530    pub shaderRoundingModeRTEFloat64: Bool32,   // An implementation can support RTE
7531    pub shaderRoundingModeRTZFloat16: Bool32,   // An implementation can support RTZ
7532    pub shaderRoundingModeRTZFloat32: Bool32,   // An implementation can support RTZ
7533    pub shaderRoundingModeRTZFloat64: Bool32,   // An implementation can support RTZ
7534}
7535
7536pub type PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties;
7537
7538#[repr(C)]
7539#[derive(Copy, Clone)]
7540pub struct PhysicalDeviceHostQueryResetFeatures {
7541    pub sType: StructureType,
7542    pub pNext: *mut c_void,
7543    pub hostQueryReset: Bool32,
7544}
7545
7546pub type PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures;
7547
7548#[repr(C)]
7549#[derive(Copy, Clone)]
7550pub struct ShaderResourceUsageAMD {
7551    pub numUsedVgprs: u32,
7552    pub numUsedSgprs: u32,
7553    pub ldsSizePerLocalWorkGroup: u32,
7554    pub ldsUsageSizeInBytes: usize,
7555    pub scratchMemUsageInBytes: usize,
7556}
7557
7558#[repr(C)]
7559#[derive(Copy, Clone)]
7560pub struct ShaderStatisticsInfoAMD {
7561    pub shaderStageMask: ShaderStageFlags,
7562    pub resourceUsage: ShaderResourceUsageAMD,
7563    pub numPhysicalVgprs: u32,
7564    pub numPhysicalSgprs: u32,
7565    pub numAvailableVgprs: u32,
7566    pub numAvailableSgprs: u32,
7567    pub computeWorkGroupSize: [u32; 3],
7568}
7569
7570#[repr(C)]
7571#[derive(Copy, Clone)]
7572pub struct DeviceQueueGlobalPriorityCreateInfoKHR {
7573    pub sType: StructureType,
7574    pub pNext: *const c_void,
7575    pub globalPriority: QueueGlobalPriorityKHR,
7576}
7577
7578pub type DeviceQueueGlobalPriorityCreateInfoEXT = DeviceQueueGlobalPriorityCreateInfoKHR;
7579
7580#[repr(C)]
7581#[derive(Copy, Clone)]
7582pub struct PhysicalDeviceGlobalPriorityQueryFeaturesKHR {
7583    pub sType: StructureType,
7584    pub pNext: *mut c_void,
7585    pub globalPriorityQuery: Bool32,
7586}
7587
7588pub type PhysicalDeviceGlobalPriorityQueryFeaturesEXT =
7589    PhysicalDeviceGlobalPriorityQueryFeaturesKHR;
7590
7591#[repr(C)]
7592#[derive(Copy, Clone)]
7593pub struct QueueFamilyGlobalPriorityPropertiesKHR {
7594    pub sType: StructureType,
7595    pub pNext: *mut c_void,
7596    pub priorityCount: u32,
7597    pub priorities: [QueueGlobalPriorityKHR; MAX_GLOBAL_PRIORITY_SIZE_KHR as usize],
7598}
7599
7600pub type QueueFamilyGlobalPriorityPropertiesEXT = QueueFamilyGlobalPriorityPropertiesKHR;
7601
7602#[repr(C)]
7603#[derive(Copy, Clone)]
7604pub struct DebugUtilsObjectNameInfoEXT {
7605    pub sType: StructureType,
7606    pub pNext: *const c_void,
7607    pub objectType: ObjectType,
7608    pub objectHandle: u64,
7609    pub pObjectName: *const c_char,
7610}
7611
7612#[repr(C)]
7613#[derive(Copy, Clone)]
7614pub struct DebugUtilsObjectTagInfoEXT {
7615    pub sType: StructureType,
7616    pub pNext: *const c_void,
7617    pub objectType: ObjectType,
7618    pub objectHandle: u64,
7619    pub tagName: u64,
7620    pub tagSize: usize,
7621    pub pTag: *const c_void,
7622}
7623
7624#[repr(C)]
7625#[derive(Copy, Clone)]
7626pub struct DebugUtilsLabelEXT {
7627    pub sType: StructureType,
7628    pub pNext: *const c_void,
7629    pub pLabelName: *const c_char,
7630    pub color: [f32; 4],
7631}
7632
7633#[repr(C)]
7634#[derive(Copy, Clone)]
7635pub struct DebugUtilsMessengerCreateInfoEXT {
7636    pub sType: StructureType,
7637    pub pNext: *const c_void,
7638    pub flags: DebugUtilsMessengerCreateFlagsEXT,
7639    pub messageSeverity: DebugUtilsMessageSeverityFlagsEXT,
7640    pub messageType: DebugUtilsMessageTypeFlagsEXT,
7641    pub pfnUserCallback: FnDebugUtilsMessengerCallbackEXT,
7642    pub pUserData: *mut c_void,
7643}
7644
7645#[repr(C)]
7646#[derive(Copy, Clone)]
7647pub struct DebugUtilsMessengerCallbackDataEXT {
7648    pub sType: StructureType,
7649    pub pNext: *const c_void,
7650    pub flags: DebugUtilsMessengerCallbackDataFlagsEXT,
7651    pub pMessageIdName: *const c_char,
7652    pub messageIdNumber: i32,
7653    pub pMessage: *const c_char,
7654    pub queueLabelCount: u32,
7655    pub pQueueLabels: *const DebugUtilsLabelEXT,
7656    pub cmdBufLabelCount: u32,
7657    pub pCmdBufLabels: *const DebugUtilsLabelEXT,
7658    pub objectCount: u32,
7659    pub pObjects: *const DebugUtilsObjectNameInfoEXT,
7660}
7661
7662#[repr(C)]
7663#[derive(Copy, Clone)]
7664pub struct PhysicalDeviceDeviceMemoryReportFeaturesEXT {
7665    pub sType: StructureType,
7666    pub pNext: *mut c_void,
7667    pub deviceMemoryReport: Bool32,
7668}
7669
7670#[repr(C)]
7671#[derive(Copy, Clone)]
7672pub struct DeviceDeviceMemoryReportCreateInfoEXT {
7673    pub sType: StructureType,
7674    pub pNext: *const c_void,
7675    pub flags: DeviceMemoryReportFlagsEXT,
7676    pub pfnUserCallback: FnDeviceMemoryReportCallbackEXT,
7677    pub pUserData: *mut c_void,
7678}
7679
7680#[repr(C)]
7681#[derive(Copy, Clone)]
7682pub struct DeviceMemoryReportCallbackDataEXT {
7683    pub sType: StructureType,
7684    pub pNext: *mut c_void,
7685    pub flags: DeviceMemoryReportFlagsEXT,
7686    pub typ: DeviceMemoryReportEventTypeEXT,
7687    pub memoryObjectId: u64,
7688    pub size: DeviceSize,
7689    pub objectType: ObjectType,
7690    pub objectHandle: u64,
7691    pub heapIndex: u32,
7692}
7693
7694#[repr(C)]
7695#[derive(Copy, Clone)]
7696pub struct ImportMemoryHostPointerInfoEXT {
7697    pub sType: StructureType,
7698    pub pNext: *const c_void,
7699    pub handleType: ExternalMemoryHandleTypeFlagBits,
7700    pub pHostPointer: *mut c_void,
7701}
7702
7703#[repr(C)]
7704#[derive(Copy, Clone)]
7705pub struct MemoryHostPointerPropertiesEXT {
7706    pub sType: StructureType,
7707    pub pNext: *mut c_void,
7708    pub memoryTypeBits: u32,
7709}
7710
7711#[repr(C)]
7712#[derive(Copy, Clone)]
7713pub struct PhysicalDeviceExternalMemoryHostPropertiesEXT {
7714    pub sType: StructureType,
7715    pub pNext: *mut c_void,
7716    pub minImportedHostPointerAlignment: DeviceSize,
7717}
7718
7719#[repr(C)]
7720#[derive(Copy, Clone)]
7721pub struct PhysicalDeviceConservativeRasterizationPropertiesEXT {
7722    pub sType: StructureType,
7723    pub pNext: *mut c_void,
7724    pub primitiveOverestimationSize: f32, // The size in pixels the primitive is enlarged at each edge during conservative rasterization
7725    pub maxExtraPrimitiveOverestimationSize: f32, // The maximum additional overestimation the client can specify in the pipeline state
7726    pub extraPrimitiveOverestimationSizeGranularity: f32, // The granularity of extra overestimation sizes the implementations supports between 0 and maxExtraOverestimationSize
7727    pub primitiveUnderestimation: Bool32, // true if the implementation supports conservative rasterization underestimation mode
7728    pub conservativePointAndLineRasterization: Bool32, // true if conservative rasterization also applies to points and lines
7729    pub degenerateTrianglesRasterized: Bool32, // true if degenerate triangles (those with zero area after snap) are rasterized
7730    pub degenerateLinesRasterized: Bool32, // true if degenerate lines (those with zero length after snap) are rasterized
7731    pub fullyCoveredFragmentShaderInputVariable: Bool32, // true if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable
7732    pub conservativeRasterizationPostDepthCoverage: Bool32, // true if the implementation supports both conservative rasterization and post depth coverage sample coverage mask
7733}
7734
7735#[repr(C)]
7736#[derive(Copy, Clone)]
7737pub struct CalibratedTimestampInfoEXT {
7738    pub sType: StructureType,
7739    pub pNext: *const c_void,
7740    pub timeDomain: TimeDomainEXT,
7741}
7742
7743#[repr(C)]
7744#[derive(Copy, Clone)]
7745pub struct PhysicalDeviceShaderCorePropertiesAMD {
7746    pub sType: StructureType,
7747    pub pNext: *mut c_void,
7748    pub shaderEngineCount: u32,          // number of shader engines
7749    pub shaderArraysPerEngineCount: u32, // number of shader arrays
7750    pub computeUnitsPerShaderArray: u32, // number of physical CUs per shader array
7751    pub simdPerComputeUnit: u32,         // number of SIMDs per compute unit
7752    pub wavefrontsPerSimd: u32,          // number of wavefront slots in each SIMD
7753    pub wavefrontSize: u32,              // maximum number of threads per wavefront
7754    pub sgprsPerSimd: u32,               // number of physical SGPRs per SIMD
7755    pub minSgprAllocation: u32,          // minimum number of SGPRs that can be allocated by a wave
7756    pub maxSgprAllocation: u32,          // number of available SGPRs
7757    pub sgprAllocationGranularity: u32,  // SGPRs are allocated in groups of this size
7758    pub vgprsPerSimd: u32,               // number of physical VGPRs per SIMD
7759    pub minVgprAllocation: u32,          // minimum number of VGPRs that can be allocated by a wave
7760    pub maxVgprAllocation: u32,          // number of available VGPRs
7761    pub vgprAllocationGranularity: u32,  // VGPRs are allocated in groups of this size
7762}
7763
7764#[repr(C)]
7765#[derive(Copy, Clone)]
7766pub struct PhysicalDeviceShaderCoreProperties2AMD {
7767    pub sType: StructureType,
7768    pub pNext: *mut c_void, // Pointer to next structure
7769    pub shaderCoreFeatures: ShaderCorePropertiesFlagsAMD, // features supported by the shader core
7770    pub activeComputeUnitCount: u32, // number of active compute units across all shader engines/arrays
7771}
7772
7773#[repr(C)]
7774#[derive(Copy, Clone)]
7775pub struct PipelineRasterizationConservativeStateCreateInfoEXT {
7776    pub sType: StructureType,
7777    pub pNext: *const c_void,
7778    pub flags: PipelineRasterizationConservativeStateCreateFlagsEXT, // Reserved
7779    pub conservativeRasterizationMode: ConservativeRasterizationModeEXT, // Conservative rasterization mode
7780    pub extraPrimitiveOverestimationSize: f32, // Extra overestimation to add to the primitive
7781}
7782
7783#[repr(C)]
7784#[derive(Copy, Clone)]
7785pub struct PhysicalDeviceDescriptorIndexingFeatures {
7786    pub sType: StructureType,
7787    pub pNext: *mut c_void,
7788    pub shaderInputAttachmentArrayDynamicIndexing: Bool32,
7789    pub shaderUniformTexelBufferArrayDynamicIndexing: Bool32,
7790    pub shaderStorageTexelBufferArrayDynamicIndexing: Bool32,
7791    pub shaderUniformBufferArrayNonUniformIndexing: Bool32,
7792    pub shaderSampledImageArrayNonUniformIndexing: Bool32,
7793    pub shaderStorageBufferArrayNonUniformIndexing: Bool32,
7794    pub shaderStorageImageArrayNonUniformIndexing: Bool32,
7795    pub shaderInputAttachmentArrayNonUniformIndexing: Bool32,
7796    pub shaderUniformTexelBufferArrayNonUniformIndexing: Bool32,
7797    pub shaderStorageTexelBufferArrayNonUniformIndexing: Bool32,
7798    pub descriptorBindingUniformBufferUpdateAfterBind: Bool32,
7799    pub descriptorBindingSampledImageUpdateAfterBind: Bool32,
7800    pub descriptorBindingStorageImageUpdateAfterBind: Bool32,
7801    pub descriptorBindingStorageBufferUpdateAfterBind: Bool32,
7802    pub descriptorBindingUniformTexelBufferUpdateAfterBind: Bool32,
7803    pub descriptorBindingStorageTexelBufferUpdateAfterBind: Bool32,
7804    pub descriptorBindingUpdateUnusedWhilePending: Bool32,
7805    pub descriptorBindingPartiallyBound: Bool32,
7806    pub descriptorBindingVariableDescriptorCount: Bool32,
7807    pub runtimeDescriptorArray: Bool32,
7808}
7809
7810pub type PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures;
7811
7812#[repr(C)]
7813#[derive(Copy, Clone)]
7814pub struct PhysicalDeviceDescriptorIndexingProperties {
7815    pub sType: StructureType,
7816    pub pNext: *mut c_void,
7817    pub maxUpdateAfterBindDescriptorsInAllPools: u32,
7818    pub shaderUniformBufferArrayNonUniformIndexingNative: Bool32,
7819    pub shaderSampledImageArrayNonUniformIndexingNative: Bool32,
7820    pub shaderStorageBufferArrayNonUniformIndexingNative: Bool32,
7821    pub shaderStorageImageArrayNonUniformIndexingNative: Bool32,
7822    pub shaderInputAttachmentArrayNonUniformIndexingNative: Bool32,
7823    pub robustBufferAccessUpdateAfterBind: Bool32,
7824    pub quadDivergentImplicitLod: Bool32,
7825    pub maxPerStageDescriptorUpdateAfterBindSamplers: u32,
7826    pub maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32,
7827    pub maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32,
7828    pub maxPerStageDescriptorUpdateAfterBindSampledImages: u32,
7829    pub maxPerStageDescriptorUpdateAfterBindStorageImages: u32,
7830    pub maxPerStageDescriptorUpdateAfterBindInputAttachments: u32,
7831    pub maxPerStageUpdateAfterBindResources: u32,
7832    pub maxDescriptorSetUpdateAfterBindSamplers: u32,
7833    pub maxDescriptorSetUpdateAfterBindUniformBuffers: u32,
7834    pub maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32,
7835    pub maxDescriptorSetUpdateAfterBindStorageBuffers: u32,
7836    pub maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32,
7837    pub maxDescriptorSetUpdateAfterBindSampledImages: u32,
7838    pub maxDescriptorSetUpdateAfterBindStorageImages: u32,
7839    pub maxDescriptorSetUpdateAfterBindInputAttachments: u32,
7840}
7841
7842pub type PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties;
7843
7844#[repr(C)]
7845#[derive(Copy, Clone)]
7846pub struct DescriptorSetLayoutBindingFlagsCreateInfo {
7847    pub sType: StructureType,
7848    pub pNext: *const c_void,
7849    pub bindingCount: u32,
7850    pub pBindingFlags: *const DescriptorBindingFlags,
7851}
7852
7853pub type DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo;
7854
7855#[repr(C)]
7856#[derive(Copy, Clone)]
7857pub struct DescriptorSetVariableDescriptorCountAllocateInfo {
7858    pub sType: StructureType,
7859    pub pNext: *const c_void,
7860    pub descriptorSetCount: u32,
7861    pub pDescriptorCounts: *const u32,
7862}
7863
7864pub type DescriptorSetVariableDescriptorCountAllocateInfoEXT =
7865    DescriptorSetVariableDescriptorCountAllocateInfo;
7866
7867#[repr(C)]
7868#[derive(Copy, Clone)]
7869pub struct DescriptorSetVariableDescriptorCountLayoutSupport {
7870    pub sType: StructureType,
7871    pub pNext: *mut c_void,
7872    pub maxVariableDescriptorCount: u32,
7873}
7874
7875pub type DescriptorSetVariableDescriptorCountLayoutSupportEXT =
7876    DescriptorSetVariableDescriptorCountLayoutSupport;
7877
7878#[repr(C)]
7879#[derive(Copy, Clone)]
7880pub struct AttachmentDescription2 {
7881    pub sType: StructureType,
7882    pub pNext: *const c_void,
7883    pub flags: AttachmentDescriptionFlags,
7884    pub format: Format,
7885    pub samples: SampleCountFlagBits,
7886    pub loadOp: AttachmentLoadOp, // Load operation for color or depth data
7887    pub storeOp: AttachmentStoreOp, // Store operation for color or depth data
7888    pub stencilLoadOp: AttachmentLoadOp, // Load operation for stencil data
7889    pub stencilStoreOp: AttachmentStoreOp, // Store operation for stencil data
7890    pub initialLayout: ImageLayout,
7891    pub finalLayout: ImageLayout,
7892}
7893
7894pub type AttachmentDescription2KHR = AttachmentDescription2;
7895
7896#[repr(C)]
7897#[derive(Copy, Clone)]
7898pub struct AttachmentReference2 {
7899    pub sType: StructureType,
7900    pub pNext: *const c_void,
7901    pub attachment: u32,
7902    pub layout: ImageLayout,
7903    pub aspectMask: ImageAspectFlags,
7904}
7905
7906pub type AttachmentReference2KHR = AttachmentReference2;
7907
7908#[repr(C)]
7909#[derive(Copy, Clone)]
7910pub struct SubpassDescription2 {
7911    pub sType: StructureType,
7912    pub pNext: *const c_void,
7913    pub flags: SubpassDescriptionFlags,
7914    pub pipelineBindPoint: PipelineBindPoint,
7915    pub viewMask: u32,
7916    pub inputAttachmentCount: u32,
7917    pub pInputAttachments: *const AttachmentReference2,
7918    pub colorAttachmentCount: u32,
7919    pub pColorAttachments: *const AttachmentReference2,
7920    pub pResolveAttachments: *const AttachmentReference2,
7921    pub pDepthStencilAttachment: *const AttachmentReference2,
7922    pub preserveAttachmentCount: u32,
7923    pub pPreserveAttachments: *const u32,
7924}
7925
7926pub type SubpassDescription2KHR = SubpassDescription2;
7927
7928#[repr(C)]
7929#[derive(Copy, Clone)]
7930pub struct SubpassDependency2 {
7931    pub sType: StructureType,
7932    pub pNext: *const c_void,
7933    pub srcSubpass: u32,
7934    pub dstSubpass: u32,
7935    pub srcStageMask: PipelineStageFlags,
7936    pub dstStageMask: PipelineStageFlags,
7937    pub srcAccessMask: AccessFlags,
7938    pub dstAccessMask: AccessFlags,
7939    pub dependencyFlags: DependencyFlags,
7940    pub viewOffset: i32,
7941}
7942
7943pub type SubpassDependency2KHR = SubpassDependency2;
7944
7945#[repr(C)]
7946#[derive(Copy, Clone)]
7947pub struct RenderPassCreateInfo2 {
7948    pub sType: StructureType,
7949    pub pNext: *const c_void,
7950    pub flags: RenderPassCreateFlags,
7951    pub attachmentCount: u32,
7952    pub pAttachments: *const AttachmentDescription2,
7953    pub subpassCount: u32,
7954    pub pSubpasses: *const SubpassDescription2,
7955    pub dependencyCount: u32,
7956    pub pDependencies: *const SubpassDependency2,
7957    pub correlatedViewMaskCount: u32,
7958    pub pCorrelatedViewMasks: *const u32,
7959}
7960
7961pub type RenderPassCreateInfo2KHR = RenderPassCreateInfo2;
7962
7963#[repr(C)]
7964#[derive(Copy, Clone)]
7965pub struct SubpassBeginInfo {
7966    pub sType: StructureType,
7967    pub pNext: *const c_void,
7968    pub contents: SubpassContents,
7969}
7970
7971pub type SubpassBeginInfoKHR = SubpassBeginInfo;
7972
7973#[repr(C)]
7974#[derive(Copy, Clone)]
7975pub struct SubpassEndInfo {
7976    pub sType: StructureType,
7977    pub pNext: *const c_void,
7978}
7979
7980pub type SubpassEndInfoKHR = SubpassEndInfo;
7981
7982#[repr(C)]
7983#[derive(Copy, Clone)]
7984pub struct PhysicalDeviceTimelineSemaphoreFeatures {
7985    pub sType: StructureType,
7986    pub pNext: *mut c_void,
7987    pub timelineSemaphore: Bool32,
7988}
7989
7990pub type PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures;
7991
7992#[repr(C)]
7993#[derive(Copy, Clone)]
7994pub struct PhysicalDeviceTimelineSemaphoreProperties {
7995    pub sType: StructureType,
7996    pub pNext: *mut c_void,
7997    pub maxTimelineSemaphoreValueDifference: u64,
7998}
7999
8000pub type PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties;
8001
8002#[repr(C)]
8003#[derive(Copy, Clone)]
8004pub struct SemaphoreTypeCreateInfo {
8005    pub sType: StructureType,
8006    pub pNext: *const c_void,
8007    pub semaphoreType: SemaphoreType,
8008    pub initialValue: u64,
8009}
8010
8011pub type SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo;
8012
8013#[repr(C)]
8014#[derive(Copy, Clone)]
8015pub struct TimelineSemaphoreSubmitInfo {
8016    pub sType: StructureType,
8017    pub pNext: *const c_void,
8018    pub waitSemaphoreValueCount: u32,
8019    pub pWaitSemaphoreValues: *const u64,
8020    pub signalSemaphoreValueCount: u32,
8021    pub pSignalSemaphoreValues: *const u64,
8022}
8023
8024pub type TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo;
8025
8026#[repr(C)]
8027#[derive(Copy, Clone)]
8028pub struct SemaphoreWaitInfo {
8029    pub sType: StructureType,
8030    pub pNext: *const c_void,
8031    pub flags: SemaphoreWaitFlags,
8032    pub semaphoreCount: u32,
8033    pub pSemaphores: *const Semaphore,
8034    pub pValues: *const u64,
8035}
8036
8037pub type SemaphoreWaitInfoKHR = SemaphoreWaitInfo;
8038
8039#[repr(C)]
8040#[derive(Copy, Clone)]
8041pub struct SemaphoreSignalInfo {
8042    pub sType: StructureType,
8043    pub pNext: *const c_void,
8044    pub semaphore: Semaphore,
8045    pub value: u64,
8046}
8047
8048pub type SemaphoreSignalInfoKHR = SemaphoreSignalInfo;
8049
8050#[repr(C)]
8051#[derive(Copy, Clone)]
8052pub struct VertexInputBindingDivisorDescriptionEXT {
8053    pub binding: u32,
8054    pub divisor: u32,
8055}
8056
8057#[repr(C)]
8058#[derive(Copy, Clone)]
8059pub struct PipelineVertexInputDivisorStateCreateInfoEXT {
8060    pub sType: StructureType,
8061    pub pNext: *const c_void,
8062    pub vertexBindingDivisorCount: u32,
8063    pub pVertexBindingDivisors: *const VertexInputBindingDivisorDescriptionEXT,
8064}
8065
8066#[repr(C)]
8067#[derive(Copy, Clone)]
8068pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
8069    pub sType: StructureType,
8070    pub pNext: *mut c_void,
8071    pub maxVertexAttribDivisor: u32, // max value of vertex attribute divisor
8072}
8073
8074#[repr(C)]
8075#[derive(Copy, Clone)]
8076pub struct PhysicalDevicePCIBusInfoPropertiesEXT {
8077    pub sType: StructureType,
8078    pub pNext: *mut c_void,
8079    pub pciDomain: u32,
8080    pub pciBus: u32,
8081    pub pciDevice: u32,
8082    pub pciFunction: u32,
8083}
8084
8085#[repr(C)]
8086#[derive(Copy, Clone)]
8087pub struct CommandBufferInheritanceConditionalRenderingInfoEXT {
8088    pub sType: StructureType,
8089    pub pNext: *const c_void,
8090    pub conditionalRenderingEnable: Bool32, // Whether this secondary command buffer may be executed during an active conditional rendering
8091}
8092
8093#[repr(C)]
8094#[derive(Copy, Clone)]
8095pub struct PhysicalDevice8BitStorageFeatures {
8096    pub sType: StructureType,
8097    pub pNext: *mut c_void,
8098    pub storageBuffer8BitAccess: Bool32, // 8-bit integer variables supported in StorageBuffer
8099    pub uniformAndStorageBuffer8BitAccess: Bool32, // 8-bit integer variables supported in StorageBuffer and Uniform
8100    pub storagePushConstant8: Bool32, // 8-bit integer variables supported in PushConstant
8101}
8102
8103pub type PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures;
8104
8105#[repr(C)]
8106#[derive(Copy, Clone)]
8107pub struct PhysicalDeviceConditionalRenderingFeaturesEXT {
8108    pub sType: StructureType,
8109    pub pNext: *mut c_void,
8110    pub conditionalRendering: Bool32,
8111    pub inheritedConditionalRendering: Bool32,
8112}
8113
8114#[repr(C)]
8115#[derive(Copy, Clone)]
8116pub struct PhysicalDeviceVulkanMemoryModelFeatures {
8117    pub sType: StructureType,
8118    pub pNext: *mut c_void,
8119    pub vulkanMemoryModel: Bool32,
8120    pub vulkanMemoryModelDeviceScope: Bool32,
8121    pub vulkanMemoryModelAvailabilityVisibilityChains: Bool32,
8122}
8123
8124pub type PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures;
8125
8126#[repr(C)]
8127#[derive(Copy, Clone)]
8128pub struct PhysicalDeviceShaderAtomicInt64Features {
8129    pub sType: StructureType,
8130    pub pNext: *mut c_void,
8131    pub shaderBufferInt64Atomics: Bool32,
8132    pub shaderSharedInt64Atomics: Bool32,
8133}
8134
8135pub type PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features;
8136
8137#[repr(C)]
8138#[derive(Copy, Clone)]
8139pub struct PhysicalDeviceShaderAtomicFloatFeaturesEXT {
8140    pub sType: StructureType,
8141    pub pNext: *mut c_void,
8142    pub shaderBufferFloat32Atomics: Bool32,
8143    pub shaderBufferFloat32AtomicAdd: Bool32,
8144    pub shaderBufferFloat64Atomics: Bool32,
8145    pub shaderBufferFloat64AtomicAdd: Bool32,
8146    pub shaderSharedFloat32Atomics: Bool32,
8147    pub shaderSharedFloat32AtomicAdd: Bool32,
8148    pub shaderSharedFloat64Atomics: Bool32,
8149    pub shaderSharedFloat64AtomicAdd: Bool32,
8150    pub shaderImageFloat32Atomics: Bool32,
8151    pub shaderImageFloat32AtomicAdd: Bool32,
8152    pub sparseImageFloat32Atomics: Bool32,
8153    pub sparseImageFloat32AtomicAdd: Bool32,
8154}
8155
8156#[repr(C)]
8157#[derive(Copy, Clone)]
8158pub struct PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
8159    pub sType: StructureType,
8160    pub pNext: *mut c_void,
8161    pub shaderBufferFloat16Atomics: Bool32,
8162    pub shaderBufferFloat16AtomicAdd: Bool32,
8163    pub shaderBufferFloat16AtomicMinMax: Bool32,
8164    pub shaderBufferFloat32AtomicMinMax: Bool32,
8165    pub shaderBufferFloat64AtomicMinMax: Bool32,
8166    pub shaderSharedFloat16Atomics: Bool32,
8167    pub shaderSharedFloat16AtomicAdd: Bool32,
8168    pub shaderSharedFloat16AtomicMinMax: Bool32,
8169    pub shaderSharedFloat32AtomicMinMax: Bool32,
8170    pub shaderSharedFloat64AtomicMinMax: Bool32,
8171    pub shaderImageFloat32AtomicMinMax: Bool32,
8172    pub sparseImageFloat32AtomicMinMax: Bool32,
8173}
8174
8175#[repr(C)]
8176#[derive(Copy, Clone)]
8177pub struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT {
8178    pub sType: StructureType,
8179    pub pNext: *mut c_void,
8180    pub vertexAttributeInstanceRateDivisor: Bool32,
8181    pub vertexAttributeInstanceRateZeroDivisor: Bool32,
8182}
8183
8184#[repr(C)]
8185#[derive(Copy, Clone)]
8186pub struct QueueFamilyCheckpointPropertiesNV {
8187    pub sType: StructureType,
8188    pub pNext: *mut c_void,
8189    pub checkpointExecutionStageMask: PipelineStageFlags,
8190}
8191
8192#[repr(C)]
8193#[derive(Copy, Clone)]
8194pub struct CheckpointDataNV {
8195    pub sType: StructureType,
8196    pub pNext: *mut c_void,
8197    pub stage: PipelineStageFlagBits,
8198    pub pCheckpointMarker: *mut c_void,
8199}
8200
8201#[repr(C)]
8202#[derive(Copy, Clone)]
8203pub struct PhysicalDeviceDepthStencilResolveProperties {
8204    pub sType: StructureType,
8205    pub pNext: *mut c_void,
8206    pub supportedDepthResolveModes: ResolveModeFlags, // supported depth resolve modes
8207    pub supportedStencilResolveModes: ResolveModeFlags, // supported stencil resolve modes
8208    pub independentResolveNone: Bool32, // depth and stencil resolve modes can be set independently if one of them is none
8209    pub independentResolve: Bool32,     // depth and stencil resolve modes can be set independently
8210}
8211
8212pub type PhysicalDeviceDepthStencilResolvePropertiesKHR =
8213    PhysicalDeviceDepthStencilResolveProperties;
8214
8215#[repr(C)]
8216#[derive(Copy, Clone)]
8217pub struct SubpassDescriptionDepthStencilResolve {
8218    pub sType: StructureType,
8219    pub pNext: *const c_void,
8220    pub depthResolveMode: ResolveModeFlagBits, // depth resolve mode
8221    pub stencilResolveMode: ResolveModeFlagBits, // stencil resolve mode
8222    pub pDepthStencilResolveAttachment: *const AttachmentReference2, // depth/stencil resolve attachment
8223}
8224
8225pub type SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve;
8226
8227#[repr(C)]
8228#[derive(Copy, Clone)]
8229pub struct ImageViewASTCDecodeModeEXT {
8230    pub sType: StructureType,
8231    pub pNext: *const c_void,
8232    pub decodeMode: Format,
8233}
8234
8235#[repr(C)]
8236#[derive(Copy, Clone)]
8237pub struct PhysicalDeviceASTCDecodeFeaturesEXT {
8238    pub sType: StructureType,
8239    pub pNext: *mut c_void,
8240    pub decodeModeSharedExponent: Bool32,
8241}
8242
8243#[repr(C)]
8244#[derive(Copy, Clone)]
8245pub struct PhysicalDeviceTransformFeedbackFeaturesEXT {
8246    pub sType: StructureType,
8247    pub pNext: *mut c_void,
8248    pub transformFeedback: Bool32,
8249    pub geometryStreams: Bool32,
8250}
8251
8252#[repr(C)]
8253#[derive(Copy, Clone)]
8254pub struct PhysicalDeviceTransformFeedbackPropertiesEXT {
8255    pub sType: StructureType,
8256    pub pNext: *mut c_void,
8257    pub maxTransformFeedbackStreams: u32,
8258    pub maxTransformFeedbackBuffers: u32,
8259    pub maxTransformFeedbackBufferSize: DeviceSize,
8260    pub maxTransformFeedbackStreamDataSize: u32,
8261    pub maxTransformFeedbackBufferDataSize: u32,
8262    pub maxTransformFeedbackBufferDataStride: u32,
8263    pub transformFeedbackQueries: Bool32,
8264    pub transformFeedbackStreamsLinesTriangles: Bool32,
8265    pub transformFeedbackRasterizationStreamSelect: Bool32,
8266    pub transformFeedbackDraw: Bool32,
8267}
8268
8269#[repr(C)]
8270#[derive(Copy, Clone)]
8271pub struct PipelineRasterizationStateStreamCreateInfoEXT {
8272    pub sType: StructureType,
8273    pub pNext: *const c_void,
8274    pub flags: PipelineRasterizationStateStreamCreateFlagsEXT,
8275    pub rasterizationStream: u32,
8276}
8277
8278#[repr(C)]
8279#[derive(Copy, Clone)]
8280pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
8281    pub sType: StructureType,
8282    pub pNext: *mut c_void,
8283    pub representativeFragmentTest: Bool32,
8284}
8285
8286#[repr(C)]
8287#[derive(Copy, Clone)]
8288pub struct PipelineRepresentativeFragmentTestStateCreateInfoNV {
8289    pub sType: StructureType,
8290    pub pNext: *const c_void,
8291    pub representativeFragmentTestEnable: Bool32,
8292}
8293
8294#[repr(C)]
8295#[derive(Copy, Clone)]
8296pub struct PhysicalDeviceExclusiveScissorFeaturesNV {
8297    pub sType: StructureType,
8298    pub pNext: *mut c_void,
8299    pub exclusiveScissor: Bool32,
8300}
8301
8302#[repr(C)]
8303#[derive(Copy, Clone)]
8304pub struct PipelineViewportExclusiveScissorStateCreateInfoNV {
8305    pub sType: StructureType,
8306    pub pNext: *const c_void,
8307    pub exclusiveScissorCount: u32,
8308    pub pExclusiveScissors: *const Rect2D,
8309}
8310
8311#[repr(C)]
8312#[derive(Copy, Clone)]
8313pub struct PhysicalDeviceCornerSampledImageFeaturesNV {
8314    pub sType: StructureType,
8315    pub pNext: *mut c_void,
8316    pub cornerSampledImage: Bool32,
8317}
8318
8319#[repr(C)]
8320#[derive(Copy, Clone)]
8321pub struct PhysicalDeviceComputeShaderDerivativesFeaturesNV {
8322    pub sType: StructureType,
8323    pub pNext: *mut c_void,
8324    pub computeDerivativeGroupQuads: Bool32,
8325    pub computeDerivativeGroupLinear: Bool32,
8326}
8327
8328pub type PhysicalDeviceFragmentShaderBarycentricFeaturesNV =
8329    PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
8330
8331#[repr(C)]
8332#[derive(Copy, Clone)]
8333pub struct PhysicalDeviceShaderImageFootprintFeaturesNV {
8334    pub sType: StructureType,
8335    pub pNext: *mut c_void,
8336    pub imageFootprint: Bool32,
8337}
8338
8339#[repr(C)]
8340#[derive(Copy, Clone)]
8341pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
8342    pub sType: StructureType,
8343    pub pNext: *mut c_void,
8344    pub dedicatedAllocationImageAliasing: Bool32,
8345}
8346
8347#[repr(C)]
8348#[derive(Copy, Clone)]
8349pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNV {
8350    pub sType: StructureType,
8351    pub pNext: *mut c_void,
8352    pub indirectCopy: Bool32,
8353}
8354
8355#[repr(C)]
8356#[derive(Copy, Clone)]
8357pub struct PhysicalDeviceCopyMemoryIndirectPropertiesNV {
8358    pub sType: StructureType,
8359    pub pNext: *mut c_void,
8360    pub supportedQueues: QueueFlags, // Bitfield of which queues are supported for indirect copy
8361}
8362
8363#[repr(C)]
8364#[derive(Copy, Clone)]
8365pub struct PhysicalDeviceMemoryDecompressionFeaturesNV {
8366    pub sType: StructureType,
8367    pub pNext: *mut c_void,
8368    pub memoryDecompression: Bool32,
8369}
8370
8371#[repr(C)]
8372#[derive(Copy, Clone)]
8373pub struct PhysicalDeviceMemoryDecompressionPropertiesNV {
8374    pub sType: StructureType,
8375    pub pNext: *mut c_void,
8376    pub decompressionMethods: MemoryDecompressionMethodFlagsNV,
8377    pub maxDecompressionIndirectCount: u64,
8378}
8379
8380#[repr(C)]
8381#[derive(Copy, Clone)]
8382pub struct ShadingRatePaletteNV {
8383    pub shadingRatePaletteEntryCount: u32,
8384    pub pShadingRatePaletteEntries: *const ShadingRatePaletteEntryNV,
8385}
8386
8387#[repr(C)]
8388#[derive(Copy, Clone)]
8389pub struct PipelineViewportShadingRateImageStateCreateInfoNV {
8390    pub sType: StructureType,
8391    pub pNext: *const c_void,
8392    pub shadingRateImageEnable: Bool32,
8393    pub viewportCount: u32,
8394    pub pShadingRatePalettes: *const ShadingRatePaletteNV,
8395}
8396
8397#[repr(C)]
8398#[derive(Copy, Clone)]
8399pub struct PhysicalDeviceShadingRateImageFeaturesNV {
8400    pub sType: StructureType,
8401    pub pNext: *mut c_void,
8402    pub shadingRateImage: Bool32,
8403    pub shadingRateCoarseSampleOrder: Bool32,
8404}
8405
8406#[repr(C)]
8407#[derive(Copy, Clone)]
8408pub struct PhysicalDeviceShadingRateImagePropertiesNV {
8409    pub sType: StructureType,
8410    pub pNext: *mut c_void,
8411    pub shadingRateTexelSize: Extent2D,
8412    pub shadingRatePaletteSize: u32,
8413    pub shadingRateMaxCoarseSamples: u32,
8414}
8415
8416#[repr(C)]
8417#[derive(Copy, Clone)]
8418pub struct PhysicalDeviceInvocationMaskFeaturesHUAWEI {
8419    pub sType: StructureType,
8420    pub pNext: *mut c_void,
8421    pub invocationMask: Bool32,
8422}
8423
8424#[repr(C)]
8425#[derive(Copy, Clone)]
8426pub struct CoarseSampleLocationNV {
8427    pub pixelX: u32,
8428    pub pixelY: u32,
8429    pub sample: u32,
8430}
8431
8432#[repr(C)]
8433#[derive(Copy, Clone)]
8434pub struct CoarseSampleOrderCustomNV {
8435    pub shadingRate: ShadingRatePaletteEntryNV,
8436    pub sampleCount: u32,
8437    pub sampleLocationCount: u32,
8438    pub pSampleLocations: *const CoarseSampleLocationNV,
8439}
8440
8441#[repr(C)]
8442#[derive(Copy, Clone)]
8443pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNV {
8444    pub sType: StructureType,
8445    pub pNext: *const c_void,
8446    pub sampleOrderType: CoarseSampleOrderTypeNV,
8447    pub customSampleOrderCount: u32,
8448    pub pCustomSampleOrders: *const CoarseSampleOrderCustomNV,
8449}
8450
8451#[repr(C)]
8452#[derive(Copy, Clone)]
8453pub struct PhysicalDeviceMeshShaderFeaturesNV {
8454    pub sType: StructureType,
8455    pub pNext: *mut c_void,
8456    pub taskShader: Bool32,
8457    pub meshShader: Bool32,
8458}
8459
8460#[repr(C)]
8461#[derive(Copy, Clone)]
8462pub struct PhysicalDeviceMeshShaderPropertiesNV {
8463    pub sType: StructureType,
8464    pub pNext: *mut c_void,
8465    pub maxDrawMeshTasksCount: u32,
8466    pub maxTaskWorkGroupInvocations: u32,
8467    pub maxTaskWorkGroupSize: [u32; 3],
8468    pub maxTaskTotalMemorySize: u32,
8469    pub maxTaskOutputCount: u32,
8470    pub maxMeshWorkGroupInvocations: u32,
8471    pub maxMeshWorkGroupSize: [u32; 3],
8472    pub maxMeshTotalMemorySize: u32,
8473    pub maxMeshOutputVertices: u32,
8474    pub maxMeshOutputPrimitives: u32,
8475    pub maxMeshMultiviewViewCount: u32,
8476    pub meshOutputPerVertexGranularity: u32,
8477    pub meshOutputPerPrimitiveGranularity: u32,
8478}
8479
8480#[repr(C)]
8481#[derive(Copy, Clone)]
8482pub struct DrawMeshTasksIndirectCommandNV {
8483    pub taskCount: u32,
8484    pub firstTask: u32,
8485}
8486
8487#[repr(C)]
8488#[derive(Copy, Clone)]
8489pub struct PhysicalDeviceMeshShaderFeaturesEXT {
8490    pub sType: StructureType,
8491    pub pNext: *mut c_void,
8492    pub taskShader: Bool32,
8493    pub meshShader: Bool32,
8494    pub multiviewMeshShader: Bool32,
8495    pub primitiveFragmentShadingRateMeshShader: Bool32,
8496    pub meshShaderQueries: Bool32,
8497}
8498
8499#[repr(C)]
8500#[derive(Copy, Clone)]
8501pub struct PhysicalDeviceMeshShaderPropertiesEXT {
8502    pub sType: StructureType,
8503    pub pNext: *mut c_void,
8504    pub maxTaskWorkGroupTotalCount: u32,
8505    pub maxTaskWorkGroupCount: [u32; 3],
8506    pub maxTaskWorkGroupInvocations: u32,
8507    pub maxTaskWorkGroupSize: [u32; 3],
8508    pub maxTaskPayloadSize: u32,
8509    pub maxTaskSharedMemorySize: u32,
8510    pub maxTaskPayloadAndSharedMemorySize: u32,
8511    pub maxMeshWorkGroupTotalCount: u32,
8512    pub maxMeshWorkGroupCount: [u32; 3],
8513    pub maxMeshWorkGroupInvocations: u32,
8514    pub maxMeshWorkGroupSize: [u32; 3],
8515    pub maxMeshSharedMemorySize: u32,
8516    pub maxMeshPayloadAndSharedMemorySize: u32,
8517    pub maxMeshOutputMemorySize: u32,
8518    pub maxMeshPayloadAndOutputMemorySize: u32,
8519    pub maxMeshOutputComponents: u32,
8520    pub maxMeshOutputVertices: u32,
8521    pub maxMeshOutputPrimitives: u32,
8522    pub maxMeshOutputLayers: u32,
8523    pub maxMeshMultiviewViewCount: u32,
8524    pub meshOutputPerVertexGranularity: u32,
8525    pub meshOutputPerPrimitiveGranularity: u32,
8526    pub maxPreferredTaskWorkGroupInvocations: u32,
8527    pub maxPreferredMeshWorkGroupInvocations: u32,
8528    pub prefersLocalInvocationVertexOutput: Bool32,
8529    pub prefersLocalInvocationPrimitiveOutput: Bool32,
8530    pub prefersCompactVertexOutput: Bool32,
8531    pub prefersCompactPrimitiveOutput: Bool32,
8532}
8533
8534#[repr(C)]
8535#[derive(Copy, Clone)]
8536pub struct DrawMeshTasksIndirectCommandEXT {
8537    pub groupCountX: u32,
8538    pub groupCountY: u32,
8539    pub groupCountZ: u32,
8540}
8541
8542#[repr(C)]
8543#[derive(Copy, Clone)]
8544pub struct RayTracingShaderGroupCreateInfoNV {
8545    pub sType: StructureType,
8546    pub pNext: *const c_void,
8547    pub typ: RayTracingShaderGroupTypeKHR,
8548    pub generalShader: u32,
8549    pub closestHitShader: u32,
8550    pub anyHitShader: u32,
8551    pub intersectionShader: u32,
8552}
8553
8554#[repr(C)]
8555#[derive(Copy, Clone)]
8556pub struct RayTracingShaderGroupCreateInfoKHR {
8557    pub sType: StructureType,
8558    pub pNext: *const c_void,
8559    pub typ: RayTracingShaderGroupTypeKHR,
8560    pub generalShader: u32,
8561    pub closestHitShader: u32,
8562    pub anyHitShader: u32,
8563    pub intersectionShader: u32,
8564    pub pShaderGroupCaptureReplayHandle: *const c_void,
8565}
8566
8567#[repr(C)]
8568#[derive(Copy, Clone)]
8569pub struct RayTracingPipelineCreateInfoNV {
8570    pub sType: StructureType,
8571    pub pNext: *const c_void,
8572    pub flags: PipelineCreateFlags, // Pipeline creation flags
8573    pub stageCount: u32,
8574    pub pStages: *const PipelineShaderStageCreateInfo, // One entry for each active shader stage
8575    pub groupCount: u32,
8576    pub pGroups: *const RayTracingShaderGroupCreateInfoNV,
8577    pub maxRecursionDepth: u32,
8578    pub layout: PipelineLayout,       // Interface layout of the pipeline
8579    pub basePipelineHandle: Pipeline, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
8580    pub basePipelineIndex: i32, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
8581}
8582
8583#[repr(C)]
8584#[derive(Copy, Clone)]
8585pub struct RayTracingPipelineCreateInfoKHR {
8586    pub sType: StructureType,
8587    pub pNext: *const c_void,
8588    pub flags: PipelineCreateFlags, // Pipeline creation flags
8589    pub stageCount: u32,
8590    pub pStages: *const PipelineShaderStageCreateInfo, // One entry for each active shader stage
8591    pub groupCount: u32,
8592    pub pGroups: *const RayTracingShaderGroupCreateInfoKHR,
8593    pub maxPipelineRayRecursionDepth: u32,
8594    pub pLibraryInfo: *const PipelineLibraryCreateInfoKHR,
8595    pub pLibraryInterface: *const RayTracingPipelineInterfaceCreateInfoKHR,
8596    pub pDynamicState: *const PipelineDynamicStateCreateInfo,
8597    pub layout: PipelineLayout,       // Interface layout of the pipeline
8598    pub basePipelineHandle: Pipeline, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of
8599    pub basePipelineIndex: i32, // If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of
8600}
8601
8602#[repr(C)]
8603#[derive(Copy, Clone)]
8604pub struct GeometryTrianglesNV {
8605    pub sType: StructureType,
8606    pub pNext: *const c_void,
8607    pub vertexData: Buffer,
8608    pub vertexOffset: DeviceSize,
8609    pub vertexCount: u32,
8610    pub vertexStride: DeviceSize,
8611    pub vertexFormat: Format,
8612    pub indexData: Buffer,
8613    pub indexOffset: DeviceSize,
8614    pub indexCount: u32,
8615    pub indexType: IndexType,
8616    pub transformData: Buffer, // Optional reference to array of floats representing a 3x4 row major affine transformation matrix.
8617    pub transformOffset: DeviceSize,
8618}
8619
8620#[repr(C)]
8621#[derive(Copy, Clone)]
8622pub struct GeometryAABBNV {
8623    pub sType: StructureType,
8624    pub pNext: *const c_void,
8625    pub aabbData: Buffer,
8626    pub numAABBs: u32,
8627    pub stride: u32,        // Stride in bytes between AABBs
8628    pub offset: DeviceSize, // Offset in bytes of the first AABB in aabbData
8629}
8630
8631#[repr(C)]
8632#[derive(Copy, Clone)]
8633pub struct GeometryDataNV {
8634    pub triangles: GeometryTrianglesNV,
8635    pub aabbs: GeometryAABBNV,
8636}
8637
8638#[repr(C)]
8639#[derive(Copy, Clone)]
8640pub struct GeometryNV {
8641    pub sType: StructureType,
8642    pub pNext: *const c_void,
8643    pub geometryType: GeometryTypeKHR,
8644    pub geometry: GeometryDataNV,
8645    pub flags: GeometryFlagsKHR,
8646}
8647
8648#[repr(C)]
8649#[derive(Copy, Clone)]
8650pub struct AccelerationStructureInfoNV {
8651    pub sType: StructureType,
8652    pub pNext: *const c_void,
8653    pub typ: AccelerationStructureTypeNV,
8654    pub flags: BuildAccelerationStructureFlagsNV,
8655    pub instanceCount: u32,
8656    pub geometryCount: u32,
8657    pub pGeometries: *const GeometryNV,
8658}
8659
8660#[repr(C)]
8661#[derive(Copy, Clone)]
8662pub struct AccelerationStructureCreateInfoNV {
8663    pub sType: StructureType,
8664    pub pNext: *const c_void,
8665    pub compactedSize: DeviceSize,
8666    pub info: AccelerationStructureInfoNV,
8667}
8668
8669#[repr(C)]
8670#[derive(Copy, Clone)]
8671pub struct BindAccelerationStructureMemoryInfoNV {
8672    pub sType: StructureType,
8673    pub pNext: *const c_void,
8674    pub accelerationStructure: AccelerationStructureNV,
8675    pub memory: DeviceMemory,
8676    pub memoryOffset: DeviceSize,
8677    pub deviceIndexCount: u32,
8678    pub pDeviceIndices: *const u32,
8679}
8680
8681#[repr(C)]
8682#[derive(Copy, Clone)]
8683pub struct WriteDescriptorSetAccelerationStructureKHR {
8684    pub sType: StructureType,
8685    pub pNext: *const c_void,
8686    pub accelerationStructureCount: u32,
8687    pub pAccelerationStructures: *const AccelerationStructureKHR,
8688}
8689
8690#[repr(C)]
8691#[derive(Copy, Clone)]
8692pub struct WriteDescriptorSetAccelerationStructureNV {
8693    pub sType: StructureType,
8694    pub pNext: *const c_void,
8695    pub accelerationStructureCount: u32,
8696    pub pAccelerationStructures: *const AccelerationStructureNV,
8697}
8698
8699#[repr(C)]
8700#[derive(Copy, Clone)]
8701pub struct AccelerationStructureMemoryRequirementsInfoNV {
8702    pub sType: StructureType,
8703    pub pNext: *const c_void,
8704    pub typ: AccelerationStructureMemoryRequirementsTypeNV,
8705    pub accelerationStructure: AccelerationStructureNV,
8706}
8707
8708#[repr(C)]
8709#[derive(Copy, Clone)]
8710pub struct PhysicalDeviceAccelerationStructureFeaturesKHR {
8711    pub sType: StructureType,
8712    pub pNext: *mut c_void,
8713    pub accelerationStructure: Bool32,
8714    pub accelerationStructureCaptureReplay: Bool32,
8715    pub accelerationStructureIndirectBuild: Bool32,
8716    pub accelerationStructureHostCommands: Bool32,
8717    pub descriptorBindingAccelerationStructureUpdateAfterBind: Bool32,
8718}
8719
8720#[repr(C)]
8721#[derive(Copy, Clone)]
8722pub struct PhysicalDeviceRayTracingPipelineFeaturesKHR {
8723    pub sType: StructureType,
8724    pub pNext: *mut c_void,
8725    pub rayTracingPipeline: Bool32,
8726    pub rayTracingPipelineShaderGroupHandleCaptureReplay: Bool32,
8727    pub rayTracingPipelineShaderGroupHandleCaptureReplayMixed: Bool32,
8728    pub rayTracingPipelineTraceRaysIndirect: Bool32,
8729    pub rayTraversalPrimitiveCulling: Bool32,
8730}
8731
8732#[repr(C)]
8733#[derive(Copy, Clone)]
8734pub struct PhysicalDeviceRayQueryFeaturesKHR {
8735    pub sType: StructureType,
8736    pub pNext: *mut c_void,
8737    pub rayQuery: Bool32,
8738}
8739
8740#[repr(C)]
8741#[derive(Copy, Clone)]
8742pub struct PhysicalDeviceAccelerationStructurePropertiesKHR {
8743    pub sType: StructureType,
8744    pub pNext: *mut c_void,
8745    pub maxGeometryCount: u64,
8746    pub maxInstanceCount: u64,
8747    pub maxPrimitiveCount: u64,
8748    pub maxPerStageDescriptorAccelerationStructures: u32,
8749    pub maxPerStageDescriptorUpdateAfterBindAccelerationStructures: u32,
8750    pub maxDescriptorSetAccelerationStructures: u32,
8751    pub maxDescriptorSetUpdateAfterBindAccelerationStructures: u32,
8752    pub minAccelerationStructureScratchOffsetAlignment: u32,
8753}
8754
8755#[repr(C)]
8756#[derive(Copy, Clone)]
8757pub struct PhysicalDeviceRayTracingPipelinePropertiesKHR {
8758    pub sType: StructureType,
8759    pub pNext: *mut c_void,
8760    pub shaderGroupHandleSize: u32,
8761    pub maxRayRecursionDepth: u32,
8762    pub maxShaderGroupStride: u32,
8763    pub shaderGroupBaseAlignment: u32,
8764    pub shaderGroupHandleCaptureReplaySize: u32,
8765    pub maxRayDispatchInvocationCount: u32,
8766    pub shaderGroupHandleAlignment: u32,
8767    pub maxRayHitAttributeSize: u32,
8768}
8769
8770#[repr(C)]
8771#[derive(Copy, Clone)]
8772pub struct PhysicalDeviceRayTracingPropertiesNV {
8773    pub sType: StructureType,
8774    pub pNext: *mut c_void,
8775    pub shaderGroupHandleSize: u32,
8776    pub maxRecursionDepth: u32,
8777    pub maxShaderGroupStride: u32,
8778    pub shaderGroupBaseAlignment: u32,
8779    pub maxGeometryCount: u64,
8780    pub maxInstanceCount: u64,
8781    pub maxTriangleCount: u64,
8782    pub maxDescriptorSetAccelerationStructures: u32,
8783}
8784
8785#[repr(C)]
8786#[derive(Copy, Clone)]
8787pub struct StridedDeviceAddressRegionKHR {
8788    pub deviceAddress: DeviceAddress,
8789    pub stride: DeviceSize,
8790    pub size: DeviceSize,
8791}
8792
8793#[repr(C)]
8794#[derive(Copy, Clone)]
8795pub struct TraceRaysIndirectCommandKHR {
8796    pub width: u32,
8797    pub height: u32,
8798    pub depth: u32,
8799}
8800
8801#[repr(C)]
8802#[derive(Copy, Clone)]
8803pub struct TraceRaysIndirectCommand2KHR {
8804    pub raygenShaderRecordAddress: DeviceAddress,
8805    pub raygenShaderRecordSize: DeviceSize,
8806    pub missShaderBindingTableAddress: DeviceAddress,
8807    pub missShaderBindingTableSize: DeviceSize,
8808    pub missShaderBindingTableStride: DeviceSize,
8809    pub hitShaderBindingTableAddress: DeviceAddress,
8810    pub hitShaderBindingTableSize: DeviceSize,
8811    pub hitShaderBindingTableStride: DeviceSize,
8812    pub callableShaderBindingTableAddress: DeviceAddress,
8813    pub callableShaderBindingTableSize: DeviceSize,
8814    pub callableShaderBindingTableStride: DeviceSize,
8815    pub width: u32,
8816    pub height: u32,
8817    pub depth: u32,
8818}
8819
8820#[repr(C)]
8821#[derive(Copy, Clone)]
8822pub struct PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
8823    pub sType: StructureType,
8824    pub pNext: *mut c_void,
8825    pub rayTracingMaintenance1: Bool32,
8826    pub rayTracingPipelineTraceRaysIndirect2: Bool32,
8827}
8828
8829#[repr(C)]
8830#[derive(Copy, Clone)]
8831pub struct DrmFormatModifierPropertiesListEXT {
8832    pub sType: StructureType,
8833    pub pNext: *mut c_void,
8834    pub drmFormatModifierCount: u32,
8835    pub pDrmFormatModifierProperties: *mut DrmFormatModifierPropertiesEXT,
8836}
8837
8838#[repr(C)]
8839#[derive(Copy, Clone)]
8840pub struct DrmFormatModifierPropertiesEXT {
8841    pub drmFormatModifier: u64,
8842    pub drmFormatModifierPlaneCount: u32,
8843    pub drmFormatModifierTilingFeatures: FormatFeatureFlags,
8844}
8845
8846#[repr(C)]
8847#[derive(Copy, Clone)]
8848pub struct PhysicalDeviceImageDrmFormatModifierInfoEXT {
8849    pub sType: StructureType,
8850    pub pNext: *const c_void,
8851    pub drmFormatModifier: u64,
8852    pub sharingMode: SharingMode,
8853    pub queueFamilyIndexCount: u32,
8854    pub pQueueFamilyIndices: *const u32,
8855}
8856
8857#[repr(C)]
8858#[derive(Copy, Clone)]
8859pub struct ImageDrmFormatModifierListCreateInfoEXT {
8860    pub sType: StructureType,
8861    pub pNext: *const c_void,
8862    pub drmFormatModifierCount: u32,
8863    pub pDrmFormatModifiers: *const u64,
8864}
8865
8866#[repr(C)]
8867#[derive(Copy, Clone)]
8868pub struct ImageDrmFormatModifierExplicitCreateInfoEXT {
8869    pub sType: StructureType,
8870    pub pNext: *const c_void,
8871    pub drmFormatModifier: u64,
8872    pub drmFormatModifierPlaneCount: u32,
8873    pub pPlaneLayouts: *const SubresourceLayout,
8874}
8875
8876#[repr(C)]
8877#[derive(Copy, Clone)]
8878pub struct ImageDrmFormatModifierPropertiesEXT {
8879    pub sType: StructureType,
8880    pub pNext: *mut c_void,
8881    pub drmFormatModifier: u64,
8882}
8883
8884#[repr(C)]
8885#[derive(Copy, Clone)]
8886pub struct ImageStencilUsageCreateInfo {
8887    pub sType: StructureType,
8888    pub pNext: *const c_void,
8889    pub stencilUsage: ImageUsageFlags,
8890}
8891
8892pub type ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo;
8893
8894#[repr(C)]
8895#[derive(Copy, Clone)]
8896pub struct DeviceMemoryOverallocationCreateInfoAMD {
8897    pub sType: StructureType,
8898    pub pNext: *const c_void,
8899    pub overallocationBehavior: MemoryOverallocationBehaviorAMD,
8900}
8901
8902#[repr(C)]
8903#[derive(Copy, Clone)]
8904pub struct PhysicalDeviceFragmentDensityMapFeaturesEXT {
8905    pub sType: StructureType,
8906    pub pNext: *mut c_void,
8907    pub fragmentDensityMap: Bool32,
8908    pub fragmentDensityMapDynamic: Bool32,
8909    pub fragmentDensityMapNonSubsampledImages: Bool32,
8910}
8911
8912#[repr(C)]
8913#[derive(Copy, Clone)]
8914pub struct PhysicalDeviceFragmentDensityMap2FeaturesEXT {
8915    pub sType: StructureType,
8916    pub pNext: *mut c_void,
8917    pub fragmentDensityMapDeferred: Bool32,
8918}
8919
8920#[repr(C)]
8921#[derive(Copy, Clone)]
8922pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
8923    pub sType: StructureType,
8924    pub pNext: *mut c_void,
8925    pub fragmentDensityMapOffset: Bool32,
8926}
8927
8928#[repr(C)]
8929#[derive(Copy, Clone)]
8930pub struct PhysicalDeviceFragmentDensityMapPropertiesEXT {
8931    pub sType: StructureType,
8932    pub pNext: *mut c_void,
8933    pub minFragmentDensityTexelSize: Extent2D,
8934    pub maxFragmentDensityTexelSize: Extent2D,
8935    pub fragmentDensityInvocations: Bool32,
8936}
8937
8938#[repr(C)]
8939#[derive(Copy, Clone)]
8940pub struct PhysicalDeviceFragmentDensityMap2PropertiesEXT {
8941    pub sType: StructureType,
8942    pub pNext: *mut c_void,
8943    pub subsampledLoads: Bool32,
8944    pub subsampledCoarseReconstructionEarlyAccess: Bool32,
8945    pub maxSubsampledArrayLayers: u32,
8946    pub maxDescriptorSetSubsampledSamplers: u32,
8947}
8948
8949#[repr(C)]
8950#[derive(Copy, Clone)]
8951pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
8952    pub sType: StructureType,
8953    pub pNext: *mut c_void,
8954    pub fragmentDensityOffsetGranularity: Extent2D,
8955}
8956
8957#[repr(C)]
8958#[derive(Copy, Clone)]
8959pub struct RenderPassFragmentDensityMapCreateInfoEXT {
8960    pub sType: StructureType,
8961    pub pNext: *const c_void,
8962    pub fragmentDensityMapAttachment: AttachmentReference,
8963}
8964
8965#[repr(C)]
8966#[derive(Copy, Clone)]
8967pub struct SubpassFragmentDensityMapOffsetEndInfoQCOM {
8968    pub sType: StructureType,
8969    pub pNext: *const c_void,
8970    pub fragmentDensityOffsetCount: u32,
8971    pub pFragmentDensityOffsets: *const Offset2D,
8972}
8973
8974#[repr(C)]
8975#[derive(Copy, Clone)]
8976pub struct PhysicalDeviceScalarBlockLayoutFeatures {
8977    pub sType: StructureType,
8978    pub pNext: *mut c_void,
8979    pub scalarBlockLayout: Bool32,
8980}
8981
8982pub type PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures;
8983
8984#[repr(C)]
8985#[derive(Copy, Clone)]
8986pub struct SurfaceProtectedCapabilitiesKHR {
8987    pub sType: StructureType,
8988    pub pNext: *const c_void,
8989    pub supportsProtected: Bool32, // Represents if surface can be protected
8990}
8991
8992#[repr(C)]
8993#[derive(Copy, Clone)]
8994pub struct PhysicalDeviceUniformBufferStandardLayoutFeatures {
8995    pub sType: StructureType,
8996    pub pNext: *mut c_void,
8997    pub uniformBufferStandardLayout: Bool32,
8998}
8999
9000pub type PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR =
9001    PhysicalDeviceUniformBufferStandardLayoutFeatures;
9002
9003#[repr(C)]
9004#[derive(Copy, Clone)]
9005pub struct PhysicalDeviceDepthClipEnableFeaturesEXT {
9006    pub sType: StructureType,
9007    pub pNext: *mut c_void,
9008    pub depthClipEnable: Bool32,
9009}
9010
9011#[repr(C)]
9012#[derive(Copy, Clone)]
9013pub struct PipelineRasterizationDepthClipStateCreateInfoEXT {
9014    pub sType: StructureType,
9015    pub pNext: *const c_void,
9016    pub flags: PipelineRasterizationDepthClipStateCreateFlagsEXT, // Reserved
9017    pub depthClipEnable: Bool32,
9018}
9019
9020#[repr(C)]
9021#[derive(Copy, Clone)]
9022pub struct PhysicalDeviceMemoryBudgetPropertiesEXT {
9023    pub sType: StructureType,
9024    pub pNext: *mut c_void,
9025    pub heapBudget: [DeviceSize; MAX_MEMORY_HEAPS as usize],
9026    pub heapUsage: [DeviceSize; MAX_MEMORY_HEAPS as usize],
9027}
9028
9029#[repr(C)]
9030#[derive(Copy, Clone)]
9031pub struct PhysicalDeviceMemoryPriorityFeaturesEXT {
9032    pub sType: StructureType,
9033    pub pNext: *mut c_void,
9034    pub memoryPriority: Bool32,
9035}
9036
9037#[repr(C)]
9038#[derive(Copy, Clone)]
9039pub struct MemoryPriorityAllocateInfoEXT {
9040    pub sType: StructureType,
9041    pub pNext: *const c_void,
9042    pub priority: f32,
9043}
9044
9045#[repr(C)]
9046#[derive(Copy, Clone)]
9047pub struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
9048    pub sType: StructureType,
9049    pub pNext: *mut c_void,
9050    pub pageableDeviceLocalMemory: Bool32,
9051}
9052
9053#[repr(C)]
9054#[derive(Copy, Clone)]
9055pub struct PhysicalDeviceBufferDeviceAddressFeatures {
9056    pub sType: StructureType,
9057    pub pNext: *mut c_void,
9058    pub bufferDeviceAddress: Bool32,
9059    pub bufferDeviceAddressCaptureReplay: Bool32,
9060    pub bufferDeviceAddressMultiDevice: Bool32,
9061}
9062
9063pub type PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures;
9064
9065#[repr(C)]
9066#[derive(Copy, Clone)]
9067pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXT {
9068    pub sType: StructureType,
9069    pub pNext: *mut c_void,
9070    pub bufferDeviceAddress: Bool32,
9071    pub bufferDeviceAddressCaptureReplay: Bool32,
9072    pub bufferDeviceAddressMultiDevice: Bool32,
9073}
9074
9075pub type PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
9076
9077#[repr(C)]
9078#[derive(Copy, Clone)]
9079pub struct BufferDeviceAddressInfo {
9080    pub sType: StructureType,
9081    pub pNext: *const c_void,
9082    pub buffer: Buffer,
9083}
9084
9085pub type BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo;
9086
9087pub type BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo;
9088
9089#[repr(C)]
9090#[derive(Copy, Clone)]
9091pub struct BufferOpaqueCaptureAddressCreateInfo {
9092    pub sType: StructureType,
9093    pub pNext: *const c_void,
9094    pub opaqueCaptureAddress: u64,
9095}
9096
9097pub type BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo;
9098
9099#[repr(C)]
9100#[derive(Copy, Clone)]
9101pub struct BufferDeviceAddressCreateInfoEXT {
9102    pub sType: StructureType,
9103    pub pNext: *const c_void,
9104    pub deviceAddress: DeviceAddress,
9105}
9106
9107#[repr(C)]
9108#[derive(Copy, Clone)]
9109pub struct PhysicalDeviceImageViewImageFormatInfoEXT {
9110    pub sType: StructureType,
9111    pub pNext: *mut c_void,
9112    pub imageViewType: ImageViewType,
9113}
9114
9115#[repr(C)]
9116#[derive(Copy, Clone)]
9117pub struct FilterCubicImageViewImageFormatPropertiesEXT {
9118    pub sType: StructureType,
9119    pub pNext: *mut c_void,
9120    pub filterCubic: Bool32, // The combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT
9121    pub filterCubicMinmax: Bool32, // The combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max
9122}
9123
9124#[repr(C)]
9125#[derive(Copy, Clone)]
9126pub struct PhysicalDeviceImagelessFramebufferFeatures {
9127    pub sType: StructureType,
9128    pub pNext: *mut c_void,
9129    pub imagelessFramebuffer: Bool32,
9130}
9131
9132pub type PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures;
9133
9134#[repr(C)]
9135#[derive(Copy, Clone)]
9136pub struct FramebufferAttachmentsCreateInfo {
9137    pub sType: StructureType,
9138    pub pNext: *const c_void,
9139    pub attachmentImageInfoCount: u32,
9140    pub pAttachmentImageInfos: *const FramebufferAttachmentImageInfo,
9141}
9142
9143pub type FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo;
9144
9145#[repr(C)]
9146#[derive(Copy, Clone)]
9147pub struct FramebufferAttachmentImageInfo {
9148    pub sType: StructureType,
9149    pub pNext: *const c_void,
9150    pub flags: ImageCreateFlags, // Image creation flags
9151    pub usage: ImageUsageFlags,  // Image usage flags
9152    pub width: u32,
9153    pub height: u32,
9154    pub layerCount: u32,
9155    pub viewFormatCount: u32,
9156    pub pViewFormats: *const Format,
9157}
9158
9159pub type FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo;
9160
9161#[repr(C)]
9162#[derive(Copy, Clone)]
9163pub struct RenderPassAttachmentBeginInfo {
9164    pub sType: StructureType,
9165    pub pNext: *const c_void,
9166    pub attachmentCount: u32,
9167    pub pAttachments: *const ImageView,
9168}
9169
9170pub type RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo;
9171
9172#[repr(C)]
9173#[derive(Copy, Clone)]
9174pub struct PhysicalDeviceTextureCompressionASTCHDRFeatures {
9175    pub sType: StructureType,
9176    pub pNext: *mut c_void,
9177    pub textureCompressionASTC_HDR: Bool32,
9178}
9179
9180pub type PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT =
9181    PhysicalDeviceTextureCompressionASTCHDRFeatures;
9182
9183#[repr(C)]
9184#[derive(Copy, Clone)]
9185pub struct PhysicalDeviceCooperativeMatrixFeaturesNV {
9186    pub sType: StructureType,
9187    pub pNext: *mut c_void,
9188    pub cooperativeMatrix: Bool32,
9189    pub cooperativeMatrixRobustBufferAccess: Bool32,
9190}
9191
9192#[repr(C)]
9193#[derive(Copy, Clone)]
9194pub struct PhysicalDeviceCooperativeMatrixPropertiesNV {
9195    pub sType: StructureType,
9196    pub pNext: *mut c_void,
9197    pub cooperativeMatrixSupportedStages: ShaderStageFlags,
9198}
9199
9200#[repr(C)]
9201#[derive(Copy, Clone)]
9202pub struct CooperativeMatrixPropertiesNV {
9203    pub sType: StructureType,
9204    pub pNext: *mut c_void,
9205    pub MSize: u32,
9206    pub NSize: u32,
9207    pub KSize: u32,
9208    pub AType: ComponentTypeNV,
9209    pub BType: ComponentTypeNV,
9210    pub CType: ComponentTypeNV,
9211    pub DType: ComponentTypeNV,
9212    pub scope: ScopeNV,
9213}
9214
9215#[repr(C)]
9216#[derive(Copy, Clone)]
9217pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXT {
9218    pub sType: StructureType,
9219    pub pNext: *mut c_void,
9220    pub ycbcrImageArrays: Bool32,
9221}
9222
9223#[repr(C)]
9224#[derive(Copy, Clone)]
9225pub struct ImageViewHandleInfoNVX {
9226    pub sType: StructureType,
9227    pub pNext: *const c_void,
9228    pub imageView: ImageView,
9229    pub descriptorType: DescriptorType,
9230    pub sampler: Sampler,
9231}
9232
9233#[repr(C)]
9234#[derive(Copy, Clone)]
9235pub struct ImageViewAddressPropertiesNVX {
9236    pub sType: StructureType,
9237    pub pNext: *mut c_void,
9238    pub deviceAddress: DeviceAddress,
9239    pub size: DeviceSize,
9240}
9241
9242#[repr(C)]
9243#[derive(Copy, Clone)]
9244pub struct PipelineCreationFeedback {
9245    pub flags: PipelineCreationFeedbackFlags,
9246    pub duration: u64,
9247}
9248
9249pub type PipelineCreationFeedbackEXT = PipelineCreationFeedback;
9250
9251#[repr(C)]
9252#[derive(Copy, Clone)]
9253pub struct PipelineCreationFeedbackCreateInfo {
9254    pub sType: StructureType,
9255    pub pNext: *const c_void,
9256    pub pPipelineCreationFeedback: *mut PipelineCreationFeedback, // Output pipeline creation feedback.
9257    pub pipelineStageCreationFeedbackCount: u32,
9258    pub pPipelineStageCreationFeedbacks: *mut PipelineCreationFeedback, // One entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct
9259}
9260
9261pub type PipelineCreationFeedbackCreateInfoEXT = PipelineCreationFeedbackCreateInfo;
9262
9263#[repr(C)]
9264#[derive(Copy, Clone)]
9265pub struct PhysicalDevicePresentBarrierFeaturesNV {
9266    pub sType: StructureType,
9267    pub pNext: *mut c_void,
9268    pub presentBarrier: Bool32,
9269}
9270
9271#[repr(C)]
9272#[derive(Copy, Clone)]
9273pub struct SurfaceCapabilitiesPresentBarrierNV {
9274    pub sType: StructureType,
9275    pub pNext: *mut c_void,
9276    pub presentBarrierSupported: Bool32,
9277}
9278
9279#[repr(C)]
9280#[derive(Copy, Clone)]
9281pub struct SwapchainPresentBarrierCreateInfoNV {
9282    pub sType: StructureType,
9283    pub pNext: *mut c_void,
9284    pub presentBarrierEnable: Bool32,
9285}
9286
9287#[repr(C)]
9288#[derive(Copy, Clone)]
9289pub struct PhysicalDevicePerformanceQueryFeaturesKHR {
9290    pub sType: StructureType,
9291    pub pNext: *mut c_void,
9292    pub performanceCounterQueryPools: Bool32, // performance counters supported in query pools
9293    pub performanceCounterMultipleQueryPools: Bool32, // performance counters from multiple query pools can be accessed in the same primary command buffer
9294}
9295
9296#[repr(C)]
9297#[derive(Copy, Clone)]
9298pub struct PhysicalDevicePerformanceQueryPropertiesKHR {
9299    pub sType: StructureType,
9300    pub pNext: *mut c_void,
9301    pub allowCommandBufferQueryCopies: Bool32, // Flag to specify whether performance queries are allowed to be used in vkCmdCopyQueryPoolResults
9302}
9303
9304#[repr(C)]
9305#[derive(Copy, Clone)]
9306pub struct PerformanceCounterKHR {
9307    pub sType: StructureType,
9308    pub pNext: *mut c_void,
9309    pub unit: PerformanceCounterUnitKHR,
9310    pub scope: PerformanceCounterScopeKHR,
9311    pub storage: PerformanceCounterStorageKHR,
9312    pub uuid: [u8; UUID_SIZE as usize],
9313}
9314
9315#[repr(C)]
9316#[derive(Copy, Clone)]
9317pub struct PerformanceCounterDescriptionKHR {
9318    pub sType: StructureType,
9319    pub pNext: *mut c_void,
9320    pub flags: PerformanceCounterDescriptionFlagsKHR,
9321    pub name: [c_char; MAX_DESCRIPTION_SIZE as usize],
9322    pub category: [c_char; MAX_DESCRIPTION_SIZE as usize],
9323    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
9324}
9325
9326#[repr(C)]
9327#[derive(Copy, Clone)]
9328pub struct QueryPoolPerformanceCreateInfoKHR {
9329    pub sType: StructureType,
9330    pub pNext: *const c_void,
9331    pub queueFamilyIndex: u32,
9332    pub counterIndexCount: u32,
9333    pub pCounterIndices: *const u32,
9334}
9335
9336#[repr(C)]
9337#[derive(Copy, Clone)]
9338pub struct AcquireProfilingLockInfoKHR {
9339    pub sType: StructureType,
9340    pub pNext: *const c_void,
9341    pub flags: AcquireProfilingLockFlagsKHR, // Acquire profiling lock flags
9342    pub timeout: u64,
9343}
9344
9345#[repr(C)]
9346#[derive(Copy, Clone)]
9347pub struct PerformanceQuerySubmitInfoKHR {
9348    pub sType: StructureType,
9349    pub pNext: *const c_void,
9350    pub counterPassIndex: u32, // Index for which counter pass to submit
9351}
9352
9353#[repr(C)]
9354#[derive(Copy, Clone)]
9355pub struct HeadlessSurfaceCreateInfoEXT {
9356    pub sType: StructureType,
9357    pub pNext: *const c_void,
9358    pub flags: HeadlessSurfaceCreateFlagsEXT,
9359}
9360
9361#[repr(C)]
9362#[derive(Copy, Clone)]
9363pub struct PhysicalDeviceCoverageReductionModeFeaturesNV {
9364    pub sType: StructureType,
9365    pub pNext: *mut c_void,
9366    pub coverageReductionMode: Bool32,
9367}
9368
9369#[repr(C)]
9370#[derive(Copy, Clone)]
9371pub struct PipelineCoverageReductionStateCreateInfoNV {
9372    pub sType: StructureType,
9373    pub pNext: *const c_void,
9374    pub flags: PipelineCoverageReductionStateCreateFlagsNV,
9375    pub coverageReductionMode: CoverageReductionModeNV,
9376}
9377
9378#[repr(C)]
9379#[derive(Copy, Clone)]
9380pub struct FramebufferMixedSamplesCombinationNV {
9381    pub sType: StructureType,
9382    pub pNext: *mut c_void,
9383    pub coverageReductionMode: CoverageReductionModeNV,
9384    pub rasterizationSamples: SampleCountFlagBits,
9385    pub depthStencilSamples: SampleCountFlags,
9386    pub colorSamples: SampleCountFlags,
9387}
9388
9389#[repr(C)]
9390#[derive(Copy, Clone)]
9391pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
9392    pub sType: StructureType,
9393    pub pNext: *mut c_void,
9394    pub shaderIntegerFunctions2: Bool32,
9395}
9396
9397#[repr(C)]
9398#[derive(Copy, Clone)]
9399pub struct PerformanceValueINTEL {
9400    pub typ: PerformanceValueTypeINTEL,
9401    pub data: PerformanceValueDataINTEL,
9402}
9403
9404#[repr(C)]
9405#[derive(Copy, Clone)]
9406pub struct InitializePerformanceApiInfoINTEL {
9407    pub sType: StructureType,
9408    pub pNext: *const c_void,
9409    pub pUserData: *mut c_void,
9410}
9411
9412#[repr(C)]
9413#[derive(Copy, Clone)]
9414pub struct QueryPoolPerformanceQueryCreateInfoINTEL {
9415    pub sType: StructureType,
9416    pub pNext: *const c_void,
9417    pub performanceCountersSampling: QueryPoolSamplingModeINTEL,
9418}
9419
9420pub type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL;
9421
9422#[repr(C)]
9423#[derive(Copy, Clone)]
9424pub struct PerformanceMarkerInfoINTEL {
9425    pub sType: StructureType,
9426    pub pNext: *const c_void,
9427    pub marker: u64,
9428}
9429
9430#[repr(C)]
9431#[derive(Copy, Clone)]
9432pub struct PerformanceStreamMarkerInfoINTEL {
9433    pub sType: StructureType,
9434    pub pNext: *const c_void,
9435    pub marker: u32,
9436}
9437
9438#[repr(C)]
9439#[derive(Copy, Clone)]
9440pub struct PerformanceOverrideInfoINTEL {
9441    pub sType: StructureType,
9442    pub pNext: *const c_void,
9443    pub typ: PerformanceOverrideTypeINTEL,
9444    pub enable: Bool32,
9445    pub parameter: u64,
9446}
9447
9448#[repr(C)]
9449#[derive(Copy, Clone)]
9450pub struct PerformanceConfigurationAcquireInfoINTEL {
9451    pub sType: StructureType,
9452    pub pNext: *const c_void,
9453    pub typ: PerformanceConfigurationTypeINTEL,
9454}
9455
9456#[repr(C)]
9457#[derive(Copy, Clone)]
9458pub struct PhysicalDeviceShaderClockFeaturesKHR {
9459    pub sType: StructureType,
9460    pub pNext: *mut c_void,
9461    pub shaderSubgroupClock: Bool32,
9462    pub shaderDeviceClock: Bool32,
9463}
9464
9465#[repr(C)]
9466#[derive(Copy, Clone)]
9467pub struct PhysicalDeviceIndexTypeUint8FeaturesEXT {
9468    pub sType: StructureType,
9469    pub pNext: *mut c_void,
9470    pub indexTypeUint8: Bool32,
9471}
9472
9473#[repr(C)]
9474#[derive(Copy, Clone)]
9475pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNV {
9476    pub sType: StructureType,
9477    pub pNext: *mut c_void,
9478    pub shaderSMCount: u32,
9479    pub shaderWarpsPerSM: u32,
9480}
9481
9482#[repr(C)]
9483#[derive(Copy, Clone)]
9484pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNV {
9485    pub sType: StructureType,
9486    pub pNext: *mut c_void,
9487    pub shaderSMBuiltins: Bool32,
9488}
9489
9490#[repr(C)]
9491#[derive(Copy, Clone)]
9492pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
9493    pub sType: StructureType,
9494    pub pNext: *mut c_void, // Pointer to next structure
9495    pub fragmentShaderSampleInterlock: Bool32,
9496    pub fragmentShaderPixelInterlock: Bool32,
9497    pub fragmentShaderShadingRateInterlock: Bool32,
9498}
9499
9500#[repr(C)]
9501#[derive(Copy, Clone)]
9502pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
9503    pub sType: StructureType,
9504    pub pNext: *mut c_void,
9505    pub separateDepthStencilLayouts: Bool32,
9506}
9507
9508pub type PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR =
9509    PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
9510
9511#[repr(C)]
9512#[derive(Copy, Clone)]
9513pub struct AttachmentReferenceStencilLayout {
9514    pub sType: StructureType,
9515    pub pNext: *mut c_void,
9516    pub stencilLayout: ImageLayout,
9517}
9518
9519#[repr(C)]
9520#[derive(Copy, Clone)]
9521pub struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
9522    pub sType: StructureType,
9523    pub pNext: *mut c_void,
9524    pub primitiveTopologyListRestart: Bool32,
9525    pub primitiveTopologyPatchListRestart: Bool32,
9526}
9527
9528pub type AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout;
9529
9530#[repr(C)]
9531#[derive(Copy, Clone)]
9532pub struct AttachmentDescriptionStencilLayout {
9533    pub sType: StructureType,
9534    pub pNext: *mut c_void,
9535    pub stencilInitialLayout: ImageLayout,
9536    pub stencilFinalLayout: ImageLayout,
9537}
9538
9539pub type AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout;
9540
9541#[repr(C)]
9542#[derive(Copy, Clone)]
9543pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
9544    pub sType: StructureType,
9545    pub pNext: *mut c_void,
9546    pub pipelineExecutableInfo: Bool32,
9547}
9548
9549#[repr(C)]
9550#[derive(Copy, Clone)]
9551pub struct PipelineInfoKHR {
9552    pub sType: StructureType,
9553    pub pNext: *const c_void,
9554    pub pipeline: Pipeline,
9555}
9556
9557pub type PipelineInfoEXT = PipelineInfoKHR;
9558
9559#[repr(C)]
9560#[derive(Copy, Clone)]
9561pub struct PipelineExecutablePropertiesKHR {
9562    pub sType: StructureType,
9563    pub pNext: *mut c_void,
9564    pub stages: ShaderStageFlags,
9565    pub name: [c_char; MAX_DESCRIPTION_SIZE as usize],
9566    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
9567    pub subgroupSize: u32,
9568}
9569
9570#[repr(C)]
9571#[derive(Copy, Clone)]
9572pub struct PipelineExecutableInfoKHR {
9573    pub sType: StructureType,
9574    pub pNext: *const c_void,
9575    pub pipeline: Pipeline,
9576    pub executableIndex: u32,
9577}
9578
9579#[repr(C)]
9580#[derive(Copy, Clone)]
9581pub struct PipelineExecutableStatisticKHR {
9582    pub sType: StructureType,
9583    pub pNext: *mut c_void,
9584    pub name: [c_char; MAX_DESCRIPTION_SIZE as usize],
9585    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
9586    pub format: PipelineExecutableStatisticFormatKHR,
9587    pub value: PipelineExecutableStatisticValueKHR,
9588}
9589
9590#[repr(C)]
9591#[derive(Copy, Clone)]
9592pub struct PipelineExecutableInternalRepresentationKHR {
9593    pub sType: StructureType,
9594    pub pNext: *mut c_void,
9595    pub name: [c_char; MAX_DESCRIPTION_SIZE as usize],
9596    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
9597    pub isText: Bool32,
9598    pub dataSize: usize,
9599    pub pData: *mut c_void,
9600}
9601
9602#[repr(C)]
9603#[derive(Copy, Clone)]
9604pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
9605    pub sType: StructureType,
9606    pub pNext: *mut c_void,
9607    pub shaderDemoteToHelperInvocation: Bool32,
9608}
9609
9610pub type PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT =
9611    PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
9612
9613#[repr(C)]
9614#[derive(Copy, Clone)]
9615pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
9616    pub sType: StructureType,
9617    pub pNext: *mut c_void,
9618    pub texelBufferAlignment: Bool32,
9619}
9620
9621#[repr(C)]
9622#[derive(Copy, Clone)]
9623pub struct PhysicalDeviceTexelBufferAlignmentProperties {
9624    pub sType: StructureType,
9625    pub pNext: *mut c_void,
9626    pub storageTexelBufferOffsetAlignmentBytes: DeviceSize,
9627    pub storageTexelBufferOffsetSingleTexelAlignment: Bool32,
9628    pub uniformTexelBufferOffsetAlignmentBytes: DeviceSize,
9629    pub uniformTexelBufferOffsetSingleTexelAlignment: Bool32,
9630}
9631
9632pub type PhysicalDeviceTexelBufferAlignmentPropertiesEXT =
9633    PhysicalDeviceTexelBufferAlignmentProperties;
9634
9635#[repr(C)]
9636#[derive(Copy, Clone)]
9637pub struct PhysicalDeviceSubgroupSizeControlFeatures {
9638    pub sType: StructureType,
9639    pub pNext: *mut c_void,
9640    pub subgroupSizeControl: Bool32,
9641    pub computeFullSubgroups: Bool32,
9642}
9643
9644pub type PhysicalDeviceSubgroupSizeControlFeaturesEXT = PhysicalDeviceSubgroupSizeControlFeatures;
9645
9646#[repr(C)]
9647#[derive(Copy, Clone)]
9648pub struct PhysicalDeviceSubgroupSizeControlProperties {
9649    pub sType: StructureType,
9650    pub pNext: *mut c_void,
9651    pub minSubgroupSize: u32, // The minimum subgroup size supported by this device
9652    pub maxSubgroupSize: u32, // The maximum subgroup size supported by this device
9653    pub maxComputeWorkgroupSubgroups: u32, // The maximum number of subgroups supported in a workgroup
9654    pub requiredSubgroupSizeStages: ShaderStageFlags, // The shader stages that support specifying a subgroup size
9655}
9656
9657pub type PhysicalDeviceSubgroupSizeControlPropertiesEXT =
9658    PhysicalDeviceSubgroupSizeControlProperties;
9659
9660#[repr(C)]
9661#[derive(Copy, Clone)]
9662pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfo {
9663    pub sType: StructureType,
9664    pub pNext: *mut c_void,
9665    pub requiredSubgroupSize: u32,
9666}
9667
9668pub type PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT =
9669    PipelineShaderStageRequiredSubgroupSizeCreateInfo;
9670
9671#[repr(C)]
9672#[derive(Copy, Clone)]
9673pub struct SubpassShadingPipelineCreateInfoHUAWEI {
9674    pub sType: StructureType,
9675    pub pNext: *mut c_void,
9676    pub renderPass: RenderPass,
9677    pub subpass: u32,
9678}
9679
9680#[repr(C)]
9681#[derive(Copy, Clone)]
9682pub struct PhysicalDeviceSubpassShadingPropertiesHUAWEI {
9683    pub sType: StructureType,
9684    pub pNext: *mut c_void,
9685    pub maxSubpassShadingWorkgroupSizeAspectRatio: u32,
9686}
9687
9688#[repr(C)]
9689#[derive(Copy, Clone)]
9690pub struct MemoryOpaqueCaptureAddressAllocateInfo {
9691    pub sType: StructureType,
9692    pub pNext: *const c_void,
9693    pub opaqueCaptureAddress: u64,
9694}
9695
9696pub type MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo;
9697
9698#[repr(C)]
9699#[derive(Copy, Clone)]
9700pub struct DeviceMemoryOpaqueCaptureAddressInfo {
9701    pub sType: StructureType,
9702    pub pNext: *const c_void,
9703    pub memory: DeviceMemory,
9704}
9705
9706pub type DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo;
9707
9708#[repr(C)]
9709#[derive(Copy, Clone)]
9710pub struct PhysicalDeviceLineRasterizationFeaturesEXT {
9711    pub sType: StructureType,
9712    pub pNext: *mut c_void,
9713    pub rectangularLines: Bool32,
9714    pub bresenhamLines: Bool32,
9715    pub smoothLines: Bool32,
9716    pub stippledRectangularLines: Bool32,
9717    pub stippledBresenhamLines: Bool32,
9718    pub stippledSmoothLines: Bool32,
9719}
9720
9721#[repr(C)]
9722#[derive(Copy, Clone)]
9723pub struct PhysicalDeviceLineRasterizationPropertiesEXT {
9724    pub sType: StructureType,
9725    pub pNext: *mut c_void,
9726    pub lineSubPixelPrecisionBits: u32,
9727}
9728
9729#[repr(C)]
9730#[derive(Copy, Clone)]
9731pub struct PipelineRasterizationLineStateCreateInfoEXT {
9732    pub sType: StructureType,
9733    pub pNext: *const c_void,
9734    pub lineRasterizationMode: LineRasterizationModeEXT,
9735    pub stippledLineEnable: Bool32,
9736    pub lineStippleFactor: u32,
9737    pub lineStipplePattern: u16,
9738}
9739
9740#[repr(C)]
9741#[derive(Copy, Clone)]
9742pub struct PhysicalDevicePipelineCreationCacheControlFeatures {
9743    pub sType: StructureType,
9744    pub pNext: *mut c_void,
9745    pub pipelineCreationCacheControl: Bool32,
9746}
9747
9748pub type PhysicalDevicePipelineCreationCacheControlFeaturesEXT =
9749    PhysicalDevicePipelineCreationCacheControlFeatures;
9750
9751#[repr(C)]
9752#[derive(Copy, Clone)]
9753pub struct PhysicalDeviceVulkan11Features {
9754    pub sType: StructureType,
9755    pub pNext: *mut c_void,
9756    pub storageBuffer16BitAccess: Bool32, // 16-bit integer/floating-point variables supported in BufferBlock
9757    pub uniformAndStorageBuffer16BitAccess: Bool32, // 16-bit integer/floating-point variables supported in BufferBlock and Block
9758    pub storagePushConstant16: Bool32, // 16-bit integer/floating-point variables supported in PushConstant
9759    pub storageInputOutput16: Bool32, // 16-bit integer/floating-point variables supported in shader inputs and outputs
9760    pub multiview: Bool32,            // Multiple views in a renderpass
9761    pub multiviewGeometryShader: Bool32, // Multiple views in a renderpass w/ geometry shader
9762    pub multiviewTessellationShader: Bool32, // Multiple views in a renderpass w/ tessellation shader
9763    pub variablePointersStorageBuffer: Bool32,
9764    pub variablePointers: Bool32,
9765    pub protectedMemory: Bool32,
9766    pub samplerYcbcrConversion: Bool32, // Sampler color conversion supported
9767    pub shaderDrawParameters: Bool32,
9768}
9769
9770#[repr(C)]
9771#[derive(Copy, Clone)]
9772pub struct PhysicalDeviceVulkan11Properties {
9773    pub sType: StructureType,
9774    pub pNext: *mut c_void,
9775    pub deviceUUID: [u8; UUID_SIZE as usize],
9776    pub driverUUID: [u8; UUID_SIZE as usize],
9777    pub deviceLUID: [u8; LUID_SIZE as usize],
9778    pub deviceNodeMask: u32,
9779    pub deviceLUIDValid: Bool32,
9780    pub subgroupSize: u32, // The size of a subgroup for this queue.
9781    pub subgroupSupportedStages: ShaderStageFlags, // Bitfield of what shader stages support subgroup operations
9782    pub subgroupSupportedOperations: SubgroupFeatureFlags, // Bitfield of what subgroup operations are supported.
9783    pub subgroupQuadOperationsInAllStages: Bool32, // Flag to specify whether quad operations are available in all stages.
9784    pub pointClippingBehavior: PointClippingBehavior,
9785    pub maxMultiviewViewCount: u32, // max number of views in a subpass
9786    pub maxMultiviewInstanceIndex: u32, // max instance index for a draw in a multiview subpass
9787    pub protectedNoFault: Bool32,
9788    pub maxPerSetDescriptors: u32,
9789    pub maxMemoryAllocationSize: DeviceSize,
9790}
9791
9792#[repr(C)]
9793#[derive(Copy, Clone)]
9794pub struct PhysicalDeviceVulkan12Features {
9795    pub sType: StructureType,
9796    pub pNext: *mut c_void,
9797    pub samplerMirrorClampToEdge: Bool32,
9798    pub drawIndirectCount: Bool32,
9799    pub storageBuffer8BitAccess: Bool32, // 8-bit integer variables supported in StorageBuffer
9800    pub uniformAndStorageBuffer8BitAccess: Bool32, // 8-bit integer variables supported in StorageBuffer and Uniform
9801    pub storagePushConstant8: Bool32, // 8-bit integer variables supported in PushConstant
9802    pub shaderBufferInt64Atomics: Bool32,
9803    pub shaderSharedInt64Atomics: Bool32,
9804    pub shaderFloat16: Bool32, // 16-bit floats (halfs) in shaders
9805    pub shaderInt8: Bool32,    // 8-bit integers in shaders
9806    pub descriptorIndexing: Bool32,
9807    pub shaderInputAttachmentArrayDynamicIndexing: Bool32,
9808    pub shaderUniformTexelBufferArrayDynamicIndexing: Bool32,
9809    pub shaderStorageTexelBufferArrayDynamicIndexing: Bool32,
9810    pub shaderUniformBufferArrayNonUniformIndexing: Bool32,
9811    pub shaderSampledImageArrayNonUniformIndexing: Bool32,
9812    pub shaderStorageBufferArrayNonUniformIndexing: Bool32,
9813    pub shaderStorageImageArrayNonUniformIndexing: Bool32,
9814    pub shaderInputAttachmentArrayNonUniformIndexing: Bool32,
9815    pub shaderUniformTexelBufferArrayNonUniformIndexing: Bool32,
9816    pub shaderStorageTexelBufferArrayNonUniformIndexing: Bool32,
9817    pub descriptorBindingUniformBufferUpdateAfterBind: Bool32,
9818    pub descriptorBindingSampledImageUpdateAfterBind: Bool32,
9819    pub descriptorBindingStorageImageUpdateAfterBind: Bool32,
9820    pub descriptorBindingStorageBufferUpdateAfterBind: Bool32,
9821    pub descriptorBindingUniformTexelBufferUpdateAfterBind: Bool32,
9822    pub descriptorBindingStorageTexelBufferUpdateAfterBind: Bool32,
9823    pub descriptorBindingUpdateUnusedWhilePending: Bool32,
9824    pub descriptorBindingPartiallyBound: Bool32,
9825    pub descriptorBindingVariableDescriptorCount: Bool32,
9826    pub runtimeDescriptorArray: Bool32,
9827    pub samplerFilterMinmax: Bool32,
9828    pub scalarBlockLayout: Bool32,
9829    pub imagelessFramebuffer: Bool32,
9830    pub uniformBufferStandardLayout: Bool32,
9831    pub shaderSubgroupExtendedTypes: Bool32,
9832    pub separateDepthStencilLayouts: Bool32,
9833    pub hostQueryReset: Bool32,
9834    pub timelineSemaphore: Bool32,
9835    pub bufferDeviceAddress: Bool32,
9836    pub bufferDeviceAddressCaptureReplay: Bool32,
9837    pub bufferDeviceAddressMultiDevice: Bool32,
9838    pub vulkanMemoryModel: Bool32,
9839    pub vulkanMemoryModelDeviceScope: Bool32,
9840    pub vulkanMemoryModelAvailabilityVisibilityChains: Bool32,
9841    pub shaderOutputViewportIndex: Bool32,
9842    pub shaderOutputLayer: Bool32,
9843    pub subgroupBroadcastDynamicId: Bool32,
9844}
9845
9846#[repr(C)]
9847#[derive(Copy, Clone)]
9848pub struct PhysicalDeviceVulkan12Properties {
9849    pub sType: StructureType,
9850    pub pNext: *mut c_void,
9851    pub driverID: DriverId,
9852    pub driverName: [c_char; MAX_DRIVER_NAME_SIZE as usize],
9853    pub driverInfo: [c_char; MAX_DRIVER_INFO_SIZE as usize],
9854    pub conformanceVersion: ConformanceVersion,
9855    pub denormBehaviorIndependence: ShaderFloatControlsIndependence,
9856    pub roundingModeIndependence: ShaderFloatControlsIndependence,
9857    pub shaderSignedZeroInfNanPreserveFloat16: Bool32, // An implementation can preserve signed zero, nan, inf
9858    pub shaderSignedZeroInfNanPreserveFloat32: Bool32, // An implementation can preserve signed zero, nan, inf
9859    pub shaderSignedZeroInfNanPreserveFloat64: Bool32, // An implementation can preserve signed zero, nan, inf
9860    pub shaderDenormPreserveFloat16: Bool32,           // An implementation can preserve  denormals
9861    pub shaderDenormPreserveFloat32: Bool32,           // An implementation can preserve  denormals
9862    pub shaderDenormPreserveFloat64: Bool32,           // An implementation can preserve  denormals
9863    pub shaderDenormFlushToZeroFloat16: Bool32, // An implementation can flush to zero  denormals
9864    pub shaderDenormFlushToZeroFloat32: Bool32, // An implementation can flush to zero  denormals
9865    pub shaderDenormFlushToZeroFloat64: Bool32, // An implementation can flush to zero  denormals
9866    pub shaderRoundingModeRTEFloat16: Bool32,   // An implementation can support RTE
9867    pub shaderRoundingModeRTEFloat32: Bool32,   // An implementation can support RTE
9868    pub shaderRoundingModeRTEFloat64: Bool32,   // An implementation can support RTE
9869    pub shaderRoundingModeRTZFloat16: Bool32,   // An implementation can support RTZ
9870    pub shaderRoundingModeRTZFloat32: Bool32,   // An implementation can support RTZ
9871    pub shaderRoundingModeRTZFloat64: Bool32,   // An implementation can support RTZ
9872    pub maxUpdateAfterBindDescriptorsInAllPools: u32,
9873    pub shaderUniformBufferArrayNonUniformIndexingNative: Bool32,
9874    pub shaderSampledImageArrayNonUniformIndexingNative: Bool32,
9875    pub shaderStorageBufferArrayNonUniformIndexingNative: Bool32,
9876    pub shaderStorageImageArrayNonUniformIndexingNative: Bool32,
9877    pub shaderInputAttachmentArrayNonUniformIndexingNative: Bool32,
9878    pub robustBufferAccessUpdateAfterBind: Bool32,
9879    pub quadDivergentImplicitLod: Bool32,
9880    pub maxPerStageDescriptorUpdateAfterBindSamplers: u32,
9881    pub maxPerStageDescriptorUpdateAfterBindUniformBuffers: u32,
9882    pub maxPerStageDescriptorUpdateAfterBindStorageBuffers: u32,
9883    pub maxPerStageDescriptorUpdateAfterBindSampledImages: u32,
9884    pub maxPerStageDescriptorUpdateAfterBindStorageImages: u32,
9885    pub maxPerStageDescriptorUpdateAfterBindInputAttachments: u32,
9886    pub maxPerStageUpdateAfterBindResources: u32,
9887    pub maxDescriptorSetUpdateAfterBindSamplers: u32,
9888    pub maxDescriptorSetUpdateAfterBindUniformBuffers: u32,
9889    pub maxDescriptorSetUpdateAfterBindUniformBuffersDynamic: u32,
9890    pub maxDescriptorSetUpdateAfterBindStorageBuffers: u32,
9891    pub maxDescriptorSetUpdateAfterBindStorageBuffersDynamic: u32,
9892    pub maxDescriptorSetUpdateAfterBindSampledImages: u32,
9893    pub maxDescriptorSetUpdateAfterBindStorageImages: u32,
9894    pub maxDescriptorSetUpdateAfterBindInputAttachments: u32,
9895    pub supportedDepthResolveModes: ResolveModeFlags, // supported depth resolve modes
9896    pub supportedStencilResolveModes: ResolveModeFlags, // supported stencil resolve modes
9897    pub independentResolveNone: Bool32, // depth and stencil resolve modes can be set independently if one of them is none
9898    pub independentResolve: Bool32,     // depth and stencil resolve modes can be set independently
9899    pub filterMinmaxSingleComponentFormats: Bool32,
9900    pub filterMinmaxImageComponentMapping: Bool32,
9901    pub maxTimelineSemaphoreValueDifference: u64,
9902    pub framebufferIntegerColorSampleCounts: SampleCountFlags,
9903}
9904
9905#[repr(C)]
9906#[derive(Copy, Clone)]
9907pub struct PhysicalDeviceVulkan13Features {
9908    pub sType: StructureType,
9909    pub pNext: *mut c_void,
9910    pub robustImageAccess: Bool32,
9911    pub inlineUniformBlock: Bool32,
9912    pub descriptorBindingInlineUniformBlockUpdateAfterBind: Bool32,
9913    pub pipelineCreationCacheControl: Bool32,
9914    pub privateData: Bool32,
9915    pub shaderDemoteToHelperInvocation: Bool32,
9916    pub shaderTerminateInvocation: Bool32,
9917    pub subgroupSizeControl: Bool32,
9918    pub computeFullSubgroups: Bool32,
9919    pub synchronization2: Bool32,
9920    pub textureCompressionASTC_HDR: Bool32,
9921    pub shaderZeroInitializeWorkgroupMemory: Bool32,
9922    pub dynamicRendering: Bool32,
9923    pub shaderIntegerDotProduct: Bool32,
9924    pub maintenance4: Bool32,
9925}
9926
9927#[repr(C)]
9928#[derive(Copy, Clone)]
9929pub struct PhysicalDeviceVulkan13Properties {
9930    pub sType: StructureType,
9931    pub pNext: *mut c_void,
9932    pub minSubgroupSize: u32, // The minimum subgroup size supported by this device
9933    pub maxSubgroupSize: u32, // The maximum subgroup size supported by this device
9934    pub maxComputeWorkgroupSubgroups: u32, // The maximum number of subgroups supported in a workgroup
9935    pub requiredSubgroupSizeStages: ShaderStageFlags, // The shader stages that support specifying a subgroup size
9936    pub maxInlineUniformBlockSize: u32,
9937    pub maxPerStageDescriptorInlineUniformBlocks: u32,
9938    pub maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks: u32,
9939    pub maxDescriptorSetInlineUniformBlocks: u32,
9940    pub maxDescriptorSetUpdateAfterBindInlineUniformBlocks: u32,
9941    pub maxInlineUniformTotalSize: u32,
9942    pub integerDotProduct8BitUnsignedAccelerated: Bool32,
9943    pub integerDotProduct8BitSignedAccelerated: Bool32,
9944    pub integerDotProduct8BitMixedSignednessAccelerated: Bool32,
9945    pub integerDotProduct4x8BitPackedUnsignedAccelerated: Bool32,
9946    pub integerDotProduct4x8BitPackedSignedAccelerated: Bool32,
9947    pub integerDotProduct4x8BitPackedMixedSignednessAccelerated: Bool32,
9948    pub integerDotProduct16BitUnsignedAccelerated: Bool32,
9949    pub integerDotProduct16BitSignedAccelerated: Bool32,
9950    pub integerDotProduct16BitMixedSignednessAccelerated: Bool32,
9951    pub integerDotProduct32BitUnsignedAccelerated: Bool32,
9952    pub integerDotProduct32BitSignedAccelerated: Bool32,
9953    pub integerDotProduct32BitMixedSignednessAccelerated: Bool32,
9954    pub integerDotProduct64BitUnsignedAccelerated: Bool32,
9955    pub integerDotProduct64BitSignedAccelerated: Bool32,
9956    pub integerDotProduct64BitMixedSignednessAccelerated: Bool32,
9957    pub integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: Bool32,
9958    pub integerDotProductAccumulatingSaturating8BitSignedAccelerated: Bool32,
9959    pub integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: Bool32,
9960    pub integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: Bool32,
9961    pub integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: Bool32,
9962    pub integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: Bool32,
9963    pub integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: Bool32,
9964    pub integerDotProductAccumulatingSaturating16BitSignedAccelerated: Bool32,
9965    pub integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: Bool32,
9966    pub integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: Bool32,
9967    pub integerDotProductAccumulatingSaturating32BitSignedAccelerated: Bool32,
9968    pub integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: Bool32,
9969    pub integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: Bool32,
9970    pub integerDotProductAccumulatingSaturating64BitSignedAccelerated: Bool32,
9971    pub integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: Bool32,
9972    pub storageTexelBufferOffsetAlignmentBytes: DeviceSize,
9973    pub storageTexelBufferOffsetSingleTexelAlignment: Bool32,
9974    pub uniformTexelBufferOffsetAlignmentBytes: DeviceSize,
9975    pub uniformTexelBufferOffsetSingleTexelAlignment: Bool32,
9976    pub maxBufferSize: DeviceSize,
9977}
9978
9979#[repr(C)]
9980#[derive(Copy, Clone)]
9981pub struct PipelineCompilerControlCreateInfoAMD {
9982    pub sType: StructureType,
9983    pub pNext: *const c_void,
9984    pub compilerControlFlags: PipelineCompilerControlFlagsAMD,
9985}
9986
9987#[repr(C)]
9988#[derive(Copy, Clone)]
9989pub struct PhysicalDeviceCoherentMemoryFeaturesAMD {
9990    pub sType: StructureType,
9991    pub pNext: *mut c_void,
9992    pub deviceCoherentMemory: Bool32,
9993}
9994
9995#[repr(C)]
9996#[derive(Copy, Clone)]
9997pub struct PhysicalDeviceToolProperties {
9998    pub sType: StructureType,
9999    pub pNext: *mut c_void,
10000    pub name: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
10001    pub version: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
10002    pub purposes: ToolPurposeFlags,
10003    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
10004    pub layer: [c_char; MAX_EXTENSION_NAME_SIZE as usize],
10005}
10006
10007pub type PhysicalDeviceToolPropertiesEXT = PhysicalDeviceToolProperties;
10008
10009#[repr(C)]
10010#[derive(Copy, Clone)]
10011pub struct SamplerCustomBorderColorCreateInfoEXT {
10012    pub sType: StructureType,
10013    pub pNext: *const c_void,
10014    pub customBorderColor: ClearColorValue,
10015    pub format: Format,
10016}
10017
10018#[repr(C)]
10019#[derive(Copy, Clone)]
10020pub struct PhysicalDeviceCustomBorderColorPropertiesEXT {
10021    pub sType: StructureType,
10022    pub pNext: *mut c_void,
10023    pub maxCustomBorderColorSamplers: u32,
10024}
10025
10026#[repr(C)]
10027#[derive(Copy, Clone)]
10028pub struct PhysicalDeviceCustomBorderColorFeaturesEXT {
10029    pub sType: StructureType,
10030    pub pNext: *mut c_void,
10031    pub customBorderColors: Bool32,
10032    pub customBorderColorWithoutFormat: Bool32,
10033}
10034
10035#[repr(C)]
10036#[derive(Copy, Clone)]
10037pub struct SamplerBorderColorComponentMappingCreateInfoEXT {
10038    pub sType: StructureType,
10039    pub pNext: *const c_void,
10040    pub components: ComponentMapping,
10041    pub srgb: Bool32,
10042}
10043
10044#[repr(C)]
10045#[derive(Copy, Clone)]
10046pub struct PhysicalDeviceBorderColorSwizzleFeaturesEXT {
10047    pub sType: StructureType,
10048    pub pNext: *mut c_void,
10049    pub borderColorSwizzle: Bool32,
10050    pub borderColorSwizzleFromImage: Bool32,
10051}
10052
10053#[repr(C)]
10054#[derive(Copy, Clone)]
10055pub struct AccelerationStructureGeometryTrianglesDataKHR {
10056    pub sType: StructureType,
10057    pub pNext: *const c_void,
10058    pub vertexFormat: Format,
10059    pub vertexData: DeviceOrHostAddressConstKHR,
10060    pub vertexStride: DeviceSize,
10061    pub maxVertex: u32,
10062    pub indexType: IndexType,
10063    pub indexData: DeviceOrHostAddressConstKHR,
10064    pub transformData: DeviceOrHostAddressConstKHR,
10065}
10066
10067#[repr(C)]
10068#[derive(Copy, Clone)]
10069pub struct AccelerationStructureGeometryAabbsDataKHR {
10070    pub sType: StructureType,
10071    pub pNext: *const c_void,
10072    pub data: DeviceOrHostAddressConstKHR,
10073    pub stride: DeviceSize,
10074}
10075
10076#[repr(C)]
10077#[derive(Copy, Clone)]
10078pub struct AccelerationStructureGeometryInstancesDataKHR {
10079    pub sType: StructureType,
10080    pub pNext: *const c_void,
10081    pub arrayOfPointers: Bool32,
10082    pub data: DeviceOrHostAddressConstKHR,
10083}
10084
10085#[repr(C)]
10086#[derive(Copy, Clone)]
10087pub struct AccelerationStructureGeometryKHR {
10088    pub sType: StructureType,
10089    pub pNext: *const c_void,
10090    pub geometryType: GeometryTypeKHR,
10091    pub geometry: AccelerationStructureGeometryDataKHR,
10092    pub flags: GeometryFlagsKHR,
10093}
10094
10095#[repr(C)]
10096#[derive(Copy, Clone)]
10097pub struct AccelerationStructureBuildGeometryInfoKHR {
10098    pub sType: StructureType,
10099    pub pNext: *const c_void,
10100    pub typ: AccelerationStructureTypeKHR,
10101    pub flags: BuildAccelerationStructureFlagsKHR,
10102    pub mode: BuildAccelerationStructureModeKHR,
10103    pub srcAccelerationStructure: AccelerationStructureKHR,
10104    pub dstAccelerationStructure: AccelerationStructureKHR,
10105    pub geometryCount: u32,
10106    pub pGeometries: *const AccelerationStructureGeometryKHR,
10107    pub ppGeometries: *const *const AccelerationStructureGeometryKHR,
10108    pub scratchData: DeviceOrHostAddressKHR,
10109}
10110
10111#[repr(C)]
10112#[derive(Copy, Clone)]
10113pub struct AccelerationStructureBuildRangeInfoKHR {
10114    pub primitiveCount: u32,
10115    pub primitiveOffset: u32,
10116    pub firstVertex: u32,
10117    pub transformOffset: u32,
10118}
10119
10120#[repr(C)]
10121#[derive(Copy, Clone)]
10122pub struct AccelerationStructureCreateInfoKHR {
10123    pub sType: StructureType,
10124    pub pNext: *const c_void,
10125    pub createFlags: AccelerationStructureCreateFlagsKHR,
10126    pub buffer: Buffer,
10127    pub offset: DeviceSize, // Specified in bytes
10128    pub size: DeviceSize,
10129    pub typ: AccelerationStructureTypeKHR,
10130    pub deviceAddress: DeviceAddress,
10131}
10132
10133#[repr(C)]
10134#[derive(Copy, Clone)]
10135pub struct AabbPositionsKHR {
10136    pub minX: f32,
10137    pub minY: f32,
10138    pub minZ: f32,
10139    pub maxX: f32,
10140    pub maxY: f32,
10141    pub maxZ: f32,
10142}
10143
10144pub type AabbPositionsNV = AabbPositionsKHR;
10145
10146#[repr(C)]
10147#[derive(Copy, Clone)]
10148pub struct TransformMatrixKHR {
10149    pub matrix: [[f32; 4]; 3],
10150}
10151
10152pub type TransformMatrixNV = TransformMatrixKHR;
10153
10154#[repr(C)]
10155#[derive(Copy, Clone)]
10156pub struct AccelerationStructureInstanceKHR {
10157    pub transform: TransformMatrixKHR,
10158    pub instanceCustomIndex: u32, // 24 bits, 8 bits for mask
10159    pub instanceShaderBindingTableRecordOffset: u32, // 24 bits, 8 bits for flags
10160    pub accelerationStructureReference: u64,
10161}
10162
10163pub type AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR;
10164
10165#[repr(C)]
10166#[derive(Copy, Clone)]
10167pub struct AccelerationStructureDeviceAddressInfoKHR {
10168    pub sType: StructureType,
10169    pub pNext: *const c_void,
10170    pub accelerationStructure: AccelerationStructureKHR,
10171}
10172
10173#[repr(C)]
10174#[derive(Copy, Clone)]
10175pub struct AccelerationStructureVersionInfoKHR {
10176    pub sType: StructureType,
10177    pub pNext: *const c_void,
10178    pub pVersionData: *const u8,
10179}
10180
10181#[repr(C)]
10182#[derive(Copy, Clone)]
10183pub struct CopyAccelerationStructureInfoKHR {
10184    pub sType: StructureType,
10185    pub pNext: *const c_void,
10186    pub src: AccelerationStructureKHR,
10187    pub dst: AccelerationStructureKHR,
10188    pub mode: CopyAccelerationStructureModeKHR,
10189}
10190
10191#[repr(C)]
10192#[derive(Copy, Clone)]
10193pub struct CopyAccelerationStructureToMemoryInfoKHR {
10194    pub sType: StructureType,
10195    pub pNext: *const c_void,
10196    pub src: AccelerationStructureKHR,
10197    pub dst: DeviceOrHostAddressKHR,
10198    pub mode: CopyAccelerationStructureModeKHR,
10199}
10200
10201#[repr(C)]
10202#[derive(Copy, Clone)]
10203pub struct CopyMemoryToAccelerationStructureInfoKHR {
10204    pub sType: StructureType,
10205    pub pNext: *const c_void,
10206    pub src: DeviceOrHostAddressConstKHR,
10207    pub dst: AccelerationStructureKHR,
10208    pub mode: CopyAccelerationStructureModeKHR,
10209}
10210
10211#[repr(C)]
10212#[derive(Copy, Clone)]
10213pub struct RayTracingPipelineInterfaceCreateInfoKHR {
10214    pub sType: StructureType,
10215    pub pNext: *const c_void,
10216    pub maxPipelineRayPayloadSize: u32,
10217    pub maxPipelineRayHitAttributeSize: u32,
10218}
10219
10220#[repr(C)]
10221#[derive(Copy, Clone)]
10222pub struct PipelineLibraryCreateInfoKHR {
10223    pub sType: StructureType,
10224    pub pNext: *const c_void,
10225    pub libraryCount: u32,
10226    pub pLibraries: *const Pipeline,
10227}
10228
10229#[repr(C)]
10230#[derive(Copy, Clone)]
10231pub struct PhysicalDeviceExtendedDynamicStateFeaturesEXT {
10232    pub sType: StructureType,
10233    pub pNext: *mut c_void,
10234    pub extendedDynamicState: Bool32,
10235}
10236
10237#[repr(C)]
10238#[derive(Copy, Clone)]
10239pub struct PhysicalDeviceExtendedDynamicState2FeaturesEXT {
10240    pub sType: StructureType,
10241    pub pNext: *mut c_void,
10242    pub extendedDynamicState2: Bool32,
10243    pub extendedDynamicState2LogicOp: Bool32,
10244    pub extendedDynamicState2PatchControlPoints: Bool32,
10245}
10246
10247#[repr(C)]
10248#[derive(Copy, Clone)]
10249pub struct PhysicalDeviceExtendedDynamicState3FeaturesEXT {
10250    pub sType: StructureType,
10251    pub pNext: *mut c_void,
10252    pub extendedDynamicState3TessellationDomainOrigin: Bool32,
10253    pub extendedDynamicState3DepthClampEnable: Bool32,
10254    pub extendedDynamicState3PolygonMode: Bool32,
10255    pub extendedDynamicState3RasterizationSamples: Bool32,
10256    pub extendedDynamicState3SampleMask: Bool32,
10257    pub extendedDynamicState3AlphaToCoverageEnable: Bool32,
10258    pub extendedDynamicState3AlphaToOneEnable: Bool32,
10259    pub extendedDynamicState3LogicOpEnable: Bool32,
10260    pub extendedDynamicState3ColorBlendEnable: Bool32,
10261    pub extendedDynamicState3ColorBlendEquation: Bool32,
10262    pub extendedDynamicState3ColorWriteMask: Bool32,
10263    pub extendedDynamicState3RasterizationStream: Bool32,
10264    pub extendedDynamicState3ConservativeRasterizationMode: Bool32,
10265    pub extendedDynamicState3ExtraPrimitiveOverestimationSize: Bool32,
10266    pub extendedDynamicState3DepthClipEnable: Bool32,
10267    pub extendedDynamicState3SampleLocationsEnable: Bool32,
10268    pub extendedDynamicState3ColorBlendAdvanced: Bool32,
10269    pub extendedDynamicState3ProvokingVertexMode: Bool32,
10270    pub extendedDynamicState3LineRasterizationMode: Bool32,
10271    pub extendedDynamicState3LineStippleEnable: Bool32,
10272    pub extendedDynamicState3DepthClipNegativeOneToOne: Bool32,
10273    pub extendedDynamicState3ViewportWScalingEnable: Bool32,
10274    pub extendedDynamicState3ViewportSwizzle: Bool32,
10275    pub extendedDynamicState3CoverageToColorEnable: Bool32,
10276    pub extendedDynamicState3CoverageToColorLocation: Bool32,
10277    pub extendedDynamicState3CoverageModulationMode: Bool32,
10278    pub extendedDynamicState3CoverageModulationTableEnable: Bool32,
10279    pub extendedDynamicState3CoverageModulationTable: Bool32,
10280    pub extendedDynamicState3CoverageReductionMode: Bool32,
10281    pub extendedDynamicState3RepresentativeFragmentTestEnable: Bool32,
10282    pub extendedDynamicState3ShadingRateImageEnable: Bool32,
10283}
10284
10285#[repr(C)]
10286#[derive(Copy, Clone)]
10287pub struct PhysicalDeviceExtendedDynamicState3PropertiesEXT {
10288    pub sType: StructureType,
10289    pub pNext: *mut c_void,
10290    pub dynamicPrimitiveTopologyUnrestricted: Bool32,
10291}
10292
10293#[repr(C)]
10294#[derive(Copy, Clone)]
10295pub struct ColorBlendEquationEXT {
10296    pub srcColorBlendFactor: BlendFactor,
10297    pub dstColorBlendFactor: BlendFactor,
10298    pub colorBlendOp: BlendOp,
10299    pub srcAlphaBlendFactor: BlendFactor,
10300    pub dstAlphaBlendFactor: BlendFactor,
10301    pub alphaBlendOp: BlendOp,
10302}
10303
10304#[repr(C)]
10305#[derive(Copy, Clone)]
10306pub struct ColorBlendAdvancedEXT {
10307    pub advancedBlendOp: BlendOp,
10308    pub srcPremultiplied: Bool32,
10309    pub dstPremultiplied: Bool32,
10310    pub blendOverlap: BlendOverlapEXT,
10311    pub clampResults: Bool32,
10312}
10313
10314#[repr(C)]
10315#[derive(Copy, Clone)]
10316pub struct RenderPassTransformBeginInfoQCOM {
10317    pub sType: StructureType,
10318    pub pNext: *mut c_void, // Pointer to next structure
10319    pub transform: SurfaceTransformFlagBitsKHR,
10320}
10321
10322#[repr(C)]
10323#[derive(Copy, Clone)]
10324pub struct CopyCommandTransformInfoQCOM {
10325    pub sType: StructureType,
10326    pub pNext: *const c_void,
10327    pub transform: SurfaceTransformFlagBitsKHR,
10328}
10329
10330#[repr(C)]
10331#[derive(Copy, Clone)]
10332pub struct CommandBufferInheritanceRenderPassTransformInfoQCOM {
10333    pub sType: StructureType,
10334    pub pNext: *mut c_void, // Pointer to next structure
10335    pub transform: SurfaceTransformFlagBitsKHR,
10336    pub renderArea: Rect2D,
10337}
10338
10339#[repr(C)]
10340#[derive(Copy, Clone)]
10341pub struct PhysicalDeviceDiagnosticsConfigFeaturesNV {
10342    pub sType: StructureType,
10343    pub pNext: *mut c_void,
10344    pub diagnosticsConfig: Bool32,
10345}
10346
10347#[repr(C)]
10348#[derive(Copy, Clone)]
10349pub struct DeviceDiagnosticsConfigCreateInfoNV {
10350    pub sType: StructureType,
10351    pub pNext: *const c_void,
10352    pub flags: DeviceDiagnosticsConfigFlagsNV,
10353}
10354
10355#[repr(C)]
10356#[derive(Copy, Clone)]
10357pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
10358    pub sType: StructureType,
10359    pub pNext: *mut c_void,
10360    pub shaderZeroInitializeWorkgroupMemory: Bool32,
10361}
10362
10363pub type PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR =
10364    PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
10365
10366#[repr(C)]
10367#[derive(Copy, Clone)]
10368pub struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
10369    pub sType: StructureType,
10370    pub pNext: *mut c_void,
10371    pub shaderSubgroupUniformControlFlow: Bool32,
10372}
10373
10374#[repr(C)]
10375#[derive(Copy, Clone)]
10376pub struct PhysicalDeviceRobustness2FeaturesEXT {
10377    pub sType: StructureType,
10378    pub pNext: *mut c_void,
10379    pub robustBufferAccess2: Bool32,
10380    pub robustImageAccess2: Bool32,
10381    pub nullDescriptor: Bool32,
10382}
10383
10384#[repr(C)]
10385#[derive(Copy, Clone)]
10386pub struct PhysicalDeviceRobustness2PropertiesEXT {
10387    pub sType: StructureType,
10388    pub pNext: *mut c_void,
10389    pub robustStorageBufferAccessSizeAlignment: DeviceSize,
10390    pub robustUniformBufferAccessSizeAlignment: DeviceSize,
10391}
10392
10393#[repr(C)]
10394#[derive(Copy, Clone)]
10395pub struct PhysicalDeviceImageRobustnessFeatures {
10396    pub sType: StructureType,
10397    pub pNext: *mut c_void,
10398    pub robustImageAccess: Bool32,
10399}
10400
10401pub type PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeatures;
10402
10403#[repr(C)]
10404#[derive(Copy, Clone)]
10405pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
10406    pub sType: StructureType,
10407    pub pNext: *mut c_void,
10408    pub workgroupMemoryExplicitLayout: Bool32,
10409    pub workgroupMemoryExplicitLayoutScalarBlockLayout: Bool32,
10410    pub workgroupMemoryExplicitLayout8BitAccess: Bool32,
10411    pub workgroupMemoryExplicitLayout16BitAccess: Bool32,
10412}
10413
10414#[repr(C)]
10415#[derive(Copy, Clone)]
10416pub struct PhysicalDevicePortabilitySubsetFeaturesKHR {
10417    pub sType: StructureType,
10418    pub pNext: *mut c_void,
10419    pub constantAlphaColorBlendFactors: Bool32,
10420    pub events: Bool32,
10421    pub imageViewFormatReinterpretation: Bool32,
10422    pub imageViewFormatSwizzle: Bool32,
10423    pub imageView2DOn3DImage: Bool32,
10424    pub multisampleArrayImage: Bool32,
10425    pub mutableComparisonSamplers: Bool32,
10426    pub pointPolygons: Bool32,
10427    pub samplerMipLodBias: Bool32,
10428    pub separateStencilMaskRef: Bool32,
10429    pub shaderSampleRateInterpolationFunctions: Bool32,
10430    pub tessellationIsolines: Bool32,
10431    pub tessellationPointMode: Bool32,
10432    pub triangleFans: Bool32,
10433    pub vertexAttributeAccessBeyondStride: Bool32,
10434}
10435
10436#[repr(C)]
10437#[derive(Copy, Clone)]
10438pub struct PhysicalDevicePortabilitySubsetPropertiesKHR {
10439    pub sType: StructureType,
10440    pub pNext: *mut c_void,
10441    pub minVertexInputBindingStrideAlignment: u32,
10442}
10443
10444#[repr(C)]
10445#[derive(Copy, Clone)]
10446pub struct PhysicalDevice4444FormatsFeaturesEXT {
10447    pub sType: StructureType,
10448    pub pNext: *mut c_void,
10449    pub formatA4R4G4B4: Bool32,
10450    pub formatA4B4G4R4: Bool32,
10451}
10452
10453#[repr(C)]
10454#[derive(Copy, Clone)]
10455pub struct PhysicalDeviceSubpassShadingFeaturesHUAWEI {
10456    pub sType: StructureType,
10457    pub pNext: *mut c_void,
10458    pub subpassShading: Bool32,
10459}
10460
10461#[repr(C)]
10462#[derive(Copy, Clone)]
10463pub struct BufferCopy2 {
10464    pub sType: StructureType,
10465    pub pNext: *const c_void,
10466    pub srcOffset: DeviceSize, // Specified in bytes
10467    pub dstOffset: DeviceSize, // Specified in bytes
10468    pub size: DeviceSize,      // Specified in bytes
10469}
10470
10471pub type BufferCopy2KHR = BufferCopy2;
10472
10473#[repr(C)]
10474#[derive(Copy, Clone)]
10475pub struct ImageCopy2 {
10476    pub sType: StructureType,
10477    pub pNext: *const c_void,
10478    pub srcSubresource: ImageSubresourceLayers,
10479    pub srcOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
10480    pub dstSubresource: ImageSubresourceLayers,
10481    pub dstOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
10482    pub extent: Extent3D,    // Specified in pixels for both compressed and uncompressed images
10483}
10484
10485pub type ImageCopy2KHR = ImageCopy2;
10486
10487#[repr(C)]
10488#[derive(Copy, Clone)]
10489pub struct ImageBlit2 {
10490    pub sType: StructureType,
10491    pub pNext: *const c_void,
10492    pub srcSubresource: ImageSubresourceLayers,
10493    pub srcOffsets: [Offset3D; 2], // Specified in pixels for both compressed and uncompressed images
10494    pub dstSubresource: ImageSubresourceLayers,
10495    pub dstOffsets: [Offset3D; 2], // Specified in pixels for both compressed and uncompressed images
10496}
10497
10498pub type ImageBlit2KHR = ImageBlit2;
10499
10500#[repr(C)]
10501#[derive(Copy, Clone)]
10502pub struct BufferImageCopy2 {
10503    pub sType: StructureType,
10504    pub pNext: *const c_void,
10505    pub bufferOffset: DeviceSize, // Specified in bytes
10506    pub bufferRowLength: u32,     // Specified in texels
10507    pub bufferImageHeight: u32,
10508    pub imageSubresource: ImageSubresourceLayers,
10509    pub imageOffset: Offset3D, // Specified in pixels for both compressed and uncompressed images
10510    pub imageExtent: Extent3D, // Specified in pixels for both compressed and uncompressed images
10511}
10512
10513pub type BufferImageCopy2KHR = BufferImageCopy2;
10514
10515#[repr(C)]
10516#[derive(Copy, Clone)]
10517pub struct ImageResolve2 {
10518    pub sType: StructureType,
10519    pub pNext: *const c_void,
10520    pub srcSubresource: ImageSubresourceLayers,
10521    pub srcOffset: Offset3D,
10522    pub dstSubresource: ImageSubresourceLayers,
10523    pub dstOffset: Offset3D,
10524    pub extent: Extent3D,
10525}
10526
10527pub type ImageResolve2KHR = ImageResolve2;
10528
10529#[repr(C)]
10530#[derive(Copy, Clone)]
10531pub struct CopyBufferInfo2 {
10532    pub sType: StructureType,
10533    pub pNext: *const c_void,
10534    pub srcBuffer: Buffer,
10535    pub dstBuffer: Buffer,
10536    pub regionCount: u32,
10537    pub pRegions: *const BufferCopy2,
10538}
10539
10540pub type CopyBufferInfo2KHR = CopyBufferInfo2;
10541
10542#[repr(C)]
10543#[derive(Copy, Clone)]
10544pub struct CopyImageInfo2 {
10545    pub sType: StructureType,
10546    pub pNext: *const c_void,
10547    pub srcImage: Image,
10548    pub srcImageLayout: ImageLayout,
10549    pub dstImage: Image,
10550    pub dstImageLayout: ImageLayout,
10551    pub regionCount: u32,
10552    pub pRegions: *const ImageCopy2,
10553}
10554
10555pub type CopyImageInfo2KHR = CopyImageInfo2;
10556
10557#[repr(C)]
10558#[derive(Copy, Clone)]
10559pub struct BlitImageInfo2 {
10560    pub sType: StructureType,
10561    pub pNext: *const c_void,
10562    pub srcImage: Image,
10563    pub srcImageLayout: ImageLayout,
10564    pub dstImage: Image,
10565    pub dstImageLayout: ImageLayout,
10566    pub regionCount: u32,
10567    pub pRegions: *const ImageBlit2,
10568    pub filter: Filter,
10569}
10570
10571pub type BlitImageInfo2KHR = BlitImageInfo2;
10572
10573#[repr(C)]
10574#[derive(Copy, Clone)]
10575pub struct CopyBufferToImageInfo2 {
10576    pub sType: StructureType,
10577    pub pNext: *const c_void,
10578    pub srcBuffer: Buffer,
10579    pub dstImage: Image,
10580    pub dstImageLayout: ImageLayout,
10581    pub regionCount: u32,
10582    pub pRegions: *const BufferImageCopy2,
10583}
10584
10585pub type CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2;
10586
10587#[repr(C)]
10588#[derive(Copy, Clone)]
10589pub struct CopyImageToBufferInfo2 {
10590    pub sType: StructureType,
10591    pub pNext: *const c_void,
10592    pub srcImage: Image,
10593    pub srcImageLayout: ImageLayout,
10594    pub dstBuffer: Buffer,
10595    pub regionCount: u32,
10596    pub pRegions: *const BufferImageCopy2,
10597}
10598
10599pub type CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2;
10600
10601#[repr(C)]
10602#[derive(Copy, Clone)]
10603pub struct ResolveImageInfo2 {
10604    pub sType: StructureType,
10605    pub pNext: *const c_void,
10606    pub srcImage: Image,
10607    pub srcImageLayout: ImageLayout,
10608    pub dstImage: Image,
10609    pub dstImageLayout: ImageLayout,
10610    pub regionCount: u32,
10611    pub pRegions: *const ImageResolve2,
10612}
10613
10614pub type ResolveImageInfo2KHR = ResolveImageInfo2;
10615
10616#[repr(C)]
10617#[derive(Copy, Clone)]
10618pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
10619    pub sType: StructureType,
10620    pub pNext: *mut c_void,
10621    pub shaderImageInt64Atomics: Bool32,
10622    pub sparseImageInt64Atomics: Bool32,
10623}
10624
10625#[repr(C)]
10626#[derive(Copy, Clone)]
10627pub struct FragmentShadingRateAttachmentInfoKHR {
10628    pub sType: StructureType,
10629    pub pNext: *const c_void,
10630    pub pFragmentShadingRateAttachment: *const AttachmentReference2,
10631    pub shadingRateAttachmentTexelSize: Extent2D,
10632}
10633
10634#[repr(C)]
10635#[derive(Copy, Clone)]
10636pub struct PipelineFragmentShadingRateStateCreateInfoKHR {
10637    pub sType: StructureType,
10638    pub pNext: *const c_void,
10639    pub fragmentSize: Extent2D,
10640    pub combinerOps: [FragmentShadingRateCombinerOpKHR; 2],
10641}
10642
10643#[repr(C)]
10644#[derive(Copy, Clone)]
10645pub struct PhysicalDeviceFragmentShadingRateFeaturesKHR {
10646    pub sType: StructureType,
10647    pub pNext: *mut c_void,
10648    pub pipelineFragmentShadingRate: Bool32,
10649    pub primitiveFragmentShadingRate: Bool32,
10650    pub attachmentFragmentShadingRate: Bool32,
10651}
10652
10653#[repr(C)]
10654#[derive(Copy, Clone)]
10655pub struct PhysicalDeviceFragmentShadingRatePropertiesKHR {
10656    pub sType: StructureType,
10657    pub pNext: *mut c_void,
10658    pub minFragmentShadingRateAttachmentTexelSize: Extent2D,
10659    pub maxFragmentShadingRateAttachmentTexelSize: Extent2D,
10660    pub maxFragmentShadingRateAttachmentTexelSizeAspectRatio: u32,
10661    pub primitiveFragmentShadingRateWithMultipleViewports: Bool32,
10662    pub layeredShadingRateAttachments: Bool32,
10663    pub fragmentShadingRateNonTrivialCombinerOps: Bool32,
10664    pub maxFragmentSize: Extent2D,
10665    pub maxFragmentSizeAspectRatio: u32,
10666    pub maxFragmentShadingRateCoverageSamples: u32,
10667    pub maxFragmentShadingRateRasterizationSamples: SampleCountFlagBits,
10668    pub fragmentShadingRateWithShaderDepthStencilWrites: Bool32,
10669    pub fragmentShadingRateWithSampleMask: Bool32,
10670    pub fragmentShadingRateWithShaderSampleMask: Bool32,
10671    pub fragmentShadingRateWithConservativeRasterization: Bool32,
10672    pub fragmentShadingRateWithFragmentShaderInterlock: Bool32,
10673    pub fragmentShadingRateWithCustomSampleLocations: Bool32,
10674    pub fragmentShadingRateStrictMultiplyCombiner: Bool32,
10675}
10676
10677#[repr(C)]
10678#[derive(Copy, Clone)]
10679pub struct PhysicalDeviceFragmentShadingRateKHR {
10680    pub sType: StructureType,
10681    pub pNext: *mut c_void,
10682    pub sampleCounts: SampleCountFlags,
10683    pub fragmentSize: Extent2D,
10684}
10685
10686#[repr(C)]
10687#[derive(Copy, Clone)]
10688pub struct PhysicalDeviceShaderTerminateInvocationFeatures {
10689    pub sType: StructureType,
10690    pub pNext: *mut c_void,
10691    pub shaderTerminateInvocation: Bool32,
10692}
10693
10694pub type PhysicalDeviceShaderTerminateInvocationFeaturesKHR =
10695    PhysicalDeviceShaderTerminateInvocationFeatures;
10696
10697#[repr(C)]
10698#[derive(Copy, Clone)]
10699pub struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
10700    pub sType: StructureType,
10701    pub pNext: *mut c_void,
10702    pub fragmentShadingRateEnums: Bool32,
10703    pub supersampleFragmentShadingRates: Bool32,
10704    pub noInvocationFragmentShadingRates: Bool32,
10705}
10706
10707#[repr(C)]
10708#[derive(Copy, Clone)]
10709pub struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
10710    pub sType: StructureType,
10711    pub pNext: *mut c_void,
10712    pub maxFragmentShadingRateInvocationCount: SampleCountFlagBits,
10713}
10714
10715#[repr(C)]
10716#[derive(Copy, Clone)]
10717pub struct PipelineFragmentShadingRateEnumStateCreateInfoNV {
10718    pub sType: StructureType,
10719    pub pNext: *const c_void,
10720    pub shadingRateType: FragmentShadingRateTypeNV,
10721    pub shadingRate: FragmentShadingRateNV,
10722    pub combinerOps: [FragmentShadingRateCombinerOpKHR; 2],
10723}
10724
10725#[repr(C)]
10726#[derive(Copy, Clone)]
10727pub struct AccelerationStructureBuildSizesInfoKHR {
10728    pub sType: StructureType,
10729    pub pNext: *const c_void,
10730    pub accelerationStructureSize: DeviceSize,
10731    pub updateScratchSize: DeviceSize,
10732    pub buildScratchSize: DeviceSize,
10733}
10734
10735#[repr(C)]
10736#[derive(Copy, Clone)]
10737pub struct PhysicalDeviceImage2DViewOf3DFeaturesEXT {
10738    pub sType: StructureType,
10739    pub pNext: *mut c_void,
10740    pub image2DViewOf3D: Bool32,
10741    pub sampler2DViewOf3D: Bool32,
10742}
10743
10744#[repr(C)]
10745#[derive(Copy, Clone)]
10746pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
10747    pub sType: StructureType,
10748    pub pNext: *mut c_void,
10749    pub mutableDescriptorType: Bool32,
10750}
10751
10752pub type PhysicalDeviceMutableDescriptorTypeFeaturesVALVE =
10753    PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
10754
10755#[repr(C)]
10756#[derive(Copy, Clone)]
10757pub struct MutableDescriptorTypeListEXT {
10758    pub descriptorTypeCount: u32,
10759    pub pDescriptorTypes: *const DescriptorType,
10760}
10761
10762pub type MutableDescriptorTypeListVALVE = MutableDescriptorTypeListEXT;
10763
10764#[repr(C)]
10765#[derive(Copy, Clone)]
10766pub struct MutableDescriptorTypeCreateInfoEXT {
10767    pub sType: StructureType,
10768    pub pNext: *const c_void,
10769    pub mutableDescriptorTypeListCount: u32,
10770    pub pMutableDescriptorTypeLists: *const MutableDescriptorTypeListEXT,
10771}
10772
10773pub type MutableDescriptorTypeCreateInfoVALVE = MutableDescriptorTypeCreateInfoEXT;
10774
10775#[repr(C)]
10776#[derive(Copy, Clone)]
10777pub struct PhysicalDeviceDepthClipControlFeaturesEXT {
10778    pub sType: StructureType,
10779    pub pNext: *mut c_void,
10780    pub depthClipControl: Bool32,
10781}
10782
10783#[repr(C)]
10784#[derive(Copy, Clone)]
10785pub struct PipelineViewportDepthClipControlCreateInfoEXT {
10786    pub sType: StructureType,
10787    pub pNext: *const c_void,
10788    pub negativeOneToOne: Bool32,
10789}
10790
10791#[repr(C)]
10792#[derive(Copy, Clone)]
10793pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
10794    pub sType: StructureType,
10795    pub pNext: *mut c_void,
10796    pub vertexInputDynamicState: Bool32,
10797}
10798
10799#[repr(C)]
10800#[derive(Copy, Clone)]
10801pub struct PhysicalDeviceExternalMemoryRDMAFeaturesNV {
10802    pub sType: StructureType,
10803    pub pNext: *mut c_void,
10804    pub externalMemoryRDMA: Bool32,
10805}
10806
10807#[repr(C)]
10808#[derive(Copy, Clone)]
10809pub struct VertexInputBindingDescription2EXT {
10810    pub sType: StructureType,
10811    pub pNext: *mut c_void,
10812    pub binding: u32,
10813    pub stride: u32,
10814    pub inputRate: VertexInputRate,
10815    pub divisor: u32,
10816}
10817
10818#[repr(C)]
10819#[derive(Copy, Clone)]
10820pub struct VertexInputAttributeDescription2EXT {
10821    pub sType: StructureType,
10822    pub pNext: *mut c_void,
10823    pub location: u32,  // location of the shader vertex attrib
10824    pub binding: u32,   // Vertex buffer binding id
10825    pub format: Format, // format of source data
10826    pub offset: u32,    // Offset of first element in bytes from base of vertex
10827}
10828
10829#[repr(C)]
10830#[derive(Copy, Clone)]
10831pub struct PhysicalDeviceColorWriteEnableFeaturesEXT {
10832    pub sType: StructureType,
10833    pub pNext: *mut c_void,
10834    pub colorWriteEnable: Bool32,
10835}
10836
10837#[repr(C)]
10838#[derive(Copy, Clone)]
10839pub struct PipelineColorWriteCreateInfoEXT {
10840    pub sType: StructureType,
10841    pub pNext: *const c_void,
10842    pub attachmentCount: u32, // # of pAttachments
10843    pub pColorWriteEnables: *const Bool32,
10844}
10845
10846#[repr(C)]
10847#[derive(Copy, Clone)]
10848pub struct MemoryBarrier2 {
10849    pub sType: StructureType,
10850    pub pNext: *const c_void,
10851    pub srcStageMask: PipelineStageFlags2,
10852    pub srcAccessMask: AccessFlags2,
10853    pub dstStageMask: PipelineStageFlags2,
10854    pub dstAccessMask: AccessFlags2,
10855}
10856
10857pub type MemoryBarrier2KHR = MemoryBarrier2;
10858
10859#[repr(C)]
10860#[derive(Copy, Clone)]
10861pub struct ImageMemoryBarrier2 {
10862    pub sType: StructureType,
10863    pub pNext: *const c_void,
10864    pub srcStageMask: PipelineStageFlags2,
10865    pub srcAccessMask: AccessFlags2,
10866    pub dstStageMask: PipelineStageFlags2,
10867    pub dstAccessMask: AccessFlags2,
10868    pub oldLayout: ImageLayout,
10869    pub newLayout: ImageLayout,
10870    pub srcQueueFamilyIndex: u32,
10871    pub dstQueueFamilyIndex: u32,
10872    pub image: Image,
10873    pub subresourceRange: ImageSubresourceRange,
10874}
10875
10876pub type ImageMemoryBarrier2KHR = ImageMemoryBarrier2;
10877
10878#[repr(C)]
10879#[derive(Copy, Clone)]
10880pub struct BufferMemoryBarrier2 {
10881    pub sType: StructureType,
10882    pub pNext: *const c_void,
10883    pub srcStageMask: PipelineStageFlags2,
10884    pub srcAccessMask: AccessFlags2,
10885    pub dstStageMask: PipelineStageFlags2,
10886    pub dstAccessMask: AccessFlags2,
10887    pub srcQueueFamilyIndex: u32,
10888    pub dstQueueFamilyIndex: u32,
10889    pub buffer: Buffer,
10890    pub offset: DeviceSize,
10891    pub size: DeviceSize,
10892}
10893
10894pub type BufferMemoryBarrier2KHR = BufferMemoryBarrier2;
10895
10896#[repr(C)]
10897#[derive(Copy, Clone)]
10898pub struct DependencyInfo {
10899    pub sType: StructureType,
10900    pub pNext: *const c_void,
10901    pub dependencyFlags: DependencyFlags,
10902    pub memoryBarrierCount: u32,
10903    pub pMemoryBarriers: *const MemoryBarrier2,
10904    pub bufferMemoryBarrierCount: u32,
10905    pub pBufferMemoryBarriers: *const BufferMemoryBarrier2,
10906    pub imageMemoryBarrierCount: u32,
10907    pub pImageMemoryBarriers: *const ImageMemoryBarrier2,
10908}
10909
10910pub type DependencyInfoKHR = DependencyInfo;
10911
10912#[repr(C)]
10913#[derive(Copy, Clone)]
10914pub struct SemaphoreSubmitInfo {
10915    pub sType: StructureType,
10916    pub pNext: *const c_void,
10917    pub semaphore: Semaphore,
10918    pub value: u64,
10919    pub stageMask: PipelineStageFlags2,
10920    pub deviceIndex: u32,
10921}
10922
10923pub type SemaphoreSubmitInfoKHR = SemaphoreSubmitInfo;
10924
10925#[repr(C)]
10926#[derive(Copy, Clone)]
10927pub struct CommandBufferSubmitInfo {
10928    pub sType: StructureType,
10929    pub pNext: *const c_void,
10930    pub commandBuffer: CommandBuffer,
10931    pub deviceMask: u32,
10932}
10933
10934pub type CommandBufferSubmitInfoKHR = CommandBufferSubmitInfo;
10935
10936#[repr(C)]
10937#[derive(Copy, Clone)]
10938pub struct SubmitInfo2 {
10939    pub sType: StructureType,
10940    pub pNext: *const c_void,
10941    pub flags: SubmitFlags,
10942    pub waitSemaphoreInfoCount: u32,
10943    pub pWaitSemaphoreInfos: *const SemaphoreSubmitInfo,
10944    pub commandBufferInfoCount: u32,
10945    pub pCommandBufferInfos: *const CommandBufferSubmitInfo,
10946    pub signalSemaphoreInfoCount: u32,
10947    pub pSignalSemaphoreInfos: *const SemaphoreSubmitInfo,
10948}
10949
10950pub type SubmitInfo2KHR = SubmitInfo2;
10951
10952#[repr(C)]
10953#[derive(Copy, Clone)]
10954pub struct QueueFamilyCheckpointProperties2NV {
10955    pub sType: StructureType,
10956    pub pNext: *mut c_void,
10957    pub checkpointExecutionStageMask: PipelineStageFlags2,
10958}
10959
10960#[repr(C)]
10961#[derive(Copy, Clone)]
10962pub struct CheckpointData2NV {
10963    pub sType: StructureType,
10964    pub pNext: *mut c_void,
10965    pub stage: PipelineStageFlags2,
10966    pub pCheckpointMarker: *mut c_void,
10967}
10968
10969#[repr(C)]
10970#[derive(Copy, Clone)]
10971pub struct PhysicalDeviceSynchronization2Features {
10972    pub sType: StructureType,
10973    pub pNext: *mut c_void,
10974    pub synchronization2: Bool32,
10975}
10976
10977pub type PhysicalDeviceSynchronization2FeaturesKHR = PhysicalDeviceSynchronization2Features;
10978
10979#[repr(C)]
10980#[derive(Copy, Clone)]
10981pub struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
10982    pub sType: StructureType,
10983    pub pNext: *mut c_void,
10984    pub primitivesGeneratedQuery: Bool32,
10985    pub primitivesGeneratedQueryWithRasterizerDiscard: Bool32,
10986    pub primitivesGeneratedQueryWithNonZeroStreams: Bool32,
10987}
10988
10989#[repr(C)]
10990#[derive(Copy, Clone)]
10991pub struct PhysicalDeviceLegacyDitheringFeaturesEXT {
10992    pub sType: StructureType,
10993    pub pNext: *mut c_void,
10994    pub legacyDithering: Bool32,
10995}
10996
10997#[repr(C)]
10998#[derive(Copy, Clone)]
10999pub struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
11000    pub sType: StructureType,
11001    pub pNext: *mut c_void,
11002    pub multisampledRenderToSingleSampled: Bool32,
11003}
11004
11005#[repr(C)]
11006#[derive(Copy, Clone)]
11007pub struct SubpassResolvePerformanceQueryEXT {
11008    pub sType: StructureType,
11009    pub pNext: *mut c_void,
11010    pub optimal: Bool32,
11011}
11012
11013#[repr(C)]
11014#[derive(Copy, Clone)]
11015pub struct MultisampledRenderToSingleSampledInfoEXT {
11016    pub sType: StructureType,
11017    pub pNext: *const c_void,
11018    pub multisampledRenderToSingleSampledEnable: Bool32,
11019    pub rasterizationSamples: SampleCountFlagBits,
11020}
11021
11022#[repr(C)]
11023#[derive(Copy, Clone)]
11024pub struct PhysicalDevicePipelineProtectedAccessFeaturesEXT {
11025    pub sType: StructureType,
11026    pub pNext: *mut c_void,
11027    pub pipelineProtectedAccess: Bool32,
11028}
11029
11030#[repr(C)]
11031#[derive(Copy, Clone)]
11032pub struct QueueFamilyVideoPropertiesKHR {
11033    pub sType: StructureType,
11034    pub pNext: *mut c_void,
11035    pub videoCodecOperations: VideoCodecOperationFlagsKHR,
11036}
11037
11038#[repr(C)]
11039#[derive(Copy, Clone)]
11040pub struct QueueFamilyQueryResultStatusPropertiesKHR {
11041    pub sType: StructureType,
11042    pub pNext: *mut c_void,
11043    pub queryResultStatusSupport: Bool32,
11044}
11045
11046#[repr(C)]
11047#[derive(Copy, Clone)]
11048pub struct VideoProfileListInfoKHR {
11049    pub sType: StructureType,
11050    pub pNext: *const c_void,
11051    pub profileCount: u32,
11052    pub pProfiles: *const VideoProfileInfoKHR,
11053}
11054
11055#[repr(C)]
11056#[derive(Copy, Clone)]
11057pub struct PhysicalDeviceVideoFormatInfoKHR {
11058    pub sType: StructureType,
11059    pub pNext: *const c_void,
11060    pub imageUsage: ImageUsageFlags,
11061}
11062
11063#[repr(C)]
11064#[derive(Copy, Clone)]
11065pub struct VideoFormatPropertiesKHR {
11066    pub sType: StructureType,
11067    pub pNext: *mut c_void,
11068    pub format: Format,
11069    pub componentMapping: ComponentMapping,
11070    pub imageCreateFlags: ImageCreateFlags,
11071    pub imageType: ImageType,
11072    pub imageTiling: ImageTiling,
11073    pub imageUsageFlags: ImageUsageFlags,
11074}
11075
11076#[repr(C)]
11077#[derive(Copy, Clone)]
11078pub struct VideoProfileInfoKHR {
11079    pub sType: StructureType,
11080    pub pNext: *const c_void,
11081    pub videoCodecOperation: VideoCodecOperationFlagBitsKHR,
11082    pub chromaSubsampling: VideoChromaSubsamplingFlagsKHR,
11083    pub lumaBitDepth: VideoComponentBitDepthFlagsKHR,
11084    pub chromaBitDepth: VideoComponentBitDepthFlagsKHR,
11085}
11086
11087#[repr(C)]
11088#[derive(Copy, Clone)]
11089pub struct VideoCapabilitiesKHR {
11090    pub sType: StructureType,
11091    pub pNext: *mut c_void,
11092    pub flags: VideoCapabilityFlagsKHR,
11093    pub minBitstreamBufferOffsetAlignment: DeviceSize,
11094    pub minBitstreamBufferSizeAlignment: DeviceSize,
11095    pub pictureAccessGranularity: Extent2D,
11096    pub minCodedExtent: Extent2D,
11097    pub maxCodedExtent: Extent2D,
11098    pub maxDpbSlots: u32,
11099    pub maxActiveReferencePictures: u32,
11100    pub stdHeaderVersion: ExtensionProperties,
11101}
11102
11103#[repr(C)]
11104#[derive(Copy, Clone)]
11105pub struct VideoSessionMemoryRequirementsKHR {
11106    pub sType: StructureType,
11107    pub pNext: *mut c_void,
11108    pub memoryBindIndex: u32,
11109    pub memoryRequirements: MemoryRequirements,
11110}
11111
11112#[repr(C)]
11113#[derive(Copy, Clone)]
11114pub struct BindVideoSessionMemoryInfoKHR {
11115    pub sType: StructureType,
11116    pub pNext: *const c_void,
11117    pub memoryBindIndex: u32,
11118    pub memory: DeviceMemory,
11119    pub memoryOffset: DeviceSize,
11120    pub memorySize: DeviceSize,
11121}
11122
11123#[repr(C)]
11124#[derive(Copy, Clone)]
11125pub struct VideoPictureResourceInfoKHR {
11126    pub sType: StructureType,
11127    pub pNext: *const c_void,
11128    pub codedOffset: Offset2D, // The offset to be used for the picture resource, currently only used in field mode
11129    pub codedExtent: Extent2D, // The extent to be used for the picture resource
11130    pub baseArrayLayer: u32, // The first array layer to be accessed for the Decode or Encode Operations
11131    pub imageViewBinding: ImageView, // The ImageView binding of the resource
11132}
11133
11134#[repr(C)]
11135#[derive(Copy, Clone)]
11136pub struct VideoReferenceSlotInfoKHR {
11137    pub sType: StructureType,
11138    pub pNext: *const c_void,
11139    pub slotIndex: i32, // The reference slot index
11140    pub pPictureResource: *const VideoPictureResourceInfoKHR, // The reference picture resource
11141}
11142
11143#[repr(C)]
11144#[derive(Copy, Clone)]
11145pub struct VideoDecodeCapabilitiesKHR {
11146    pub sType: StructureType,
11147    pub pNext: *mut c_void,
11148    pub flags: VideoDecodeCapabilityFlagsKHR,
11149}
11150
11151#[repr(C)]
11152#[derive(Copy, Clone)]
11153pub struct VideoDecodeUsageInfoKHR {
11154    pub sType: StructureType,
11155    pub pNext: *const c_void,
11156    pub videoUsageHints: VideoDecodeUsageFlagsKHR,
11157}
11158
11159#[repr(C)]
11160#[derive(Copy, Clone)]
11161pub struct VideoDecodeInfoKHR {
11162    pub sType: StructureType,
11163    pub pNext: *const c_void,
11164    pub flags: VideoDecodeFlagsKHR,
11165    pub srcBuffer: Buffer,
11166    pub srcBufferOffset: DeviceSize,
11167    pub srcBufferRange: DeviceSize,
11168    pub dstPictureResource: VideoPictureResourceInfoKHR,
11169    pub pSetupReferenceSlot: *const VideoReferenceSlotInfoKHR,
11170    pub referenceSlotCount: u32,
11171    pub pReferenceSlots: *const VideoReferenceSlotInfoKHR,
11172}
11173
11174#[repr(C)]
11175#[derive(Copy, Clone)]
11176pub struct VideoSessionCreateInfoKHR {
11177    pub sType: StructureType,
11178    pub pNext: *const c_void,
11179    pub queueFamilyIndex: u32,
11180    pub flags: VideoSessionCreateFlagsKHR,
11181    pub pVideoProfile: *const VideoProfileInfoKHR,
11182    pub pictureFormat: Format,
11183    pub maxCodedExtent: Extent2D,
11184    pub referencePictureFormat: Format,
11185    pub maxDpbSlots: u32,
11186    pub maxActiveReferencePictures: u32,
11187    pub pStdHeaderVersion: *const ExtensionProperties,
11188}
11189
11190#[repr(C)]
11191#[derive(Copy, Clone)]
11192pub struct VideoSessionParametersCreateInfoKHR {
11193    pub sType: StructureType,
11194    pub pNext: *const c_void,
11195    pub flags: VideoSessionParametersCreateFlagsKHR,
11196    pub videoSessionParametersTemplate: VideoSessionParametersKHR,
11197    pub videoSession: VideoSessionKHR,
11198}
11199
11200#[repr(C)]
11201#[derive(Copy, Clone)]
11202pub struct VideoSessionParametersUpdateInfoKHR {
11203    pub sType: StructureType,
11204    pub pNext: *const c_void,
11205    pub updateSequenceCount: u32,
11206}
11207
11208#[repr(C)]
11209#[derive(Copy, Clone)]
11210pub struct VideoBeginCodingInfoKHR {
11211    pub sType: StructureType,
11212    pub pNext: *const c_void,
11213    pub flags: VideoBeginCodingFlagsKHR,
11214    pub videoSession: VideoSessionKHR,
11215    pub videoSessionParameters: VideoSessionParametersKHR,
11216    pub referenceSlotCount: u32,
11217    pub pReferenceSlots: *const VideoReferenceSlotInfoKHR,
11218}
11219
11220#[repr(C)]
11221#[derive(Copy, Clone)]
11222pub struct VideoEndCodingInfoKHR {
11223    pub sType: StructureType,
11224    pub pNext: *const c_void,
11225    pub flags: VideoEndCodingFlagsKHR,
11226}
11227
11228#[repr(C)]
11229#[derive(Copy, Clone)]
11230pub struct VideoCodingControlInfoKHR {
11231    pub sType: StructureType,
11232    pub pNext: *const c_void,
11233    pub flags: VideoCodingControlFlagsKHR,
11234}
11235
11236#[repr(C)]
11237#[derive(Copy, Clone)]
11238pub struct VideoEncodeUsageInfoKHR {
11239    pub sType: StructureType,
11240    pub pNext: *const c_void,
11241    pub videoUsageHints: VideoEncodeUsageFlagsKHR,
11242    pub videoContentHints: VideoEncodeContentFlagsKHR,
11243    pub tuningMode: VideoEncodeTuningModeKHR,
11244}
11245
11246#[repr(C)]
11247#[derive(Copy, Clone)]
11248pub struct VideoEncodeInfoKHR {
11249    pub sType: StructureType,
11250    pub pNext: *const c_void,
11251    pub flags: VideoEncodeFlagsKHR,
11252    pub qualityLevel: u32,
11253    pub dstBitstreamBuffer: Buffer,
11254    pub dstBitstreamBufferOffset: DeviceSize,
11255    pub dstBitstreamBufferMaxRange: DeviceSize,
11256    pub srcPictureResource: VideoPictureResourceInfoKHR,
11257    pub pSetupReferenceSlot: *const VideoReferenceSlotInfoKHR,
11258    pub referenceSlotCount: u32,
11259    pub pReferenceSlots: *const VideoReferenceSlotInfoKHR,
11260    pub precedingExternallyEncodedBytes: u32,
11261}
11262
11263#[repr(C)]
11264#[derive(Copy, Clone)]
11265pub struct VideoEncodeRateControlInfoKHR {
11266    pub sType: StructureType,
11267    pub pNext: *const c_void,
11268    pub flags: VideoEncodeRateControlFlagsKHR,
11269    pub rateControlMode: VideoEncodeRateControlModeFlagBitsKHR,
11270    pub layerCount: u8,
11271    pub pLayerConfigs: *const VideoEncodeRateControlLayerInfoKHR,
11272}
11273
11274#[repr(C)]
11275#[derive(Copy, Clone)]
11276pub struct VideoEncodeRateControlLayerInfoKHR {
11277    pub sType: StructureType,
11278    pub pNext: *const c_void,
11279    pub averageBitrate: u32,
11280    pub maxBitrate: u32,
11281    pub frameRateNumerator: u32,
11282    pub frameRateDenominator: u32,
11283    pub virtualBufferSizeInMs: u32,
11284    pub initialVirtualBufferSizeInMs: u32,
11285}
11286
11287#[repr(C)]
11288#[derive(Copy, Clone)]
11289pub struct VideoEncodeCapabilitiesKHR {
11290    pub sType: StructureType,
11291    pub pNext: *mut c_void,
11292    pub flags: VideoEncodeCapabilityFlagsKHR,
11293    pub rateControlModes: VideoEncodeRateControlModeFlagsKHR,
11294    pub rateControlLayerCount: u8,
11295    pub qualityLevelCount: u8,
11296    pub inputImageDataFillAlignment: Extent2D,
11297}
11298
11299#[repr(C)]
11300#[derive(Copy, Clone)]
11301pub struct PhysicalDeviceInheritedViewportScissorFeaturesNV {
11302    pub sType: StructureType,
11303    pub pNext: *mut c_void,
11304    pub inheritedViewportScissor2D: Bool32,
11305}
11306
11307#[repr(C)]
11308#[derive(Copy, Clone)]
11309pub struct CommandBufferInheritanceViewportScissorInfoNV {
11310    pub sType: StructureType,
11311    pub pNext: *const c_void,
11312    pub viewportScissor2D: Bool32,
11313    pub viewportDepthCount: u32,
11314    pub pViewportDepths: *const Viewport,
11315}
11316
11317#[repr(C)]
11318#[derive(Copy, Clone)]
11319pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
11320    pub sType: StructureType,
11321    pub pNext: *mut c_void,
11322    pub ycbcr2plane444Formats: Bool32,
11323}
11324
11325#[repr(C)]
11326#[derive(Copy, Clone)]
11327pub struct PhysicalDeviceProvokingVertexFeaturesEXT {
11328    pub sType: StructureType,
11329    pub pNext: *mut c_void,
11330    pub provokingVertexLast: Bool32,
11331    pub transformFeedbackPreservesProvokingVertex: Bool32,
11332}
11333
11334#[repr(C)]
11335#[derive(Copy, Clone)]
11336pub struct PhysicalDeviceProvokingVertexPropertiesEXT {
11337    pub sType: StructureType,
11338    pub pNext: *mut c_void,
11339    pub provokingVertexModePerPipeline: Bool32,
11340    pub transformFeedbackPreservesTriangleFanProvokingVertex: Bool32,
11341}
11342
11343#[repr(C)]
11344#[derive(Copy, Clone)]
11345pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXT {
11346    pub sType: StructureType,
11347    pub pNext: *const c_void,
11348    pub provokingVertexMode: ProvokingVertexModeEXT,
11349}
11350
11351#[repr(C)]
11352#[derive(Copy, Clone)]
11353pub struct CuModuleCreateInfoNVX {
11354    pub sType: StructureType,
11355    pub pNext: *const c_void,
11356    pub dataSize: usize,
11357    pub pData: *const c_void,
11358}
11359
11360#[repr(C)]
11361#[derive(Copy, Clone)]
11362pub struct CuFunctionCreateInfoNVX {
11363    pub sType: StructureType,
11364    pub pNext: *const c_void,
11365    pub module: CuModuleNVX,
11366    pub pName: *const c_char,
11367}
11368
11369#[repr(C)]
11370#[derive(Copy, Clone)]
11371pub struct CuLaunchInfoNVX {
11372    pub sType: StructureType,
11373    pub pNext: *const c_void,
11374    pub function: CuFunctionNVX,
11375    pub gridDimX: u32,
11376    pub gridDimY: u32,
11377    pub gridDimZ: u32,
11378    pub blockDimX: u32,
11379    pub blockDimY: u32,
11380    pub blockDimZ: u32,
11381    pub sharedMemBytes: u32,
11382    pub paramCount: usize,
11383    pub pParams: *const *const c_void,
11384    pub extraCount: usize,
11385    pub pExtras: *const *const c_void,
11386}
11387
11388#[repr(C)]
11389#[derive(Copy, Clone)]
11390pub struct PhysicalDeviceDescriptorBufferFeaturesEXT {
11391    pub sType: StructureType,
11392    pub pNext: *mut c_void,
11393    pub descriptorBuffer: Bool32,
11394    pub descriptorBufferCaptureReplay: Bool32,
11395    pub descriptorBufferImageLayoutIgnored: Bool32,
11396    pub descriptorBufferPushDescriptors: Bool32,
11397}
11398
11399#[repr(C)]
11400#[derive(Copy, Clone)]
11401pub struct PhysicalDeviceDescriptorBufferPropertiesEXT {
11402    pub sType: StructureType,
11403    pub pNext: *mut c_void,
11404    pub combinedImageSamplerDescriptorSingleArray: Bool32,
11405    pub bufferlessPushDescriptors: Bool32,
11406    pub allowSamplerImageViewPostSubmitCreation: Bool32,
11407    pub descriptorBufferOffsetAlignment: DeviceSize,
11408    pub maxDescriptorBufferBindings: u32,
11409    pub maxResourceDescriptorBufferBindings: u32,
11410    pub maxSamplerDescriptorBufferBindings: u32,
11411    pub maxEmbeddedImmutableSamplerBindings: u32,
11412    pub maxEmbeddedImmutableSamplers: u32,
11413    pub bufferCaptureReplayDescriptorDataSize: usize,
11414    pub imageCaptureReplayDescriptorDataSize: usize,
11415    pub imageViewCaptureReplayDescriptorDataSize: usize,
11416    pub samplerCaptureReplayDescriptorDataSize: usize,
11417    pub accelerationStructureCaptureReplayDescriptorDataSize: usize,
11418    pub samplerDescriptorSize: usize,
11419    pub combinedImageSamplerDescriptorSize: usize,
11420    pub sampledImageDescriptorSize: usize,
11421    pub storageImageDescriptorSize: usize,
11422    pub uniformTexelBufferDescriptorSize: usize,
11423    pub robustUniformTexelBufferDescriptorSize: usize,
11424    pub storageTexelBufferDescriptorSize: usize,
11425    pub robustStorageTexelBufferDescriptorSize: usize,
11426    pub uniformBufferDescriptorSize: usize,
11427    pub robustUniformBufferDescriptorSize: usize,
11428    pub storageBufferDescriptorSize: usize,
11429    pub robustStorageBufferDescriptorSize: usize,
11430    pub inputAttachmentDescriptorSize: usize,
11431    pub accelerationStructureDescriptorSize: usize,
11432    pub maxSamplerDescriptorBufferRange: DeviceSize,
11433    pub maxResourceDescriptorBufferRange: DeviceSize,
11434    pub samplerDescriptorBufferAddressSpaceSize: DeviceSize,
11435    pub resourceDescriptorBufferAddressSpaceSize: DeviceSize,
11436    pub descriptorBufferAddressSpaceSize: DeviceSize,
11437}
11438
11439#[repr(C)]
11440#[derive(Copy, Clone)]
11441pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
11442    pub sType: StructureType,
11443    pub pNext: *mut c_void,
11444    pub combinedImageSamplerDensityMapDescriptorSize: usize,
11445}
11446
11447#[repr(C)]
11448#[derive(Copy, Clone)]
11449pub struct DescriptorAddressInfoEXT {
11450    pub sType: StructureType,
11451    pub pNext: *mut c_void,
11452    pub address: DeviceAddress,
11453    pub range: DeviceSize,
11454    pub format: Format,
11455}
11456
11457#[repr(C)]
11458#[derive(Copy, Clone)]
11459pub struct DescriptorBufferBindingInfoEXT {
11460    pub sType: StructureType,
11461    pub pNext: *mut c_void,
11462    pub address: DeviceAddress,
11463    pub usage: BufferUsageFlags,
11464}
11465
11466#[repr(C)]
11467#[derive(Copy, Clone)]
11468pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXT {
11469    pub sType: StructureType,
11470    pub pNext: *mut c_void,
11471    pub buffer: Buffer,
11472}
11473
11474#[repr(C)]
11475#[derive(Copy, Clone)]
11476pub struct DescriptorGetInfoEXT {
11477    pub sType: StructureType,
11478    pub pNext: *const c_void,
11479    pub typ: DescriptorType,
11480    pub data: DescriptorDataEXT,
11481}
11482
11483#[repr(C)]
11484#[derive(Copy, Clone)]
11485pub struct BufferCaptureDescriptorDataInfoEXT {
11486    pub sType: StructureType,
11487    pub pNext: *const c_void,
11488    pub buffer: Buffer,
11489}
11490
11491#[repr(C)]
11492#[derive(Copy, Clone)]
11493pub struct ImageCaptureDescriptorDataInfoEXT {
11494    pub sType: StructureType,
11495    pub pNext: *const c_void,
11496    pub image: Image,
11497}
11498
11499#[repr(C)]
11500#[derive(Copy, Clone)]
11501pub struct ImageViewCaptureDescriptorDataInfoEXT {
11502    pub sType: StructureType,
11503    pub pNext: *const c_void,
11504    pub imageView: ImageView,
11505}
11506
11507#[repr(C)]
11508#[derive(Copy, Clone)]
11509pub struct SamplerCaptureDescriptorDataInfoEXT {
11510    pub sType: StructureType,
11511    pub pNext: *const c_void,
11512    pub sampler: Sampler,
11513}
11514
11515#[repr(C)]
11516#[derive(Copy, Clone)]
11517pub struct AccelerationStructureCaptureDescriptorDataInfoEXT {
11518    pub sType: StructureType,
11519    pub pNext: *const c_void,
11520    pub accelerationStructure: AccelerationStructureKHR,
11521    pub accelerationStructureNV: AccelerationStructureNV,
11522}
11523
11524#[repr(C)]
11525#[derive(Copy, Clone)]
11526pub struct OpaqueCaptureDescriptorDataCreateInfoEXT {
11527    pub sType: StructureType,
11528    pub pNext: *const c_void,
11529    pub opaqueCaptureDescriptorData: *const c_void,
11530}
11531
11532#[repr(C)]
11533#[derive(Copy, Clone)]
11534pub struct PhysicalDeviceShaderIntegerDotProductFeatures {
11535    pub sType: StructureType,
11536    pub pNext: *mut c_void,
11537    pub shaderIntegerDotProduct: Bool32,
11538}
11539
11540pub type PhysicalDeviceShaderIntegerDotProductFeaturesKHR =
11541    PhysicalDeviceShaderIntegerDotProductFeatures;
11542
11543#[repr(C)]
11544#[derive(Copy, Clone)]
11545pub struct PhysicalDeviceShaderIntegerDotProductProperties {
11546    pub sType: StructureType,
11547    pub pNext: *mut c_void,
11548    pub integerDotProduct8BitUnsignedAccelerated: Bool32,
11549    pub integerDotProduct8BitSignedAccelerated: Bool32,
11550    pub integerDotProduct8BitMixedSignednessAccelerated: Bool32,
11551    pub integerDotProduct4x8BitPackedUnsignedAccelerated: Bool32,
11552    pub integerDotProduct4x8BitPackedSignedAccelerated: Bool32,
11553    pub integerDotProduct4x8BitPackedMixedSignednessAccelerated: Bool32,
11554    pub integerDotProduct16BitUnsignedAccelerated: Bool32,
11555    pub integerDotProduct16BitSignedAccelerated: Bool32,
11556    pub integerDotProduct16BitMixedSignednessAccelerated: Bool32,
11557    pub integerDotProduct32BitUnsignedAccelerated: Bool32,
11558    pub integerDotProduct32BitSignedAccelerated: Bool32,
11559    pub integerDotProduct32BitMixedSignednessAccelerated: Bool32,
11560    pub integerDotProduct64BitUnsignedAccelerated: Bool32,
11561    pub integerDotProduct64BitSignedAccelerated: Bool32,
11562    pub integerDotProduct64BitMixedSignednessAccelerated: Bool32,
11563    pub integerDotProductAccumulatingSaturating8BitUnsignedAccelerated: Bool32,
11564    pub integerDotProductAccumulatingSaturating8BitSignedAccelerated: Bool32,
11565    pub integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated: Bool32,
11566    pub integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated: Bool32,
11567    pub integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated: Bool32,
11568    pub integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated: Bool32,
11569    pub integerDotProductAccumulatingSaturating16BitUnsignedAccelerated: Bool32,
11570    pub integerDotProductAccumulatingSaturating16BitSignedAccelerated: Bool32,
11571    pub integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated: Bool32,
11572    pub integerDotProductAccumulatingSaturating32BitUnsignedAccelerated: Bool32,
11573    pub integerDotProductAccumulatingSaturating32BitSignedAccelerated: Bool32,
11574    pub integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated: Bool32,
11575    pub integerDotProductAccumulatingSaturating64BitUnsignedAccelerated: Bool32,
11576    pub integerDotProductAccumulatingSaturating64BitSignedAccelerated: Bool32,
11577    pub integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated: Bool32,
11578}
11579
11580pub type PhysicalDeviceShaderIntegerDotProductPropertiesKHR =
11581    PhysicalDeviceShaderIntegerDotProductProperties;
11582
11583#[repr(C)]
11584#[derive(Copy, Clone)]
11585pub struct PhysicalDeviceDrmPropertiesEXT {
11586    pub sType: StructureType,
11587    pub pNext: *mut c_void,
11588    pub hasPrimary: Bool32,
11589    pub hasRender: Bool32,
11590    pub primaryMajor: i64,
11591    pub primaryMinor: i64,
11592    pub renderMajor: i64,
11593    pub renderMinor: i64,
11594}
11595
11596#[repr(C)]
11597#[derive(Copy, Clone)]
11598pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
11599    pub sType: StructureType,
11600    pub pNext: *mut c_void,
11601    pub fragmentShaderBarycentric: Bool32,
11602}
11603
11604#[repr(C)]
11605#[derive(Copy, Clone)]
11606pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
11607    pub sType: StructureType,
11608    pub pNext: *mut c_void,
11609    pub triStripVertexOrderIndependentOfProvokingVertex: Bool32,
11610}
11611
11612#[repr(C)]
11613#[derive(Copy, Clone)]
11614pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNV {
11615    pub sType: StructureType,
11616    pub pNext: *mut c_void,
11617    pub rayTracingMotionBlur: Bool32,
11618    pub rayTracingMotionBlurPipelineTraceRaysIndirect: Bool32,
11619}
11620
11621#[repr(C)]
11622#[derive(Copy, Clone)]
11623pub struct AccelerationStructureGeometryMotionTrianglesDataNV {
11624    pub sType: StructureType,
11625    pub pNext: *const c_void,
11626    pub vertexData: DeviceOrHostAddressConstKHR,
11627}
11628
11629#[repr(C)]
11630#[derive(Copy, Clone)]
11631pub struct AccelerationStructureMotionInfoNV {
11632    pub sType: StructureType,
11633    pub pNext: *const c_void,
11634    pub maxInstances: u32,
11635    pub flags: AccelerationStructureMotionInfoFlagsNV,
11636}
11637
11638#[repr(C)]
11639#[derive(Copy, Clone)]
11640pub struct SRTDataNV {
11641    pub sx: f32,
11642    pub a: f32,
11643    pub b: f32,
11644    pub pvx: f32,
11645    pub sy: f32,
11646    pub c: f32,
11647    pub pvy: f32,
11648    pub sz: f32,
11649    pub pvz: f32,
11650    pub qx: f32,
11651    pub qy: f32,
11652    pub qz: f32,
11653    pub qw: f32,
11654    pub tx: f32,
11655    pub ty: f32,
11656    pub tz: f32,
11657}
11658
11659#[repr(C)]
11660#[derive(Copy, Clone)]
11661pub struct AccelerationStructureSRTMotionInstanceNV {
11662    pub transformT0: SRTDataNV,
11663    pub transformT1: SRTDataNV,
11664    pub instanceCustomIndex: u32, // 24 bits, 8 bits for mask
11665    pub instanceShaderBindingTableRecordOffset: u32, // 24 bits, 8 bits for flags
11666    pub accelerationStructureReference: u64,
11667}
11668
11669#[repr(C)]
11670#[derive(Copy, Clone)]
11671pub struct AccelerationStructureMatrixMotionInstanceNV {
11672    pub transformT0: TransformMatrixKHR,
11673    pub transformT1: TransformMatrixKHR,
11674    pub instanceCustomIndex: u32, // 24 bits, 8 bits for mask
11675    pub instanceShaderBindingTableRecordOffset: u32, // 24 bits, 8 bits for flags
11676    pub accelerationStructureReference: u64,
11677}
11678
11679#[repr(C)]
11680#[derive(Copy, Clone)]
11681pub struct AccelerationStructureMotionInstanceNV {
11682    pub typ: AccelerationStructureMotionInstanceTypeNV,
11683    pub flags: AccelerationStructureMotionInstanceFlagsNV,
11684    pub data: AccelerationStructureMotionInstanceDataNV,
11685}
11686
11687#[repr(C)]
11688#[derive(Copy, Clone)]
11689pub struct MemoryGetRemoteAddressInfoNV {
11690    pub sType: StructureType,
11691    pub pNext: *const c_void,
11692    pub memory: DeviceMemory,
11693    pub handleType: ExternalMemoryHandleTypeFlagBits,
11694}
11695
11696#[repr(C)]
11697#[derive(Copy, Clone)]
11698pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
11699    pub sType: StructureType,
11700    pub pNext: *mut c_void,
11701    pub formatRgba10x6WithoutYCbCrSampler: Bool32,
11702}
11703
11704#[repr(C)]
11705#[derive(Copy, Clone)]
11706pub struct FormatProperties3 {
11707    pub sType: StructureType,
11708    pub pNext: *mut c_void,
11709    pub linearTilingFeatures: FormatFeatureFlags2,
11710    pub optimalTilingFeatures: FormatFeatureFlags2,
11711    pub bufferFeatures: FormatFeatureFlags2,
11712}
11713
11714pub type FormatProperties3KHR = FormatProperties3;
11715
11716#[repr(C)]
11717#[derive(Copy, Clone)]
11718pub struct DrmFormatModifierPropertiesList2EXT {
11719    pub sType: StructureType,
11720    pub pNext: *mut c_void,
11721    pub drmFormatModifierCount: u32,
11722    pub pDrmFormatModifierProperties: *mut DrmFormatModifierProperties2EXT,
11723}
11724
11725#[repr(C)]
11726#[derive(Copy, Clone)]
11727pub struct DrmFormatModifierProperties2EXT {
11728    pub drmFormatModifier: u64,
11729    pub drmFormatModifierPlaneCount: u32,
11730    pub drmFormatModifierTilingFeatures: FormatFeatureFlags2,
11731}
11732
11733#[repr(C)]
11734#[derive(Copy, Clone)]
11735pub struct PipelineRenderingCreateInfo {
11736    pub sType: StructureType,
11737    pub pNext: *const c_void,
11738    pub viewMask: u32,
11739    pub colorAttachmentCount: u32,
11740    pub pColorAttachmentFormats: *const Format,
11741    pub depthAttachmentFormat: Format,
11742    pub stencilAttachmentFormat: Format,
11743}
11744
11745pub type PipelineRenderingCreateInfoKHR = PipelineRenderingCreateInfo;
11746
11747#[repr(C)]
11748#[derive(Copy, Clone)]
11749pub struct RenderingInfo {
11750    pub sType: StructureType,
11751    pub pNext: *const c_void,
11752    pub flags: RenderingFlags,
11753    pub renderArea: Rect2D,
11754    pub layerCount: u32,
11755    pub viewMask: u32,
11756    pub colorAttachmentCount: u32,
11757    pub pColorAttachments: *const RenderingAttachmentInfo,
11758    pub pDepthAttachment: *const RenderingAttachmentInfo,
11759    pub pStencilAttachment: *const RenderingAttachmentInfo,
11760}
11761
11762pub type RenderingInfoKHR = RenderingInfo;
11763
11764#[repr(C)]
11765#[derive(Copy, Clone)]
11766pub struct RenderingAttachmentInfo {
11767    pub sType: StructureType,
11768    pub pNext: *const c_void,
11769    pub imageView: ImageView,
11770    pub imageLayout: ImageLayout,
11771    pub resolveMode: ResolveModeFlagBits,
11772    pub resolveImageView: ImageView,
11773    pub resolveImageLayout: ImageLayout,
11774    pub loadOp: AttachmentLoadOp,
11775    pub storeOp: AttachmentStoreOp,
11776    pub clearValue: ClearValue,
11777}
11778
11779pub type RenderingAttachmentInfoKHR = RenderingAttachmentInfo;
11780
11781#[repr(C)]
11782#[derive(Copy, Clone)]
11783pub struct RenderingFragmentShadingRateAttachmentInfoKHR {
11784    pub sType: StructureType,
11785    pub pNext: *const c_void,
11786    pub imageView: ImageView,
11787    pub imageLayout: ImageLayout,
11788    pub shadingRateAttachmentTexelSize: Extent2D,
11789}
11790
11791#[repr(C)]
11792#[derive(Copy, Clone)]
11793pub struct RenderingFragmentDensityMapAttachmentInfoEXT {
11794    pub sType: StructureType,
11795    pub pNext: *const c_void,
11796    pub imageView: ImageView,
11797    pub imageLayout: ImageLayout,
11798}
11799
11800#[repr(C)]
11801#[derive(Copy, Clone)]
11802pub struct PhysicalDeviceDynamicRenderingFeatures {
11803    pub sType: StructureType,
11804    pub pNext: *mut c_void,
11805    pub dynamicRendering: Bool32,
11806}
11807
11808pub type PhysicalDeviceDynamicRenderingFeaturesKHR = PhysicalDeviceDynamicRenderingFeatures;
11809
11810#[repr(C)]
11811#[derive(Copy, Clone)]
11812pub struct CommandBufferInheritanceRenderingInfo {
11813    pub sType: StructureType,
11814    pub pNext: *const c_void,
11815    pub flags: RenderingFlags,
11816    pub viewMask: u32,
11817    pub colorAttachmentCount: u32,
11818    pub pColorAttachmentFormats: *const Format,
11819    pub depthAttachmentFormat: Format,
11820    pub stencilAttachmentFormat: Format,
11821    pub rasterizationSamples: SampleCountFlagBits,
11822}
11823
11824pub type CommandBufferInheritanceRenderingInfoKHR = CommandBufferInheritanceRenderingInfo;
11825
11826#[repr(C)]
11827#[derive(Copy, Clone)]
11828pub struct AttachmentSampleCountInfoAMD {
11829    pub sType: StructureType,
11830    pub pNext: *const c_void,
11831    pub colorAttachmentCount: u32,
11832    pub pColorAttachmentSamples: *const SampleCountFlagBits,
11833    pub depthStencilAttachmentSamples: SampleCountFlagBits,
11834}
11835
11836pub type AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
11837
11838#[repr(C)]
11839#[derive(Copy, Clone)]
11840pub struct MultiviewPerViewAttributesInfoNVX {
11841    pub sType: StructureType,
11842    pub pNext: *const c_void,
11843    pub perViewAttributes: Bool32,
11844    pub perViewAttributesPositionXOnly: Bool32,
11845}
11846
11847#[repr(C)]
11848#[derive(Copy, Clone)]
11849pub struct PhysicalDeviceImageViewMinLodFeaturesEXT {
11850    pub sType: StructureType,
11851    pub pNext: *mut c_void,
11852    pub minLod: Bool32,
11853}
11854
11855#[repr(C)]
11856#[derive(Copy, Clone)]
11857pub struct ImageViewMinLodCreateInfoEXT {
11858    pub sType: StructureType,
11859    pub pNext: *const c_void,
11860    pub minLod: f32,
11861}
11862
11863#[repr(C)]
11864#[derive(Copy, Clone)]
11865pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
11866    pub sType: StructureType,
11867    pub pNext: *mut c_void,
11868    pub rasterizationOrderColorAttachmentAccess: Bool32,
11869    pub rasterizationOrderDepthAttachmentAccess: Bool32,
11870    pub rasterizationOrderStencilAttachmentAccess: Bool32,
11871}
11872
11873pub type PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM =
11874    PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
11875
11876#[repr(C)]
11877#[derive(Copy, Clone)]
11878pub struct PhysicalDeviceLinearColorAttachmentFeaturesNV {
11879    pub sType: StructureType,
11880    pub pNext: *mut c_void,
11881    pub linearColorAttachment: Bool32,
11882}
11883
11884#[repr(C)]
11885#[derive(Copy, Clone)]
11886pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
11887    pub sType: StructureType,
11888    pub pNext: *mut c_void,
11889    pub graphicsPipelineLibrary: Bool32,
11890}
11891
11892#[repr(C)]
11893#[derive(Copy, Clone)]
11894pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
11895    pub sType: StructureType,
11896    pub pNext: *mut c_void,
11897    pub graphicsPipelineLibraryFastLinking: Bool32,
11898    pub graphicsPipelineLibraryIndependentInterpolationDecoration: Bool32,
11899}
11900
11901#[repr(C)]
11902#[derive(Copy, Clone)]
11903pub struct GraphicsPipelineLibraryCreateInfoEXT {
11904    pub sType: StructureType,
11905    pub pNext: *mut c_void,
11906    pub flags: GraphicsPipelineLibraryFlagsEXT,
11907}
11908
11909#[repr(C)]
11910#[derive(Copy, Clone)]
11911pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
11912    pub sType: StructureType,
11913    pub pNext: *mut c_void,
11914    pub descriptorSetHostMapping: Bool32,
11915}
11916
11917#[repr(C)]
11918#[derive(Copy, Clone)]
11919pub struct DescriptorSetBindingReferenceVALVE {
11920    pub sType: StructureType,
11921    pub pNext: *const c_void,
11922    pub descriptorSetLayout: DescriptorSetLayout,
11923    pub binding: u32,
11924}
11925
11926#[repr(C)]
11927#[derive(Copy, Clone)]
11928pub struct DescriptorSetLayoutHostMappingInfoVALVE {
11929    pub sType: StructureType,
11930    pub pNext: *mut c_void,
11931    pub descriptorOffset: usize,
11932    pub descriptorSize: u32,
11933}
11934
11935#[repr(C)]
11936#[derive(Copy, Clone)]
11937pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
11938    pub sType: StructureType,
11939    pub pNext: *mut c_void,
11940    pub shaderModuleIdentifier: Bool32,
11941}
11942
11943#[repr(C)]
11944#[derive(Copy, Clone)]
11945pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
11946    pub sType: StructureType,
11947    pub pNext: *mut c_void,
11948    pub shaderModuleIdentifierAlgorithmUUID: [u8; UUID_SIZE as usize],
11949}
11950
11951#[repr(C)]
11952#[derive(Copy, Clone)]
11953pub struct PipelineShaderStageModuleIdentifierCreateInfoEXT {
11954    pub sType: StructureType,
11955    pub pNext: *const c_void,
11956    pub identifierSize: u32,
11957    pub pIdentifier: *const u8,
11958}
11959
11960#[repr(C)]
11961#[derive(Copy, Clone)]
11962pub struct ShaderModuleIdentifierEXT {
11963    pub sType: StructureType,
11964    pub pNext: *mut c_void,
11965    pub identifierSize: u32,
11966    pub identifier: [u8; MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT as usize],
11967}
11968
11969#[repr(C)]
11970#[derive(Copy, Clone)]
11971pub struct ImageCompressionControlEXT {
11972    pub sType: StructureType,
11973    pub pNext: *const c_void,
11974    pub flags: ImageCompressionFlagsEXT,
11975    pub compressionControlPlaneCount: u32,
11976    pub pFixedRateFlags: *mut ImageCompressionFixedRateFlagsEXT,
11977}
11978
11979#[repr(C)]
11980#[derive(Copy, Clone)]
11981pub struct PhysicalDeviceImageCompressionControlFeaturesEXT {
11982    pub sType: StructureType,
11983    pub pNext: *mut c_void,
11984    pub imageCompressionControl: Bool32,
11985}
11986
11987#[repr(C)]
11988#[derive(Copy, Clone)]
11989pub struct ImageCompressionPropertiesEXT {
11990    pub sType: StructureType,
11991    pub pNext: *mut c_void,
11992    pub imageCompressionFlags: ImageCompressionFlagsEXT,
11993    pub imageCompressionFixedRateFlags: ImageCompressionFixedRateFlagsEXT,
11994}
11995
11996#[repr(C)]
11997#[derive(Copy, Clone)]
11998pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
11999    pub sType: StructureType,
12000    pub pNext: *mut c_void,
12001    pub imageCompressionControlSwapchain: Bool32,
12002}
12003
12004#[repr(C)]
12005#[derive(Copy, Clone)]
12006pub struct ImageSubresource2EXT {
12007    pub sType: StructureType,
12008    pub pNext: *mut c_void,
12009    pub imageSubresource: ImageSubresource,
12010}
12011
12012#[repr(C)]
12013#[derive(Copy, Clone)]
12014pub struct SubresourceLayout2EXT {
12015    pub sType: StructureType,
12016    pub pNext: *mut c_void,
12017    pub subresourceLayout: SubresourceLayout,
12018}
12019
12020#[repr(C)]
12021#[derive(Copy, Clone)]
12022pub struct RenderPassCreationControlEXT {
12023    pub sType: StructureType,
12024    pub pNext: *const c_void,
12025    pub disallowMerging: Bool32,
12026}
12027
12028#[repr(C)]
12029#[derive(Copy, Clone)]
12030pub struct RenderPassCreationFeedbackInfoEXT {
12031    pub postMergeSubpassCount: u32,
12032}
12033
12034#[repr(C)]
12035#[derive(Copy, Clone)]
12036pub struct RenderPassCreationFeedbackCreateInfoEXT {
12037    pub sType: StructureType,
12038    pub pNext: *const c_void,
12039    pub pRenderPassFeedback: *mut RenderPassCreationFeedbackInfoEXT,
12040}
12041
12042#[repr(C)]
12043#[derive(Copy, Clone)]
12044pub struct RenderPassSubpassFeedbackInfoEXT {
12045    pub subpassMergeStatus: SubpassMergeStatusEXT,
12046    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize],
12047    pub postMergeIndex: u32,
12048}
12049
12050#[repr(C)]
12051#[derive(Copy, Clone)]
12052pub struct RenderPassSubpassFeedbackCreateInfoEXT {
12053    pub sType: StructureType,
12054    pub pNext: *const c_void,
12055    pub pSubpassFeedback: *mut RenderPassSubpassFeedbackInfoEXT,
12056}
12057
12058#[repr(C)]
12059#[derive(Copy, Clone)]
12060pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
12061    pub sType: StructureType,
12062    pub pNext: *mut c_void,
12063    pub subpassMergeFeedback: Bool32,
12064}
12065
12066#[repr(C)]
12067#[derive(Copy, Clone)]
12068pub struct MicromapBuildInfoEXT {
12069    pub sType: StructureType,
12070    pub pNext: *const c_void,
12071    pub typ: MicromapTypeEXT,
12072    pub flags: BuildMicromapFlagsEXT,
12073    pub mode: BuildMicromapModeEXT,
12074    pub dstMicromap: MicromapEXT,
12075    pub usageCountsCount: u32,
12076    pub pUsageCounts: *const MicromapUsageEXT,
12077    pub ppUsageCounts: *const *const MicromapUsageEXT,
12078    pub data: DeviceOrHostAddressConstKHR,
12079    pub scratchData: DeviceOrHostAddressKHR,
12080    pub triangleArray: DeviceOrHostAddressConstKHR,
12081    pub triangleArrayStride: DeviceSize,
12082}
12083
12084#[repr(C)]
12085#[derive(Copy, Clone)]
12086pub struct MicromapCreateInfoEXT {
12087    pub sType: StructureType,
12088    pub pNext: *const c_void,
12089    pub createFlags: MicromapCreateFlagsEXT,
12090    pub buffer: Buffer,
12091    pub offset: DeviceSize, // Specified in bytes
12092    pub size: DeviceSize,
12093    pub typ: MicromapTypeEXT,
12094    pub deviceAddress: DeviceAddress,
12095}
12096
12097#[repr(C)]
12098#[derive(Copy, Clone)]
12099pub struct MicromapVersionInfoEXT {
12100    pub sType: StructureType,
12101    pub pNext: *const c_void,
12102    pub pVersionData: *const u8,
12103}
12104
12105#[repr(C)]
12106#[derive(Copy, Clone)]
12107pub struct CopyMicromapInfoEXT {
12108    pub sType: StructureType,
12109    pub pNext: *const c_void,
12110    pub src: MicromapEXT,
12111    pub dst: MicromapEXT,
12112    pub mode: CopyMicromapModeEXT,
12113}
12114
12115#[repr(C)]
12116#[derive(Copy, Clone)]
12117pub struct CopyMicromapToMemoryInfoEXT {
12118    pub sType: StructureType,
12119    pub pNext: *const c_void,
12120    pub src: MicromapEXT,
12121    pub dst: DeviceOrHostAddressKHR,
12122    pub mode: CopyMicromapModeEXT,
12123}
12124
12125#[repr(C)]
12126#[derive(Copy, Clone)]
12127pub struct CopyMemoryToMicromapInfoEXT {
12128    pub sType: StructureType,
12129    pub pNext: *const c_void,
12130    pub src: DeviceOrHostAddressConstKHR,
12131    pub dst: MicromapEXT,
12132    pub mode: CopyMicromapModeEXT,
12133}
12134
12135#[repr(C)]
12136#[derive(Copy, Clone)]
12137pub struct MicromapBuildSizesInfoEXT {
12138    pub sType: StructureType,
12139    pub pNext: *const c_void,
12140    pub micromapSize: DeviceSize,
12141    pub buildScratchSize: DeviceSize,
12142    pub discardable: Bool32,
12143}
12144
12145#[repr(C)]
12146#[derive(Copy, Clone)]
12147pub struct MicromapUsageEXT {
12148    pub count: u32,
12149    pub subdivisionLevel: u32,
12150    pub format: u32, // Interpretation depends on parent type
12151}
12152
12153#[repr(C)]
12154#[derive(Copy, Clone)]
12155pub struct MicromapTriangleEXT {
12156    pub dataOffset: u32, // Specified in bytes
12157    pub subdivisionLevel: u16,
12158    pub format: u16,
12159}
12160
12161#[repr(C)]
12162#[derive(Copy, Clone)]
12163pub struct PhysicalDeviceOpacityMicromapFeaturesEXT {
12164    pub sType: StructureType,
12165    pub pNext: *mut c_void,
12166    pub micromap: Bool32,
12167    pub micromapCaptureReplay: Bool32,
12168    pub micromapHostCommands: Bool32,
12169}
12170
12171#[repr(C)]
12172#[derive(Copy, Clone)]
12173pub struct PhysicalDeviceOpacityMicromapPropertiesEXT {
12174    pub sType: StructureType,
12175    pub pNext: *mut c_void,
12176    pub maxOpacity2StateSubdivisionLevel: u32,
12177    pub maxOpacity4StateSubdivisionLevel: u32,
12178}
12179
12180#[repr(C)]
12181#[derive(Copy, Clone)]
12182pub struct AccelerationStructureTrianglesOpacityMicromapEXT {
12183    pub sType: StructureType,
12184    pub pNext: *mut c_void,
12185    pub indexType: IndexType,
12186    pub indexBuffer: DeviceOrHostAddressConstKHR,
12187    pub indexStride: DeviceSize,
12188    pub baseTriangle: u32,
12189    pub usageCountsCount: u32,
12190    pub pUsageCounts: *const MicromapUsageEXT,
12191    pub ppUsageCounts: *const *const MicromapUsageEXT,
12192    pub micromap: MicromapEXT,
12193}
12194
12195#[repr(C)]
12196#[derive(Copy, Clone)]
12197pub struct PipelinePropertiesIdentifierEXT {
12198    pub sType: StructureType,
12199    pub pNext: *mut c_void,
12200    pub pipelineIdentifier: [u8; UUID_SIZE as usize],
12201}
12202
12203#[repr(C)]
12204#[derive(Copy, Clone)]
12205pub struct PhysicalDevicePipelinePropertiesFeaturesEXT {
12206    pub sType: StructureType,
12207    pub pNext: *mut c_void,
12208    pub pipelinePropertiesIdentifier: Bool32,
12209}
12210
12211#[repr(C)]
12212#[derive(Copy, Clone)]
12213pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
12214    pub sType: StructureType,
12215    pub pNext: *mut c_void,
12216    pub shaderEarlyAndLateFragmentTests: Bool32,
12217}
12218
12219#[repr(C)]
12220#[derive(Copy, Clone)]
12221pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
12222    pub sType: StructureType,
12223    pub pNext: *mut c_void,
12224    pub nonSeamlessCubeMap: Bool32,
12225}
12226
12227#[repr(C)]
12228#[derive(Copy, Clone)]
12229pub struct PhysicalDevicePipelineRobustnessFeaturesEXT {
12230    pub sType: StructureType,
12231    pub pNext: *mut c_void,
12232    pub pipelineRobustness: Bool32,
12233}
12234
12235#[repr(C)]
12236#[derive(Copy, Clone)]
12237pub struct PipelineRobustnessCreateInfoEXT {
12238    pub sType: StructureType,
12239    pub pNext: *const c_void,
12240    pub storageBuffers: PipelineRobustnessBufferBehaviorEXT,
12241    pub uniformBuffers: PipelineRobustnessBufferBehaviorEXT,
12242    pub vertexInputs: PipelineRobustnessBufferBehaviorEXT,
12243    pub images: PipelineRobustnessImageBehaviorEXT,
12244}
12245
12246#[repr(C)]
12247#[derive(Copy, Clone)]
12248pub struct PhysicalDevicePipelineRobustnessPropertiesEXT {
12249    pub sType: StructureType,
12250    pub pNext: *mut c_void,
12251    pub defaultRobustnessStorageBuffers: PipelineRobustnessBufferBehaviorEXT,
12252    pub defaultRobustnessUniformBuffers: PipelineRobustnessBufferBehaviorEXT,
12253    pub defaultRobustnessVertexInputs: PipelineRobustnessBufferBehaviorEXT,
12254    pub defaultRobustnessImages: PipelineRobustnessImageBehaviorEXT,
12255}
12256
12257#[repr(C)]
12258#[derive(Copy, Clone)]
12259pub struct ImageViewSampleWeightCreateInfoQCOM {
12260    pub sType: StructureType,
12261    pub pNext: *const c_void,
12262    pub filterCenter: Offset2D,
12263    pub filterSize: Extent2D,
12264    pub numPhases: u32,
12265}
12266
12267#[repr(C)]
12268#[derive(Copy, Clone)]
12269pub struct PhysicalDeviceImageProcessingFeaturesQCOM {
12270    pub sType: StructureType,
12271    pub pNext: *mut c_void,
12272    pub textureSampleWeighted: Bool32,
12273    pub textureBoxFilter: Bool32,
12274    pub textureBlockMatch: Bool32,
12275}
12276
12277#[repr(C)]
12278#[derive(Copy, Clone)]
12279pub struct PhysicalDeviceImageProcessingPropertiesQCOM {
12280    pub sType: StructureType,
12281    pub pNext: *mut c_void,
12282    pub maxWeightFilterPhases: u32,
12283    pub maxWeightFilterDimension: Extent2D,
12284    pub maxBlockMatchRegion: Extent2D,
12285    pub maxBoxFilterBlockSize: Extent2D,
12286}
12287
12288#[repr(C)]
12289#[derive(Copy, Clone)]
12290pub struct PhysicalDeviceTilePropertiesFeaturesQCOM {
12291    pub sType: StructureType,
12292    pub pNext: *mut c_void,
12293    pub tileProperties: Bool32,
12294}
12295
12296#[repr(C)]
12297#[derive(Copy, Clone)]
12298pub struct TilePropertiesQCOM {
12299    pub sType: StructureType,
12300    pub pNext: *mut c_void,
12301    pub tileSize: Extent3D,
12302    pub apronSize: Extent2D,
12303    pub origin: Offset2D,
12304}
12305
12306#[repr(C)]
12307#[derive(Copy, Clone)]
12308pub struct PhysicalDeviceAmigoProfilingFeaturesSEC {
12309    pub sType: StructureType,
12310    pub pNext: *mut c_void,
12311    pub amigoProfiling: Bool32,
12312}
12313
12314#[repr(C)]
12315#[derive(Copy, Clone)]
12316pub struct AmigoProfilingSubmitInfoSEC {
12317    pub sType: StructureType,
12318    pub pNext: *const c_void,
12319    pub firstDrawTimestamp: u64,
12320    pub swapBufferTimestamp: u64,
12321}
12322
12323#[repr(C)]
12324#[derive(Copy, Clone)]
12325pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
12326    pub sType: StructureType,
12327    pub pNext: *mut c_void,
12328    pub attachmentFeedbackLoopLayout: Bool32,
12329}
12330
12331#[repr(C)]
12332#[derive(Copy, Clone)]
12333pub struct PhysicalDeviceDepthClampZeroOneFeaturesEXT {
12334    pub sType: StructureType,
12335    pub pNext: *mut c_void,
12336    pub depthClampZeroOne: Bool32,
12337}
12338
12339#[repr(C)]
12340#[derive(Copy, Clone)]
12341pub struct PhysicalDeviceAddressBindingReportFeaturesEXT {
12342    pub sType: StructureType,
12343    pub pNext: *mut c_void,
12344    pub reportAddressBinding: Bool32,
12345}
12346
12347#[repr(C)]
12348#[derive(Copy, Clone)]
12349pub struct DeviceAddressBindingCallbackDataEXT {
12350    pub sType: StructureType,
12351    pub pNext: *mut c_void,
12352    pub flags: DeviceAddressBindingFlagsEXT,
12353    pub baseAddress: DeviceAddress,
12354    pub size: DeviceSize,
12355    pub bindingType: DeviceAddressBindingTypeEXT,
12356}
12357
12358#[repr(C)]
12359#[derive(Copy, Clone)]
12360pub struct PhysicalDeviceOpticalFlowFeaturesNV {
12361    pub sType: StructureType,
12362    pub pNext: *mut c_void,
12363    pub opticalFlow: Bool32,
12364}
12365
12366#[repr(C)]
12367#[derive(Copy, Clone)]
12368pub struct PhysicalDeviceOpticalFlowPropertiesNV {
12369    pub sType: StructureType,
12370    pub pNext: *mut c_void,
12371    pub supportedOutputGridSizes: OpticalFlowGridSizeFlagsNV,
12372    pub supportedHintGridSizes: OpticalFlowGridSizeFlagsNV,
12373    pub hintSupported: Bool32,
12374    pub costSupported: Bool32,
12375    pub bidirectionalFlowSupported: Bool32,
12376    pub globalFlowSupported: Bool32,
12377    pub minWidth: u32,
12378    pub minHeight: u32,
12379    pub maxWidth: u32,
12380    pub maxHeight: u32,
12381    pub maxNumRegionsOfInterest: u32,
12382}
12383
12384#[repr(C)]
12385#[derive(Copy, Clone)]
12386pub struct OpticalFlowImageFormatInfoNV {
12387    pub sType: StructureType,
12388    pub pNext: *const c_void,
12389    pub usage: OpticalFlowUsageFlagsNV,
12390}
12391
12392#[repr(C)]
12393#[derive(Copy, Clone)]
12394pub struct OpticalFlowImageFormatPropertiesNV {
12395    pub sType: StructureType,
12396    pub pNext: *const c_void,
12397    pub format: Format,
12398}
12399
12400#[repr(C)]
12401#[derive(Copy, Clone)]
12402pub struct OpticalFlowSessionCreateInfoNV {
12403    pub sType: StructureType,
12404    pub pNext: *mut c_void,
12405    pub width: u32,
12406    pub height: u32,
12407    pub imageFormat: Format,
12408    pub flowVectorFormat: Format,
12409    pub costFormat: Format,
12410    pub outputGridSize: OpticalFlowGridSizeFlagsNV,
12411    pub hintGridSize: OpticalFlowGridSizeFlagsNV,
12412    pub performanceLevel: OpticalFlowPerformanceLevelNV,
12413    pub flags: OpticalFlowSessionCreateFlagsNV,
12414}
12415
12416#[repr(C)]
12417#[derive(Copy, Clone)]
12418pub struct OpticalFlowSessionCreatePrivateDataInfoNV {
12419    // NV internal use only
12420    pub sType: StructureType,
12421    pub pNext: *mut c_void,
12422    pub id: u32,
12423    pub size: u32,
12424    pub pPrivateData: *const c_void,
12425}
12426
12427#[repr(C)]
12428#[derive(Copy, Clone)]
12429pub struct OpticalFlowExecuteInfoNV {
12430    pub sType: StructureType,
12431    pub pNext: *mut c_void,
12432    pub flags: OpticalFlowExecuteFlagsNV,
12433    pub regionCount: u32,
12434    pub pRegions: *const Rect2D,
12435}
12436
12437#[repr(C)]
12438#[derive(Copy, Clone)]
12439pub struct PhysicalDeviceFaultFeaturesEXT {
12440    pub sType: StructureType,
12441    pub pNext: *mut c_void,
12442    pub deviceFault: Bool32,
12443    pub deviceFaultVendorBinary: Bool32,
12444}
12445
12446#[repr(C)]
12447#[derive(Copy, Clone)]
12448pub struct DeviceFaultAddressInfoEXT {
12449    pub addressType: DeviceFaultAddressTypeEXT,
12450    pub reportedAddress: DeviceAddress,
12451    pub addressPrecision: DeviceSize,
12452}
12453
12454#[repr(C)]
12455#[derive(Copy, Clone)]
12456pub struct DeviceFaultVendorInfoEXT {
12457    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize], // Free-form description of the fault
12458    pub vendorFaultCode: u64,
12459    pub vendorFaultData: u64,
12460}
12461
12462#[repr(C)]
12463#[derive(Copy, Clone)]
12464pub struct DeviceFaultCountsEXT {
12465    pub sType: StructureType,
12466    pub pNext: *mut c_void,
12467    pub addressInfoCount: u32,
12468    pub vendorInfoCount: u32,
12469    pub vendorBinarySize: DeviceSize, // Specified in bytes
12470}
12471
12472#[repr(C)]
12473#[derive(Copy, Clone)]
12474pub struct DeviceFaultInfoEXT {
12475    pub sType: StructureType,
12476    pub pNext: *mut c_void,
12477    pub description: [c_char; MAX_DESCRIPTION_SIZE as usize], // Free-form description of the fault
12478    pub pAddressInfos: *mut DeviceFaultAddressInfoEXT,
12479    pub pVendorInfos: *mut DeviceFaultVendorInfoEXT,
12480    pub pVendorBinaryData: *mut c_void,
12481}
12482
12483#[repr(C)]
12484#[derive(Copy, Clone)]
12485pub struct DeviceFaultVendorBinaryHeaderVersionOneEXT {
12486    // The fields in this structure are non-normative since structure packing is implementation-defined in C. The specification defines the normative layout.
12487    pub headerSize: u32,
12488    pub headerVersion: DeviceFaultVendorBinaryHeaderVersionEXT,
12489    pub vendorID: u32,
12490    pub deviceID: u32,
12491    pub driverVersion: u32,
12492    pub pipelineCacheUUID: [u8; UUID_SIZE as usize],
12493    pub applicationNameOffset: u32,
12494    pub applicationVersion: u32,
12495    pub engineNameOffset: u32,
12496}
12497
12498#[repr(C)]
12499#[derive(Copy, Clone)]
12500pub struct DecompressMemoryRegionNV {
12501    pub srcAddress: DeviceAddress,
12502    pub dstAddress: DeviceAddress,
12503    pub compressedSize: DeviceSize,   // Specified in bytes
12504    pub decompressedSize: DeviceSize, // Specified in bytes
12505    pub decompressionMethod: MemoryDecompressionMethodFlagsNV,
12506}
12507
12508#[repr(C)]
12509#[derive(Copy, Clone)]
12510pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
12511    pub sType: StructureType,
12512    pub pNext: *mut c_void,
12513    pub shaderCoreMask: u64,
12514    pub shaderCoreCount: u32,
12515    pub shaderWarpsPerCore: u32,
12516}
12517
12518#[repr(C)]
12519#[derive(Copy, Clone)]
12520pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
12521    pub sType: StructureType,
12522    pub pNext: *mut c_void,
12523    pub shaderCoreBuiltins: Bool32,
12524}
12525
12526#[repr(C)]
12527#[derive(Copy, Clone)]
12528pub struct SurfacePresentModeEXT {
12529    pub sType: StructureType,
12530    pub pNext: *mut c_void,
12531    pub presentMode: PresentModeKHR,
12532}
12533
12534#[repr(C)]
12535#[derive(Copy, Clone)]
12536pub struct SurfacePresentScalingCapabilitiesEXT {
12537    pub sType: StructureType,
12538    pub pNext: *mut c_void,
12539    pub supportedPresentScaling: PresentScalingFlagsEXT,
12540    pub supportedPresentGravityX: PresentGravityFlagsEXT,
12541    pub supportedPresentGravityY: PresentGravityFlagsEXT,
12542    pub minScaledImageExtent: Extent2D, // Supported minimum image width and height for the surface when scaling is used
12543    pub maxScaledImageExtent: Extent2D, // Supported maximum image width and height for the surface when scaling is used
12544}
12545
12546#[repr(C)]
12547#[derive(Copy, Clone)]
12548pub struct SurfacePresentModeCompatibilityEXT {
12549    pub sType: StructureType,
12550    pub pNext: *mut c_void,
12551    pub presentModeCount: u32,
12552    pub pPresentModes: *mut PresentModeKHR, // Output list of present modes compatible with the one specified in VkSurfacePresentModeEXT
12553}
12554
12555#[repr(C)]
12556#[derive(Copy, Clone)]
12557pub struct PhysicalDeviceSwapchainMaintenance1FeaturesEXT {
12558    pub sType: StructureType,
12559    pub pNext: *mut c_void,
12560    pub swapchainMaintenance1: Bool32,
12561}
12562
12563#[repr(C)]
12564#[derive(Copy, Clone)]
12565pub struct SwapchainPresentFenceInfoEXT {
12566    pub sType: StructureType,
12567    pub pNext: *mut c_void,
12568    pub swapchainCount: u32,   // Copy of VkPresentInfoKHR::swapchainCount
12569    pub pFences: *const Fence, // Fence to signal for each swapchain
12570}
12571
12572#[repr(C)]
12573#[derive(Copy, Clone)]
12574pub struct SwapchainPresentModesCreateInfoEXT {
12575    pub sType: StructureType,
12576    pub pNext: *mut c_void,
12577    pub presentModeCount: u32,
12578    // Length of the pPresentModes array
12579    pub pPresentModes: *const PresentModeKHR,
12580    // Presentation modes which will be usable with this swapchain
12581}
12582
12583#[repr(C)]
12584#[derive(Copy, Clone)]
12585pub struct SwapchainPresentModeInfoEXT {
12586    pub sType: StructureType,
12587    pub pNext: *mut c_void,
12588    pub swapchainCount: u32, // Copy of VkPresentInfoKHR::swapchainCount
12589    pub pPresentModes: *const PresentModeKHR, // Presentation mode for each swapchain
12590}
12591
12592#[repr(C)]
12593#[derive(Copy, Clone)]
12594pub struct SwapchainPresentScalingCreateInfoEXT {
12595    pub sType: StructureType,
12596    pub pNext: *const c_void,
12597    pub scalingBehavior: PresentScalingFlagsEXT,
12598    pub presentGravityX: PresentGravityFlagsEXT,
12599    pub presentGravityY: PresentGravityFlagsEXT,
12600}
12601
12602#[repr(C)]
12603#[derive(Copy, Clone)]
12604pub struct ReleaseSwapchainImagesInfoEXT {
12605    pub sType: StructureType,
12606    pub pNext: *const c_void,
12607    pub swapchain: SwapchainKHR, // Swapchain for which images are being released
12608    pub imageIndexCount: u32,    // Number of indices to release
12609    pub pImageIndices: *const u32, // Indices of which presentable images to release
12610}
12611
12612#[repr(C)]
12613#[derive(Copy, Clone)]
12614pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
12615    pub sType: StructureType,
12616    pub pNext: *mut c_void,
12617    pub rayTracingInvocationReorder: Bool32,
12618}
12619
12620#[repr(C)]
12621#[derive(Copy, Clone)]
12622pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
12623    pub sType: StructureType,
12624    pub pNext: *mut c_void,
12625    pub rayTracingInvocationReorderReorderingHint: RayTracingInvocationReorderModeNV,
12626}
12627
12628#[repr(C)]
12629#[derive(Copy, Clone)]
12630pub struct DirectDriverLoadingInfoLUNARG {
12631    pub sType: StructureType,
12632    pub pNext: *mut c_void,
12633    pub flags: DirectDriverLoadingFlagsLUNARG,
12634    pub pfnGetInstanceProcAddr: FnGetInstanceProcAddrLUNARG,
12635}
12636
12637#[repr(C)]
12638#[derive(Copy, Clone)]
12639pub struct DirectDriverLoadingListLUNARG {
12640    pub sType: StructureType,
12641    pub pNext: *mut c_void,
12642    pub mode: DirectDriverLoadingModeLUNARG,
12643    pub driverCount: u32,
12644    pub pDrivers: *const DirectDriverLoadingInfoLUNARG,
12645}
12646
12647#[repr(C)]
12648#[derive(Copy, Clone)]
12649pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
12650    pub sType: StructureType,
12651    pub pNext: *mut c_void,
12652    pub multiviewPerViewViewports: Bool32,
12653}
12654
12655// function pointer types
12656
12657pub type FnInternalAllocationNotification = extern "system" fn(
12658    pUserData: *mut c_void,
12659    size: usize,
12660    allocationType: InternalAllocationType,
12661    allocationScope: SystemAllocationScope,
12662) -> ();
12663pub type FnInternalFreeNotification = extern "system" fn(
12664    pUserData: *mut c_void,
12665    size: usize,
12666    allocationType: InternalAllocationType,
12667    allocationScope: SystemAllocationScope,
12668) -> ();
12669pub type FnReallocationFunction = extern "system" fn(
12670    pUserData: *mut c_void,
12671    pOriginal: *mut c_void,
12672    size: usize,
12673    alignment: usize,
12674    allocationScope: SystemAllocationScope,
12675) -> *mut c_void;
12676pub type FnAllocationFunction = extern "system" fn(
12677    pUserData: *mut c_void,
12678    size: usize,
12679    alignment: usize,
12680    allocationScope: SystemAllocationScope,
12681) -> *mut c_void;
12682pub type FnFreeFunction = extern "system" fn(pUserData: *mut c_void, pMemory: *mut c_void) -> ();
12683pub type FnVoidFunction = extern "system" fn() -> ();
12684pub type FnDebugReportCallbackEXT = extern "system" fn(
12685    flags: DebugReportFlagsEXT,
12686    objectType: DebugReportObjectTypeEXT,
12687    object: u64,
12688    location: usize,
12689    messageCode: i32,
12690    pLayerPrefix: *const c_char,
12691    pMessage: *const c_char,
12692    pUserData: *mut c_void,
12693) -> Bool32;
12694pub type FnDebugUtilsMessengerCallbackEXT = extern "system" fn(
12695    messageSeverity: DebugUtilsMessageSeverityFlagBitsEXT,
12696    messageTypes: DebugUtilsMessageTypeFlagsEXT,
12697    pCallbackData: *const DebugUtilsMessengerCallbackDataEXT,
12698    pUserData: *mut c_void,
12699) -> Bool32;
12700pub type FnDeviceMemoryReportCallbackEXT = extern "system" fn(
12701    pCallbackData: *const DeviceMemoryReportCallbackDataEXT,
12702    pUserData: *mut c_void,
12703) -> ();
12704pub type FnGetInstanceProcAddrLUNARG =
12705    extern "system" fn(instance: Instance, pName: *const c_char) -> FnVoidFunction;
12706
12707// static commands
12708
12709pub type FnCreateInstance = extern "system" fn(
12710    pCreateInfo: *const InstanceCreateInfo,
12711    pAllocator: *const AllocationCallbacks,
12712    pInstance: *mut Instance,
12713) -> Result;
12714
12715pub type FnGetInstanceProcAddr =
12716    extern "system" fn(instance: Instance, pName: *const c_char) -> FnVoidFunction;
12717
12718pub type FnEnumerateInstanceExtensionProperties = extern "system" fn(
12719    pLayerName: *const c_char,
12720    pPropertyCount: *mut u32,
12721    pProperties: *mut ExtensionProperties,
12722) -> Result;
12723
12724pub type FnEnumerateInstanceLayerProperties =
12725    extern "system" fn(pPropertyCount: *mut u32, pProperties: *mut LayerProperties) -> Result;
12726
12727pub type FnEnumerateInstanceVersion = extern "system" fn(pApiVersion: *mut u32) -> Result;
12728
12729// instance commands
12730
12731pub type FnDestroyInstance =
12732    extern "system" fn(instance: Instance, pAllocator: *const AllocationCallbacks) -> ();
12733
12734pub type FnEnumeratePhysicalDevices = extern "system" fn(
12735    instance: Instance,
12736    pPhysicalDeviceCount: *mut u32,
12737    pPhysicalDevices: *mut PhysicalDevice,
12738) -> Result;
12739
12740pub type FnGetPhysicalDeviceFeatures = extern "system" fn(
12741    physicalDevice: PhysicalDevice,
12742    pFeatures: *mut PhysicalDeviceFeatures,
12743) -> ();
12744
12745pub type FnGetPhysicalDeviceFormatProperties = extern "system" fn(
12746    physicalDevice: PhysicalDevice,
12747    format: Format,
12748    pFormatProperties: *mut FormatProperties,
12749) -> ();
12750
12751pub type FnGetPhysicalDeviceImageFormatProperties = extern "system" fn(
12752    physicalDevice: PhysicalDevice,
12753    format: Format,
12754    typ: ImageType,
12755    tiling: ImageTiling,
12756    usage: ImageUsageFlags,
12757    flags: ImageCreateFlags,
12758    pImageFormatProperties: *mut ImageFormatProperties,
12759) -> Result;
12760
12761pub type FnGetPhysicalDeviceProperties = extern "system" fn(
12762    physicalDevice: PhysicalDevice,
12763    pProperties: *mut PhysicalDeviceProperties,
12764) -> ();
12765
12766pub type FnGetPhysicalDeviceQueueFamilyProperties = extern "system" fn(
12767    physicalDevice: PhysicalDevice,
12768    pQueueFamilyPropertyCount: *mut u32,
12769    pQueueFamilyProperties: *mut QueueFamilyProperties,
12770) -> ();
12771
12772pub type FnGetPhysicalDeviceMemoryProperties = extern "system" fn(
12773    physicalDevice: PhysicalDevice,
12774    pMemoryProperties: *mut PhysicalDeviceMemoryProperties,
12775) -> ();
12776
12777pub type FnGetDeviceProcAddr =
12778    extern "system" fn(device: Device, pName: *const c_char) -> FnVoidFunction;
12779
12780pub type FnCreateDevice = extern "system" fn(
12781    physicalDevice: PhysicalDevice,
12782    pCreateInfo: *const DeviceCreateInfo,
12783    pAllocator: *const AllocationCallbacks,
12784    pDevice: *mut Device,
12785) -> Result;
12786
12787pub type FnEnumerateDeviceExtensionProperties = extern "system" fn(
12788    physicalDevice: PhysicalDevice,
12789    pLayerName: *const c_char,
12790    pPropertyCount: *mut u32,
12791    pProperties: *mut ExtensionProperties,
12792) -> Result;
12793
12794pub type FnEnumerateDeviceLayerProperties = extern "system" fn(
12795    physicalDevice: PhysicalDevice,
12796    pPropertyCount: *mut u32,
12797    pProperties: *mut LayerProperties,
12798) -> Result;
12799
12800pub type FnGetPhysicalDeviceSparseImageFormatProperties = extern "system" fn(
12801    physicalDevice: PhysicalDevice,
12802    format: Format,
12803    typ: ImageType,
12804    samples: SampleCountFlagBits,
12805    usage: ImageUsageFlags,
12806    tiling: ImageTiling,
12807    pPropertyCount: *mut u32,
12808    pProperties: *mut SparseImageFormatProperties,
12809) -> ();
12810
12811pub type FnEnumeratePhysicalDeviceGroups = extern "system" fn(
12812    instance: Instance,
12813    pPhysicalDeviceGroupCount: *mut u32,
12814    pPhysicalDeviceGroupProperties: *mut PhysicalDeviceGroupProperties,
12815) -> Result;
12816
12817pub type FnGetPhysicalDeviceFeatures2 = extern "system" fn(
12818    physicalDevice: PhysicalDevice,
12819    pFeatures: *mut PhysicalDeviceFeatures2,
12820) -> ();
12821
12822pub type FnGetPhysicalDeviceProperties2 = extern "system" fn(
12823    physicalDevice: PhysicalDevice,
12824    pProperties: *mut PhysicalDeviceProperties2,
12825) -> ();
12826
12827pub type FnGetPhysicalDeviceFormatProperties2 = extern "system" fn(
12828    physicalDevice: PhysicalDevice,
12829    format: Format,
12830    pFormatProperties: *mut FormatProperties2,
12831) -> ();
12832
12833pub type FnGetPhysicalDeviceImageFormatProperties2 = extern "system" fn(
12834    physicalDevice: PhysicalDevice,
12835    pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2,
12836    pImageFormatProperties: *mut ImageFormatProperties2,
12837) -> Result;
12838
12839pub type FnGetPhysicalDeviceQueueFamilyProperties2 = extern "system" fn(
12840    physicalDevice: PhysicalDevice,
12841    pQueueFamilyPropertyCount: *mut u32,
12842    pQueueFamilyProperties: *mut QueueFamilyProperties2,
12843) -> ();
12844
12845pub type FnGetPhysicalDeviceMemoryProperties2 = extern "system" fn(
12846    physicalDevice: PhysicalDevice,
12847    pMemoryProperties: *mut PhysicalDeviceMemoryProperties2,
12848) -> ();
12849
12850pub type FnGetPhysicalDeviceSparseImageFormatProperties2 = extern "system" fn(
12851    physicalDevice: PhysicalDevice,
12852    pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2,
12853    pPropertyCount: *mut u32,
12854    pProperties: *mut SparseImageFormatProperties2,
12855) -> ();
12856
12857pub type FnGetPhysicalDeviceExternalBufferProperties = extern "system" fn(
12858    physicalDevice: PhysicalDevice,
12859    pExternalBufferInfo: *const PhysicalDeviceExternalBufferInfo,
12860    pExternalBufferProperties: *mut ExternalBufferProperties,
12861) -> ();
12862
12863pub type FnGetPhysicalDeviceExternalFenceProperties = extern "system" fn(
12864    physicalDevice: PhysicalDevice,
12865    pExternalFenceInfo: *const PhysicalDeviceExternalFenceInfo,
12866    pExternalFenceProperties: *mut ExternalFenceProperties,
12867) -> ();
12868
12869pub type FnGetPhysicalDeviceExternalSemaphoreProperties = extern "system" fn(
12870    physicalDevice: PhysicalDevice,
12871    pExternalSemaphoreInfo: *const PhysicalDeviceExternalSemaphoreInfo,
12872    pExternalSemaphoreProperties: *mut ExternalSemaphoreProperties,
12873) -> ();
12874
12875pub type FnGetPhysicalDeviceToolProperties = extern "system" fn(
12876    physicalDevice: PhysicalDevice,
12877    pToolCount: *mut u32,
12878    pToolProperties: *mut PhysicalDeviceToolProperties,
12879) -> Result;
12880
12881pub type FnDestroySurfaceKHR = extern "system" fn(
12882    instance: Instance,
12883    surface: SurfaceKHR,
12884    pAllocator: *const AllocationCallbacks,
12885) -> ();
12886
12887pub type FnGetPhysicalDeviceSurfaceSupportKHR = extern "system" fn(
12888    physicalDevice: PhysicalDevice,
12889    queueFamilyIndex: u32,
12890    surface: SurfaceKHR,
12891    pSupported: *mut Bool32,
12892) -> Result;
12893
12894pub type FnGetPhysicalDeviceSurfaceCapabilitiesKHR = extern "system" fn(
12895    physicalDevice: PhysicalDevice,
12896    surface: SurfaceKHR,
12897    pSurfaceCapabilities: *mut SurfaceCapabilitiesKHR,
12898) -> Result;
12899
12900pub type FnGetPhysicalDeviceSurfaceFormatsKHR = extern "system" fn(
12901    physicalDevice: PhysicalDevice,
12902    surface: SurfaceKHR,
12903    pSurfaceFormatCount: *mut u32,
12904    pSurfaceFormats: *mut SurfaceFormatKHR,
12905) -> Result;
12906
12907pub type FnGetPhysicalDeviceSurfacePresentModesKHR = extern "system" fn(
12908    physicalDevice: PhysicalDevice,
12909    surface: SurfaceKHR,
12910    pPresentModeCount: *mut u32,
12911    pPresentModes: *mut PresentModeKHR,
12912) -> Result;
12913
12914pub type FnGetPhysicalDevicePresentRectanglesKHR = extern "system" fn(
12915    physicalDevice: PhysicalDevice,
12916    surface: SurfaceKHR,
12917    pRectCount: *mut u32,
12918    pRects: *mut Rect2D,
12919) -> Result;
12920
12921pub type FnGetPhysicalDeviceDisplayPropertiesKHR = extern "system" fn(
12922    physicalDevice: PhysicalDevice,
12923    pPropertyCount: *mut u32,
12924    pProperties: *mut DisplayPropertiesKHR,
12925) -> Result;
12926
12927pub type FnGetPhysicalDeviceDisplayPlanePropertiesKHR = extern "system" fn(
12928    physicalDevice: PhysicalDevice,
12929    pPropertyCount: *mut u32,
12930    pProperties: *mut DisplayPlanePropertiesKHR,
12931) -> Result;
12932
12933pub type FnGetDisplayPlaneSupportedDisplaysKHR = extern "system" fn(
12934    physicalDevice: PhysicalDevice,
12935    planeIndex: u32,
12936    pDisplayCount: *mut u32,
12937    pDisplays: *mut DisplayKHR,
12938) -> Result;
12939
12940pub type FnGetDisplayModePropertiesKHR = extern "system" fn(
12941    physicalDevice: PhysicalDevice,
12942    display: DisplayKHR,
12943    pPropertyCount: *mut u32,
12944    pProperties: *mut DisplayModePropertiesKHR,
12945) -> Result;
12946
12947pub type FnCreateDisplayModeKHR = extern "system" fn(
12948    physicalDevice: PhysicalDevice,
12949    display: DisplayKHR,
12950    pCreateInfo: *const DisplayModeCreateInfoKHR,
12951    pAllocator: *const AllocationCallbacks,
12952    pMode: *mut DisplayModeKHR,
12953) -> Result;
12954
12955pub type FnGetDisplayPlaneCapabilitiesKHR = extern "system" fn(
12956    physicalDevice: PhysicalDevice,
12957    mode: DisplayModeKHR,
12958    planeIndex: u32,
12959    pCapabilities: *mut DisplayPlaneCapabilitiesKHR,
12960) -> Result;
12961
12962pub type FnCreateDisplayPlaneSurfaceKHR = extern "system" fn(
12963    instance: Instance,
12964    pCreateInfo: *const DisplaySurfaceCreateInfoKHR,
12965    pAllocator: *const AllocationCallbacks,
12966    pSurface: *mut SurfaceKHR,
12967) -> Result;
12968
12969pub type FnCreateDebugReportCallbackEXT = extern "system" fn(
12970    instance: Instance,
12971    pCreateInfo: *const DebugReportCallbackCreateInfoEXT,
12972    pAllocator: *const AllocationCallbacks,
12973    pCallback: *mut DebugReportCallbackEXT,
12974) -> Result;
12975
12976pub type FnDestroyDebugReportCallbackEXT = extern "system" fn(
12977    instance: Instance,
12978    callback: DebugReportCallbackEXT,
12979    pAllocator: *const AllocationCallbacks,
12980) -> ();
12981
12982pub type FnDebugReportMessageEXT = extern "system" fn(
12983    instance: Instance,
12984    flags: DebugReportFlagsEXT,
12985    objectType: DebugReportObjectTypeEXT,
12986    object: u64,
12987    location: usize,
12988    messageCode: i32,
12989    pLayerPrefix: *const c_char,
12990    pMessage: *const c_char,
12991) -> ();
12992
12993pub type FnGetPhysicalDeviceVideoCapabilitiesKHR = extern "system" fn(
12994    physicalDevice: PhysicalDevice,
12995    pVideoProfile: *const VideoProfileInfoKHR,
12996    pCapabilities: *mut VideoCapabilitiesKHR,
12997) -> Result;
12998
12999pub type FnGetPhysicalDeviceVideoFormatPropertiesKHR = extern "system" fn(
13000    physicalDevice: PhysicalDevice,
13001    pVideoFormatInfo: *const PhysicalDeviceVideoFormatInfoKHR,
13002    pVideoFormatPropertyCount: *mut u32,
13003    pVideoFormatProperties: *mut VideoFormatPropertiesKHR,
13004) -> Result;
13005
13006pub type FnGetPhysicalDeviceExternalImageFormatPropertiesNV = extern "system" fn(
13007    physicalDevice: PhysicalDevice,
13008    format: Format,
13009    typ: ImageType,
13010    tiling: ImageTiling,
13011    usage: ImageUsageFlags,
13012    flags: ImageCreateFlags,
13013    externalHandleType: ExternalMemoryHandleTypeFlagsNV,
13014    pExternalImageFormatProperties: *mut ExternalImageFormatPropertiesNV,
13015) -> Result;
13016
13017pub type FnGetPhysicalDeviceFeatures2KHR = FnGetPhysicalDeviceFeatures2;
13018
13019pub type FnGetPhysicalDeviceProperties2KHR = FnGetPhysicalDeviceProperties2;
13020
13021pub type FnGetPhysicalDeviceFormatProperties2KHR = FnGetPhysicalDeviceFormatProperties2;
13022
13023pub type FnGetPhysicalDeviceImageFormatProperties2KHR = FnGetPhysicalDeviceImageFormatProperties2;
13024
13025pub type FnGetPhysicalDeviceQueueFamilyProperties2KHR = FnGetPhysicalDeviceQueueFamilyProperties2;
13026
13027pub type FnGetPhysicalDeviceMemoryProperties2KHR = FnGetPhysicalDeviceMemoryProperties2;
13028
13029pub type FnGetPhysicalDeviceSparseImageFormatProperties2KHR =
13030    FnGetPhysicalDeviceSparseImageFormatProperties2;
13031
13032pub type FnEnumeratePhysicalDeviceGroupsKHR = FnEnumeratePhysicalDeviceGroups;
13033
13034pub type FnGetPhysicalDeviceExternalBufferPropertiesKHR =
13035    FnGetPhysicalDeviceExternalBufferProperties;
13036
13037pub type FnGetPhysicalDeviceExternalSemaphorePropertiesKHR =
13038    FnGetPhysicalDeviceExternalSemaphoreProperties;
13039
13040pub type FnReleaseDisplayEXT =
13041    extern "system" fn(physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result;
13042
13043pub type FnGetPhysicalDeviceSurfaceCapabilities2EXT = extern "system" fn(
13044    physicalDevice: PhysicalDevice,
13045    surface: SurfaceKHR,
13046    pSurfaceCapabilities: *mut SurfaceCapabilities2EXT,
13047) -> Result;
13048
13049pub type FnGetPhysicalDeviceExternalFencePropertiesKHR = FnGetPhysicalDeviceExternalFenceProperties;
13050
13051pub type FnEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
13052    extern "system" fn(
13053        physicalDevice: PhysicalDevice,
13054        queueFamilyIndex: u32,
13055        pCounterCount: *mut u32,
13056        pCounters: *mut PerformanceCounterKHR,
13057        pCounterDescriptions: *mut PerformanceCounterDescriptionKHR,
13058    ) -> Result;
13059
13060pub type FnGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = extern "system" fn(
13061    physicalDevice: PhysicalDevice,
13062    pPerformanceQueryCreateInfo: *const QueryPoolPerformanceCreateInfoKHR,
13063    pNumPasses: *mut u32,
13064) -> ();
13065
13066pub type FnGetPhysicalDeviceSurfaceCapabilities2KHR = extern "system" fn(
13067    physicalDevice: PhysicalDevice,
13068    pSurfaceInfo: *const PhysicalDeviceSurfaceInfo2KHR,
13069    pSurfaceCapabilities: *mut SurfaceCapabilities2KHR,
13070) -> Result;
13071
13072pub type FnGetPhysicalDeviceSurfaceFormats2KHR = extern "system" fn(
13073    physicalDevice: PhysicalDevice,
13074    pSurfaceInfo: *const PhysicalDeviceSurfaceInfo2KHR,
13075    pSurfaceFormatCount: *mut u32,
13076    pSurfaceFormats: *mut SurfaceFormat2KHR,
13077) -> Result;
13078
13079pub type FnGetPhysicalDeviceDisplayProperties2KHR = extern "system" fn(
13080    physicalDevice: PhysicalDevice,
13081    pPropertyCount: *mut u32,
13082    pProperties: *mut DisplayProperties2KHR,
13083) -> Result;
13084
13085pub type FnGetPhysicalDeviceDisplayPlaneProperties2KHR = extern "system" fn(
13086    physicalDevice: PhysicalDevice,
13087    pPropertyCount: *mut u32,
13088    pProperties: *mut DisplayPlaneProperties2KHR,
13089) -> Result;
13090
13091pub type FnGetDisplayModeProperties2KHR = extern "system" fn(
13092    physicalDevice: PhysicalDevice,
13093    display: DisplayKHR,
13094    pPropertyCount: *mut u32,
13095    pProperties: *mut DisplayModeProperties2KHR,
13096) -> Result;
13097
13098pub type FnGetDisplayPlaneCapabilities2KHR = extern "system" fn(
13099    physicalDevice: PhysicalDevice,
13100    pDisplayPlaneInfo: *const DisplayPlaneInfo2KHR,
13101    pCapabilities: *mut DisplayPlaneCapabilities2KHR,
13102) -> Result;
13103
13104pub type FnCreateDebugUtilsMessengerEXT = extern "system" fn(
13105    instance: Instance,
13106    pCreateInfo: *const DebugUtilsMessengerCreateInfoEXT,
13107    pAllocator: *const AllocationCallbacks,
13108    pMessenger: *mut DebugUtilsMessengerEXT,
13109) -> Result;
13110
13111pub type FnDestroyDebugUtilsMessengerEXT = extern "system" fn(
13112    instance: Instance,
13113    messenger: DebugUtilsMessengerEXT,
13114    pAllocator: *const AllocationCallbacks,
13115) -> ();
13116
13117pub type FnSubmitDebugUtilsMessageEXT = extern "system" fn(
13118    instance: Instance,
13119    messageSeverity: DebugUtilsMessageSeverityFlagBitsEXT,
13120    messageTypes: DebugUtilsMessageTypeFlagsEXT,
13121    pCallbackData: *const DebugUtilsMessengerCallbackDataEXT,
13122) -> ();
13123
13124pub type FnGetPhysicalDeviceMultisamplePropertiesEXT = extern "system" fn(
13125    physicalDevice: PhysicalDevice,
13126    samples: SampleCountFlagBits,
13127    pMultisampleProperties: *mut MultisamplePropertiesEXT,
13128) -> ();
13129
13130pub type FnGetPhysicalDeviceCalibrateableTimeDomainsEXT = extern "system" fn(
13131    physicalDevice: PhysicalDevice,
13132    pTimeDomainCount: *mut u32,
13133    pTimeDomains: *mut TimeDomainEXT,
13134) -> Result;
13135
13136pub type FnGetPhysicalDeviceFragmentShadingRatesKHR = extern "system" fn(
13137    physicalDevice: PhysicalDevice,
13138    pFragmentShadingRateCount: *mut u32,
13139    pFragmentShadingRates: *mut PhysicalDeviceFragmentShadingRateKHR,
13140) -> Result;
13141
13142pub type FnGetPhysicalDeviceToolPropertiesEXT = FnGetPhysicalDeviceToolProperties;
13143
13144pub type FnGetPhysicalDeviceCooperativeMatrixPropertiesNV = extern "system" fn(
13145    physicalDevice: PhysicalDevice,
13146    pPropertyCount: *mut u32,
13147    pProperties: *mut CooperativeMatrixPropertiesNV,
13148) -> Result;
13149
13150pub type FnGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
13151    extern "system" fn(
13152        physicalDevice: PhysicalDevice,
13153        pCombinationCount: *mut u32,
13154        pCombinations: *mut FramebufferMixedSamplesCombinationNV,
13155    ) -> Result;
13156
13157pub type FnCreateHeadlessSurfaceEXT = extern "system" fn(
13158    instance: Instance,
13159    pCreateInfo: *const HeadlessSurfaceCreateInfoEXT,
13160    pAllocator: *const AllocationCallbacks,
13161    pSurface: *mut SurfaceKHR,
13162) -> Result;
13163
13164pub type FnAcquireDrmDisplayEXT =
13165    extern "system" fn(physicalDevice: PhysicalDevice, drmFd: i32, display: DisplayKHR) -> Result;
13166
13167pub type FnGetDrmDisplayEXT = extern "system" fn(
13168    physicalDevice: PhysicalDevice,
13169    drmFd: i32,
13170    connectorId: u32,
13171    display: *mut DisplayKHR,
13172) -> Result;
13173
13174pub type FnGetPhysicalDeviceOpticalFlowImageFormatsNV = extern "system" fn(
13175    physicalDevice: PhysicalDevice,
13176    pOpticalFlowImageFormatInfo: *const OpticalFlowImageFormatInfoNV,
13177    pFormatCount: *mut u32,
13178    pImageFormatProperties: *mut OpticalFlowImageFormatPropertiesNV,
13179) -> Result;
13180
13181// device commands
13182
13183pub type FnDestroyDevice =
13184    extern "system" fn(device: Device, pAllocator: *const AllocationCallbacks) -> ();
13185
13186pub type FnGetDeviceQueue = extern "system" fn(
13187    device: Device,
13188    queueFamilyIndex: u32,
13189    queueIndex: u32,
13190    pQueue: *mut Queue,
13191) -> ();
13192
13193pub type FnQueueSubmit = extern "system" fn(
13194    queue: Queue,
13195    submitCount: u32,
13196    pSubmits: *const SubmitInfo,
13197    fence: Fence,
13198) -> Result;
13199
13200pub type FnQueueWaitIdle = extern "system" fn(queue: Queue) -> Result;
13201
13202pub type FnDeviceWaitIdle = extern "system" fn(device: Device) -> Result;
13203
13204pub type FnAllocateMemory = extern "system" fn(
13205    device: Device,
13206    pAllocateInfo: *const MemoryAllocateInfo,
13207    pAllocator: *const AllocationCallbacks,
13208    pMemory: *mut DeviceMemory,
13209) -> Result;
13210
13211pub type FnFreeMemory = extern "system" fn(
13212    device: Device,
13213    memory: DeviceMemory,
13214    pAllocator: *const AllocationCallbacks,
13215) -> ();
13216
13217pub type FnMapMemory = extern "system" fn(
13218    device: Device,
13219    memory: DeviceMemory,
13220    offset: DeviceSize,
13221    size: DeviceSize,
13222    flags: MemoryMapFlags,
13223    ppData: *mut *mut c_void,
13224) -> Result;
13225
13226pub type FnUnmapMemory = extern "system" fn(device: Device, memory: DeviceMemory) -> ();
13227
13228pub type FnFlushMappedMemoryRanges = extern "system" fn(
13229    device: Device,
13230    memoryRangeCount: u32,
13231    pMemoryRanges: *const MappedMemoryRange,
13232) -> Result;
13233
13234pub type FnInvalidateMappedMemoryRanges = extern "system" fn(
13235    device: Device,
13236    memoryRangeCount: u32,
13237    pMemoryRanges: *const MappedMemoryRange,
13238) -> Result;
13239
13240pub type FnGetDeviceMemoryCommitment = extern "system" fn(
13241    device: Device,
13242    memory: DeviceMemory,
13243    pCommittedMemoryInBytes: *mut DeviceSize,
13244) -> ();
13245
13246pub type FnBindBufferMemory = extern "system" fn(
13247    device: Device,
13248    buffer: Buffer,
13249    memory: DeviceMemory,
13250    memoryOffset: DeviceSize,
13251) -> Result;
13252
13253pub type FnBindImageMemory = extern "system" fn(
13254    device: Device,
13255    image: Image,
13256    memory: DeviceMemory,
13257    memoryOffset: DeviceSize,
13258) -> Result;
13259
13260pub type FnGetBufferMemoryRequirements = extern "system" fn(
13261    device: Device,
13262    buffer: Buffer,
13263    pMemoryRequirements: *mut MemoryRequirements,
13264) -> ();
13265
13266pub type FnGetImageMemoryRequirements = extern "system" fn(
13267    device: Device,
13268    image: Image,
13269    pMemoryRequirements: *mut MemoryRequirements,
13270) -> ();
13271
13272pub type FnGetImageSparseMemoryRequirements = extern "system" fn(
13273    device: Device,
13274    image: Image,
13275    pSparseMemoryRequirementCount: *mut u32,
13276    pSparseMemoryRequirements: *mut SparseImageMemoryRequirements,
13277) -> ();
13278
13279pub type FnQueueBindSparse = extern "system" fn(
13280    queue: Queue,
13281    bindInfoCount: u32,
13282    pBindInfo: *const BindSparseInfo,
13283    fence: Fence,
13284) -> Result;
13285
13286pub type FnCreateFence = extern "system" fn(
13287    device: Device,
13288    pCreateInfo: *const FenceCreateInfo,
13289    pAllocator: *const AllocationCallbacks,
13290    pFence: *mut Fence,
13291) -> Result;
13292
13293pub type FnDestroyFence =
13294    extern "system" fn(device: Device, fence: Fence, pAllocator: *const AllocationCallbacks) -> ();
13295
13296pub type FnResetFences =
13297    extern "system" fn(device: Device, fenceCount: u32, pFences: *const Fence) -> Result;
13298
13299pub type FnGetFenceStatus = extern "system" fn(device: Device, fence: Fence) -> Result;
13300
13301pub type FnWaitForFences = extern "system" fn(
13302    device: Device,
13303    fenceCount: u32,
13304    pFences: *const Fence,
13305    waitAll: Bool32,
13306    timeout: u64,
13307) -> Result;
13308
13309pub type FnCreateSemaphore = extern "system" fn(
13310    device: Device,
13311    pCreateInfo: *const SemaphoreCreateInfo,
13312    pAllocator: *const AllocationCallbacks,
13313    pSemaphore: *mut Semaphore,
13314) -> Result;
13315
13316pub type FnDestroySemaphore = extern "system" fn(
13317    device: Device,
13318    semaphore: Semaphore,
13319    pAllocator: *const AllocationCallbacks,
13320) -> ();
13321
13322pub type FnCreateEvent = extern "system" fn(
13323    device: Device,
13324    pCreateInfo: *const EventCreateInfo,
13325    pAllocator: *const AllocationCallbacks,
13326    pEvent: *mut Event,
13327) -> Result;
13328
13329pub type FnDestroyEvent =
13330    extern "system" fn(device: Device, event: Event, pAllocator: *const AllocationCallbacks) -> ();
13331
13332pub type FnGetEventStatus = extern "system" fn(device: Device, event: Event) -> Result;
13333
13334pub type FnSetEvent = extern "system" fn(device: Device, event: Event) -> Result;
13335
13336pub type FnResetEvent = extern "system" fn(device: Device, event: Event) -> Result;
13337
13338pub type FnCreateQueryPool = extern "system" fn(
13339    device: Device,
13340    pCreateInfo: *const QueryPoolCreateInfo,
13341    pAllocator: *const AllocationCallbacks,
13342    pQueryPool: *mut QueryPool,
13343) -> Result;
13344
13345pub type FnDestroyQueryPool = extern "system" fn(
13346    device: Device,
13347    queryPool: QueryPool,
13348    pAllocator: *const AllocationCallbacks,
13349) -> ();
13350
13351pub type FnGetQueryPoolResults = extern "system" fn(
13352    device: Device,
13353    queryPool: QueryPool,
13354    firstQuery: u32,
13355    queryCount: u32,
13356    dataSize: usize,
13357    pData: *mut c_void,
13358    stride: DeviceSize,
13359    flags: QueryResultFlags,
13360) -> Result;
13361
13362pub type FnCreateBuffer = extern "system" fn(
13363    device: Device,
13364    pCreateInfo: *const BufferCreateInfo,
13365    pAllocator: *const AllocationCallbacks,
13366    pBuffer: *mut Buffer,
13367) -> Result;
13368
13369pub type FnDestroyBuffer = extern "system" fn(
13370    device: Device,
13371    buffer: Buffer,
13372    pAllocator: *const AllocationCallbacks,
13373) -> ();
13374
13375pub type FnCreateBufferView = extern "system" fn(
13376    device: Device,
13377    pCreateInfo: *const BufferViewCreateInfo,
13378    pAllocator: *const AllocationCallbacks,
13379    pView: *mut BufferView,
13380) -> Result;
13381
13382pub type FnDestroyBufferView = extern "system" fn(
13383    device: Device,
13384    bufferView: BufferView,
13385    pAllocator: *const AllocationCallbacks,
13386) -> ();
13387
13388pub type FnCreateImage = extern "system" fn(
13389    device: Device,
13390    pCreateInfo: *const ImageCreateInfo,
13391    pAllocator: *const AllocationCallbacks,
13392    pImage: *mut Image,
13393) -> Result;
13394
13395pub type FnDestroyImage =
13396    extern "system" fn(device: Device, image: Image, pAllocator: *const AllocationCallbacks) -> ();
13397
13398pub type FnGetImageSubresourceLayout = extern "system" fn(
13399    device: Device,
13400    image: Image,
13401    pSubresource: *const ImageSubresource,
13402    pLayout: *mut SubresourceLayout,
13403) -> ();
13404
13405pub type FnCreateImageView = extern "system" fn(
13406    device: Device,
13407    pCreateInfo: *const ImageViewCreateInfo,
13408    pAllocator: *const AllocationCallbacks,
13409    pView: *mut ImageView,
13410) -> Result;
13411
13412pub type FnDestroyImageView = extern "system" fn(
13413    device: Device,
13414    imageView: ImageView,
13415    pAllocator: *const AllocationCallbacks,
13416) -> ();
13417
13418pub type FnCreateShaderModule = extern "system" fn(
13419    device: Device,
13420    pCreateInfo: *const ShaderModuleCreateInfo,
13421    pAllocator: *const AllocationCallbacks,
13422    pShaderModule: *mut ShaderModule,
13423) -> Result;
13424
13425pub type FnDestroyShaderModule = extern "system" fn(
13426    device: Device,
13427    shaderModule: ShaderModule,
13428    pAllocator: *const AllocationCallbacks,
13429) -> ();
13430
13431pub type FnCreatePipelineCache = extern "system" fn(
13432    device: Device,
13433    pCreateInfo: *const PipelineCacheCreateInfo,
13434    pAllocator: *const AllocationCallbacks,
13435    pPipelineCache: *mut PipelineCache,
13436) -> Result;
13437
13438pub type FnDestroyPipelineCache = extern "system" fn(
13439    device: Device,
13440    pipelineCache: PipelineCache,
13441    pAllocator: *const AllocationCallbacks,
13442) -> ();
13443
13444pub type FnGetPipelineCacheData = extern "system" fn(
13445    device: Device,
13446    pipelineCache: PipelineCache,
13447    pDataSize: *mut usize,
13448    pData: *mut c_void,
13449) -> Result;
13450
13451pub type FnMergePipelineCaches = extern "system" fn(
13452    device: Device,
13453    dstCache: PipelineCache,
13454    srcCacheCount: u32,
13455    pSrcCaches: *const PipelineCache,
13456) -> Result;
13457
13458pub type FnCreateGraphicsPipelines = extern "system" fn(
13459    device: Device,
13460    pipelineCache: PipelineCache,
13461    createInfoCount: u32,
13462    pCreateInfos: *const GraphicsPipelineCreateInfo,
13463    pAllocator: *const AllocationCallbacks,
13464    pPipelines: *mut Pipeline,
13465) -> Result;
13466
13467pub type FnCreateComputePipelines = extern "system" fn(
13468    device: Device,
13469    pipelineCache: PipelineCache,
13470    createInfoCount: u32,
13471    pCreateInfos: *const ComputePipelineCreateInfo,
13472    pAllocator: *const AllocationCallbacks,
13473    pPipelines: *mut Pipeline,
13474) -> Result;
13475
13476pub type FnDestroyPipeline = extern "system" fn(
13477    device: Device,
13478    pipeline: Pipeline,
13479    pAllocator: *const AllocationCallbacks,
13480) -> ();
13481
13482pub type FnCreatePipelineLayout = extern "system" fn(
13483    device: Device,
13484    pCreateInfo: *const PipelineLayoutCreateInfo,
13485    pAllocator: *const AllocationCallbacks,
13486    pPipelineLayout: *mut PipelineLayout,
13487) -> Result;
13488
13489pub type FnDestroyPipelineLayout = extern "system" fn(
13490    device: Device,
13491    pipelineLayout: PipelineLayout,
13492    pAllocator: *const AllocationCallbacks,
13493) -> ();
13494
13495pub type FnCreateSampler = extern "system" fn(
13496    device: Device,
13497    pCreateInfo: *const SamplerCreateInfo,
13498    pAllocator: *const AllocationCallbacks,
13499    pSampler: *mut Sampler,
13500) -> Result;
13501
13502pub type FnDestroySampler = extern "system" fn(
13503    device: Device,
13504    sampler: Sampler,
13505    pAllocator: *const AllocationCallbacks,
13506) -> ();
13507
13508pub type FnCreateDescriptorSetLayout = extern "system" fn(
13509    device: Device,
13510    pCreateInfo: *const DescriptorSetLayoutCreateInfo,
13511    pAllocator: *const AllocationCallbacks,
13512    pSetLayout: *mut DescriptorSetLayout,
13513) -> Result;
13514
13515pub type FnDestroyDescriptorSetLayout = extern "system" fn(
13516    device: Device,
13517    descriptorSetLayout: DescriptorSetLayout,
13518    pAllocator: *const AllocationCallbacks,
13519) -> ();
13520
13521pub type FnCreateDescriptorPool = extern "system" fn(
13522    device: Device,
13523    pCreateInfo: *const DescriptorPoolCreateInfo,
13524    pAllocator: *const AllocationCallbacks,
13525    pDescriptorPool: *mut DescriptorPool,
13526) -> Result;
13527
13528pub type FnDestroyDescriptorPool = extern "system" fn(
13529    device: Device,
13530    descriptorPool: DescriptorPool,
13531    pAllocator: *const AllocationCallbacks,
13532) -> ();
13533
13534pub type FnResetDescriptorPool = extern "system" fn(
13535    device: Device,
13536    descriptorPool: DescriptorPool,
13537    flags: DescriptorPoolResetFlags,
13538) -> Result;
13539
13540pub type FnAllocateDescriptorSets = extern "system" fn(
13541    device: Device,
13542    pAllocateInfo: *const DescriptorSetAllocateInfo,
13543    pDescriptorSets: *mut DescriptorSet,
13544) -> Result;
13545
13546pub type FnFreeDescriptorSets = extern "system" fn(
13547    device: Device,
13548    descriptorPool: DescriptorPool,
13549    descriptorSetCount: u32,
13550    pDescriptorSets: *const DescriptorSet,
13551) -> Result;
13552
13553pub type FnUpdateDescriptorSets = extern "system" fn(
13554    device: Device,
13555    descriptorWriteCount: u32,
13556    pDescriptorWrites: *const WriteDescriptorSet,
13557    descriptorCopyCount: u32,
13558    pDescriptorCopies: *const CopyDescriptorSet,
13559) -> ();
13560
13561pub type FnCreateFramebuffer = extern "system" fn(
13562    device: Device,
13563    pCreateInfo: *const FramebufferCreateInfo,
13564    pAllocator: *const AllocationCallbacks,
13565    pFramebuffer: *mut Framebuffer,
13566) -> Result;
13567
13568pub type FnDestroyFramebuffer = extern "system" fn(
13569    device: Device,
13570    framebuffer: Framebuffer,
13571    pAllocator: *const AllocationCallbacks,
13572) -> ();
13573
13574pub type FnCreateRenderPass = extern "system" fn(
13575    device: Device,
13576    pCreateInfo: *const RenderPassCreateInfo,
13577    pAllocator: *const AllocationCallbacks,
13578    pRenderPass: *mut RenderPass,
13579) -> Result;
13580
13581pub type FnDestroyRenderPass = extern "system" fn(
13582    device: Device,
13583    renderPass: RenderPass,
13584    pAllocator: *const AllocationCallbacks,
13585) -> ();
13586
13587pub type FnGetRenderAreaGranularity =
13588    extern "system" fn(device: Device, renderPass: RenderPass, pGranularity: *mut Extent2D) -> ();
13589
13590pub type FnCreateCommandPool = extern "system" fn(
13591    device: Device,
13592    pCreateInfo: *const CommandPoolCreateInfo,
13593    pAllocator: *const AllocationCallbacks,
13594    pCommandPool: *mut CommandPool,
13595) -> Result;
13596
13597pub type FnDestroyCommandPool = extern "system" fn(
13598    device: Device,
13599    commandPool: CommandPool,
13600    pAllocator: *const AllocationCallbacks,
13601) -> ();
13602
13603pub type FnResetCommandPool = extern "system" fn(
13604    device: Device,
13605    commandPool: CommandPool,
13606    flags: CommandPoolResetFlags,
13607) -> Result;
13608
13609pub type FnAllocateCommandBuffers = extern "system" fn(
13610    device: Device,
13611    pAllocateInfo: *const CommandBufferAllocateInfo,
13612    pCommandBuffers: *mut CommandBuffer,
13613) -> Result;
13614
13615pub type FnFreeCommandBuffers = extern "system" fn(
13616    device: Device,
13617    commandPool: CommandPool,
13618    commandBufferCount: u32,
13619    pCommandBuffers: *const CommandBuffer,
13620) -> ();
13621
13622pub type FnBeginCommandBuffer = extern "system" fn(
13623    commandBuffer: CommandBuffer,
13624    pBeginInfo: *const CommandBufferBeginInfo,
13625) -> Result;
13626
13627pub type FnEndCommandBuffer = extern "system" fn(commandBuffer: CommandBuffer) -> Result;
13628
13629pub type FnResetCommandBuffer =
13630    extern "system" fn(commandBuffer: CommandBuffer, flags: CommandBufferResetFlags) -> Result;
13631
13632pub type FnCmdBindPipeline = extern "system" fn(
13633    commandBuffer: CommandBuffer,
13634    pipelineBindPoint: PipelineBindPoint,
13635    pipeline: Pipeline,
13636) -> ();
13637
13638pub type FnCmdSetViewport = extern "system" fn(
13639    commandBuffer: CommandBuffer,
13640    firstViewport: u32,
13641    viewportCount: u32,
13642    pViewports: *const Viewport,
13643) -> ();
13644
13645pub type FnCmdSetScissor = extern "system" fn(
13646    commandBuffer: CommandBuffer,
13647    firstScissor: u32,
13648    scissorCount: u32,
13649    pScissors: *const Rect2D,
13650) -> ();
13651
13652pub type FnCmdSetLineWidth = extern "system" fn(commandBuffer: CommandBuffer, lineWidth: f32) -> ();
13653
13654pub type FnCmdSetDepthBias = extern "system" fn(
13655    commandBuffer: CommandBuffer,
13656    depthBiasConstantFactor: f32,
13657    depthBiasClamp: f32,
13658    depthBiasSlopeFactor: f32,
13659) -> ();
13660
13661pub type FnCmdSetBlendConstants =
13662    extern "system" fn(commandBuffer: CommandBuffer, blendConstants: [f32; 4]) -> ();
13663
13664pub type FnCmdSetDepthBounds = extern "system" fn(
13665    commandBuffer: CommandBuffer,
13666    minDepthBounds: f32,
13667    maxDepthBounds: f32,
13668) -> ();
13669
13670pub type FnCmdSetStencilCompareMask = extern "system" fn(
13671    commandBuffer: CommandBuffer,
13672    faceMask: StencilFaceFlags,
13673    compareMask: u32,
13674) -> ();
13675
13676pub type FnCmdSetStencilWriteMask = extern "system" fn(
13677    commandBuffer: CommandBuffer,
13678    faceMask: StencilFaceFlags,
13679    writeMask: u32,
13680) -> ();
13681
13682pub type FnCmdSetStencilReference = extern "system" fn(
13683    commandBuffer: CommandBuffer,
13684    faceMask: StencilFaceFlags,
13685    reference: u32,
13686) -> ();
13687
13688pub type FnCmdBindDescriptorSets = extern "system" fn(
13689    commandBuffer: CommandBuffer,
13690    pipelineBindPoint: PipelineBindPoint,
13691    layout: PipelineLayout,
13692    firstSet: u32,
13693    descriptorSetCount: u32,
13694    pDescriptorSets: *const DescriptorSet,
13695    dynamicOffsetCount: u32,
13696    pDynamicOffsets: *const u32,
13697) -> ();
13698
13699pub type FnCmdBindIndexBuffer = extern "system" fn(
13700    commandBuffer: CommandBuffer,
13701    buffer: Buffer,
13702    offset: DeviceSize,
13703    indexType: IndexType,
13704) -> ();
13705
13706pub type FnCmdBindVertexBuffers = extern "system" fn(
13707    commandBuffer: CommandBuffer,
13708    firstBinding: u32,
13709    bindingCount: u32,
13710    pBuffers: *const Buffer,
13711    pOffsets: *const DeviceSize,
13712) -> ();
13713
13714pub type FnCmdDraw = extern "system" fn(
13715    commandBuffer: CommandBuffer,
13716    vertexCount: u32,
13717    instanceCount: u32,
13718    firstVertex: u32,
13719    firstInstance: u32,
13720) -> ();
13721
13722pub type FnCmdDrawIndexed = extern "system" fn(
13723    commandBuffer: CommandBuffer,
13724    indexCount: u32,
13725    instanceCount: u32,
13726    firstIndex: u32,
13727    vertexOffset: i32,
13728    firstInstance: u32,
13729) -> ();
13730
13731pub type FnCmdDrawIndirect = extern "system" fn(
13732    commandBuffer: CommandBuffer,
13733    buffer: Buffer,
13734    offset: DeviceSize,
13735    drawCount: u32,
13736    stride: u32,
13737) -> ();
13738
13739pub type FnCmdDrawIndexedIndirect = extern "system" fn(
13740    commandBuffer: CommandBuffer,
13741    buffer: Buffer,
13742    offset: DeviceSize,
13743    drawCount: u32,
13744    stride: u32,
13745) -> ();
13746
13747pub type FnCmdDispatch = extern "system" fn(
13748    commandBuffer: CommandBuffer,
13749    groupCountX: u32,
13750    groupCountY: u32,
13751    groupCountZ: u32,
13752) -> ();
13753
13754pub type FnCmdDispatchIndirect =
13755    extern "system" fn(commandBuffer: CommandBuffer, buffer: Buffer, offset: DeviceSize) -> ();
13756
13757pub type FnCmdCopyBuffer = extern "system" fn(
13758    commandBuffer: CommandBuffer,
13759    srcBuffer: Buffer,
13760    dstBuffer: Buffer,
13761    regionCount: u32,
13762    pRegions: *const BufferCopy,
13763) -> ();
13764
13765pub type FnCmdCopyImage = extern "system" fn(
13766    commandBuffer: CommandBuffer,
13767    srcImage: Image,
13768    srcImageLayout: ImageLayout,
13769    dstImage: Image,
13770    dstImageLayout: ImageLayout,
13771    regionCount: u32,
13772    pRegions: *const ImageCopy,
13773) -> ();
13774
13775pub type FnCmdBlitImage = extern "system" fn(
13776    commandBuffer: CommandBuffer,
13777    srcImage: Image,
13778    srcImageLayout: ImageLayout,
13779    dstImage: Image,
13780    dstImageLayout: ImageLayout,
13781    regionCount: u32,
13782    pRegions: *const ImageBlit,
13783    filter: Filter,
13784) -> ();
13785
13786pub type FnCmdCopyBufferToImage = extern "system" fn(
13787    commandBuffer: CommandBuffer,
13788    srcBuffer: Buffer,
13789    dstImage: Image,
13790    dstImageLayout: ImageLayout,
13791    regionCount: u32,
13792    pRegions: *const BufferImageCopy,
13793) -> ();
13794
13795pub type FnCmdCopyImageToBuffer = extern "system" fn(
13796    commandBuffer: CommandBuffer,
13797    srcImage: Image,
13798    srcImageLayout: ImageLayout,
13799    dstBuffer: Buffer,
13800    regionCount: u32,
13801    pRegions: *const BufferImageCopy,
13802) -> ();
13803
13804pub type FnCmdUpdateBuffer = extern "system" fn(
13805    commandBuffer: CommandBuffer,
13806    dstBuffer: Buffer,
13807    dstOffset: DeviceSize,
13808    dataSize: DeviceSize,
13809    pData: *const c_void,
13810) -> ();
13811
13812pub type FnCmdFillBuffer = extern "system" fn(
13813    commandBuffer: CommandBuffer,
13814    dstBuffer: Buffer,
13815    dstOffset: DeviceSize,
13816    size: DeviceSize,
13817    data: u32,
13818) -> ();
13819
13820pub type FnCmdClearColorImage = extern "system" fn(
13821    commandBuffer: CommandBuffer,
13822    image: Image,
13823    imageLayout: ImageLayout,
13824    pColor: *const ClearColorValue,
13825    rangeCount: u32,
13826    pRanges: *const ImageSubresourceRange,
13827) -> ();
13828
13829pub type FnCmdClearDepthStencilImage = extern "system" fn(
13830    commandBuffer: CommandBuffer,
13831    image: Image,
13832    imageLayout: ImageLayout,
13833    pDepthStencil: *const ClearDepthStencilValue,
13834    rangeCount: u32,
13835    pRanges: *const ImageSubresourceRange,
13836) -> ();
13837
13838pub type FnCmdClearAttachments = extern "system" fn(
13839    commandBuffer: CommandBuffer,
13840    attachmentCount: u32,
13841    pAttachments: *const ClearAttachment,
13842    rectCount: u32,
13843    pRects: *const ClearRect,
13844) -> ();
13845
13846pub type FnCmdResolveImage = extern "system" fn(
13847    commandBuffer: CommandBuffer,
13848    srcImage: Image,
13849    srcImageLayout: ImageLayout,
13850    dstImage: Image,
13851    dstImageLayout: ImageLayout,
13852    regionCount: u32,
13853    pRegions: *const ImageResolve,
13854) -> ();
13855
13856pub type FnCmdSetEvent = extern "system" fn(
13857    commandBuffer: CommandBuffer,
13858    event: Event,
13859    stageMask: PipelineStageFlags,
13860) -> ();
13861
13862pub type FnCmdResetEvent = extern "system" fn(
13863    commandBuffer: CommandBuffer,
13864    event: Event,
13865    stageMask: PipelineStageFlags,
13866) -> ();
13867
13868pub type FnCmdWaitEvents = extern "system" fn(
13869    commandBuffer: CommandBuffer,
13870    eventCount: u32,
13871    pEvents: *const Event,
13872    srcStageMask: PipelineStageFlags,
13873    dstStageMask: PipelineStageFlags,
13874    memoryBarrierCount: u32,
13875    pMemoryBarriers: *const MemoryBarrier,
13876    bufferMemoryBarrierCount: u32,
13877    pBufferMemoryBarriers: *const BufferMemoryBarrier,
13878    imageMemoryBarrierCount: u32,
13879    pImageMemoryBarriers: *const ImageMemoryBarrier,
13880) -> ();
13881
13882pub type FnCmdPipelineBarrier = extern "system" fn(
13883    commandBuffer: CommandBuffer,
13884    srcStageMask: PipelineStageFlags,
13885    dstStageMask: PipelineStageFlags,
13886    dependencyFlags: DependencyFlags,
13887    memoryBarrierCount: u32,
13888    pMemoryBarriers: *const MemoryBarrier,
13889    bufferMemoryBarrierCount: u32,
13890    pBufferMemoryBarriers: *const BufferMemoryBarrier,
13891    imageMemoryBarrierCount: u32,
13892    pImageMemoryBarriers: *const ImageMemoryBarrier,
13893) -> ();
13894
13895pub type FnCmdBeginQuery = extern "system" fn(
13896    commandBuffer: CommandBuffer,
13897    queryPool: QueryPool,
13898    query: u32,
13899    flags: QueryControlFlags,
13900) -> ();
13901
13902pub type FnCmdEndQuery =
13903    extern "system" fn(commandBuffer: CommandBuffer, queryPool: QueryPool, query: u32) -> ();
13904
13905pub type FnCmdResetQueryPool = extern "system" fn(
13906    commandBuffer: CommandBuffer,
13907    queryPool: QueryPool,
13908    firstQuery: u32,
13909    queryCount: u32,
13910) -> ();
13911
13912pub type FnCmdWriteTimestamp = extern "system" fn(
13913    commandBuffer: CommandBuffer,
13914    pipelineStage: PipelineStageFlagBits,
13915    queryPool: QueryPool,
13916    query: u32,
13917) -> ();
13918
13919pub type FnCmdCopyQueryPoolResults = extern "system" fn(
13920    commandBuffer: CommandBuffer,
13921    queryPool: QueryPool,
13922    firstQuery: u32,
13923    queryCount: u32,
13924    dstBuffer: Buffer,
13925    dstOffset: DeviceSize,
13926    stride: DeviceSize,
13927    flags: QueryResultFlags,
13928) -> ();
13929
13930pub type FnCmdPushConstants = extern "system" fn(
13931    commandBuffer: CommandBuffer,
13932    layout: PipelineLayout,
13933    stageFlags: ShaderStageFlags,
13934    offset: u32,
13935    size: u32,
13936    pValues: *const c_void,
13937) -> ();
13938
13939pub type FnCmdBeginRenderPass = extern "system" fn(
13940    commandBuffer: CommandBuffer,
13941    pRenderPassBegin: *const RenderPassBeginInfo,
13942    contents: SubpassContents,
13943) -> ();
13944
13945pub type FnCmdNextSubpass =
13946    extern "system" fn(commandBuffer: CommandBuffer, contents: SubpassContents) -> ();
13947
13948pub type FnCmdEndRenderPass = extern "system" fn(commandBuffer: CommandBuffer) -> ();
13949
13950pub type FnCmdExecuteCommands = extern "system" fn(
13951    commandBuffer: CommandBuffer,
13952    commandBufferCount: u32,
13953    pCommandBuffers: *const CommandBuffer,
13954) -> ();
13955
13956pub type FnBindBufferMemory2 = extern "system" fn(
13957    device: Device,
13958    bindInfoCount: u32,
13959    pBindInfos: *const BindBufferMemoryInfo,
13960) -> Result;
13961
13962pub type FnBindImageMemory2 = extern "system" fn(
13963    device: Device,
13964    bindInfoCount: u32,
13965    pBindInfos: *const BindImageMemoryInfo,
13966) -> Result;
13967
13968pub type FnGetDeviceGroupPeerMemoryFeatures = extern "system" fn(
13969    device: Device,
13970    heapIndex: u32,
13971    localDeviceIndex: u32,
13972    remoteDeviceIndex: u32,
13973    pPeerMemoryFeatures: *mut PeerMemoryFeatureFlags,
13974) -> ();
13975
13976pub type FnCmdSetDeviceMask =
13977    extern "system" fn(commandBuffer: CommandBuffer, deviceMask: u32) -> ();
13978
13979pub type FnCmdDispatchBase = extern "system" fn(
13980    commandBuffer: CommandBuffer,
13981    baseGroupX: u32,
13982    baseGroupY: u32,
13983    baseGroupZ: u32,
13984    groupCountX: u32,
13985    groupCountY: u32,
13986    groupCountZ: u32,
13987) -> ();
13988
13989pub type FnGetImageMemoryRequirements2 = extern "system" fn(
13990    device: Device,
13991    pInfo: *const ImageMemoryRequirementsInfo2,
13992    pMemoryRequirements: *mut MemoryRequirements2,
13993) -> ();
13994
13995pub type FnGetBufferMemoryRequirements2 = extern "system" fn(
13996    device: Device,
13997    pInfo: *const BufferMemoryRequirementsInfo2,
13998    pMemoryRequirements: *mut MemoryRequirements2,
13999) -> ();
14000
14001pub type FnGetImageSparseMemoryRequirements2 = extern "system" fn(
14002    device: Device,
14003    pInfo: *const ImageSparseMemoryRequirementsInfo2,
14004    pSparseMemoryRequirementCount: *mut u32,
14005    pSparseMemoryRequirements: *mut SparseImageMemoryRequirements2,
14006) -> ();
14007
14008pub type FnTrimCommandPool =
14009    extern "system" fn(device: Device, commandPool: CommandPool, flags: CommandPoolTrimFlags) -> ();
14010
14011pub type FnGetDeviceQueue2 = extern "system" fn(
14012    device: Device,
14013    pQueueInfo: *const DeviceQueueInfo2,
14014    pQueue: *mut Queue,
14015) -> ();
14016
14017pub type FnCreateSamplerYcbcrConversion = extern "system" fn(
14018    device: Device,
14019    pCreateInfo: *const SamplerYcbcrConversionCreateInfo,
14020    pAllocator: *const AllocationCallbacks,
14021    pYcbcrConversion: *mut SamplerYcbcrConversion,
14022) -> Result;
14023
14024pub type FnDestroySamplerYcbcrConversion = extern "system" fn(
14025    device: Device,
14026    ycbcrConversion: SamplerYcbcrConversion,
14027    pAllocator: *const AllocationCallbacks,
14028) -> ();
14029
14030pub type FnCreateDescriptorUpdateTemplate = extern "system" fn(
14031    device: Device,
14032    pCreateInfo: *const DescriptorUpdateTemplateCreateInfo,
14033    pAllocator: *const AllocationCallbacks,
14034    pDescriptorUpdateTemplate: *mut DescriptorUpdateTemplate,
14035) -> Result;
14036
14037pub type FnDestroyDescriptorUpdateTemplate = extern "system" fn(
14038    device: Device,
14039    descriptorUpdateTemplate: DescriptorUpdateTemplate,
14040    pAllocator: *const AllocationCallbacks,
14041) -> ();
14042
14043pub type FnUpdateDescriptorSetWithTemplate = extern "system" fn(
14044    device: Device,
14045    descriptorSet: DescriptorSet,
14046    descriptorUpdateTemplate: DescriptorUpdateTemplate,
14047    pData: *const c_void,
14048) -> ();
14049
14050pub type FnGetDescriptorSetLayoutSupport = extern "system" fn(
14051    device: Device,
14052    pCreateInfo: *const DescriptorSetLayoutCreateInfo,
14053    pSupport: *mut DescriptorSetLayoutSupport,
14054) -> ();
14055
14056pub type FnCmdDrawIndirectCount = extern "system" fn(
14057    commandBuffer: CommandBuffer,
14058    buffer: Buffer,
14059    offset: DeviceSize,
14060    countBuffer: Buffer,
14061    countBufferOffset: DeviceSize,
14062    maxDrawCount: u32,
14063    stride: u32,
14064) -> ();
14065
14066pub type FnCmdDrawIndexedIndirectCount = extern "system" fn(
14067    commandBuffer: CommandBuffer,
14068    buffer: Buffer,
14069    offset: DeviceSize,
14070    countBuffer: Buffer,
14071    countBufferOffset: DeviceSize,
14072    maxDrawCount: u32,
14073    stride: u32,
14074) -> ();
14075
14076pub type FnCreateRenderPass2 = extern "system" fn(
14077    device: Device,
14078    pCreateInfo: *const RenderPassCreateInfo2,
14079    pAllocator: *const AllocationCallbacks,
14080    pRenderPass: *mut RenderPass,
14081) -> Result;
14082
14083pub type FnCmdBeginRenderPass2 = extern "system" fn(
14084    commandBuffer: CommandBuffer,
14085    pRenderPassBegin: *const RenderPassBeginInfo,
14086    pSubpassBeginInfo: *const SubpassBeginInfo,
14087) -> ();
14088
14089pub type FnCmdNextSubpass2 = extern "system" fn(
14090    commandBuffer: CommandBuffer,
14091    pSubpassBeginInfo: *const SubpassBeginInfo,
14092    pSubpassEndInfo: *const SubpassEndInfo,
14093) -> ();
14094
14095pub type FnCmdEndRenderPass2 =
14096    extern "system" fn(commandBuffer: CommandBuffer, pSubpassEndInfo: *const SubpassEndInfo) -> ();
14097
14098pub type FnResetQueryPool = extern "system" fn(
14099    device: Device,
14100    queryPool: QueryPool,
14101    firstQuery: u32,
14102    queryCount: u32,
14103) -> ();
14104
14105pub type FnGetSemaphoreCounterValue =
14106    extern "system" fn(device: Device, semaphore: Semaphore, pValue: *mut u64) -> Result;
14107
14108pub type FnWaitSemaphores =
14109    extern "system" fn(device: Device, pWaitInfo: *const SemaphoreWaitInfo, timeout: u64) -> Result;
14110
14111pub type FnSignalSemaphore =
14112    extern "system" fn(device: Device, pSignalInfo: *const SemaphoreSignalInfo) -> Result;
14113
14114pub type FnGetBufferDeviceAddress =
14115    extern "system" fn(device: Device, pInfo: *const BufferDeviceAddressInfo) -> DeviceAddress;
14116
14117pub type FnGetBufferOpaqueCaptureAddress =
14118    extern "system" fn(device: Device, pInfo: *const BufferDeviceAddressInfo) -> u64;
14119
14120pub type FnGetDeviceMemoryOpaqueCaptureAddress =
14121    extern "system" fn(device: Device, pInfo: *const DeviceMemoryOpaqueCaptureAddressInfo) -> u64;
14122
14123pub type FnCreatePrivateDataSlot = extern "system" fn(
14124    device: Device,
14125    pCreateInfo: *const PrivateDataSlotCreateInfo,
14126    pAllocator: *const AllocationCallbacks,
14127    pPrivateDataSlot: *mut PrivateDataSlot,
14128) -> Result;
14129
14130pub type FnDestroyPrivateDataSlot = extern "system" fn(
14131    device: Device,
14132    privateDataSlot: PrivateDataSlot,
14133    pAllocator: *const AllocationCallbacks,
14134) -> ();
14135
14136pub type FnSetPrivateData = extern "system" fn(
14137    device: Device,
14138    objectType: ObjectType,
14139    objectHandle: u64,
14140    privateDataSlot: PrivateDataSlot,
14141    data: u64,
14142) -> Result;
14143
14144pub type FnGetPrivateData = extern "system" fn(
14145    device: Device,
14146    objectType: ObjectType,
14147    objectHandle: u64,
14148    privateDataSlot: PrivateDataSlot,
14149    pData: *mut u64,
14150) -> ();
14151
14152pub type FnCmdSetEvent2 = extern "system" fn(
14153    commandBuffer: CommandBuffer,
14154    event: Event,
14155    pDependencyInfo: *const DependencyInfo,
14156) -> ();
14157
14158pub type FnCmdResetEvent2 = extern "system" fn(
14159    commandBuffer: CommandBuffer,
14160    event: Event,
14161    stageMask: PipelineStageFlags2,
14162) -> ();
14163
14164pub type FnCmdWaitEvents2 = extern "system" fn(
14165    commandBuffer: CommandBuffer,
14166    eventCount: u32,
14167    pEvents: *const Event,
14168    pDependencyInfos: *const DependencyInfo,
14169) -> ();
14170
14171pub type FnCmdPipelineBarrier2 =
14172    extern "system" fn(commandBuffer: CommandBuffer, pDependencyInfo: *const DependencyInfo) -> ();
14173
14174pub type FnCmdWriteTimestamp2 = extern "system" fn(
14175    commandBuffer: CommandBuffer,
14176    stage: PipelineStageFlags2,
14177    queryPool: QueryPool,
14178    query: u32,
14179) -> ();
14180
14181pub type FnQueueSubmit2 = extern "system" fn(
14182    queue: Queue,
14183    submitCount: u32,
14184    pSubmits: *const SubmitInfo2,
14185    fence: Fence,
14186) -> Result;
14187
14188pub type FnCmdCopyBuffer2 =
14189    extern "system" fn(commandBuffer: CommandBuffer, pCopyBufferInfo: *const CopyBufferInfo2) -> ();
14190
14191pub type FnCmdCopyImage2 =
14192    extern "system" fn(commandBuffer: CommandBuffer, pCopyImageInfo: *const CopyImageInfo2) -> ();
14193
14194pub type FnCmdCopyBufferToImage2 = extern "system" fn(
14195    commandBuffer: CommandBuffer,
14196    pCopyBufferToImageInfo: *const CopyBufferToImageInfo2,
14197) -> ();
14198
14199pub type FnCmdCopyImageToBuffer2 = extern "system" fn(
14200    commandBuffer: CommandBuffer,
14201    pCopyImageToBufferInfo: *const CopyImageToBufferInfo2,
14202) -> ();
14203
14204pub type FnCmdBlitImage2 =
14205    extern "system" fn(commandBuffer: CommandBuffer, pBlitImageInfo: *const BlitImageInfo2) -> ();
14206
14207pub type FnCmdResolveImage2 = extern "system" fn(
14208    commandBuffer: CommandBuffer,
14209    pResolveImageInfo: *const ResolveImageInfo2,
14210) -> ();
14211
14212pub type FnCmdBeginRendering =
14213    extern "system" fn(commandBuffer: CommandBuffer, pRenderingInfo: *const RenderingInfo) -> ();
14214
14215pub type FnCmdEndRendering = extern "system" fn(commandBuffer: CommandBuffer) -> ();
14216
14217pub type FnCmdSetCullMode =
14218    extern "system" fn(commandBuffer: CommandBuffer, cullMode: CullModeFlags) -> ();
14219
14220pub type FnCmdSetFrontFace =
14221    extern "system" fn(commandBuffer: CommandBuffer, frontFace: FrontFace) -> ();
14222
14223pub type FnCmdSetPrimitiveTopology =
14224    extern "system" fn(commandBuffer: CommandBuffer, primitiveTopology: PrimitiveTopology) -> ();
14225
14226pub type FnCmdSetViewportWithCount = extern "system" fn(
14227    commandBuffer: CommandBuffer,
14228    viewportCount: u32,
14229    pViewports: *const Viewport,
14230) -> ();
14231
14232pub type FnCmdSetScissorWithCount = extern "system" fn(
14233    commandBuffer: CommandBuffer,
14234    scissorCount: u32,
14235    pScissors: *const Rect2D,
14236) -> ();
14237
14238pub type FnCmdBindVertexBuffers2 = extern "system" fn(
14239    commandBuffer: CommandBuffer,
14240    firstBinding: u32,
14241    bindingCount: u32,
14242    pBuffers: *const Buffer,
14243    pOffsets: *const DeviceSize,
14244    pSizes: *const DeviceSize,
14245    pStrides: *const DeviceSize,
14246) -> ();
14247
14248pub type FnCmdSetDepthTestEnable =
14249    extern "system" fn(commandBuffer: CommandBuffer, depthTestEnable: Bool32) -> ();
14250
14251pub type FnCmdSetDepthWriteEnable =
14252    extern "system" fn(commandBuffer: CommandBuffer, depthWriteEnable: Bool32) -> ();
14253
14254pub type FnCmdSetDepthCompareOp =
14255    extern "system" fn(commandBuffer: CommandBuffer, depthCompareOp: CompareOp) -> ();
14256
14257pub type FnCmdSetDepthBoundsTestEnable =
14258    extern "system" fn(commandBuffer: CommandBuffer, depthBoundsTestEnable: Bool32) -> ();
14259
14260pub type FnCmdSetStencilTestEnable =
14261    extern "system" fn(commandBuffer: CommandBuffer, stencilTestEnable: Bool32) -> ();
14262
14263pub type FnCmdSetStencilOp = extern "system" fn(
14264    commandBuffer: CommandBuffer,
14265    faceMask: StencilFaceFlags,
14266    failOp: StencilOp,
14267    passOp: StencilOp,
14268    depthFailOp: StencilOp,
14269    compareOp: CompareOp,
14270) -> ();
14271
14272pub type FnCmdSetRasterizerDiscardEnable =
14273    extern "system" fn(commandBuffer: CommandBuffer, rasterizerDiscardEnable: Bool32) -> ();
14274
14275pub type FnCmdSetDepthBiasEnable =
14276    extern "system" fn(commandBuffer: CommandBuffer, depthBiasEnable: Bool32) -> ();
14277
14278pub type FnCmdSetPrimitiveRestartEnable =
14279    extern "system" fn(commandBuffer: CommandBuffer, primitiveRestartEnable: Bool32) -> ();
14280
14281pub type FnGetDeviceBufferMemoryRequirements = extern "system" fn(
14282    device: Device,
14283    pInfo: *const DeviceBufferMemoryRequirements,
14284    pMemoryRequirements: *mut MemoryRequirements2,
14285) -> ();
14286
14287pub type FnGetDeviceImageMemoryRequirements = extern "system" fn(
14288    device: Device,
14289    pInfo: *const DeviceImageMemoryRequirements,
14290    pMemoryRequirements: *mut MemoryRequirements2,
14291) -> ();
14292
14293pub type FnGetDeviceImageSparseMemoryRequirements = extern "system" fn(
14294    device: Device,
14295    pInfo: *const DeviceImageMemoryRequirements,
14296    pSparseMemoryRequirementCount: *mut u32,
14297    pSparseMemoryRequirements: *mut SparseImageMemoryRequirements2,
14298) -> ();
14299
14300pub type FnCreateSwapchainKHR = extern "system" fn(
14301    device: Device,
14302    pCreateInfo: *const SwapchainCreateInfoKHR,
14303    pAllocator: *const AllocationCallbacks,
14304    pSwapchain: *mut SwapchainKHR,
14305) -> Result;
14306
14307pub type FnDestroySwapchainKHR = extern "system" fn(
14308    device: Device,
14309    swapchain: SwapchainKHR,
14310    pAllocator: *const AllocationCallbacks,
14311) -> ();
14312
14313pub type FnGetSwapchainImagesKHR = extern "system" fn(
14314    device: Device,
14315    swapchain: SwapchainKHR,
14316    pSwapchainImageCount: *mut u32,
14317    pSwapchainImages: *mut Image,
14318) -> Result;
14319
14320pub type FnAcquireNextImageKHR = extern "system" fn(
14321    device: Device,
14322    swapchain: SwapchainKHR,
14323    timeout: u64,
14324    semaphore: Semaphore,
14325    fence: Fence,
14326    pImageIndex: *mut u32,
14327) -> Result;
14328
14329pub type FnQueuePresentKHR =
14330    extern "system" fn(queue: Queue, pPresentInfo: *const PresentInfoKHR) -> Result;
14331
14332pub type FnGetDeviceGroupPresentCapabilitiesKHR = extern "system" fn(
14333    device: Device,
14334    pDeviceGroupPresentCapabilities: *mut DeviceGroupPresentCapabilitiesKHR,
14335) -> Result;
14336
14337pub type FnGetDeviceGroupSurfacePresentModesKHR = extern "system" fn(
14338    device: Device,
14339    surface: SurfaceKHR,
14340    pModes: *mut DeviceGroupPresentModeFlagsKHR,
14341) -> Result;
14342
14343pub type FnAcquireNextImage2KHR = extern "system" fn(
14344    device: Device,
14345    pAcquireInfo: *const AcquireNextImageInfoKHR,
14346    pImageIndex: *mut u32,
14347) -> Result;
14348
14349pub type FnCreateSharedSwapchainsKHR = extern "system" fn(
14350    device: Device,
14351    swapchainCount: u32,
14352    pCreateInfos: *const SwapchainCreateInfoKHR,
14353    pAllocator: *const AllocationCallbacks,
14354    pSwapchains: *mut SwapchainKHR,
14355) -> Result;
14356
14357pub type FnDebugMarkerSetObjectTagEXT =
14358    extern "system" fn(device: Device, pTagInfo: *const DebugMarkerObjectTagInfoEXT) -> Result;
14359
14360pub type FnDebugMarkerSetObjectNameEXT =
14361    extern "system" fn(device: Device, pNameInfo: *const DebugMarkerObjectNameInfoEXT) -> Result;
14362
14363pub type FnCmdDebugMarkerBeginEXT = extern "system" fn(
14364    commandBuffer: CommandBuffer,
14365    pMarkerInfo: *const DebugMarkerMarkerInfoEXT,
14366) -> ();
14367
14368pub type FnCmdDebugMarkerEndEXT = extern "system" fn(commandBuffer: CommandBuffer) -> ();
14369
14370pub type FnCmdDebugMarkerInsertEXT = extern "system" fn(
14371    commandBuffer: CommandBuffer,
14372    pMarkerInfo: *const DebugMarkerMarkerInfoEXT,
14373) -> ();
14374
14375pub type FnCreateVideoSessionKHR = extern "system" fn(
14376    device: Device,
14377    pCreateInfo: *const VideoSessionCreateInfoKHR,
14378    pAllocator: *const AllocationCallbacks,
14379    pVideoSession: *mut VideoSessionKHR,
14380) -> Result;
14381
14382pub type FnDestroyVideoSessionKHR = extern "system" fn(
14383    device: Device,
14384    videoSession: VideoSessionKHR,
14385    pAllocator: *const AllocationCallbacks,
14386) -> ();
14387
14388pub type FnGetVideoSessionMemoryRequirementsKHR = extern "system" fn(
14389    device: Device,
14390    videoSession: VideoSessionKHR,
14391    pMemoryRequirementsCount: *mut u32,
14392    pMemoryRequirements: *mut VideoSessionMemoryRequirementsKHR,
14393) -> Result;
14394
14395pub type FnBindVideoSessionMemoryKHR = extern "system" fn(
14396    device: Device,
14397    videoSession: VideoSessionKHR,
14398    bindSessionMemoryInfoCount: u32,
14399    pBindSessionMemoryInfos: *const BindVideoSessionMemoryInfoKHR,
14400) -> Result;
14401
14402pub type FnCreateVideoSessionParametersKHR = extern "system" fn(
14403    device: Device,
14404    pCreateInfo: *const VideoSessionParametersCreateInfoKHR,
14405    pAllocator: *const AllocationCallbacks,
14406    pVideoSessionParameters: *mut VideoSessionParametersKHR,
14407) -> Result;
14408
14409pub type FnUpdateVideoSessionParametersKHR = extern "system" fn(
14410    device: Device,
14411    videoSessionParameters: VideoSessionParametersKHR,
14412    pUpdateInfo: *const VideoSessionParametersUpdateInfoKHR,
14413) -> Result;
14414
14415pub type FnDestroyVideoSessionParametersKHR = extern "system" fn(
14416    device: Device,
14417    videoSessionParameters: VideoSessionParametersKHR,
14418    pAllocator: *const AllocationCallbacks,
14419) -> ();
14420
14421pub type FnCmdBeginVideoCodingKHR = extern "system" fn(
14422    commandBuffer: CommandBuffer,
14423    pBeginInfo: *const VideoBeginCodingInfoKHR,
14424) -> ();
14425
14426pub type FnCmdEndVideoCodingKHR = extern "system" fn(
14427    commandBuffer: CommandBuffer,
14428    pEndCodingInfo: *const VideoEndCodingInfoKHR,
14429) -> ();
14430
14431pub type FnCmdControlVideoCodingKHR = extern "system" fn(
14432    commandBuffer: CommandBuffer,
14433    pCodingControlInfo: *const VideoCodingControlInfoKHR,
14434) -> ();
14435
14436pub type FnCmdDecodeVideoKHR =
14437    extern "system" fn(commandBuffer: CommandBuffer, pDecodeInfo: *const VideoDecodeInfoKHR) -> ();
14438
14439pub type FnCmdBindTransformFeedbackBuffersEXT = extern "system" fn(
14440    commandBuffer: CommandBuffer,
14441    firstBinding: u32,
14442    bindingCount: u32,
14443    pBuffers: *const Buffer,
14444    pOffsets: *const DeviceSize,
14445    pSizes: *const DeviceSize,
14446) -> ();
14447
14448pub type FnCmdBeginTransformFeedbackEXT = extern "system" fn(
14449    commandBuffer: CommandBuffer,
14450    firstCounterBuffer: u32,
14451    counterBufferCount: u32,
14452    pCounterBuffers: *const Buffer,
14453    pCounterBufferOffsets: *const DeviceSize,
14454) -> ();
14455
14456pub type FnCmdEndTransformFeedbackEXT = extern "system" fn(
14457    commandBuffer: CommandBuffer,
14458    firstCounterBuffer: u32,
14459    counterBufferCount: u32,
14460    pCounterBuffers: *const Buffer,
14461    pCounterBufferOffsets: *const DeviceSize,
14462) -> ();
14463
14464pub type FnCmdBeginQueryIndexedEXT = extern "system" fn(
14465    commandBuffer: CommandBuffer,
14466    queryPool: QueryPool,
14467    query: u32,
14468    flags: QueryControlFlags,
14469    index: u32,
14470) -> ();
14471
14472pub type FnCmdEndQueryIndexedEXT = extern "system" fn(
14473    commandBuffer: CommandBuffer,
14474    queryPool: QueryPool,
14475    query: u32,
14476    index: u32,
14477) -> ();
14478
14479pub type FnCmdDrawIndirectByteCountEXT = extern "system" fn(
14480    commandBuffer: CommandBuffer,
14481    instanceCount: u32,
14482    firstInstance: u32,
14483    counterBuffer: Buffer,
14484    counterBufferOffset: DeviceSize,
14485    counterOffset: u32,
14486    vertexStride: u32,
14487) -> ();
14488
14489pub type FnCreateCuModuleNVX = extern "system" fn(
14490    device: Device,
14491    pCreateInfo: *const CuModuleCreateInfoNVX,
14492    pAllocator: *const AllocationCallbacks,
14493    pModule: *mut CuModuleNVX,
14494) -> Result;
14495
14496pub type FnCreateCuFunctionNVX = extern "system" fn(
14497    device: Device,
14498    pCreateInfo: *const CuFunctionCreateInfoNVX,
14499    pAllocator: *const AllocationCallbacks,
14500    pFunction: *mut CuFunctionNVX,
14501) -> Result;
14502
14503pub type FnDestroyCuModuleNVX = extern "system" fn(
14504    device: Device,
14505    module: CuModuleNVX,
14506    pAllocator: *const AllocationCallbacks,
14507) -> ();
14508
14509pub type FnDestroyCuFunctionNVX = extern "system" fn(
14510    device: Device,
14511    function: CuFunctionNVX,
14512    pAllocator: *const AllocationCallbacks,
14513) -> ();
14514
14515pub type FnCmdCuLaunchKernelNVX =
14516    extern "system" fn(commandBuffer: CommandBuffer, pLaunchInfo: *const CuLaunchInfoNVX) -> ();
14517
14518pub type FnGetImageViewHandleNVX =
14519    extern "system" fn(device: Device, pInfo: *const ImageViewHandleInfoNVX) -> u32;
14520
14521pub type FnGetImageViewAddressNVX = extern "system" fn(
14522    device: Device,
14523    imageView: ImageView,
14524    pProperties: *mut ImageViewAddressPropertiesNVX,
14525) -> Result;
14526
14527pub type FnCmdDrawIndirectCountAMD = FnCmdDrawIndirectCount;
14528
14529pub type FnCmdDrawIndexedIndirectCountAMD = FnCmdDrawIndexedIndirectCount;
14530
14531pub type FnGetShaderInfoAMD = extern "system" fn(
14532    device: Device,
14533    pipeline: Pipeline,
14534    shaderStage: ShaderStageFlagBits,
14535    infoType: ShaderInfoTypeAMD,
14536    pInfoSize: *mut usize,
14537    pInfo: *mut c_void,
14538) -> Result;
14539
14540pub type FnCmdBeginRenderingKHR = FnCmdBeginRendering;
14541
14542pub type FnCmdEndRenderingKHR = FnCmdEndRendering;
14543
14544pub type FnGetDeviceGroupPeerMemoryFeaturesKHR = FnGetDeviceGroupPeerMemoryFeatures;
14545
14546pub type FnCmdSetDeviceMaskKHR = FnCmdSetDeviceMask;
14547
14548pub type FnCmdDispatchBaseKHR = FnCmdDispatchBase;
14549
14550pub type FnTrimCommandPoolKHR = FnTrimCommandPool;
14551
14552pub type FnGetMemoryFdKHR = extern "system" fn(
14553    device: Device,
14554    pGetFdInfo: *const MemoryGetFdInfoKHR,
14555    pFd: *mut c_int,
14556) -> Result;
14557
14558pub type FnGetMemoryFdPropertiesKHR = extern "system" fn(
14559    device: Device,
14560    handleType: ExternalMemoryHandleTypeFlagBits,
14561    fd: c_int,
14562    pMemoryFdProperties: *mut MemoryFdPropertiesKHR,
14563) -> Result;
14564
14565pub type FnImportSemaphoreFdKHR = extern "system" fn(
14566    device: Device,
14567    pImportSemaphoreFdInfo: *const ImportSemaphoreFdInfoKHR,
14568) -> Result;
14569
14570pub type FnGetSemaphoreFdKHR = extern "system" fn(
14571    device: Device,
14572    pGetFdInfo: *const SemaphoreGetFdInfoKHR,
14573    pFd: *mut c_int,
14574) -> Result;
14575
14576pub type FnCmdPushDescriptorSetKHR = extern "system" fn(
14577    commandBuffer: CommandBuffer,
14578    pipelineBindPoint: PipelineBindPoint,
14579    layout: PipelineLayout,
14580    set: u32,
14581    descriptorWriteCount: u32,
14582    pDescriptorWrites: *const WriteDescriptorSet,
14583) -> ();
14584
14585pub type FnCmdPushDescriptorSetWithTemplateKHR = extern "system" fn(
14586    commandBuffer: CommandBuffer,
14587    descriptorUpdateTemplate: DescriptorUpdateTemplate,
14588    layout: PipelineLayout,
14589    set: u32,
14590    pData: *const c_void,
14591) -> ();
14592
14593pub type FnCmdBeginConditionalRenderingEXT = extern "system" fn(
14594    commandBuffer: CommandBuffer,
14595    pConditionalRenderingBegin: *const ConditionalRenderingBeginInfoEXT,
14596) -> ();
14597
14598pub type FnCmdEndConditionalRenderingEXT = extern "system" fn(commandBuffer: CommandBuffer) -> ();
14599
14600pub type FnCreateDescriptorUpdateTemplateKHR = FnCreateDescriptorUpdateTemplate;
14601
14602pub type FnDestroyDescriptorUpdateTemplateKHR = FnDestroyDescriptorUpdateTemplate;
14603
14604pub type FnUpdateDescriptorSetWithTemplateKHR = FnUpdateDescriptorSetWithTemplate;
14605
14606pub type FnCmdSetViewportWScalingNV = extern "system" fn(
14607    commandBuffer: CommandBuffer,
14608    firstViewport: u32,
14609    viewportCount: u32,
14610    pViewportWScalings: *const ViewportWScalingNV,
14611) -> ();
14612
14613pub type FnDisplayPowerControlEXT = extern "system" fn(
14614    device: Device,
14615    display: DisplayKHR,
14616    pDisplayPowerInfo: *const DisplayPowerInfoEXT,
14617) -> Result;
14618
14619pub type FnRegisterDeviceEventEXT = extern "system" fn(
14620    device: Device,
14621    pDeviceEventInfo: *const DeviceEventInfoEXT,
14622    pAllocator: *const AllocationCallbacks,
14623    pFence: *mut Fence,
14624) -> Result;
14625
14626pub type FnRegisterDisplayEventEXT = extern "system" fn(
14627    device: Device,
14628    display: DisplayKHR,
14629    pDisplayEventInfo: *const DisplayEventInfoEXT,
14630    pAllocator: *const AllocationCallbacks,
14631    pFence: *mut Fence,
14632) -> Result;
14633
14634pub type FnGetSwapchainCounterEXT = extern "system" fn(
14635    device: Device,
14636    swapchain: SwapchainKHR,
14637    counter: SurfaceCounterFlagBitsEXT,
14638    pCounterValue: *mut u64,
14639) -> Result;
14640
14641pub type FnGetRefreshCycleDurationGOOGLE = extern "system" fn(
14642    device: Device,
14643    swapchain: SwapchainKHR,
14644    pDisplayTimingProperties: *mut RefreshCycleDurationGOOGLE,
14645) -> Result;
14646
14647pub type FnGetPastPresentationTimingGOOGLE = extern "system" fn(
14648    device: Device,
14649    swapchain: SwapchainKHR,
14650    pPresentationTimingCount: *mut u32,
14651    pPresentationTimings: *mut PastPresentationTimingGOOGLE,
14652) -> Result;
14653
14654pub type FnCmdSetDiscardRectangleEXT = extern "system" fn(
14655    commandBuffer: CommandBuffer,
14656    firstDiscardRectangle: u32,
14657    discardRectangleCount: u32,
14658    pDiscardRectangles: *const Rect2D,
14659) -> ();
14660
14661pub type FnSetHdrMetadataEXT = extern "system" fn(
14662    device: Device,
14663    swapchainCount: u32,
14664    pSwapchains: *const SwapchainKHR,
14665    pMetadata: *const HdrMetadataEXT,
14666) -> ();
14667
14668pub type FnCreateRenderPass2KHR = FnCreateRenderPass2;
14669
14670pub type FnCmdBeginRenderPass2KHR = FnCmdBeginRenderPass2;
14671
14672pub type FnCmdNextSubpass2KHR = FnCmdNextSubpass2;
14673
14674pub type FnCmdEndRenderPass2KHR = FnCmdEndRenderPass2;
14675
14676pub type FnGetSwapchainStatusKHR =
14677    extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
14678
14679pub type FnImportFenceFdKHR =
14680    extern "system" fn(device: Device, pImportFenceFdInfo: *const ImportFenceFdInfoKHR) -> Result;
14681
14682pub type FnGetFenceFdKHR = extern "system" fn(
14683    device: Device,
14684    pGetFdInfo: *const FenceGetFdInfoKHR,
14685    pFd: *mut c_int,
14686) -> Result;
14687
14688pub type FnAcquireProfilingLockKHR =
14689    extern "system" fn(device: Device, pInfo: *const AcquireProfilingLockInfoKHR) -> Result;
14690
14691pub type FnReleaseProfilingLockKHR = extern "system" fn(device: Device) -> ();
14692
14693pub type FnSetDebugUtilsObjectNameEXT =
14694    extern "system" fn(device: Device, pNameInfo: *const DebugUtilsObjectNameInfoEXT) -> Result;
14695
14696pub type FnSetDebugUtilsObjectTagEXT =
14697    extern "system" fn(device: Device, pTagInfo: *const DebugUtilsObjectTagInfoEXT) -> Result;
14698
14699pub type FnQueueBeginDebugUtilsLabelEXT =
14700    extern "system" fn(queue: Queue, pLabelInfo: *const DebugUtilsLabelEXT) -> ();
14701
14702pub type FnQueueEndDebugUtilsLabelEXT = extern "system" fn(queue: Queue) -> ();
14703
14704pub type FnQueueInsertDebugUtilsLabelEXT =
14705    extern "system" fn(queue: Queue, pLabelInfo: *const DebugUtilsLabelEXT) -> ();
14706
14707pub type FnCmdBeginDebugUtilsLabelEXT =
14708    extern "system" fn(commandBuffer: CommandBuffer, pLabelInfo: *const DebugUtilsLabelEXT) -> ();
14709
14710pub type FnCmdEndDebugUtilsLabelEXT = extern "system" fn(commandBuffer: CommandBuffer) -> ();
14711
14712pub type FnCmdInsertDebugUtilsLabelEXT =
14713    extern "system" fn(commandBuffer: CommandBuffer, pLabelInfo: *const DebugUtilsLabelEXT) -> ();
14714
14715pub type FnCmdSetSampleLocationsEXT = extern "system" fn(
14716    commandBuffer: CommandBuffer,
14717    pSampleLocationsInfo: *const SampleLocationsInfoEXT,
14718) -> ();
14719
14720pub type FnGetImageMemoryRequirements2KHR = FnGetImageMemoryRequirements2;
14721
14722pub type FnGetBufferMemoryRequirements2KHR = FnGetBufferMemoryRequirements2;
14723
14724pub type FnGetImageSparseMemoryRequirements2KHR = FnGetImageSparseMemoryRequirements2;
14725
14726pub type FnCreateAccelerationStructureKHR = extern "system" fn(
14727    device: Device,
14728    pCreateInfo: *const AccelerationStructureCreateInfoKHR,
14729    pAllocator: *const AllocationCallbacks,
14730    pAccelerationStructure: *mut AccelerationStructureKHR,
14731) -> Result;
14732
14733pub type FnDestroyAccelerationStructureKHR = extern "system" fn(
14734    device: Device,
14735    accelerationStructure: AccelerationStructureKHR,
14736    pAllocator: *const AllocationCallbacks,
14737) -> ();
14738
14739pub type FnCmdBuildAccelerationStructuresKHR = extern "system" fn(
14740    commandBuffer: CommandBuffer,
14741    infoCount: u32,
14742    pInfos: *const AccelerationStructureBuildGeometryInfoKHR,
14743    ppBuildRangeInfos: *const *const AccelerationStructureBuildRangeInfoKHR,
14744) -> ();
14745
14746pub type FnCmdBuildAccelerationStructuresIndirectKHR = extern "system" fn(
14747    commandBuffer: CommandBuffer,
14748    infoCount: u32,
14749    pInfos: *const AccelerationStructureBuildGeometryInfoKHR,
14750    pIndirectDeviceAddresses: *const DeviceAddress,
14751    pIndirectStrides: *const u32,
14752    ppMaxPrimitiveCounts: *const *const u32,
14753) -> ();
14754
14755pub type FnBuildAccelerationStructuresKHR = extern "system" fn(
14756    device: Device,
14757    deferredOperation: DeferredOperationKHR,
14758    infoCount: u32,
14759    pInfos: *const AccelerationStructureBuildGeometryInfoKHR,
14760    ppBuildRangeInfos: *const *const AccelerationStructureBuildRangeInfoKHR,
14761) -> Result;
14762
14763pub type FnCopyAccelerationStructureKHR = extern "system" fn(
14764    device: Device,
14765    deferredOperation: DeferredOperationKHR,
14766    pInfo: *const CopyAccelerationStructureInfoKHR,
14767) -> Result;
14768
14769pub type FnCopyAccelerationStructureToMemoryKHR = extern "system" fn(
14770    device: Device,
14771    deferredOperation: DeferredOperationKHR,
14772    pInfo: *const CopyAccelerationStructureToMemoryInfoKHR,
14773) -> Result;
14774
14775pub type FnCopyMemoryToAccelerationStructureKHR = extern "system" fn(
14776    device: Device,
14777    deferredOperation: DeferredOperationKHR,
14778    pInfo: *const CopyMemoryToAccelerationStructureInfoKHR,
14779) -> Result;
14780
14781pub type FnWriteAccelerationStructuresPropertiesKHR = extern "system" fn(
14782    device: Device,
14783    accelerationStructureCount: u32,
14784    pAccelerationStructures: *const AccelerationStructureKHR,
14785    queryType: QueryType,
14786    dataSize: usize,
14787    pData: *mut c_void,
14788    stride: usize,
14789) -> Result;
14790
14791pub type FnCmdCopyAccelerationStructureKHR = extern "system" fn(
14792    commandBuffer: CommandBuffer,
14793    pInfo: *const CopyAccelerationStructureInfoKHR,
14794) -> ();
14795
14796pub type FnCmdCopyAccelerationStructureToMemoryKHR = extern "system" fn(
14797    commandBuffer: CommandBuffer,
14798    pInfo: *const CopyAccelerationStructureToMemoryInfoKHR,
14799) -> ();
14800
14801pub type FnCmdCopyMemoryToAccelerationStructureKHR = extern "system" fn(
14802    commandBuffer: CommandBuffer,
14803    pInfo: *const CopyMemoryToAccelerationStructureInfoKHR,
14804) -> ();
14805
14806pub type FnGetAccelerationStructureDeviceAddressKHR = extern "system" fn(
14807    device: Device,
14808    pInfo: *const AccelerationStructureDeviceAddressInfoKHR,
14809) -> DeviceAddress;
14810
14811pub type FnCmdWriteAccelerationStructuresPropertiesKHR = extern "system" fn(
14812    commandBuffer: CommandBuffer,
14813    accelerationStructureCount: u32,
14814    pAccelerationStructures: *const AccelerationStructureKHR,
14815    queryType: QueryType,
14816    queryPool: QueryPool,
14817    firstQuery: u32,
14818) -> ();
14819
14820pub type FnGetDeviceAccelerationStructureCompatibilityKHR = extern "system" fn(
14821    device: Device,
14822    pVersionInfo: *const AccelerationStructureVersionInfoKHR,
14823    pCompatibility: *mut AccelerationStructureCompatibilityKHR,
14824) -> ();
14825
14826pub type FnGetAccelerationStructureBuildSizesKHR = extern "system" fn(
14827    device: Device,
14828    buildType: AccelerationStructureBuildTypeKHR,
14829    pBuildInfo: *const AccelerationStructureBuildGeometryInfoKHR,
14830    pMaxPrimitiveCounts: *const u32,
14831    pSizeInfo: *mut AccelerationStructureBuildSizesInfoKHR,
14832) -> ();
14833
14834pub type FnCmdTraceRaysKHR = extern "system" fn(
14835    commandBuffer: CommandBuffer,
14836    pRaygenShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14837    pMissShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14838    pHitShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14839    pCallableShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14840    width: u32,
14841    height: u32,
14842    depth: u32,
14843) -> ();
14844
14845pub type FnCreateRayTracingPipelinesKHR = extern "system" fn(
14846    device: Device,
14847    deferredOperation: DeferredOperationKHR,
14848    pipelineCache: PipelineCache,
14849    createInfoCount: u32,
14850    pCreateInfos: *const RayTracingPipelineCreateInfoKHR,
14851    pAllocator: *const AllocationCallbacks,
14852    pPipelines: *mut Pipeline,
14853) -> Result;
14854
14855pub type FnGetRayTracingShaderGroupHandlesKHR = extern "system" fn(
14856    device: Device,
14857    pipeline: Pipeline,
14858    firstGroup: u32,
14859    groupCount: u32,
14860    dataSize: usize,
14861    pData: *mut c_void,
14862) -> Result;
14863
14864pub type FnGetRayTracingCaptureReplayShaderGroupHandlesKHR = extern "system" fn(
14865    device: Device,
14866    pipeline: Pipeline,
14867    firstGroup: u32,
14868    groupCount: u32,
14869    dataSize: usize,
14870    pData: *mut c_void,
14871) -> Result;
14872
14873pub type FnCmdTraceRaysIndirectKHR = extern "system" fn(
14874    commandBuffer: CommandBuffer,
14875    pRaygenShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14876    pMissShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14877    pHitShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14878    pCallableShaderBindingTable: *const StridedDeviceAddressRegionKHR,
14879    indirectDeviceAddress: DeviceAddress,
14880) -> ();
14881
14882pub type FnGetRayTracingShaderGroupStackSizeKHR = extern "system" fn(
14883    device: Device,
14884    pipeline: Pipeline,
14885    group: u32,
14886    groupShader: ShaderGroupShaderKHR,
14887) -> DeviceSize;
14888
14889pub type FnCmdSetRayTracingPipelineStackSizeKHR =
14890    extern "system" fn(commandBuffer: CommandBuffer, pipelineStackSize: u32) -> ();
14891
14892pub type FnCreateSamplerYcbcrConversionKHR = FnCreateSamplerYcbcrConversion;
14893
14894pub type FnDestroySamplerYcbcrConversionKHR = FnDestroySamplerYcbcrConversion;
14895
14896pub type FnBindBufferMemory2KHR = FnBindBufferMemory2;
14897
14898pub type FnBindImageMemory2KHR = FnBindImageMemory2;
14899
14900pub type FnGetImageDrmFormatModifierPropertiesEXT = extern "system" fn(
14901    device: Device,
14902    image: Image,
14903    pProperties: *mut ImageDrmFormatModifierPropertiesEXT,
14904) -> Result;
14905
14906pub type FnCreateValidationCacheEXT = extern "system" fn(
14907    device: Device,
14908    pCreateInfo: *const ValidationCacheCreateInfoEXT,
14909    pAllocator: *const AllocationCallbacks,
14910    pValidationCache: *mut ValidationCacheEXT,
14911) -> Result;
14912
14913pub type FnDestroyValidationCacheEXT = extern "system" fn(
14914    device: Device,
14915    validationCache: ValidationCacheEXT,
14916    pAllocator: *const AllocationCallbacks,
14917) -> ();
14918
14919pub type FnMergeValidationCachesEXT = extern "system" fn(
14920    device: Device,
14921    dstCache: ValidationCacheEXT,
14922    srcCacheCount: u32,
14923    pSrcCaches: *const ValidationCacheEXT,
14924) -> Result;
14925
14926pub type FnGetValidationCacheDataEXT = extern "system" fn(
14927    device: Device,
14928    validationCache: ValidationCacheEXT,
14929    pDataSize: *mut usize,
14930    pData: *mut c_void,
14931) -> Result;
14932
14933pub type FnCmdBindShadingRateImageNV = extern "system" fn(
14934    commandBuffer: CommandBuffer,
14935    imageView: ImageView,
14936    imageLayout: ImageLayout,
14937) -> ();
14938
14939pub type FnCmdSetViewportShadingRatePaletteNV = extern "system" fn(
14940    commandBuffer: CommandBuffer,
14941    firstViewport: u32,
14942    viewportCount: u32,
14943    pShadingRatePalettes: *const ShadingRatePaletteNV,
14944) -> ();
14945
14946pub type FnCmdSetCoarseSampleOrderNV = extern "system" fn(
14947    commandBuffer: CommandBuffer,
14948    sampleOrderType: CoarseSampleOrderTypeNV,
14949    customSampleOrderCount: u32,
14950    pCustomSampleOrders: *const CoarseSampleOrderCustomNV,
14951) -> ();
14952
14953pub type FnCreateAccelerationStructureNV = extern "system" fn(
14954    device: Device,
14955    pCreateInfo: *const AccelerationStructureCreateInfoNV,
14956    pAllocator: *const AllocationCallbacks,
14957    pAccelerationStructure: *mut AccelerationStructureNV,
14958) -> Result;
14959
14960pub type FnDestroyAccelerationStructureNV = extern "system" fn(
14961    device: Device,
14962    accelerationStructure: AccelerationStructureNV,
14963    pAllocator: *const AllocationCallbacks,
14964) -> ();
14965
14966pub type FnGetAccelerationStructureMemoryRequirementsNV = extern "system" fn(
14967    device: Device,
14968    pInfo: *const AccelerationStructureMemoryRequirementsInfoNV,
14969    pMemoryRequirements: *mut MemoryRequirements2KHR,
14970) -> ();
14971
14972pub type FnBindAccelerationStructureMemoryNV = extern "system" fn(
14973    device: Device,
14974    bindInfoCount: u32,
14975    pBindInfos: *const BindAccelerationStructureMemoryInfoNV,
14976) -> Result;
14977
14978pub type FnCmdBuildAccelerationStructureNV = extern "system" fn(
14979    commandBuffer: CommandBuffer,
14980    pInfo: *const AccelerationStructureInfoNV,
14981    instanceData: Buffer,
14982    instanceOffset: DeviceSize,
14983    update: Bool32,
14984    dst: AccelerationStructureNV,
14985    src: AccelerationStructureNV,
14986    scratch: Buffer,
14987    scratchOffset: DeviceSize,
14988) -> ();
14989
14990pub type FnCmdCopyAccelerationStructureNV = extern "system" fn(
14991    commandBuffer: CommandBuffer,
14992    dst: AccelerationStructureNV,
14993    src: AccelerationStructureNV,
14994    mode: CopyAccelerationStructureModeKHR,
14995) -> ();
14996
14997pub type FnCmdTraceRaysNV = extern "system" fn(
14998    commandBuffer: CommandBuffer,
14999    raygenShaderBindingTableBuffer: Buffer,
15000    raygenShaderBindingOffset: DeviceSize,
15001    missShaderBindingTableBuffer: Buffer,
15002    missShaderBindingOffset: DeviceSize,
15003    missShaderBindingStride: DeviceSize,
15004    hitShaderBindingTableBuffer: Buffer,
15005    hitShaderBindingOffset: DeviceSize,
15006    hitShaderBindingStride: DeviceSize,
15007    callableShaderBindingTableBuffer: Buffer,
15008    callableShaderBindingOffset: DeviceSize,
15009    callableShaderBindingStride: DeviceSize,
15010    width: u32,
15011    height: u32,
15012    depth: u32,
15013) -> ();
15014
15015pub type FnCreateRayTracingPipelinesNV = extern "system" fn(
15016    device: Device,
15017    pipelineCache: PipelineCache,
15018    createInfoCount: u32,
15019    pCreateInfos: *const RayTracingPipelineCreateInfoNV,
15020    pAllocator: *const AllocationCallbacks,
15021    pPipelines: *mut Pipeline,
15022) -> Result;
15023
15024pub type FnGetRayTracingShaderGroupHandlesNV = FnGetRayTracingShaderGroupHandlesKHR;
15025
15026pub type FnGetAccelerationStructureHandleNV = extern "system" fn(
15027    device: Device,
15028    accelerationStructure: AccelerationStructureNV,
15029    dataSize: usize,
15030    pData: *mut c_void,
15031) -> Result;
15032
15033pub type FnCmdWriteAccelerationStructuresPropertiesNV = extern "system" fn(
15034    commandBuffer: CommandBuffer,
15035    accelerationStructureCount: u32,
15036    pAccelerationStructures: *const AccelerationStructureNV,
15037    queryType: QueryType,
15038    queryPool: QueryPool,
15039    firstQuery: u32,
15040) -> ();
15041
15042pub type FnCompileDeferredNV =
15043    extern "system" fn(device: Device, pipeline: Pipeline, shader: u32) -> Result;
15044
15045pub type FnGetDescriptorSetLayoutSupportKHR = FnGetDescriptorSetLayoutSupport;
15046
15047pub type FnCmdDrawIndirectCountKHR = FnCmdDrawIndirectCount;
15048
15049pub type FnCmdDrawIndexedIndirectCountKHR = FnCmdDrawIndexedIndirectCount;
15050
15051pub type FnGetMemoryHostPointerPropertiesEXT = extern "system" fn(
15052    device: Device,
15053    handleType: ExternalMemoryHandleTypeFlagBits,
15054    pHostPointer: *const c_void,
15055    pMemoryHostPointerProperties: *mut MemoryHostPointerPropertiesEXT,
15056) -> Result;
15057
15058pub type FnCmdWriteBufferMarkerAMD = extern "system" fn(
15059    commandBuffer: CommandBuffer,
15060    pipelineStage: PipelineStageFlagBits,
15061    dstBuffer: Buffer,
15062    dstOffset: DeviceSize,
15063    marker: u32,
15064) -> ();
15065
15066pub type FnGetCalibratedTimestampsEXT = extern "system" fn(
15067    device: Device,
15068    timestampCount: u32,
15069    pTimestampInfos: *const CalibratedTimestampInfoEXT,
15070    pTimestamps: *mut u64,
15071    pMaxDeviation: *mut u64,
15072) -> Result;
15073
15074pub type FnCmdDrawMeshTasksNV =
15075    extern "system" fn(commandBuffer: CommandBuffer, taskCount: u32, firstTask: u32) -> ();
15076
15077pub type FnCmdDrawMeshTasksIndirectNV = extern "system" fn(
15078    commandBuffer: CommandBuffer,
15079    buffer: Buffer,
15080    offset: DeviceSize,
15081    drawCount: u32,
15082    stride: u32,
15083) -> ();
15084
15085pub type FnCmdDrawMeshTasksIndirectCountNV = extern "system" fn(
15086    commandBuffer: CommandBuffer,
15087    buffer: Buffer,
15088    offset: DeviceSize,
15089    countBuffer: Buffer,
15090    countBufferOffset: DeviceSize,
15091    maxDrawCount: u32,
15092    stride: u32,
15093) -> ();
15094
15095pub type FnCmdSetExclusiveScissorNV = extern "system" fn(
15096    commandBuffer: CommandBuffer,
15097    firstExclusiveScissor: u32,
15098    exclusiveScissorCount: u32,
15099    pExclusiveScissors: *const Rect2D,
15100) -> ();
15101
15102pub type FnCmdSetCheckpointNV =
15103    extern "system" fn(commandBuffer: CommandBuffer, pCheckpointMarker: *const c_void) -> ();
15104
15105pub type FnGetQueueCheckpointDataNV = extern "system" fn(
15106    queue: Queue,
15107    pCheckpointDataCount: *mut u32,
15108    pCheckpointData: *mut CheckpointDataNV,
15109) -> ();
15110
15111pub type FnGetSemaphoreCounterValueKHR = FnGetSemaphoreCounterValue;
15112
15113pub type FnWaitSemaphoresKHR = FnWaitSemaphores;
15114
15115pub type FnSignalSemaphoreKHR = FnSignalSemaphore;
15116
15117pub type FnInitializePerformanceApiINTEL = extern "system" fn(
15118    device: Device,
15119    pInitializeInfo: *const InitializePerformanceApiInfoINTEL,
15120) -> Result;
15121
15122pub type FnUninitializePerformanceApiINTEL = extern "system" fn(device: Device) -> ();
15123
15124pub type FnCmdSetPerformanceMarkerINTEL = extern "system" fn(
15125    commandBuffer: CommandBuffer,
15126    pMarkerInfo: *const PerformanceMarkerInfoINTEL,
15127) -> Result;
15128
15129pub type FnCmdSetPerformanceStreamMarkerINTEL = extern "system" fn(
15130    commandBuffer: CommandBuffer,
15131    pMarkerInfo: *const PerformanceStreamMarkerInfoINTEL,
15132) -> Result;
15133
15134pub type FnCmdSetPerformanceOverrideINTEL = extern "system" fn(
15135    commandBuffer: CommandBuffer,
15136    pOverrideInfo: *const PerformanceOverrideInfoINTEL,
15137) -> Result;
15138
15139pub type FnAcquirePerformanceConfigurationINTEL = extern "system" fn(
15140    device: Device,
15141    pAcquireInfo: *const PerformanceConfigurationAcquireInfoINTEL,
15142    pConfiguration: *mut PerformanceConfigurationINTEL,
15143) -> Result;
15144
15145pub type FnReleasePerformanceConfigurationINTEL =
15146    extern "system" fn(device: Device, configuration: PerformanceConfigurationINTEL) -> Result;
15147
15148pub type FnQueueSetPerformanceConfigurationINTEL =
15149    extern "system" fn(queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result;
15150
15151pub type FnGetPerformanceParameterINTEL = extern "system" fn(
15152    device: Device,
15153    parameter: PerformanceParameterTypeINTEL,
15154    pValue: *mut PerformanceValueINTEL,
15155) -> Result;
15156
15157pub type FnSetLocalDimmingAMD =
15158    extern "system" fn(device: Device, swapChain: SwapchainKHR, localDimmingEnable: Bool32) -> ();
15159
15160pub type FnCmdSetFragmentShadingRateKHR = extern "system" fn(
15161    commandBuffer: CommandBuffer,
15162    pFragmentSize: *const Extent2D,
15163    combinerOps: [FragmentShadingRateCombinerOpKHR; 2],
15164) -> ();
15165
15166pub type FnGetBufferDeviceAddressEXT = FnGetBufferDeviceAddress;
15167
15168pub type FnWaitForPresentKHR = extern "system" fn(
15169    device: Device,
15170    swapchain: SwapchainKHR,
15171    presentId: u64,
15172    timeout: u64,
15173) -> Result;
15174
15175pub type FnGetBufferDeviceAddressKHR = FnGetBufferDeviceAddress;
15176
15177pub type FnGetBufferOpaqueCaptureAddressKHR = FnGetBufferOpaqueCaptureAddress;
15178
15179pub type FnGetDeviceMemoryOpaqueCaptureAddressKHR = FnGetDeviceMemoryOpaqueCaptureAddress;
15180
15181pub type FnCmdSetLineStippleEXT = extern "system" fn(
15182    commandBuffer: CommandBuffer,
15183    lineStippleFactor: u32,
15184    lineStipplePattern: u16,
15185) -> ();
15186
15187pub type FnResetQueryPoolEXT = FnResetQueryPool;
15188
15189pub type FnCmdSetCullModeEXT = FnCmdSetCullMode;
15190
15191pub type FnCmdSetFrontFaceEXT = FnCmdSetFrontFace;
15192
15193pub type FnCmdSetPrimitiveTopologyEXT = FnCmdSetPrimitiveTopology;
15194
15195pub type FnCmdSetViewportWithCountEXT = FnCmdSetViewportWithCount;
15196
15197pub type FnCmdSetScissorWithCountEXT = FnCmdSetScissorWithCount;
15198
15199pub type FnCmdBindVertexBuffers2EXT = FnCmdBindVertexBuffers2;
15200
15201pub type FnCmdSetDepthTestEnableEXT = FnCmdSetDepthTestEnable;
15202
15203pub type FnCmdSetDepthWriteEnableEXT = FnCmdSetDepthWriteEnable;
15204
15205pub type FnCmdSetDepthCompareOpEXT = FnCmdSetDepthCompareOp;
15206
15207pub type FnCmdSetDepthBoundsTestEnableEXT = FnCmdSetDepthBoundsTestEnable;
15208
15209pub type FnCmdSetStencilTestEnableEXT = FnCmdSetStencilTestEnable;
15210
15211pub type FnCmdSetStencilOpEXT = FnCmdSetStencilOp;
15212
15213pub type FnCreateDeferredOperationKHR = extern "system" fn(
15214    device: Device,
15215    pAllocator: *const AllocationCallbacks,
15216    pDeferredOperation: *mut DeferredOperationKHR,
15217) -> Result;
15218
15219pub type FnDestroyDeferredOperationKHR = extern "system" fn(
15220    device: Device,
15221    operation: DeferredOperationKHR,
15222    pAllocator: *const AllocationCallbacks,
15223) -> ();
15224
15225pub type FnGetDeferredOperationMaxConcurrencyKHR =
15226    extern "system" fn(device: Device, operation: DeferredOperationKHR) -> u32;
15227
15228pub type FnGetDeferredOperationResultKHR =
15229    extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
15230
15231pub type FnDeferredOperationJoinKHR =
15232    extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
15233
15234pub type FnGetPipelineExecutablePropertiesKHR = extern "system" fn(
15235    device: Device,
15236    pPipelineInfo: *const PipelineInfoKHR,
15237    pExecutableCount: *mut u32,
15238    pProperties: *mut PipelineExecutablePropertiesKHR,
15239) -> Result;
15240
15241pub type FnGetPipelineExecutableStatisticsKHR = extern "system" fn(
15242    device: Device,
15243    pExecutableInfo: *const PipelineExecutableInfoKHR,
15244    pStatisticCount: *mut u32,
15245    pStatistics: *mut PipelineExecutableStatisticKHR,
15246) -> Result;
15247
15248pub type FnGetPipelineExecutableInternalRepresentationsKHR = extern "system" fn(
15249    device: Device,
15250    pExecutableInfo: *const PipelineExecutableInfoKHR,
15251    pInternalRepresentationCount: *mut u32,
15252    pInternalRepresentations: *mut PipelineExecutableInternalRepresentationKHR,
15253) -> Result;
15254
15255pub type FnReleaseSwapchainImagesEXT = extern "system" fn(
15256    device: Device,
15257    pReleaseInfo: *const ReleaseSwapchainImagesInfoEXT,
15258) -> Result;
15259
15260pub type FnGetGeneratedCommandsMemoryRequirementsNV = extern "system" fn(
15261    device: Device,
15262    pInfo: *const GeneratedCommandsMemoryRequirementsInfoNV,
15263    pMemoryRequirements: *mut MemoryRequirements2,
15264) -> ();
15265
15266pub type FnCmdPreprocessGeneratedCommandsNV = extern "system" fn(
15267    commandBuffer: CommandBuffer,
15268    pGeneratedCommandsInfo: *const GeneratedCommandsInfoNV,
15269) -> ();
15270
15271pub type FnCmdExecuteGeneratedCommandsNV = extern "system" fn(
15272    commandBuffer: CommandBuffer,
15273    isPreprocessed: Bool32,
15274    pGeneratedCommandsInfo: *const GeneratedCommandsInfoNV,
15275) -> ();
15276
15277pub type FnCmdBindPipelineShaderGroupNV = extern "system" fn(
15278    commandBuffer: CommandBuffer,
15279    pipelineBindPoint: PipelineBindPoint,
15280    pipeline: Pipeline,
15281    groupIndex: u32,
15282) -> ();
15283
15284pub type FnCreateIndirectCommandsLayoutNV = extern "system" fn(
15285    device: Device,
15286    pCreateInfo: *const IndirectCommandsLayoutCreateInfoNV,
15287    pAllocator: *const AllocationCallbacks,
15288    pIndirectCommandsLayout: *mut IndirectCommandsLayoutNV,
15289) -> Result;
15290
15291pub type FnDestroyIndirectCommandsLayoutNV = extern "system" fn(
15292    device: Device,
15293    indirectCommandsLayout: IndirectCommandsLayoutNV,
15294    pAllocator: *const AllocationCallbacks,
15295) -> ();
15296
15297pub type FnCreatePrivateDataSlotEXT = FnCreatePrivateDataSlot;
15298
15299pub type FnDestroyPrivateDataSlotEXT = FnDestroyPrivateDataSlot;
15300
15301pub type FnSetPrivateDataEXT = FnSetPrivateData;
15302
15303pub type FnGetPrivateDataEXT = FnGetPrivateData;
15304
15305pub type FnCmdEncodeVideoKHR =
15306    extern "system" fn(commandBuffer: CommandBuffer, pEncodeInfo: *const VideoEncodeInfoKHR) -> ();
15307
15308pub type FnCmdSetEvent2KHR = FnCmdSetEvent2;
15309
15310pub type FnCmdResetEvent2KHR = FnCmdResetEvent2;
15311
15312pub type FnCmdWaitEvents2KHR = FnCmdWaitEvents2;
15313
15314pub type FnCmdPipelineBarrier2KHR = FnCmdPipelineBarrier2;
15315
15316pub type FnCmdWriteTimestamp2KHR = FnCmdWriteTimestamp2;
15317
15318pub type FnQueueSubmit2KHR = FnQueueSubmit2;
15319
15320pub type FnCmdWriteBufferMarker2AMD = extern "system" fn(
15321    commandBuffer: CommandBuffer,
15322    stage: PipelineStageFlags2,
15323    dstBuffer: Buffer,
15324    dstOffset: DeviceSize,
15325    marker: u32,
15326) -> ();
15327
15328pub type FnGetQueueCheckpointData2NV = extern "system" fn(
15329    queue: Queue,
15330    pCheckpointDataCount: *mut u32,
15331    pCheckpointData: *mut CheckpointData2NV,
15332) -> ();
15333
15334pub type FnGetDescriptorSetLayoutSizeEXT = extern "system" fn(
15335    device: Device,
15336    layout: DescriptorSetLayout,
15337    pLayoutSizeInBytes: *mut DeviceSize,
15338) -> ();
15339
15340pub type FnGetDescriptorSetLayoutBindingOffsetEXT = extern "system" fn(
15341    device: Device,
15342    layout: DescriptorSetLayout,
15343    binding: u32,
15344    pOffset: *mut DeviceSize,
15345) -> ();
15346
15347pub type FnGetDescriptorEXT = extern "system" fn(
15348    device: Device,
15349    pDescriptorInfo: *const DescriptorGetInfoEXT,
15350    dataSize: usize,
15351    pDescriptor: *mut c_void,
15352) -> ();
15353
15354pub type FnCmdBindDescriptorBuffersEXT = extern "system" fn(
15355    commandBuffer: CommandBuffer,
15356    bufferCount: u32,
15357    pBindingInfos: *const DescriptorBufferBindingInfoEXT,
15358) -> ();
15359
15360pub type FnCmdSetDescriptorBufferOffsetsEXT = extern "system" fn(
15361    commandBuffer: CommandBuffer,
15362    pipelineBindPoint: PipelineBindPoint,
15363    layout: PipelineLayout,
15364    firstSet: u32,
15365    setCount: u32,
15366    pBufferIndices: *const u32,
15367    pOffsets: *const DeviceSize,
15368) -> ();
15369
15370pub type FnCmdBindDescriptorBufferEmbeddedSamplersEXT = extern "system" fn(
15371    commandBuffer: CommandBuffer,
15372    pipelineBindPoint: PipelineBindPoint,
15373    layout: PipelineLayout,
15374    set: u32,
15375) -> ();
15376
15377pub type FnGetBufferOpaqueCaptureDescriptorDataEXT = extern "system" fn(
15378    device: Device,
15379    pInfo: *const BufferCaptureDescriptorDataInfoEXT,
15380    pData: *mut c_void,
15381) -> Result;
15382
15383pub type FnGetImageOpaqueCaptureDescriptorDataEXT = extern "system" fn(
15384    device: Device,
15385    pInfo: *const ImageCaptureDescriptorDataInfoEXT,
15386    pData: *mut c_void,
15387) -> Result;
15388
15389pub type FnGetImageViewOpaqueCaptureDescriptorDataEXT = extern "system" fn(
15390    device: Device,
15391    pInfo: *const ImageViewCaptureDescriptorDataInfoEXT,
15392    pData: *mut c_void,
15393) -> Result;
15394
15395pub type FnGetSamplerOpaqueCaptureDescriptorDataEXT = extern "system" fn(
15396    device: Device,
15397    pInfo: *const SamplerCaptureDescriptorDataInfoEXT,
15398    pData: *mut c_void,
15399) -> Result;
15400
15401pub type FnGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = extern "system" fn(
15402    device: Device,
15403    pInfo: *const AccelerationStructureCaptureDescriptorDataInfoEXT,
15404    pData: *mut c_void,
15405) -> Result;
15406
15407pub type FnCmdSetFragmentShadingRateEnumNV = extern "system" fn(
15408    commandBuffer: CommandBuffer,
15409    shadingRate: FragmentShadingRateNV,
15410    combinerOps: [FragmentShadingRateCombinerOpKHR; 2],
15411) -> ();
15412
15413pub type FnCmdDrawMeshTasksEXT = extern "system" fn(
15414    commandBuffer: CommandBuffer,
15415    groupCountX: u32,
15416    groupCountY: u32,
15417    groupCountZ: u32,
15418) -> ();
15419
15420pub type FnCmdDrawMeshTasksIndirectEXT = extern "system" fn(
15421    commandBuffer: CommandBuffer,
15422    buffer: Buffer,
15423    offset: DeviceSize,
15424    drawCount: u32,
15425    stride: u32,
15426) -> ();
15427
15428pub type FnCmdDrawMeshTasksIndirectCountEXT = extern "system" fn(
15429    commandBuffer: CommandBuffer,
15430    buffer: Buffer,
15431    offset: DeviceSize,
15432    countBuffer: Buffer,
15433    countBufferOffset: DeviceSize,
15434    maxDrawCount: u32,
15435    stride: u32,
15436) -> ();
15437
15438pub type FnCmdCopyBuffer2KHR = FnCmdCopyBuffer2;
15439
15440pub type FnCmdCopyImage2KHR = FnCmdCopyImage2;
15441
15442pub type FnCmdCopyBufferToImage2KHR = FnCmdCopyBufferToImage2;
15443
15444pub type FnCmdCopyImageToBuffer2KHR = FnCmdCopyImageToBuffer2;
15445
15446pub type FnCmdBlitImage2KHR = FnCmdBlitImage2;
15447
15448pub type FnCmdResolveImage2KHR = FnCmdResolveImage2;
15449
15450pub type FnGetImageSubresourceLayout2EXT = extern "system" fn(
15451    device: Device,
15452    image: Image,
15453    pSubresource: *const ImageSubresource2EXT,
15454    pLayout: *mut SubresourceLayout2EXT,
15455) -> ();
15456
15457pub type FnGetDeviceFaultInfoEXT = extern "system" fn(
15458    device: Device,
15459    pFaultCounts: *mut DeviceFaultCountsEXT,
15460    pFaultInfo: *mut DeviceFaultInfoEXT,
15461) -> Result;
15462
15463pub type FnCmdSetVertexInputEXT = extern "system" fn(
15464    commandBuffer: CommandBuffer,
15465    vertexBindingDescriptionCount: u32,
15466    pVertexBindingDescriptions: *const VertexInputBindingDescription2EXT,
15467    vertexAttributeDescriptionCount: u32,
15468    pVertexAttributeDescriptions: *const VertexInputAttributeDescription2EXT,
15469) -> ();
15470
15471pub type FnGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = extern "system" fn(
15472    device: Device,
15473    renderpass: RenderPass,
15474    pMaxWorkgroupSize: *mut Extent2D,
15475) -> Result;
15476
15477pub type FnCmdSubpassShadingHUAWEI = extern "system" fn(commandBuffer: CommandBuffer) -> ();
15478
15479pub type FnCmdBindInvocationMaskHUAWEI = extern "system" fn(
15480    commandBuffer: CommandBuffer,
15481    imageView: ImageView,
15482    imageLayout: ImageLayout,
15483) -> ();
15484
15485pub type FnGetMemoryRemoteAddressNV = extern "system" fn(
15486    device: Device,
15487    pMemoryGetRemoteAddressInfo: *const MemoryGetRemoteAddressInfoNV,
15488    pAddress: *mut RemoteAddressNV,
15489) -> Result;
15490
15491pub type FnGetPipelinePropertiesEXT = extern "system" fn(
15492    device: Device,
15493    pPipelineInfo: *const PipelineInfoEXT,
15494    pPipelineProperties: *mut BaseOutStructure,
15495) -> Result;
15496
15497pub type FnCmdSetPatchControlPointsEXT =
15498    extern "system" fn(commandBuffer: CommandBuffer, patchControlPoints: u32) -> ();
15499
15500pub type FnCmdSetRasterizerDiscardEnableEXT = FnCmdSetRasterizerDiscardEnable;
15501
15502pub type FnCmdSetDepthBiasEnableEXT = FnCmdSetDepthBiasEnable;
15503
15504pub type FnCmdSetLogicOpEXT =
15505    extern "system" fn(commandBuffer: CommandBuffer, logicOp: LogicOp) -> ();
15506
15507pub type FnCmdSetPrimitiveRestartEnableEXT = FnCmdSetPrimitiveRestartEnable;
15508
15509pub type FnCmdSetColorWriteEnableEXT = extern "system" fn(
15510    commandBuffer: CommandBuffer,
15511    attachmentCount: u32,
15512    pColorWriteEnables: *const Bool32,
15513) -> ();
15514
15515pub type FnCmdTraceRaysIndirect2KHR =
15516    extern "system" fn(commandBuffer: CommandBuffer, indirectDeviceAddress: DeviceAddress) -> ();
15517
15518pub type FnCmdDrawMultiEXT = extern "system" fn(
15519    commandBuffer: CommandBuffer,
15520    drawCount: u32,
15521    pVertexInfo: *const MultiDrawInfoEXT,
15522    instanceCount: u32,
15523    firstInstance: u32,
15524    stride: u32,
15525) -> ();
15526
15527pub type FnCmdDrawMultiIndexedEXT = extern "system" fn(
15528    commandBuffer: CommandBuffer,
15529    drawCount: u32,
15530    pIndexInfo: *const MultiDrawIndexedInfoEXT,
15531    instanceCount: u32,
15532    firstInstance: u32,
15533    stride: u32,
15534    pVertexOffset: *const i32,
15535) -> ();
15536
15537pub type FnCreateMicromapEXT = extern "system" fn(
15538    device: Device,
15539    pCreateInfo: *const MicromapCreateInfoEXT,
15540    pAllocator: *const AllocationCallbacks,
15541    pMicromap: *mut MicromapEXT,
15542) -> Result;
15543
15544pub type FnDestroyMicromapEXT = extern "system" fn(
15545    device: Device,
15546    micromap: MicromapEXT,
15547    pAllocator: *const AllocationCallbacks,
15548) -> ();
15549
15550pub type FnCmdBuildMicromapsEXT = extern "system" fn(
15551    commandBuffer: CommandBuffer,
15552    infoCount: u32,
15553    pInfos: *const MicromapBuildInfoEXT,
15554) -> ();
15555
15556pub type FnBuildMicromapsEXT = extern "system" fn(
15557    device: Device,
15558    deferredOperation: DeferredOperationKHR,
15559    infoCount: u32,
15560    pInfos: *const MicromapBuildInfoEXT,
15561) -> Result;
15562
15563pub type FnCopyMicromapEXT = extern "system" fn(
15564    device: Device,
15565    deferredOperation: DeferredOperationKHR,
15566    pInfo: *const CopyMicromapInfoEXT,
15567) -> Result;
15568
15569pub type FnCopyMicromapToMemoryEXT = extern "system" fn(
15570    device: Device,
15571    deferredOperation: DeferredOperationKHR,
15572    pInfo: *const CopyMicromapToMemoryInfoEXT,
15573) -> Result;
15574
15575pub type FnCopyMemoryToMicromapEXT = extern "system" fn(
15576    device: Device,
15577    deferredOperation: DeferredOperationKHR,
15578    pInfo: *const CopyMemoryToMicromapInfoEXT,
15579) -> Result;
15580
15581pub type FnWriteMicromapsPropertiesEXT = extern "system" fn(
15582    device: Device,
15583    micromapCount: u32,
15584    pMicromaps: *const MicromapEXT,
15585    queryType: QueryType,
15586    dataSize: usize,
15587    pData: *mut c_void,
15588    stride: usize,
15589) -> Result;
15590
15591pub type FnCmdCopyMicromapEXT =
15592    extern "system" fn(commandBuffer: CommandBuffer, pInfo: *const CopyMicromapInfoEXT) -> ();
15593
15594pub type FnCmdCopyMicromapToMemoryEXT = extern "system" fn(
15595    commandBuffer: CommandBuffer,
15596    pInfo: *const CopyMicromapToMemoryInfoEXT,
15597) -> ();
15598
15599pub type FnCmdCopyMemoryToMicromapEXT = extern "system" fn(
15600    commandBuffer: CommandBuffer,
15601    pInfo: *const CopyMemoryToMicromapInfoEXT,
15602) -> ();
15603
15604pub type FnCmdWriteMicromapsPropertiesEXT = extern "system" fn(
15605    commandBuffer: CommandBuffer,
15606    micromapCount: u32,
15607    pMicromaps: *const MicromapEXT,
15608    queryType: QueryType,
15609    queryPool: QueryPool,
15610    firstQuery: u32,
15611) -> ();
15612
15613pub type FnGetDeviceMicromapCompatibilityEXT = extern "system" fn(
15614    device: Device,
15615    pVersionInfo: *const MicromapVersionInfoEXT,
15616    pCompatibility: *mut AccelerationStructureCompatibilityKHR,
15617) -> ();
15618
15619pub type FnGetMicromapBuildSizesEXT = extern "system" fn(
15620    device: Device,
15621    buildType: AccelerationStructureBuildTypeKHR,
15622    pBuildInfo: *const MicromapBuildInfoEXT,
15623    pSizeInfo: *mut MicromapBuildSizesInfoEXT,
15624) -> ();
15625
15626pub type FnSetDeviceMemoryPriorityEXT =
15627    extern "system" fn(device: Device, memory: DeviceMemory, priority: f32) -> ();
15628
15629pub type FnGetDeviceBufferMemoryRequirementsKHR = FnGetDeviceBufferMemoryRequirements;
15630
15631pub type FnGetDeviceImageMemoryRequirementsKHR = FnGetDeviceImageMemoryRequirements;
15632
15633pub type FnGetDeviceImageSparseMemoryRequirementsKHR = FnGetDeviceImageSparseMemoryRequirements;
15634
15635pub type FnGetDescriptorSetLayoutHostMappingInfoVALVE = extern "system" fn(
15636    device: Device,
15637    pBindingReference: *const DescriptorSetBindingReferenceVALVE,
15638    pHostMapping: *mut DescriptorSetLayoutHostMappingInfoVALVE,
15639) -> ();
15640
15641pub type FnGetDescriptorSetHostMappingVALVE = extern "system" fn(
15642    device: Device,
15643    descriptorSet: DescriptorSet,
15644    ppData: *mut *mut c_void,
15645) -> ();
15646
15647pub type FnCmdCopyMemoryIndirectNV = extern "system" fn(
15648    commandBuffer: CommandBuffer,
15649    copyBufferAddress: DeviceAddress,
15650    copyCount: u32,
15651    stride: u32,
15652) -> ();
15653
15654pub type FnCmdCopyMemoryToImageIndirectNV = extern "system" fn(
15655    commandBuffer: CommandBuffer,
15656    copyBufferAddress: DeviceAddress,
15657    copyCount: u32,
15658    stride: u32,
15659    dstImage: Image,
15660    dstImageLayout: ImageLayout,
15661    pImageSubresources: *const ImageSubresourceLayers,
15662) -> ();
15663
15664pub type FnCmdDecompressMemoryNV = extern "system" fn(
15665    commandBuffer: CommandBuffer,
15666    decompressRegionCount: u32,
15667    pDecompressMemoryRegions: *const DecompressMemoryRegionNV,
15668) -> ();
15669
15670pub type FnCmdDecompressMemoryIndirectCountNV = extern "system" fn(
15671    commandBuffer: CommandBuffer,
15672    indirectCommandsAddress: DeviceAddress,
15673    indirectCommandsCountAddress: DeviceAddress,
15674    stride: u32,
15675) -> ();
15676
15677pub type FnCmdSetTessellationDomainOriginEXT =
15678    extern "system" fn(commandBuffer: CommandBuffer, domainOrigin: TessellationDomainOrigin) -> ();
15679
15680pub type FnCmdSetDepthClampEnableEXT =
15681    extern "system" fn(commandBuffer: CommandBuffer, depthClampEnable: Bool32) -> ();
15682
15683pub type FnCmdSetPolygonModeEXT =
15684    extern "system" fn(commandBuffer: CommandBuffer, polygonMode: PolygonMode) -> ();
15685
15686pub type FnCmdSetRasterizationSamplesEXT = extern "system" fn(
15687    commandBuffer: CommandBuffer,
15688    rasterizationSamples: SampleCountFlagBits,
15689) -> ();
15690
15691pub type FnCmdSetSampleMaskEXT = extern "system" fn(
15692    commandBuffer: CommandBuffer,
15693    samples: SampleCountFlagBits,
15694    pSampleMask: *const SampleMask,
15695) -> ();
15696
15697pub type FnCmdSetAlphaToCoverageEnableEXT =
15698    extern "system" fn(commandBuffer: CommandBuffer, alphaToCoverageEnable: Bool32) -> ();
15699
15700pub type FnCmdSetAlphaToOneEnableEXT =
15701    extern "system" fn(commandBuffer: CommandBuffer, alphaToOneEnable: Bool32) -> ();
15702
15703pub type FnCmdSetLogicOpEnableEXT =
15704    extern "system" fn(commandBuffer: CommandBuffer, logicOpEnable: Bool32) -> ();
15705
15706pub type FnCmdSetColorBlendEnableEXT = extern "system" fn(
15707    commandBuffer: CommandBuffer,
15708    firstAttachment: u32,
15709    attachmentCount: u32,
15710    pColorBlendEnables: *const Bool32,
15711) -> ();
15712
15713pub type FnCmdSetColorBlendEquationEXT = extern "system" fn(
15714    commandBuffer: CommandBuffer,
15715    firstAttachment: u32,
15716    attachmentCount: u32,
15717    pColorBlendEquations: *const ColorBlendEquationEXT,
15718) -> ();
15719
15720pub type FnCmdSetColorWriteMaskEXT = extern "system" fn(
15721    commandBuffer: CommandBuffer,
15722    firstAttachment: u32,
15723    attachmentCount: u32,
15724    pColorWriteMasks: *const ColorComponentFlags,
15725) -> ();
15726
15727pub type FnCmdSetRasterizationStreamEXT =
15728    extern "system" fn(commandBuffer: CommandBuffer, rasterizationStream: u32) -> ();
15729
15730pub type FnCmdSetConservativeRasterizationModeEXT = extern "system" fn(
15731    commandBuffer: CommandBuffer,
15732    conservativeRasterizationMode: ConservativeRasterizationModeEXT,
15733) -> ();
15734
15735pub type FnCmdSetExtraPrimitiveOverestimationSizeEXT =
15736    extern "system" fn(commandBuffer: CommandBuffer, extraPrimitiveOverestimationSize: f32) -> ();
15737
15738pub type FnCmdSetDepthClipEnableEXT =
15739    extern "system" fn(commandBuffer: CommandBuffer, depthClipEnable: Bool32) -> ();
15740
15741pub type FnCmdSetSampleLocationsEnableEXT =
15742    extern "system" fn(commandBuffer: CommandBuffer, sampleLocationsEnable: Bool32) -> ();
15743
15744pub type FnCmdSetColorBlendAdvancedEXT = extern "system" fn(
15745    commandBuffer: CommandBuffer,
15746    firstAttachment: u32,
15747    attachmentCount: u32,
15748    pColorBlendAdvanced: *const ColorBlendAdvancedEXT,
15749) -> ();
15750
15751pub type FnCmdSetProvokingVertexModeEXT = extern "system" fn(
15752    commandBuffer: CommandBuffer,
15753    provokingVertexMode: ProvokingVertexModeEXT,
15754) -> ();
15755
15756pub type FnCmdSetLineRasterizationModeEXT = extern "system" fn(
15757    commandBuffer: CommandBuffer,
15758    lineRasterizationMode: LineRasterizationModeEXT,
15759) -> ();
15760
15761pub type FnCmdSetLineStippleEnableEXT =
15762    extern "system" fn(commandBuffer: CommandBuffer, stippledLineEnable: Bool32) -> ();
15763
15764pub type FnCmdSetDepthClipNegativeOneToOneEXT =
15765    extern "system" fn(commandBuffer: CommandBuffer, negativeOneToOne: Bool32) -> ();
15766
15767pub type FnCmdSetViewportWScalingEnableNV =
15768    extern "system" fn(commandBuffer: CommandBuffer, viewportWScalingEnable: Bool32) -> ();
15769
15770pub type FnCmdSetViewportSwizzleNV = extern "system" fn(
15771    commandBuffer: CommandBuffer,
15772    firstViewport: u32,
15773    viewportCount: u32,
15774    pViewportSwizzles: *const ViewportSwizzleNV,
15775) -> ();
15776
15777pub type FnCmdSetCoverageToColorEnableNV =
15778    extern "system" fn(commandBuffer: CommandBuffer, coverageToColorEnable: Bool32) -> ();
15779
15780pub type FnCmdSetCoverageToColorLocationNV =
15781    extern "system" fn(commandBuffer: CommandBuffer, coverageToColorLocation: u32) -> ();
15782
15783pub type FnCmdSetCoverageModulationModeNV = extern "system" fn(
15784    commandBuffer: CommandBuffer,
15785    coverageModulationMode: CoverageModulationModeNV,
15786) -> ();
15787
15788pub type FnCmdSetCoverageModulationTableEnableNV =
15789    extern "system" fn(commandBuffer: CommandBuffer, coverageModulationTableEnable: Bool32) -> ();
15790
15791pub type FnCmdSetCoverageModulationTableNV = extern "system" fn(
15792    commandBuffer: CommandBuffer,
15793    coverageModulationTableCount: u32,
15794    pCoverageModulationTable: *const f32,
15795) -> ();
15796
15797pub type FnCmdSetShadingRateImageEnableNV =
15798    extern "system" fn(commandBuffer: CommandBuffer, shadingRateImageEnable: Bool32) -> ();
15799
15800pub type FnCmdSetRepresentativeFragmentTestEnableNV = extern "system" fn(
15801    commandBuffer: CommandBuffer,
15802    representativeFragmentTestEnable: Bool32,
15803) -> ();
15804
15805pub type FnCmdSetCoverageReductionModeNV = extern "system" fn(
15806    commandBuffer: CommandBuffer,
15807    coverageReductionMode: CoverageReductionModeNV,
15808) -> ();
15809
15810pub type FnGetShaderModuleIdentifierEXT = extern "system" fn(
15811    device: Device,
15812    shaderModule: ShaderModule,
15813    pIdentifier: *mut ShaderModuleIdentifierEXT,
15814) -> ();
15815
15816pub type FnGetShaderModuleCreateInfoIdentifierEXT = extern "system" fn(
15817    device: Device,
15818    pCreateInfo: *const ShaderModuleCreateInfo,
15819    pIdentifier: *mut ShaderModuleIdentifierEXT,
15820) -> ();
15821
15822pub type FnCreateOpticalFlowSessionNV = extern "system" fn(
15823    device: Device,
15824    pCreateInfo: *const OpticalFlowSessionCreateInfoNV,
15825    pAllocator: *const AllocationCallbacks,
15826    pSession: *mut OpticalFlowSessionNV,
15827) -> Result;
15828
15829pub type FnDestroyOpticalFlowSessionNV = extern "system" fn(
15830    device: Device,
15831    session: OpticalFlowSessionNV,
15832    pAllocator: *const AllocationCallbacks,
15833) -> ();
15834
15835pub type FnBindOpticalFlowSessionImageNV = extern "system" fn(
15836    device: Device,
15837    session: OpticalFlowSessionNV,
15838    bindingPoint: OpticalFlowSessionBindingPointNV,
15839    view: ImageView,
15840    layout: ImageLayout,
15841) -> Result;
15842
15843pub type FnCmdOpticalFlowExecuteNV = extern "system" fn(
15844    commandBuffer: CommandBuffer,
15845    session: OpticalFlowSessionNV,
15846    pExecuteInfo: *const OpticalFlowExecuteInfoNV,
15847) -> ();
15848
15849pub type FnGetFramebufferTilePropertiesQCOM = extern "system" fn(
15850    device: Device,
15851    framebuffer: Framebuffer,
15852    pPropertiesCount: *mut u32,
15853    pProperties: *mut TilePropertiesQCOM,
15854) -> Result;
15855
15856pub type FnGetDynamicRenderingTilePropertiesQCOM = extern "system" fn(
15857    device: Device,
15858    pRenderingInfo: *const RenderingInfo,
15859    pProperties: *mut TilePropertiesQCOM,
15860) -> Result;
15861
15862// command struct macros
15863macro_rules! ptrs {
15864    ($struct_name:ident,
15865        ($create_fn:ident: $create_fn_type:ty, $fn_param:ident: $fn_param_type:ty),
15866        { $($name:ident => ($($param_n:ident: $param_ty:ty),+ $(,)+) -> $ret:ty,)+ }) => (
15867        pub struct $struct_name {
15868            $(
15869                pub $name: extern "system" fn($($param_ty),*) -> $ret,
15870            )+
15871        }
15872
15873        unsafe impl Send for $struct_name {}
15874        unsafe impl Sync for $struct_name {}
15875
15876        impl $struct_name {
15877            pub fn new($create_fn: $create_fn_type, $fn_param: $fn_param_type) -> Self {
15878                $struct_name {
15879                    $(
15880                        $name: unsafe {
15881                            mem::transmute(
15882                                ($create_fn)($fn_param, concat!("vk", stringify!($name), "\0").as_ptr() as _)
15883                            )
15884                        },
15885                    )+
15886                }
15887            }
15888
15889            $(
15890                #[inline]
15891                pub unsafe fn $name(&self $(, $param_n: $param_ty)*) -> $ret {
15892                    let ptr = self.$name;
15893                    ptr($($param_n),*)
15894                }
15895            )+
15896        }
15897    )
15898}
15899
15900// library commands
15901ptrs!(LibraryCommands, (GetInstanceProcAddr: FnGetInstanceProcAddr, instance: Instance), {
15902    CreateInstance => (
15903        pCreateInfo: *const InstanceCreateInfo,
15904        pAllocator: *const AllocationCallbacks,
15905        pInstance: *mut Instance,
15906    ) -> Result,
15907    EnumerateInstanceExtensionProperties => (
15908        pLayerName: *const c_char,
15909        pPropertyCount: *mut u32,
15910        pProperties: *mut ExtensionProperties,
15911    ) -> Result,
15912    EnumerateInstanceLayerProperties => (
15913        pPropertyCount: *mut u32,
15914        pProperties: *mut LayerProperties,
15915    ) -> Result,
15916    EnumerateInstanceVersion => (
15917        pApiVersion: *mut u32,
15918    ) -> Result,
15919});
15920
15921// instance commands
15922ptrs!(InstanceCommands, (GetInstanceProcAddr: FnGetInstanceProcAddr, instance: Instance), {
15923    DestroyInstance => (
15924        instance: Instance,
15925        pAllocator: *const AllocationCallbacks,
15926    ) -> (),
15927    EnumeratePhysicalDevices => (
15928        instance: Instance,
15929        pPhysicalDeviceCount: *mut u32,
15930        pPhysicalDevices: *mut PhysicalDevice,
15931    ) -> Result,
15932    GetPhysicalDeviceFeatures => (
15933        physicalDevice: PhysicalDevice,
15934        pFeatures: *mut PhysicalDeviceFeatures,
15935    ) -> (),
15936    GetPhysicalDeviceFormatProperties => (
15937        physicalDevice: PhysicalDevice,
15938        format: Format,
15939        pFormatProperties: *mut FormatProperties,
15940    ) -> (),
15941    GetPhysicalDeviceImageFormatProperties => (
15942        physicalDevice: PhysicalDevice,
15943        format: Format,
15944        typ: ImageType,
15945        tiling: ImageTiling,
15946        usage: ImageUsageFlags,
15947        flags: ImageCreateFlags,
15948        pImageFormatProperties: *mut ImageFormatProperties,
15949    ) -> Result,
15950    GetPhysicalDeviceProperties => (
15951        physicalDevice: PhysicalDevice,
15952        pProperties: *mut PhysicalDeviceProperties,
15953    ) -> (),
15954    GetPhysicalDeviceQueueFamilyProperties => (
15955        physicalDevice: PhysicalDevice,
15956        pQueueFamilyPropertyCount: *mut u32,
15957        pQueueFamilyProperties: *mut QueueFamilyProperties,
15958    ) -> (),
15959    GetPhysicalDeviceMemoryProperties => (
15960        physicalDevice: PhysicalDevice,
15961        pMemoryProperties: *mut PhysicalDeviceMemoryProperties,
15962    ) -> (),
15963    GetDeviceProcAddr => (
15964        device: Device,
15965        pName: *const c_char,
15966    ) -> FnVoidFunction,
15967    CreateDevice => (
15968        physicalDevice: PhysicalDevice,
15969        pCreateInfo: *const DeviceCreateInfo,
15970        pAllocator: *const AllocationCallbacks,
15971        pDevice: *mut Device,
15972    ) -> Result,
15973    EnumerateDeviceExtensionProperties => (
15974        physicalDevice: PhysicalDevice,
15975        pLayerName: *const c_char,
15976        pPropertyCount: *mut u32,
15977        pProperties: *mut ExtensionProperties,
15978    ) -> Result,
15979    EnumerateDeviceLayerProperties => (
15980        physicalDevice: PhysicalDevice,
15981        pPropertyCount: *mut u32,
15982        pProperties: *mut LayerProperties,
15983    ) -> Result,
15984    GetPhysicalDeviceSparseImageFormatProperties => (
15985        physicalDevice: PhysicalDevice,
15986        format: Format,
15987        typ: ImageType,
15988        samples: SampleCountFlagBits,
15989        usage: ImageUsageFlags,
15990        tiling: ImageTiling,
15991        pPropertyCount: *mut u32,
15992        pProperties: *mut SparseImageFormatProperties,
15993    ) -> (),
15994    EnumeratePhysicalDeviceGroups => (
15995        instance: Instance,
15996        pPhysicalDeviceGroupCount: *mut u32,
15997        pPhysicalDeviceGroupProperties: *mut PhysicalDeviceGroupProperties,
15998    ) -> Result,
15999    GetPhysicalDeviceFeatures2 => (
16000        physicalDevice: PhysicalDevice,
16001        pFeatures: *mut PhysicalDeviceFeatures2,
16002    ) -> (),
16003    GetPhysicalDeviceProperties2 => (
16004        physicalDevice: PhysicalDevice,
16005        pProperties: *mut PhysicalDeviceProperties2,
16006    ) -> (),
16007    GetPhysicalDeviceFormatProperties2 => (
16008        physicalDevice: PhysicalDevice,
16009        format: Format,
16010        pFormatProperties: *mut FormatProperties2,
16011    ) -> (),
16012    GetPhysicalDeviceImageFormatProperties2 => (
16013        physicalDevice: PhysicalDevice,
16014        pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2,
16015        pImageFormatProperties: *mut ImageFormatProperties2,
16016    ) -> Result,
16017    GetPhysicalDeviceQueueFamilyProperties2 => (
16018        physicalDevice: PhysicalDevice,
16019        pQueueFamilyPropertyCount: *mut u32,
16020        pQueueFamilyProperties: *mut QueueFamilyProperties2,
16021    ) -> (),
16022    GetPhysicalDeviceMemoryProperties2 => (
16023        physicalDevice: PhysicalDevice,
16024        pMemoryProperties: *mut PhysicalDeviceMemoryProperties2,
16025    ) -> (),
16026    GetPhysicalDeviceSparseImageFormatProperties2 => (
16027        physicalDevice: PhysicalDevice,
16028        pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2,
16029        pPropertyCount: *mut u32,
16030        pProperties: *mut SparseImageFormatProperties2,
16031    ) -> (),
16032    GetPhysicalDeviceExternalBufferProperties => (
16033        physicalDevice: PhysicalDevice,
16034        pExternalBufferInfo: *const PhysicalDeviceExternalBufferInfo,
16035        pExternalBufferProperties: *mut ExternalBufferProperties,
16036    ) -> (),
16037    GetPhysicalDeviceExternalFenceProperties => (
16038        physicalDevice: PhysicalDevice,
16039        pExternalFenceInfo: *const PhysicalDeviceExternalFenceInfo,
16040        pExternalFenceProperties: *mut ExternalFenceProperties,
16041    ) -> (),
16042    GetPhysicalDeviceExternalSemaphoreProperties => (
16043        physicalDevice: PhysicalDevice,
16044        pExternalSemaphoreInfo: *const PhysicalDeviceExternalSemaphoreInfo,
16045        pExternalSemaphoreProperties: *mut ExternalSemaphoreProperties,
16046    ) -> (),
16047    GetPhysicalDeviceToolProperties => (
16048        physicalDevice: PhysicalDevice,
16049        pToolCount: *mut u32,
16050        pToolProperties: *mut PhysicalDeviceToolProperties,
16051    ) -> Result,
16052    DestroySurfaceKHR => (
16053        instance: Instance,
16054        surface: SurfaceKHR,
16055        pAllocator: *const AllocationCallbacks,
16056    ) -> (),
16057    GetPhysicalDeviceSurfaceSupportKHR => (
16058        physicalDevice: PhysicalDevice,
16059        queueFamilyIndex: u32,
16060        surface: SurfaceKHR,
16061        pSupported: *mut Bool32,
16062    ) -> Result,
16063    GetPhysicalDeviceSurfaceCapabilitiesKHR => (
16064        physicalDevice: PhysicalDevice,
16065        surface: SurfaceKHR,
16066        pSurfaceCapabilities: *mut SurfaceCapabilitiesKHR,
16067    ) -> Result,
16068    GetPhysicalDeviceSurfaceFormatsKHR => (
16069        physicalDevice: PhysicalDevice,
16070        surface: SurfaceKHR,
16071        pSurfaceFormatCount: *mut u32,
16072        pSurfaceFormats: *mut SurfaceFormatKHR,
16073    ) -> Result,
16074    GetPhysicalDeviceSurfacePresentModesKHR => (
16075        physicalDevice: PhysicalDevice,
16076        surface: SurfaceKHR,
16077        pPresentModeCount: *mut u32,
16078        pPresentModes: *mut PresentModeKHR,
16079    ) -> Result,
16080    GetPhysicalDevicePresentRectanglesKHR => (
16081        physicalDevice: PhysicalDevice,
16082        surface: SurfaceKHR,
16083        pRectCount: *mut u32,
16084        pRects: *mut Rect2D,
16085    ) -> Result,
16086    GetPhysicalDeviceDisplayPropertiesKHR => (
16087        physicalDevice: PhysicalDevice,
16088        pPropertyCount: *mut u32,
16089        pProperties: *mut DisplayPropertiesKHR,
16090    ) -> Result,
16091    GetPhysicalDeviceDisplayPlanePropertiesKHR => (
16092        physicalDevice: PhysicalDevice,
16093        pPropertyCount: *mut u32,
16094        pProperties: *mut DisplayPlanePropertiesKHR,
16095    ) -> Result,
16096    GetDisplayPlaneSupportedDisplaysKHR => (
16097        physicalDevice: PhysicalDevice,
16098        planeIndex: u32,
16099        pDisplayCount: *mut u32,
16100        pDisplays: *mut DisplayKHR,
16101    ) -> Result,
16102    GetDisplayModePropertiesKHR => (
16103        physicalDevice: PhysicalDevice,
16104        display: DisplayKHR,
16105        pPropertyCount: *mut u32,
16106        pProperties: *mut DisplayModePropertiesKHR,
16107    ) -> Result,
16108    CreateDisplayModeKHR => (
16109        physicalDevice: PhysicalDevice,
16110        display: DisplayKHR,
16111        pCreateInfo: *const DisplayModeCreateInfoKHR,
16112        pAllocator: *const AllocationCallbacks,
16113        pMode: *mut DisplayModeKHR,
16114    ) -> Result,
16115    GetDisplayPlaneCapabilitiesKHR => (
16116        physicalDevice: PhysicalDevice,
16117        mode: DisplayModeKHR,
16118        planeIndex: u32,
16119        pCapabilities: *mut DisplayPlaneCapabilitiesKHR,
16120    ) -> Result,
16121    CreateDisplayPlaneSurfaceKHR => (
16122        instance: Instance,
16123        pCreateInfo: *const DisplaySurfaceCreateInfoKHR,
16124        pAllocator: *const AllocationCallbacks,
16125        pSurface: *mut SurfaceKHR,
16126    ) -> Result,
16127    CreateDebugReportCallbackEXT => (
16128        instance: Instance,
16129        pCreateInfo: *const DebugReportCallbackCreateInfoEXT,
16130        pAllocator: *const AllocationCallbacks,
16131        pCallback: *mut DebugReportCallbackEXT,
16132    ) -> Result,
16133    DestroyDebugReportCallbackEXT => (
16134        instance: Instance,
16135        callback: DebugReportCallbackEXT,
16136        pAllocator: *const AllocationCallbacks,
16137    ) -> (),
16138    DebugReportMessageEXT => (
16139        instance: Instance,
16140        flags: DebugReportFlagsEXT,
16141        objectType: DebugReportObjectTypeEXT,
16142        object: u64,
16143        location: usize,
16144        messageCode: i32,
16145        pLayerPrefix: *const c_char,
16146        pMessage: *const c_char,
16147    ) -> (),
16148    GetPhysicalDeviceVideoCapabilitiesKHR => (
16149        physicalDevice: PhysicalDevice,
16150        pVideoProfile: *const VideoProfileInfoKHR,
16151        pCapabilities: *mut VideoCapabilitiesKHR,
16152    ) -> Result,
16153    GetPhysicalDeviceVideoFormatPropertiesKHR => (
16154        physicalDevice: PhysicalDevice,
16155        pVideoFormatInfo: *const PhysicalDeviceVideoFormatInfoKHR,
16156        pVideoFormatPropertyCount: *mut u32,
16157        pVideoFormatProperties: *mut VideoFormatPropertiesKHR,
16158    ) -> Result,
16159    GetPhysicalDeviceExternalImageFormatPropertiesNV => (
16160        physicalDevice: PhysicalDevice,
16161        format: Format,
16162        typ: ImageType,
16163        tiling: ImageTiling,
16164        usage: ImageUsageFlags,
16165        flags: ImageCreateFlags,
16166        externalHandleType: ExternalMemoryHandleTypeFlagsNV,
16167        pExternalImageFormatProperties: *mut ExternalImageFormatPropertiesNV,
16168    ) -> Result,
16169    GetPhysicalDeviceFeatures2KHR => (
16170        physicalDevice: PhysicalDevice,
16171        pFeatures: *mut PhysicalDeviceFeatures2,
16172    ) -> (),
16173    GetPhysicalDeviceProperties2KHR => (
16174        physicalDevice: PhysicalDevice,
16175        pProperties: *mut PhysicalDeviceProperties2,
16176    ) -> (),
16177    GetPhysicalDeviceFormatProperties2KHR => (
16178        physicalDevice: PhysicalDevice,
16179        format: Format,
16180        pFormatProperties: *mut FormatProperties2,
16181    ) -> (),
16182    GetPhysicalDeviceImageFormatProperties2KHR => (
16183        physicalDevice: PhysicalDevice,
16184        pImageFormatInfo: *const PhysicalDeviceImageFormatInfo2,
16185        pImageFormatProperties: *mut ImageFormatProperties2,
16186    ) -> Result,
16187    GetPhysicalDeviceQueueFamilyProperties2KHR => (
16188        physicalDevice: PhysicalDevice,
16189        pQueueFamilyPropertyCount: *mut u32,
16190        pQueueFamilyProperties: *mut QueueFamilyProperties2,
16191    ) -> (),
16192    GetPhysicalDeviceMemoryProperties2KHR => (
16193        physicalDevice: PhysicalDevice,
16194        pMemoryProperties: *mut PhysicalDeviceMemoryProperties2,
16195    ) -> (),
16196    GetPhysicalDeviceSparseImageFormatProperties2KHR => (
16197        physicalDevice: PhysicalDevice,
16198        pFormatInfo: *const PhysicalDeviceSparseImageFormatInfo2,
16199        pPropertyCount: *mut u32,
16200        pProperties: *mut SparseImageFormatProperties2,
16201    ) -> (),
16202    EnumeratePhysicalDeviceGroupsKHR => (
16203        instance: Instance,
16204        pPhysicalDeviceGroupCount: *mut u32,
16205        pPhysicalDeviceGroupProperties: *mut PhysicalDeviceGroupProperties,
16206    ) -> Result,
16207    GetPhysicalDeviceExternalBufferPropertiesKHR => (
16208        physicalDevice: PhysicalDevice,
16209        pExternalBufferInfo: *const PhysicalDeviceExternalBufferInfo,
16210        pExternalBufferProperties: *mut ExternalBufferProperties,
16211    ) -> (),
16212    GetPhysicalDeviceExternalSemaphorePropertiesKHR => (
16213        physicalDevice: PhysicalDevice,
16214        pExternalSemaphoreInfo: *const PhysicalDeviceExternalSemaphoreInfo,
16215        pExternalSemaphoreProperties: *mut ExternalSemaphoreProperties,
16216    ) -> (),
16217    ReleaseDisplayEXT => (
16218        physicalDevice: PhysicalDevice,
16219        display: DisplayKHR,
16220    ) -> Result,
16221    GetPhysicalDeviceSurfaceCapabilities2EXT => (
16222        physicalDevice: PhysicalDevice,
16223        surface: SurfaceKHR,
16224        pSurfaceCapabilities: *mut SurfaceCapabilities2EXT,
16225    ) -> Result,
16226    GetPhysicalDeviceExternalFencePropertiesKHR => (
16227        physicalDevice: PhysicalDevice,
16228        pExternalFenceInfo: *const PhysicalDeviceExternalFenceInfo,
16229        pExternalFenceProperties: *mut ExternalFenceProperties,
16230    ) -> (),
16231    EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR => (
16232        physicalDevice: PhysicalDevice,
16233        queueFamilyIndex: u32,
16234        pCounterCount: *mut u32,
16235        pCounters: *mut PerformanceCounterKHR,
16236        pCounterDescriptions: *mut PerformanceCounterDescriptionKHR,
16237    ) -> Result,
16238    GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR => (
16239        physicalDevice: PhysicalDevice,
16240        pPerformanceQueryCreateInfo: *const QueryPoolPerformanceCreateInfoKHR,
16241        pNumPasses: *mut u32,
16242    ) -> (),
16243    GetPhysicalDeviceSurfaceCapabilities2KHR => (
16244        physicalDevice: PhysicalDevice,
16245        pSurfaceInfo: *const PhysicalDeviceSurfaceInfo2KHR,
16246        pSurfaceCapabilities: *mut SurfaceCapabilities2KHR,
16247    ) -> Result,
16248    GetPhysicalDeviceSurfaceFormats2KHR => (
16249        physicalDevice: PhysicalDevice,
16250        pSurfaceInfo: *const PhysicalDeviceSurfaceInfo2KHR,
16251        pSurfaceFormatCount: *mut u32,
16252        pSurfaceFormats: *mut SurfaceFormat2KHR,
16253    ) -> Result,
16254    GetPhysicalDeviceDisplayProperties2KHR => (
16255        physicalDevice: PhysicalDevice,
16256        pPropertyCount: *mut u32,
16257        pProperties: *mut DisplayProperties2KHR,
16258    ) -> Result,
16259    GetPhysicalDeviceDisplayPlaneProperties2KHR => (
16260        physicalDevice: PhysicalDevice,
16261        pPropertyCount: *mut u32,
16262        pProperties: *mut DisplayPlaneProperties2KHR,
16263    ) -> Result,
16264    GetDisplayModeProperties2KHR => (
16265        physicalDevice: PhysicalDevice,
16266        display: DisplayKHR,
16267        pPropertyCount: *mut u32,
16268        pProperties: *mut DisplayModeProperties2KHR,
16269    ) -> Result,
16270    GetDisplayPlaneCapabilities2KHR => (
16271        physicalDevice: PhysicalDevice,
16272        pDisplayPlaneInfo: *const DisplayPlaneInfo2KHR,
16273        pCapabilities: *mut DisplayPlaneCapabilities2KHR,
16274    ) -> Result,
16275    CreateDebugUtilsMessengerEXT => (
16276        instance: Instance,
16277        pCreateInfo: *const DebugUtilsMessengerCreateInfoEXT,
16278        pAllocator: *const AllocationCallbacks,
16279        pMessenger: *mut DebugUtilsMessengerEXT,
16280    ) -> Result,
16281    DestroyDebugUtilsMessengerEXT => (
16282        instance: Instance,
16283        messenger: DebugUtilsMessengerEXT,
16284        pAllocator: *const AllocationCallbacks,
16285    ) -> (),
16286    SubmitDebugUtilsMessageEXT => (
16287        instance: Instance,
16288        messageSeverity: DebugUtilsMessageSeverityFlagBitsEXT,
16289        messageTypes: DebugUtilsMessageTypeFlagsEXT,
16290        pCallbackData: *const DebugUtilsMessengerCallbackDataEXT,
16291    ) -> (),
16292    GetPhysicalDeviceMultisamplePropertiesEXT => (
16293        physicalDevice: PhysicalDevice,
16294        samples: SampleCountFlagBits,
16295        pMultisampleProperties: *mut MultisamplePropertiesEXT,
16296    ) -> (),
16297    GetPhysicalDeviceCalibrateableTimeDomainsEXT => (
16298        physicalDevice: PhysicalDevice,
16299        pTimeDomainCount: *mut u32,
16300        pTimeDomains: *mut TimeDomainEXT,
16301    ) -> Result,
16302    GetPhysicalDeviceFragmentShadingRatesKHR => (
16303        physicalDevice: PhysicalDevice,
16304        pFragmentShadingRateCount: *mut u32,
16305        pFragmentShadingRates: *mut PhysicalDeviceFragmentShadingRateKHR,
16306    ) -> Result,
16307    GetPhysicalDeviceToolPropertiesEXT => (
16308        physicalDevice: PhysicalDevice,
16309        pToolCount: *mut u32,
16310        pToolProperties: *mut PhysicalDeviceToolProperties,
16311    ) -> Result,
16312    GetPhysicalDeviceCooperativeMatrixPropertiesNV => (
16313        physicalDevice: PhysicalDevice,
16314        pPropertyCount: *mut u32,
16315        pProperties: *mut CooperativeMatrixPropertiesNV,
16316    ) -> Result,
16317    GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV => (
16318        physicalDevice: PhysicalDevice,
16319        pCombinationCount: *mut u32,
16320        pCombinations: *mut FramebufferMixedSamplesCombinationNV,
16321    ) -> Result,
16322    CreateHeadlessSurfaceEXT => (
16323        instance: Instance,
16324        pCreateInfo: *const HeadlessSurfaceCreateInfoEXT,
16325        pAllocator: *const AllocationCallbacks,
16326        pSurface: *mut SurfaceKHR,
16327    ) -> Result,
16328    AcquireDrmDisplayEXT => (
16329        physicalDevice: PhysicalDevice,
16330        drmFd: i32,
16331        display: DisplayKHR,
16332    ) -> Result,
16333    GetDrmDisplayEXT => (
16334        physicalDevice: PhysicalDevice,
16335        drmFd: i32,
16336        connectorId: u32,
16337        display: *mut DisplayKHR,
16338    ) -> Result,
16339    GetPhysicalDeviceOpticalFlowImageFormatsNV => (
16340        physicalDevice: PhysicalDevice,
16341        pOpticalFlowImageFormatInfo: *const OpticalFlowImageFormatInfoNV,
16342        pFormatCount: *mut u32,
16343        pImageFormatProperties: *mut OpticalFlowImageFormatPropertiesNV,
16344    ) -> Result,
16345});
16346
16347// device commands
16348ptrs!(DeviceCommands, (GetDeviceProcAddr: FnGetDeviceProcAddr, device: Device), {
16349    DestroyDevice => (
16350        device: Device,
16351        pAllocator: *const AllocationCallbacks,
16352    ) -> (),
16353    GetDeviceQueue => (
16354        device: Device,
16355        queueFamilyIndex: u32,
16356        queueIndex: u32,
16357        pQueue: *mut Queue,
16358    ) -> (),
16359    QueueSubmit => (
16360        queue: Queue,
16361        submitCount: u32,
16362        pSubmits: *const SubmitInfo,
16363        fence: Fence,
16364    ) -> Result,
16365    QueueWaitIdle => (
16366        queue: Queue,
16367    ) -> Result,
16368    DeviceWaitIdle => (
16369        device: Device,
16370    ) -> Result,
16371    AllocateMemory => (
16372        device: Device,
16373        pAllocateInfo: *const MemoryAllocateInfo,
16374        pAllocator: *const AllocationCallbacks,
16375        pMemory: *mut DeviceMemory,
16376    ) -> Result,
16377    FreeMemory => (
16378        device: Device,
16379        memory: DeviceMemory,
16380        pAllocator: *const AllocationCallbacks,
16381    ) -> (),
16382    MapMemory => (
16383        device: Device,
16384        memory: DeviceMemory,
16385        offset: DeviceSize,
16386        size: DeviceSize,
16387        flags: MemoryMapFlags,
16388        ppData: *mut *mut c_void,
16389    ) -> Result,
16390    UnmapMemory => (
16391        device: Device,
16392        memory: DeviceMemory,
16393    ) -> (),
16394    FlushMappedMemoryRanges => (
16395        device: Device,
16396        memoryRangeCount: u32,
16397        pMemoryRanges: *const MappedMemoryRange,
16398    ) -> Result,
16399    InvalidateMappedMemoryRanges => (
16400        device: Device,
16401        memoryRangeCount: u32,
16402        pMemoryRanges: *const MappedMemoryRange,
16403    ) -> Result,
16404    GetDeviceMemoryCommitment => (
16405        device: Device,
16406        memory: DeviceMemory,
16407        pCommittedMemoryInBytes: *mut DeviceSize,
16408    ) -> (),
16409    BindBufferMemory => (
16410        device: Device,
16411        buffer: Buffer,
16412        memory: DeviceMemory,
16413        memoryOffset: DeviceSize,
16414    ) -> Result,
16415    BindImageMemory => (
16416        device: Device,
16417        image: Image,
16418        memory: DeviceMemory,
16419        memoryOffset: DeviceSize,
16420    ) -> Result,
16421    GetBufferMemoryRequirements => (
16422        device: Device,
16423        buffer: Buffer,
16424        pMemoryRequirements: *mut MemoryRequirements,
16425    ) -> (),
16426    GetImageMemoryRequirements => (
16427        device: Device,
16428        image: Image,
16429        pMemoryRequirements: *mut MemoryRequirements,
16430    ) -> (),
16431    GetImageSparseMemoryRequirements => (
16432        device: Device,
16433        image: Image,
16434        pSparseMemoryRequirementCount: *mut u32,
16435        pSparseMemoryRequirements: *mut SparseImageMemoryRequirements,
16436    ) -> (),
16437    QueueBindSparse => (
16438        queue: Queue,
16439        bindInfoCount: u32,
16440        pBindInfo: *const BindSparseInfo,
16441        fence: Fence,
16442    ) -> Result,
16443    CreateFence => (
16444        device: Device,
16445        pCreateInfo: *const FenceCreateInfo,
16446        pAllocator: *const AllocationCallbacks,
16447        pFence: *mut Fence,
16448    ) -> Result,
16449    DestroyFence => (
16450        device: Device,
16451        fence: Fence,
16452        pAllocator: *const AllocationCallbacks,
16453    ) -> (),
16454    ResetFences => (
16455        device: Device,
16456        fenceCount: u32,
16457        pFences: *const Fence,
16458    ) -> Result,
16459    GetFenceStatus => (
16460        device: Device,
16461        fence: Fence,
16462    ) -> Result,
16463    WaitForFences => (
16464        device: Device,
16465        fenceCount: u32,
16466        pFences: *const Fence,
16467        waitAll: Bool32,
16468        timeout: u64,
16469    ) -> Result,
16470    CreateSemaphore => (
16471        device: Device,
16472        pCreateInfo: *const SemaphoreCreateInfo,
16473        pAllocator: *const AllocationCallbacks,
16474        pSemaphore: *mut Semaphore,
16475    ) -> Result,
16476    DestroySemaphore => (
16477        device: Device,
16478        semaphore: Semaphore,
16479        pAllocator: *const AllocationCallbacks,
16480    ) -> (),
16481    CreateEvent => (
16482        device: Device,
16483        pCreateInfo: *const EventCreateInfo,
16484        pAllocator: *const AllocationCallbacks,
16485        pEvent: *mut Event,
16486    ) -> Result,
16487    DestroyEvent => (
16488        device: Device,
16489        event: Event,
16490        pAllocator: *const AllocationCallbacks,
16491    ) -> (),
16492    GetEventStatus => (
16493        device: Device,
16494        event: Event,
16495    ) -> Result,
16496    SetEvent => (
16497        device: Device,
16498        event: Event,
16499    ) -> Result,
16500    ResetEvent => (
16501        device: Device,
16502        event: Event,
16503    ) -> Result,
16504    CreateQueryPool => (
16505        device: Device,
16506        pCreateInfo: *const QueryPoolCreateInfo,
16507        pAllocator: *const AllocationCallbacks,
16508        pQueryPool: *mut QueryPool,
16509    ) -> Result,
16510    DestroyQueryPool => (
16511        device: Device,
16512        queryPool: QueryPool,
16513        pAllocator: *const AllocationCallbacks,
16514    ) -> (),
16515    GetQueryPoolResults => (
16516        device: Device,
16517        queryPool: QueryPool,
16518        firstQuery: u32,
16519        queryCount: u32,
16520        dataSize: usize,
16521        pData: *mut c_void,
16522        stride: DeviceSize,
16523        flags: QueryResultFlags,
16524    ) -> Result,
16525    CreateBuffer => (
16526        device: Device,
16527        pCreateInfo: *const BufferCreateInfo,
16528        pAllocator: *const AllocationCallbacks,
16529        pBuffer: *mut Buffer,
16530    ) -> Result,
16531    DestroyBuffer => (
16532        device: Device,
16533        buffer: Buffer,
16534        pAllocator: *const AllocationCallbacks,
16535    ) -> (),
16536    CreateBufferView => (
16537        device: Device,
16538        pCreateInfo: *const BufferViewCreateInfo,
16539        pAllocator: *const AllocationCallbacks,
16540        pView: *mut BufferView,
16541    ) -> Result,
16542    DestroyBufferView => (
16543        device: Device,
16544        bufferView: BufferView,
16545        pAllocator: *const AllocationCallbacks,
16546    ) -> (),
16547    CreateImage => (
16548        device: Device,
16549        pCreateInfo: *const ImageCreateInfo,
16550        pAllocator: *const AllocationCallbacks,
16551        pImage: *mut Image,
16552    ) -> Result,
16553    DestroyImage => (
16554        device: Device,
16555        image: Image,
16556        pAllocator: *const AllocationCallbacks,
16557    ) -> (),
16558    GetImageSubresourceLayout => (
16559        device: Device,
16560        image: Image,
16561        pSubresource: *const ImageSubresource,
16562        pLayout: *mut SubresourceLayout,
16563    ) -> (),
16564    CreateImageView => (
16565        device: Device,
16566        pCreateInfo: *const ImageViewCreateInfo,
16567        pAllocator: *const AllocationCallbacks,
16568        pView: *mut ImageView,
16569    ) -> Result,
16570    DestroyImageView => (
16571        device: Device,
16572        imageView: ImageView,
16573        pAllocator: *const AllocationCallbacks,
16574    ) -> (),
16575    CreateShaderModule => (
16576        device: Device,
16577        pCreateInfo: *const ShaderModuleCreateInfo,
16578        pAllocator: *const AllocationCallbacks,
16579        pShaderModule: *mut ShaderModule,
16580    ) -> Result,
16581    DestroyShaderModule => (
16582        device: Device,
16583        shaderModule: ShaderModule,
16584        pAllocator: *const AllocationCallbacks,
16585    ) -> (),
16586    CreatePipelineCache => (
16587        device: Device,
16588        pCreateInfo: *const PipelineCacheCreateInfo,
16589        pAllocator: *const AllocationCallbacks,
16590        pPipelineCache: *mut PipelineCache,
16591    ) -> Result,
16592    DestroyPipelineCache => (
16593        device: Device,
16594        pipelineCache: PipelineCache,
16595        pAllocator: *const AllocationCallbacks,
16596    ) -> (),
16597    GetPipelineCacheData => (
16598        device: Device,
16599        pipelineCache: PipelineCache,
16600        pDataSize: *mut usize,
16601        pData: *mut c_void,
16602    ) -> Result,
16603    MergePipelineCaches => (
16604        device: Device,
16605        dstCache: PipelineCache,
16606        srcCacheCount: u32,
16607        pSrcCaches: *const PipelineCache,
16608    ) -> Result,
16609    CreateGraphicsPipelines => (
16610        device: Device,
16611        pipelineCache: PipelineCache,
16612        createInfoCount: u32,
16613        pCreateInfos: *const GraphicsPipelineCreateInfo,
16614        pAllocator: *const AllocationCallbacks,
16615        pPipelines: *mut Pipeline,
16616    ) -> Result,
16617    CreateComputePipelines => (
16618        device: Device,
16619        pipelineCache: PipelineCache,
16620        createInfoCount: u32,
16621        pCreateInfos: *const ComputePipelineCreateInfo,
16622        pAllocator: *const AllocationCallbacks,
16623        pPipelines: *mut Pipeline,
16624    ) -> Result,
16625    DestroyPipeline => (
16626        device: Device,
16627        pipeline: Pipeline,
16628        pAllocator: *const AllocationCallbacks,
16629    ) -> (),
16630    CreatePipelineLayout => (
16631        device: Device,
16632        pCreateInfo: *const PipelineLayoutCreateInfo,
16633        pAllocator: *const AllocationCallbacks,
16634        pPipelineLayout: *mut PipelineLayout,
16635    ) -> Result,
16636    DestroyPipelineLayout => (
16637        device: Device,
16638        pipelineLayout: PipelineLayout,
16639        pAllocator: *const AllocationCallbacks,
16640    ) -> (),
16641    CreateSampler => (
16642        device: Device,
16643        pCreateInfo: *const SamplerCreateInfo,
16644        pAllocator: *const AllocationCallbacks,
16645        pSampler: *mut Sampler,
16646    ) -> Result,
16647    DestroySampler => (
16648        device: Device,
16649        sampler: Sampler,
16650        pAllocator: *const AllocationCallbacks,
16651    ) -> (),
16652    CreateDescriptorSetLayout => (
16653        device: Device,
16654        pCreateInfo: *const DescriptorSetLayoutCreateInfo,
16655        pAllocator: *const AllocationCallbacks,
16656        pSetLayout: *mut DescriptorSetLayout,
16657    ) -> Result,
16658    DestroyDescriptorSetLayout => (
16659        device: Device,
16660        descriptorSetLayout: DescriptorSetLayout,
16661        pAllocator: *const AllocationCallbacks,
16662    ) -> (),
16663    CreateDescriptorPool => (
16664        device: Device,
16665        pCreateInfo: *const DescriptorPoolCreateInfo,
16666        pAllocator: *const AllocationCallbacks,
16667        pDescriptorPool: *mut DescriptorPool,
16668    ) -> Result,
16669    DestroyDescriptorPool => (
16670        device: Device,
16671        descriptorPool: DescriptorPool,
16672        pAllocator: *const AllocationCallbacks,
16673    ) -> (),
16674    ResetDescriptorPool => (
16675        device: Device,
16676        descriptorPool: DescriptorPool,
16677        flags: DescriptorPoolResetFlags,
16678    ) -> Result,
16679    AllocateDescriptorSets => (
16680        device: Device,
16681        pAllocateInfo: *const DescriptorSetAllocateInfo,
16682        pDescriptorSets: *mut DescriptorSet,
16683    ) -> Result,
16684    FreeDescriptorSets => (
16685        device: Device,
16686        descriptorPool: DescriptorPool,
16687        descriptorSetCount: u32,
16688        pDescriptorSets: *const DescriptorSet,
16689    ) -> Result,
16690    UpdateDescriptorSets => (
16691        device: Device,
16692        descriptorWriteCount: u32,
16693        pDescriptorWrites: *const WriteDescriptorSet,
16694        descriptorCopyCount: u32,
16695        pDescriptorCopies: *const CopyDescriptorSet,
16696    ) -> (),
16697    CreateFramebuffer => (
16698        device: Device,
16699        pCreateInfo: *const FramebufferCreateInfo,
16700        pAllocator: *const AllocationCallbacks,
16701        pFramebuffer: *mut Framebuffer,
16702    ) -> Result,
16703    DestroyFramebuffer => (
16704        device: Device,
16705        framebuffer: Framebuffer,
16706        pAllocator: *const AllocationCallbacks,
16707    ) -> (),
16708    CreateRenderPass => (
16709        device: Device,
16710        pCreateInfo: *const RenderPassCreateInfo,
16711        pAllocator: *const AllocationCallbacks,
16712        pRenderPass: *mut RenderPass,
16713    ) -> Result,
16714    DestroyRenderPass => (
16715        device: Device,
16716        renderPass: RenderPass,
16717        pAllocator: *const AllocationCallbacks,
16718    ) -> (),
16719    GetRenderAreaGranularity => (
16720        device: Device,
16721        renderPass: RenderPass,
16722        pGranularity: *mut Extent2D,
16723    ) -> (),
16724    CreateCommandPool => (
16725        device: Device,
16726        pCreateInfo: *const CommandPoolCreateInfo,
16727        pAllocator: *const AllocationCallbacks,
16728        pCommandPool: *mut CommandPool,
16729    ) -> Result,
16730    DestroyCommandPool => (
16731        device: Device,
16732        commandPool: CommandPool,
16733        pAllocator: *const AllocationCallbacks,
16734    ) -> (),
16735    ResetCommandPool => (
16736        device: Device,
16737        commandPool: CommandPool,
16738        flags: CommandPoolResetFlags,
16739    ) -> Result,
16740    AllocateCommandBuffers => (
16741        device: Device,
16742        pAllocateInfo: *const CommandBufferAllocateInfo,
16743        pCommandBuffers: *mut CommandBuffer,
16744    ) -> Result,
16745    FreeCommandBuffers => (
16746        device: Device,
16747        commandPool: CommandPool,
16748        commandBufferCount: u32,
16749        pCommandBuffers: *const CommandBuffer,
16750    ) -> (),
16751    BeginCommandBuffer => (
16752        commandBuffer: CommandBuffer,
16753        pBeginInfo: *const CommandBufferBeginInfo,
16754    ) -> Result,
16755    EndCommandBuffer => (
16756        commandBuffer: CommandBuffer,
16757    ) -> Result,
16758    ResetCommandBuffer => (
16759        commandBuffer: CommandBuffer,
16760        flags: CommandBufferResetFlags,
16761    ) -> Result,
16762    CmdBindPipeline => (
16763        commandBuffer: CommandBuffer,
16764        pipelineBindPoint: PipelineBindPoint,
16765        pipeline: Pipeline,
16766    ) -> (),
16767    CmdSetViewport => (
16768        commandBuffer: CommandBuffer,
16769        firstViewport: u32,
16770        viewportCount: u32,
16771        pViewports: *const Viewport,
16772    ) -> (),
16773    CmdSetScissor => (
16774        commandBuffer: CommandBuffer,
16775        firstScissor: u32,
16776        scissorCount: u32,
16777        pScissors: *const Rect2D,
16778    ) -> (),
16779    CmdSetLineWidth => (
16780        commandBuffer: CommandBuffer,
16781        lineWidth: f32,
16782    ) -> (),
16783    CmdSetDepthBias => (
16784        commandBuffer: CommandBuffer,
16785        depthBiasConstantFactor: f32,
16786        depthBiasClamp: f32,
16787        depthBiasSlopeFactor: f32,
16788    ) -> (),
16789    CmdSetBlendConstants => (
16790        commandBuffer: CommandBuffer,
16791        blendConstants: [f32; 4],
16792    ) -> (),
16793    CmdSetDepthBounds => (
16794        commandBuffer: CommandBuffer,
16795        minDepthBounds: f32,
16796        maxDepthBounds: f32,
16797    ) -> (),
16798    CmdSetStencilCompareMask => (
16799        commandBuffer: CommandBuffer,
16800        faceMask: StencilFaceFlags,
16801        compareMask: u32,
16802    ) -> (),
16803    CmdSetStencilWriteMask => (
16804        commandBuffer: CommandBuffer,
16805        faceMask: StencilFaceFlags,
16806        writeMask: u32,
16807    ) -> (),
16808    CmdSetStencilReference => (
16809        commandBuffer: CommandBuffer,
16810        faceMask: StencilFaceFlags,
16811        reference: u32,
16812    ) -> (),
16813    CmdBindDescriptorSets => (
16814        commandBuffer: CommandBuffer,
16815        pipelineBindPoint: PipelineBindPoint,
16816        layout: PipelineLayout,
16817        firstSet: u32,
16818        descriptorSetCount: u32,
16819        pDescriptorSets: *const DescriptorSet,
16820        dynamicOffsetCount: u32,
16821        pDynamicOffsets: *const u32,
16822    ) -> (),
16823    CmdBindIndexBuffer => (
16824        commandBuffer: CommandBuffer,
16825        buffer: Buffer,
16826        offset: DeviceSize,
16827        indexType: IndexType,
16828    ) -> (),
16829    CmdBindVertexBuffers => (
16830        commandBuffer: CommandBuffer,
16831        firstBinding: u32,
16832        bindingCount: u32,
16833        pBuffers: *const Buffer,
16834        pOffsets: *const DeviceSize,
16835    ) -> (),
16836    CmdDraw => (
16837        commandBuffer: CommandBuffer,
16838        vertexCount: u32,
16839        instanceCount: u32,
16840        firstVertex: u32,
16841        firstInstance: u32,
16842    ) -> (),
16843    CmdDrawIndexed => (
16844        commandBuffer: CommandBuffer,
16845        indexCount: u32,
16846        instanceCount: u32,
16847        firstIndex: u32,
16848        vertexOffset: i32,
16849        firstInstance: u32,
16850    ) -> (),
16851    CmdDrawIndirect => (
16852        commandBuffer: CommandBuffer,
16853        buffer: Buffer,
16854        offset: DeviceSize,
16855        drawCount: u32,
16856        stride: u32,
16857    ) -> (),
16858    CmdDrawIndexedIndirect => (
16859        commandBuffer: CommandBuffer,
16860        buffer: Buffer,
16861        offset: DeviceSize,
16862        drawCount: u32,
16863        stride: u32,
16864    ) -> (),
16865    CmdDispatch => (
16866        commandBuffer: CommandBuffer,
16867        groupCountX: u32,
16868        groupCountY: u32,
16869        groupCountZ: u32,
16870    ) -> (),
16871    CmdDispatchIndirect => (
16872        commandBuffer: CommandBuffer,
16873        buffer: Buffer,
16874        offset: DeviceSize,
16875    ) -> (),
16876    CmdCopyBuffer => (
16877        commandBuffer: CommandBuffer,
16878        srcBuffer: Buffer,
16879        dstBuffer: Buffer,
16880        regionCount: u32,
16881        pRegions: *const BufferCopy,
16882    ) -> (),
16883    CmdCopyImage => (
16884        commandBuffer: CommandBuffer,
16885        srcImage: Image,
16886        srcImageLayout: ImageLayout,
16887        dstImage: Image,
16888        dstImageLayout: ImageLayout,
16889        regionCount: u32,
16890        pRegions: *const ImageCopy,
16891    ) -> (),
16892    CmdBlitImage => (
16893        commandBuffer: CommandBuffer,
16894        srcImage: Image,
16895        srcImageLayout: ImageLayout,
16896        dstImage: Image,
16897        dstImageLayout: ImageLayout,
16898        regionCount: u32,
16899        pRegions: *const ImageBlit,
16900        filter: Filter,
16901    ) -> (),
16902    CmdCopyBufferToImage => (
16903        commandBuffer: CommandBuffer,
16904        srcBuffer: Buffer,
16905        dstImage: Image,
16906        dstImageLayout: ImageLayout,
16907        regionCount: u32,
16908        pRegions: *const BufferImageCopy,
16909    ) -> (),
16910    CmdCopyImageToBuffer => (
16911        commandBuffer: CommandBuffer,
16912        srcImage: Image,
16913        srcImageLayout: ImageLayout,
16914        dstBuffer: Buffer,
16915        regionCount: u32,
16916        pRegions: *const BufferImageCopy,
16917    ) -> (),
16918    CmdUpdateBuffer => (
16919        commandBuffer: CommandBuffer,
16920        dstBuffer: Buffer,
16921        dstOffset: DeviceSize,
16922        dataSize: DeviceSize,
16923        pData: *const c_void,
16924    ) -> (),
16925    CmdFillBuffer => (
16926        commandBuffer: CommandBuffer,
16927        dstBuffer: Buffer,
16928        dstOffset: DeviceSize,
16929        size: DeviceSize,
16930        data: u32,
16931    ) -> (),
16932    CmdClearColorImage => (
16933        commandBuffer: CommandBuffer,
16934        image: Image,
16935        imageLayout: ImageLayout,
16936        pColor: *const ClearColorValue,
16937        rangeCount: u32,
16938        pRanges: *const ImageSubresourceRange,
16939    ) -> (),
16940    CmdClearDepthStencilImage => (
16941        commandBuffer: CommandBuffer,
16942        image: Image,
16943        imageLayout: ImageLayout,
16944        pDepthStencil: *const ClearDepthStencilValue,
16945        rangeCount: u32,
16946        pRanges: *const ImageSubresourceRange,
16947    ) -> (),
16948    CmdClearAttachments => (
16949        commandBuffer: CommandBuffer,
16950        attachmentCount: u32,
16951        pAttachments: *const ClearAttachment,
16952        rectCount: u32,
16953        pRects: *const ClearRect,
16954    ) -> (),
16955    CmdResolveImage => (
16956        commandBuffer: CommandBuffer,
16957        srcImage: Image,
16958        srcImageLayout: ImageLayout,
16959        dstImage: Image,
16960        dstImageLayout: ImageLayout,
16961        regionCount: u32,
16962        pRegions: *const ImageResolve,
16963    ) -> (),
16964    CmdSetEvent => (
16965        commandBuffer: CommandBuffer,
16966        event: Event,
16967        stageMask: PipelineStageFlags,
16968    ) -> (),
16969    CmdResetEvent => (
16970        commandBuffer: CommandBuffer,
16971        event: Event,
16972        stageMask: PipelineStageFlags,
16973    ) -> (),
16974    CmdWaitEvents => (
16975        commandBuffer: CommandBuffer,
16976        eventCount: u32,
16977        pEvents: *const Event,
16978        srcStageMask: PipelineStageFlags,
16979        dstStageMask: PipelineStageFlags,
16980        memoryBarrierCount: u32,
16981        pMemoryBarriers: *const MemoryBarrier,
16982        bufferMemoryBarrierCount: u32,
16983        pBufferMemoryBarriers: *const BufferMemoryBarrier,
16984        imageMemoryBarrierCount: u32,
16985        pImageMemoryBarriers: *const ImageMemoryBarrier,
16986    ) -> (),
16987    CmdPipelineBarrier => (
16988        commandBuffer: CommandBuffer,
16989        srcStageMask: PipelineStageFlags,
16990        dstStageMask: PipelineStageFlags,
16991        dependencyFlags: DependencyFlags,
16992        memoryBarrierCount: u32,
16993        pMemoryBarriers: *const MemoryBarrier,
16994        bufferMemoryBarrierCount: u32,
16995        pBufferMemoryBarriers: *const BufferMemoryBarrier,
16996        imageMemoryBarrierCount: u32,
16997        pImageMemoryBarriers: *const ImageMemoryBarrier,
16998    ) -> (),
16999    CmdBeginQuery => (
17000        commandBuffer: CommandBuffer,
17001        queryPool: QueryPool,
17002        query: u32,
17003        flags: QueryControlFlags,
17004    ) -> (),
17005    CmdEndQuery => (
17006        commandBuffer: CommandBuffer,
17007        queryPool: QueryPool,
17008        query: u32,
17009    ) -> (),
17010    CmdResetQueryPool => (
17011        commandBuffer: CommandBuffer,
17012        queryPool: QueryPool,
17013        firstQuery: u32,
17014        queryCount: u32,
17015    ) -> (),
17016    CmdWriteTimestamp => (
17017        commandBuffer: CommandBuffer,
17018        pipelineStage: PipelineStageFlagBits,
17019        queryPool: QueryPool,
17020        query: u32,
17021    ) -> (),
17022    CmdCopyQueryPoolResults => (
17023        commandBuffer: CommandBuffer,
17024        queryPool: QueryPool,
17025        firstQuery: u32,
17026        queryCount: u32,
17027        dstBuffer: Buffer,
17028        dstOffset: DeviceSize,
17029        stride: DeviceSize,
17030        flags: QueryResultFlags,
17031    ) -> (),
17032    CmdPushConstants => (
17033        commandBuffer: CommandBuffer,
17034        layout: PipelineLayout,
17035        stageFlags: ShaderStageFlags,
17036        offset: u32,
17037        size: u32,
17038        pValues: *const c_void,
17039    ) -> (),
17040    CmdBeginRenderPass => (
17041        commandBuffer: CommandBuffer,
17042        pRenderPassBegin: *const RenderPassBeginInfo,
17043        contents: SubpassContents,
17044    ) -> (),
17045    CmdNextSubpass => (
17046        commandBuffer: CommandBuffer,
17047        contents: SubpassContents,
17048    ) -> (),
17049    CmdEndRenderPass => (
17050        commandBuffer: CommandBuffer,
17051    ) -> (),
17052    CmdExecuteCommands => (
17053        commandBuffer: CommandBuffer,
17054        commandBufferCount: u32,
17055        pCommandBuffers: *const CommandBuffer,
17056    ) -> (),
17057    BindBufferMemory2 => (
17058        device: Device,
17059        bindInfoCount: u32,
17060        pBindInfos: *const BindBufferMemoryInfo,
17061    ) -> Result,
17062    BindImageMemory2 => (
17063        device: Device,
17064        bindInfoCount: u32,
17065        pBindInfos: *const BindImageMemoryInfo,
17066    ) -> Result,
17067    GetDeviceGroupPeerMemoryFeatures => (
17068        device: Device,
17069        heapIndex: u32,
17070        localDeviceIndex: u32,
17071        remoteDeviceIndex: u32,
17072        pPeerMemoryFeatures: *mut PeerMemoryFeatureFlags,
17073    ) -> (),
17074    CmdSetDeviceMask => (
17075        commandBuffer: CommandBuffer,
17076        deviceMask: u32,
17077    ) -> (),
17078    CmdDispatchBase => (
17079        commandBuffer: CommandBuffer,
17080        baseGroupX: u32,
17081        baseGroupY: u32,
17082        baseGroupZ: u32,
17083        groupCountX: u32,
17084        groupCountY: u32,
17085        groupCountZ: u32,
17086    ) -> (),
17087    GetImageMemoryRequirements2 => (
17088        device: Device,
17089        pInfo: *const ImageMemoryRequirementsInfo2,
17090        pMemoryRequirements: *mut MemoryRequirements2,
17091    ) -> (),
17092    GetBufferMemoryRequirements2 => (
17093        device: Device,
17094        pInfo: *const BufferMemoryRequirementsInfo2,
17095        pMemoryRequirements: *mut MemoryRequirements2,
17096    ) -> (),
17097    GetImageSparseMemoryRequirements2 => (
17098        device: Device,
17099        pInfo: *const ImageSparseMemoryRequirementsInfo2,
17100        pSparseMemoryRequirementCount: *mut u32,
17101        pSparseMemoryRequirements: *mut SparseImageMemoryRequirements2,
17102    ) -> (),
17103    TrimCommandPool => (
17104        device: Device,
17105        commandPool: CommandPool,
17106        flags: CommandPoolTrimFlags,
17107    ) -> (),
17108    GetDeviceQueue2 => (
17109        device: Device,
17110        pQueueInfo: *const DeviceQueueInfo2,
17111        pQueue: *mut Queue,
17112    ) -> (),
17113    CreateSamplerYcbcrConversion => (
17114        device: Device,
17115        pCreateInfo: *const SamplerYcbcrConversionCreateInfo,
17116        pAllocator: *const AllocationCallbacks,
17117        pYcbcrConversion: *mut SamplerYcbcrConversion,
17118    ) -> Result,
17119    DestroySamplerYcbcrConversion => (
17120        device: Device,
17121        ycbcrConversion: SamplerYcbcrConversion,
17122        pAllocator: *const AllocationCallbacks,
17123    ) -> (),
17124    CreateDescriptorUpdateTemplate => (
17125        device: Device,
17126        pCreateInfo: *const DescriptorUpdateTemplateCreateInfo,
17127        pAllocator: *const AllocationCallbacks,
17128        pDescriptorUpdateTemplate: *mut DescriptorUpdateTemplate,
17129    ) -> Result,
17130    DestroyDescriptorUpdateTemplate => (
17131        device: Device,
17132        descriptorUpdateTemplate: DescriptorUpdateTemplate,
17133        pAllocator: *const AllocationCallbacks,
17134    ) -> (),
17135    UpdateDescriptorSetWithTemplate => (
17136        device: Device,
17137        descriptorSet: DescriptorSet,
17138        descriptorUpdateTemplate: DescriptorUpdateTemplate,
17139        pData: *const c_void,
17140    ) -> (),
17141    GetDescriptorSetLayoutSupport => (
17142        device: Device,
17143        pCreateInfo: *const DescriptorSetLayoutCreateInfo,
17144        pSupport: *mut DescriptorSetLayoutSupport,
17145    ) -> (),
17146    CmdDrawIndirectCount => (
17147        commandBuffer: CommandBuffer,
17148        buffer: Buffer,
17149        offset: DeviceSize,
17150        countBuffer: Buffer,
17151        countBufferOffset: DeviceSize,
17152        maxDrawCount: u32,
17153        stride: u32,
17154    ) -> (),
17155    CmdDrawIndexedIndirectCount => (
17156        commandBuffer: CommandBuffer,
17157        buffer: Buffer,
17158        offset: DeviceSize,
17159        countBuffer: Buffer,
17160        countBufferOffset: DeviceSize,
17161        maxDrawCount: u32,
17162        stride: u32,
17163    ) -> (),
17164    CreateRenderPass2 => (
17165        device: Device,
17166        pCreateInfo: *const RenderPassCreateInfo2,
17167        pAllocator: *const AllocationCallbacks,
17168        pRenderPass: *mut RenderPass,
17169    ) -> Result,
17170    CmdBeginRenderPass2 => (
17171        commandBuffer: CommandBuffer,
17172        pRenderPassBegin: *const RenderPassBeginInfo,
17173        pSubpassBeginInfo: *const SubpassBeginInfo,
17174    ) -> (),
17175    CmdNextSubpass2 => (
17176        commandBuffer: CommandBuffer,
17177        pSubpassBeginInfo: *const SubpassBeginInfo,
17178        pSubpassEndInfo: *const SubpassEndInfo,
17179    ) -> (),
17180    CmdEndRenderPass2 => (
17181        commandBuffer: CommandBuffer,
17182        pSubpassEndInfo: *const SubpassEndInfo,
17183    ) -> (),
17184    ResetQueryPool => (
17185        device: Device,
17186        queryPool: QueryPool,
17187        firstQuery: u32,
17188        queryCount: u32,
17189    ) -> (),
17190    GetSemaphoreCounterValue => (
17191        device: Device,
17192        semaphore: Semaphore,
17193        pValue: *mut u64,
17194    ) -> Result,
17195    WaitSemaphores => (
17196        device: Device,
17197        pWaitInfo: *const SemaphoreWaitInfo,
17198        timeout: u64,
17199    ) -> Result,
17200    SignalSemaphore => (
17201        device: Device,
17202        pSignalInfo: *const SemaphoreSignalInfo,
17203    ) -> Result,
17204    GetBufferDeviceAddress => (
17205        device: Device,
17206        pInfo: *const BufferDeviceAddressInfo,
17207    ) -> DeviceAddress,
17208    GetBufferOpaqueCaptureAddress => (
17209        device: Device,
17210        pInfo: *const BufferDeviceAddressInfo,
17211    ) -> u64,
17212    GetDeviceMemoryOpaqueCaptureAddress => (
17213        device: Device,
17214        pInfo: *const DeviceMemoryOpaqueCaptureAddressInfo,
17215    ) -> u64,
17216    CreatePrivateDataSlot => (
17217        device: Device,
17218        pCreateInfo: *const PrivateDataSlotCreateInfo,
17219        pAllocator: *const AllocationCallbacks,
17220        pPrivateDataSlot: *mut PrivateDataSlot,
17221    ) -> Result,
17222    DestroyPrivateDataSlot => (
17223        device: Device,
17224        privateDataSlot: PrivateDataSlot,
17225        pAllocator: *const AllocationCallbacks,
17226    ) -> (),
17227    SetPrivateData => (
17228        device: Device,
17229        objectType: ObjectType,
17230        objectHandle: u64,
17231        privateDataSlot: PrivateDataSlot,
17232        data: u64,
17233    ) -> Result,
17234    GetPrivateData => (
17235        device: Device,
17236        objectType: ObjectType,
17237        objectHandle: u64,
17238        privateDataSlot: PrivateDataSlot,
17239        pData: *mut u64,
17240    ) -> (),
17241    CmdSetEvent2 => (
17242        commandBuffer: CommandBuffer,
17243        event: Event,
17244        pDependencyInfo: *const DependencyInfo,
17245    ) -> (),
17246    CmdResetEvent2 => (
17247        commandBuffer: CommandBuffer,
17248        event: Event,
17249        stageMask: PipelineStageFlags2,
17250    ) -> (),
17251    CmdWaitEvents2 => (
17252        commandBuffer: CommandBuffer,
17253        eventCount: u32,
17254        pEvents: *const Event,
17255        pDependencyInfos: *const DependencyInfo,
17256    ) -> (),
17257    CmdPipelineBarrier2 => (
17258        commandBuffer: CommandBuffer,
17259        pDependencyInfo: *const DependencyInfo,
17260    ) -> (),
17261    CmdWriteTimestamp2 => (
17262        commandBuffer: CommandBuffer,
17263        stage: PipelineStageFlags2,
17264        queryPool: QueryPool,
17265        query: u32,
17266    ) -> (),
17267    QueueSubmit2 => (
17268        queue: Queue,
17269        submitCount: u32,
17270        pSubmits: *const SubmitInfo2,
17271        fence: Fence,
17272    ) -> Result,
17273    CmdCopyBuffer2 => (
17274        commandBuffer: CommandBuffer,
17275        pCopyBufferInfo: *const CopyBufferInfo2,
17276    ) -> (),
17277    CmdCopyImage2 => (
17278        commandBuffer: CommandBuffer,
17279        pCopyImageInfo: *const CopyImageInfo2,
17280    ) -> (),
17281    CmdCopyBufferToImage2 => (
17282        commandBuffer: CommandBuffer,
17283        pCopyBufferToImageInfo: *const CopyBufferToImageInfo2,
17284    ) -> (),
17285    CmdCopyImageToBuffer2 => (
17286        commandBuffer: CommandBuffer,
17287        pCopyImageToBufferInfo: *const CopyImageToBufferInfo2,
17288    ) -> (),
17289    CmdBlitImage2 => (
17290        commandBuffer: CommandBuffer,
17291        pBlitImageInfo: *const BlitImageInfo2,
17292    ) -> (),
17293    CmdResolveImage2 => (
17294        commandBuffer: CommandBuffer,
17295        pResolveImageInfo: *const ResolveImageInfo2,
17296    ) -> (),
17297    CmdBeginRendering => (
17298        commandBuffer: CommandBuffer,
17299        pRenderingInfo: *const RenderingInfo,
17300    ) -> (),
17301    CmdEndRendering => (
17302        commandBuffer: CommandBuffer,
17303    ) -> (),
17304    CmdSetCullMode => (
17305        commandBuffer: CommandBuffer,
17306        cullMode: CullModeFlags,
17307    ) -> (),
17308    CmdSetFrontFace => (
17309        commandBuffer: CommandBuffer,
17310        frontFace: FrontFace,
17311    ) -> (),
17312    CmdSetPrimitiveTopology => (
17313        commandBuffer: CommandBuffer,
17314        primitiveTopology: PrimitiveTopology,
17315    ) -> (),
17316    CmdSetViewportWithCount => (
17317        commandBuffer: CommandBuffer,
17318        viewportCount: u32,
17319        pViewports: *const Viewport,
17320    ) -> (),
17321    CmdSetScissorWithCount => (
17322        commandBuffer: CommandBuffer,
17323        scissorCount: u32,
17324        pScissors: *const Rect2D,
17325    ) -> (),
17326    CmdBindVertexBuffers2 => (
17327        commandBuffer: CommandBuffer,
17328        firstBinding: u32,
17329        bindingCount: u32,
17330        pBuffers: *const Buffer,
17331        pOffsets: *const DeviceSize,
17332        pSizes: *const DeviceSize,
17333        pStrides: *const DeviceSize,
17334    ) -> (),
17335    CmdSetDepthTestEnable => (
17336        commandBuffer: CommandBuffer,
17337        depthTestEnable: Bool32,
17338    ) -> (),
17339    CmdSetDepthWriteEnable => (
17340        commandBuffer: CommandBuffer,
17341        depthWriteEnable: Bool32,
17342    ) -> (),
17343    CmdSetDepthCompareOp => (
17344        commandBuffer: CommandBuffer,
17345        depthCompareOp: CompareOp,
17346    ) -> (),
17347    CmdSetDepthBoundsTestEnable => (
17348        commandBuffer: CommandBuffer,
17349        depthBoundsTestEnable: Bool32,
17350    ) -> (),
17351    CmdSetStencilTestEnable => (
17352        commandBuffer: CommandBuffer,
17353        stencilTestEnable: Bool32,
17354    ) -> (),
17355    CmdSetStencilOp => (
17356        commandBuffer: CommandBuffer,
17357        faceMask: StencilFaceFlags,
17358        failOp: StencilOp,
17359        passOp: StencilOp,
17360        depthFailOp: StencilOp,
17361        compareOp: CompareOp,
17362    ) -> (),
17363    CmdSetRasterizerDiscardEnable => (
17364        commandBuffer: CommandBuffer,
17365        rasterizerDiscardEnable: Bool32,
17366    ) -> (),
17367    CmdSetDepthBiasEnable => (
17368        commandBuffer: CommandBuffer,
17369        depthBiasEnable: Bool32,
17370    ) -> (),
17371    CmdSetPrimitiveRestartEnable => (
17372        commandBuffer: CommandBuffer,
17373        primitiveRestartEnable: Bool32,
17374    ) -> (),
17375    GetDeviceBufferMemoryRequirements => (
17376        device: Device,
17377        pInfo: *const DeviceBufferMemoryRequirements,
17378        pMemoryRequirements: *mut MemoryRequirements2,
17379    ) -> (),
17380    GetDeviceImageMemoryRequirements => (
17381        device: Device,
17382        pInfo: *const DeviceImageMemoryRequirements,
17383        pMemoryRequirements: *mut MemoryRequirements2,
17384    ) -> (),
17385    GetDeviceImageSparseMemoryRequirements => (
17386        device: Device,
17387        pInfo: *const DeviceImageMemoryRequirements,
17388        pSparseMemoryRequirementCount: *mut u32,
17389        pSparseMemoryRequirements: *mut SparseImageMemoryRequirements2,
17390    ) -> (),
17391    CreateSwapchainKHR => (
17392        device: Device,
17393        pCreateInfo: *const SwapchainCreateInfoKHR,
17394        pAllocator: *const AllocationCallbacks,
17395        pSwapchain: *mut SwapchainKHR,
17396    ) -> Result,
17397    DestroySwapchainKHR => (
17398        device: Device,
17399        swapchain: SwapchainKHR,
17400        pAllocator: *const AllocationCallbacks,
17401    ) -> (),
17402    GetSwapchainImagesKHR => (
17403        device: Device,
17404        swapchain: SwapchainKHR,
17405        pSwapchainImageCount: *mut u32,
17406        pSwapchainImages: *mut Image,
17407    ) -> Result,
17408    AcquireNextImageKHR => (
17409        device: Device,
17410        swapchain: SwapchainKHR,
17411        timeout: u64,
17412        semaphore: Semaphore,
17413        fence: Fence,
17414        pImageIndex: *mut u32,
17415    ) -> Result,
17416    QueuePresentKHR => (
17417        queue: Queue,
17418        pPresentInfo: *const PresentInfoKHR,
17419    ) -> Result,
17420    GetDeviceGroupPresentCapabilitiesKHR => (
17421        device: Device,
17422        pDeviceGroupPresentCapabilities: *mut DeviceGroupPresentCapabilitiesKHR,
17423    ) -> Result,
17424    GetDeviceGroupSurfacePresentModesKHR => (
17425        device: Device,
17426        surface: SurfaceKHR,
17427        pModes: *mut DeviceGroupPresentModeFlagsKHR,
17428    ) -> Result,
17429    AcquireNextImage2KHR => (
17430        device: Device,
17431        pAcquireInfo: *const AcquireNextImageInfoKHR,
17432        pImageIndex: *mut u32,
17433    ) -> Result,
17434    CreateSharedSwapchainsKHR => (
17435        device: Device,
17436        swapchainCount: u32,
17437        pCreateInfos: *const SwapchainCreateInfoKHR,
17438        pAllocator: *const AllocationCallbacks,
17439        pSwapchains: *mut SwapchainKHR,
17440    ) -> Result,
17441    DebugMarkerSetObjectTagEXT => (
17442        device: Device,
17443        pTagInfo: *const DebugMarkerObjectTagInfoEXT,
17444    ) -> Result,
17445    DebugMarkerSetObjectNameEXT => (
17446        device: Device,
17447        pNameInfo: *const DebugMarkerObjectNameInfoEXT,
17448    ) -> Result,
17449    CmdDebugMarkerBeginEXT => (
17450        commandBuffer: CommandBuffer,
17451        pMarkerInfo: *const DebugMarkerMarkerInfoEXT,
17452    ) -> (),
17453    CmdDebugMarkerEndEXT => (
17454        commandBuffer: CommandBuffer,
17455    ) -> (),
17456    CmdDebugMarkerInsertEXT => (
17457        commandBuffer: CommandBuffer,
17458        pMarkerInfo: *const DebugMarkerMarkerInfoEXT,
17459    ) -> (),
17460    CreateVideoSessionKHR => (
17461        device: Device,
17462        pCreateInfo: *const VideoSessionCreateInfoKHR,
17463        pAllocator: *const AllocationCallbacks,
17464        pVideoSession: *mut VideoSessionKHR,
17465    ) -> Result,
17466    DestroyVideoSessionKHR => (
17467        device: Device,
17468        videoSession: VideoSessionKHR,
17469        pAllocator: *const AllocationCallbacks,
17470    ) -> (),
17471    GetVideoSessionMemoryRequirementsKHR => (
17472        device: Device,
17473        videoSession: VideoSessionKHR,
17474        pMemoryRequirementsCount: *mut u32,
17475        pMemoryRequirements: *mut VideoSessionMemoryRequirementsKHR,
17476    ) -> Result,
17477    BindVideoSessionMemoryKHR => (
17478        device: Device,
17479        videoSession: VideoSessionKHR,
17480        bindSessionMemoryInfoCount: u32,
17481        pBindSessionMemoryInfos: *const BindVideoSessionMemoryInfoKHR,
17482    ) -> Result,
17483    CreateVideoSessionParametersKHR => (
17484        device: Device,
17485        pCreateInfo: *const VideoSessionParametersCreateInfoKHR,
17486        pAllocator: *const AllocationCallbacks,
17487        pVideoSessionParameters: *mut VideoSessionParametersKHR,
17488    ) -> Result,
17489    UpdateVideoSessionParametersKHR => (
17490        device: Device,
17491        videoSessionParameters: VideoSessionParametersKHR,
17492        pUpdateInfo: *const VideoSessionParametersUpdateInfoKHR,
17493    ) -> Result,
17494    DestroyVideoSessionParametersKHR => (
17495        device: Device,
17496        videoSessionParameters: VideoSessionParametersKHR,
17497        pAllocator: *const AllocationCallbacks,
17498    ) -> (),
17499    CmdBeginVideoCodingKHR => (
17500        commandBuffer: CommandBuffer,
17501        pBeginInfo: *const VideoBeginCodingInfoKHR,
17502    ) -> (),
17503    CmdEndVideoCodingKHR => (
17504        commandBuffer: CommandBuffer,
17505        pEndCodingInfo: *const VideoEndCodingInfoKHR,
17506    ) -> (),
17507    CmdControlVideoCodingKHR => (
17508        commandBuffer: CommandBuffer,
17509        pCodingControlInfo: *const VideoCodingControlInfoKHR,
17510    ) -> (),
17511    CmdDecodeVideoKHR => (
17512        commandBuffer: CommandBuffer,
17513        pDecodeInfo: *const VideoDecodeInfoKHR,
17514    ) -> (),
17515    CmdBindTransformFeedbackBuffersEXT => (
17516        commandBuffer: CommandBuffer,
17517        firstBinding: u32,
17518        bindingCount: u32,
17519        pBuffers: *const Buffer,
17520        pOffsets: *const DeviceSize,
17521        pSizes: *const DeviceSize,
17522    ) -> (),
17523    CmdBeginTransformFeedbackEXT => (
17524        commandBuffer: CommandBuffer,
17525        firstCounterBuffer: u32,
17526        counterBufferCount: u32,
17527        pCounterBuffers: *const Buffer,
17528        pCounterBufferOffsets: *const DeviceSize,
17529    ) -> (),
17530    CmdEndTransformFeedbackEXT => (
17531        commandBuffer: CommandBuffer,
17532        firstCounterBuffer: u32,
17533        counterBufferCount: u32,
17534        pCounterBuffers: *const Buffer,
17535        pCounterBufferOffsets: *const DeviceSize,
17536    ) -> (),
17537    CmdBeginQueryIndexedEXT => (
17538        commandBuffer: CommandBuffer,
17539        queryPool: QueryPool,
17540        query: u32,
17541        flags: QueryControlFlags,
17542        index: u32,
17543    ) -> (),
17544    CmdEndQueryIndexedEXT => (
17545        commandBuffer: CommandBuffer,
17546        queryPool: QueryPool,
17547        query: u32,
17548        index: u32,
17549    ) -> (),
17550    CmdDrawIndirectByteCountEXT => (
17551        commandBuffer: CommandBuffer,
17552        instanceCount: u32,
17553        firstInstance: u32,
17554        counterBuffer: Buffer,
17555        counterBufferOffset: DeviceSize,
17556        counterOffset: u32,
17557        vertexStride: u32,
17558    ) -> (),
17559    CreateCuModuleNVX => (
17560        device: Device,
17561        pCreateInfo: *const CuModuleCreateInfoNVX,
17562        pAllocator: *const AllocationCallbacks,
17563        pModule: *mut CuModuleNVX,
17564    ) -> Result,
17565    CreateCuFunctionNVX => (
17566        device: Device,
17567        pCreateInfo: *const CuFunctionCreateInfoNVX,
17568        pAllocator: *const AllocationCallbacks,
17569        pFunction: *mut CuFunctionNVX,
17570    ) -> Result,
17571    DestroyCuModuleNVX => (
17572        device: Device,
17573        module: CuModuleNVX,
17574        pAllocator: *const AllocationCallbacks,
17575    ) -> (),
17576    DestroyCuFunctionNVX => (
17577        device: Device,
17578        function: CuFunctionNVX,
17579        pAllocator: *const AllocationCallbacks,
17580    ) -> (),
17581    CmdCuLaunchKernelNVX => (
17582        commandBuffer: CommandBuffer,
17583        pLaunchInfo: *const CuLaunchInfoNVX,
17584    ) -> (),
17585    GetImageViewHandleNVX => (
17586        device: Device,
17587        pInfo: *const ImageViewHandleInfoNVX,
17588    ) -> u32,
17589    GetImageViewAddressNVX => (
17590        device: Device,
17591        imageView: ImageView,
17592        pProperties: *mut ImageViewAddressPropertiesNVX,
17593    ) -> Result,
17594    CmdDrawIndirectCountAMD => (
17595        commandBuffer: CommandBuffer,
17596        buffer: Buffer,
17597        offset: DeviceSize,
17598        countBuffer: Buffer,
17599        countBufferOffset: DeviceSize,
17600        maxDrawCount: u32,
17601        stride: u32,
17602    ) -> (),
17603    CmdDrawIndexedIndirectCountAMD => (
17604        commandBuffer: CommandBuffer,
17605        buffer: Buffer,
17606        offset: DeviceSize,
17607        countBuffer: Buffer,
17608        countBufferOffset: DeviceSize,
17609        maxDrawCount: u32,
17610        stride: u32,
17611    ) -> (),
17612    GetShaderInfoAMD => (
17613        device: Device,
17614        pipeline: Pipeline,
17615        shaderStage: ShaderStageFlagBits,
17616        infoType: ShaderInfoTypeAMD,
17617        pInfoSize: *mut usize,
17618        pInfo: *mut c_void,
17619    ) -> Result,
17620    CmdBeginRenderingKHR => (
17621        commandBuffer: CommandBuffer,
17622        pRenderingInfo: *const RenderingInfo,
17623    ) -> (),
17624    CmdEndRenderingKHR => (
17625        commandBuffer: CommandBuffer,
17626    ) -> (),
17627    GetDeviceGroupPeerMemoryFeaturesKHR => (
17628        device: Device,
17629        heapIndex: u32,
17630        localDeviceIndex: u32,
17631        remoteDeviceIndex: u32,
17632        pPeerMemoryFeatures: *mut PeerMemoryFeatureFlags,
17633    ) -> (),
17634    CmdSetDeviceMaskKHR => (
17635        commandBuffer: CommandBuffer,
17636        deviceMask: u32,
17637    ) -> (),
17638    CmdDispatchBaseKHR => (
17639        commandBuffer: CommandBuffer,
17640        baseGroupX: u32,
17641        baseGroupY: u32,
17642        baseGroupZ: u32,
17643        groupCountX: u32,
17644        groupCountY: u32,
17645        groupCountZ: u32,
17646    ) -> (),
17647    TrimCommandPoolKHR => (
17648        device: Device,
17649        commandPool: CommandPool,
17650        flags: CommandPoolTrimFlags,
17651    ) -> (),
17652    GetMemoryFdKHR => (
17653        device: Device,
17654        pGetFdInfo: *const MemoryGetFdInfoKHR,
17655        pFd: *mut c_int,
17656    ) -> Result,
17657    GetMemoryFdPropertiesKHR => (
17658        device: Device,
17659        handleType: ExternalMemoryHandleTypeFlagBits,
17660        fd: c_int,
17661        pMemoryFdProperties: *mut MemoryFdPropertiesKHR,
17662    ) -> Result,
17663    ImportSemaphoreFdKHR => (
17664        device: Device,
17665        pImportSemaphoreFdInfo: *const ImportSemaphoreFdInfoKHR,
17666    ) -> Result,
17667    GetSemaphoreFdKHR => (
17668        device: Device,
17669        pGetFdInfo: *const SemaphoreGetFdInfoKHR,
17670        pFd: *mut c_int,
17671    ) -> Result,
17672    CmdPushDescriptorSetKHR => (
17673        commandBuffer: CommandBuffer,
17674        pipelineBindPoint: PipelineBindPoint,
17675        layout: PipelineLayout,
17676        set: u32,
17677        descriptorWriteCount: u32,
17678        pDescriptorWrites: *const WriteDescriptorSet,
17679    ) -> (),
17680    CmdPushDescriptorSetWithTemplateKHR => (
17681        commandBuffer: CommandBuffer,
17682        descriptorUpdateTemplate: DescriptorUpdateTemplate,
17683        layout: PipelineLayout,
17684        set: u32,
17685        pData: *const c_void,
17686    ) -> (),
17687    CmdBeginConditionalRenderingEXT => (
17688        commandBuffer: CommandBuffer,
17689        pConditionalRenderingBegin: *const ConditionalRenderingBeginInfoEXT,
17690    ) -> (),
17691    CmdEndConditionalRenderingEXT => (
17692        commandBuffer: CommandBuffer,
17693    ) -> (),
17694    CreateDescriptorUpdateTemplateKHR => (
17695        device: Device,
17696        pCreateInfo: *const DescriptorUpdateTemplateCreateInfo,
17697        pAllocator: *const AllocationCallbacks,
17698        pDescriptorUpdateTemplate: *mut DescriptorUpdateTemplate,
17699    ) -> Result,
17700    DestroyDescriptorUpdateTemplateKHR => (
17701        device: Device,
17702        descriptorUpdateTemplate: DescriptorUpdateTemplate,
17703        pAllocator: *const AllocationCallbacks,
17704    ) -> (),
17705    UpdateDescriptorSetWithTemplateKHR => (
17706        device: Device,
17707        descriptorSet: DescriptorSet,
17708        descriptorUpdateTemplate: DescriptorUpdateTemplate,
17709        pData: *const c_void,
17710    ) -> (),
17711    CmdSetViewportWScalingNV => (
17712        commandBuffer: CommandBuffer,
17713        firstViewport: u32,
17714        viewportCount: u32,
17715        pViewportWScalings: *const ViewportWScalingNV,
17716    ) -> (),
17717    DisplayPowerControlEXT => (
17718        device: Device,
17719        display: DisplayKHR,
17720        pDisplayPowerInfo: *const DisplayPowerInfoEXT,
17721    ) -> Result,
17722    RegisterDeviceEventEXT => (
17723        device: Device,
17724        pDeviceEventInfo: *const DeviceEventInfoEXT,
17725        pAllocator: *const AllocationCallbacks,
17726        pFence: *mut Fence,
17727    ) -> Result,
17728    RegisterDisplayEventEXT => (
17729        device: Device,
17730        display: DisplayKHR,
17731        pDisplayEventInfo: *const DisplayEventInfoEXT,
17732        pAllocator: *const AllocationCallbacks,
17733        pFence: *mut Fence,
17734    ) -> Result,
17735    GetSwapchainCounterEXT => (
17736        device: Device,
17737        swapchain: SwapchainKHR,
17738        counter: SurfaceCounterFlagBitsEXT,
17739        pCounterValue: *mut u64,
17740    ) -> Result,
17741    GetRefreshCycleDurationGOOGLE => (
17742        device: Device,
17743        swapchain: SwapchainKHR,
17744        pDisplayTimingProperties: *mut RefreshCycleDurationGOOGLE,
17745    ) -> Result,
17746    GetPastPresentationTimingGOOGLE => (
17747        device: Device,
17748        swapchain: SwapchainKHR,
17749        pPresentationTimingCount: *mut u32,
17750        pPresentationTimings: *mut PastPresentationTimingGOOGLE,
17751    ) -> Result,
17752    CmdSetDiscardRectangleEXT => (
17753        commandBuffer: CommandBuffer,
17754        firstDiscardRectangle: u32,
17755        discardRectangleCount: u32,
17756        pDiscardRectangles: *const Rect2D,
17757    ) -> (),
17758    SetHdrMetadataEXT => (
17759        device: Device,
17760        swapchainCount: u32,
17761        pSwapchains: *const SwapchainKHR,
17762        pMetadata: *const HdrMetadataEXT,
17763    ) -> (),
17764    CreateRenderPass2KHR => (
17765        device: Device,
17766        pCreateInfo: *const RenderPassCreateInfo2,
17767        pAllocator: *const AllocationCallbacks,
17768        pRenderPass: *mut RenderPass,
17769    ) -> Result,
17770    CmdBeginRenderPass2KHR => (
17771        commandBuffer: CommandBuffer,
17772        pRenderPassBegin: *const RenderPassBeginInfo,
17773        pSubpassBeginInfo: *const SubpassBeginInfo,
17774    ) -> (),
17775    CmdNextSubpass2KHR => (
17776        commandBuffer: CommandBuffer,
17777        pSubpassBeginInfo: *const SubpassBeginInfo,
17778        pSubpassEndInfo: *const SubpassEndInfo,
17779    ) -> (),
17780    CmdEndRenderPass2KHR => (
17781        commandBuffer: CommandBuffer,
17782        pSubpassEndInfo: *const SubpassEndInfo,
17783    ) -> (),
17784    GetSwapchainStatusKHR => (
17785        device: Device,
17786        swapchain: SwapchainKHR,
17787    ) -> Result,
17788    ImportFenceFdKHR => (
17789        device: Device,
17790        pImportFenceFdInfo: *const ImportFenceFdInfoKHR,
17791    ) -> Result,
17792    GetFenceFdKHR => (
17793        device: Device,
17794        pGetFdInfo: *const FenceGetFdInfoKHR,
17795        pFd: *mut c_int,
17796    ) -> Result,
17797    AcquireProfilingLockKHR => (
17798        device: Device,
17799        pInfo: *const AcquireProfilingLockInfoKHR,
17800    ) -> Result,
17801    ReleaseProfilingLockKHR => (
17802        device: Device,
17803    ) -> (),
17804    SetDebugUtilsObjectNameEXT => (
17805        device: Device,
17806        pNameInfo: *const DebugUtilsObjectNameInfoEXT,
17807    ) -> Result,
17808    SetDebugUtilsObjectTagEXT => (
17809        device: Device,
17810        pTagInfo: *const DebugUtilsObjectTagInfoEXT,
17811    ) -> Result,
17812    QueueBeginDebugUtilsLabelEXT => (
17813        queue: Queue,
17814        pLabelInfo: *const DebugUtilsLabelEXT,
17815    ) -> (),
17816    QueueEndDebugUtilsLabelEXT => (
17817        queue: Queue,
17818    ) -> (),
17819    QueueInsertDebugUtilsLabelEXT => (
17820        queue: Queue,
17821        pLabelInfo: *const DebugUtilsLabelEXT,
17822    ) -> (),
17823    CmdBeginDebugUtilsLabelEXT => (
17824        commandBuffer: CommandBuffer,
17825        pLabelInfo: *const DebugUtilsLabelEXT,
17826    ) -> (),
17827    CmdEndDebugUtilsLabelEXT => (
17828        commandBuffer: CommandBuffer,
17829    ) -> (),
17830    CmdInsertDebugUtilsLabelEXT => (
17831        commandBuffer: CommandBuffer,
17832        pLabelInfo: *const DebugUtilsLabelEXT,
17833    ) -> (),
17834    CmdSetSampleLocationsEXT => (
17835        commandBuffer: CommandBuffer,
17836        pSampleLocationsInfo: *const SampleLocationsInfoEXT,
17837    ) -> (),
17838    GetImageMemoryRequirements2KHR => (
17839        device: Device,
17840        pInfo: *const ImageMemoryRequirementsInfo2,
17841        pMemoryRequirements: *mut MemoryRequirements2,
17842    ) -> (),
17843    GetBufferMemoryRequirements2KHR => (
17844        device: Device,
17845        pInfo: *const BufferMemoryRequirementsInfo2,
17846        pMemoryRequirements: *mut MemoryRequirements2,
17847    ) -> (),
17848    GetImageSparseMemoryRequirements2KHR => (
17849        device: Device,
17850        pInfo: *const ImageSparseMemoryRequirementsInfo2,
17851        pSparseMemoryRequirementCount: *mut u32,
17852        pSparseMemoryRequirements: *mut SparseImageMemoryRequirements2,
17853    ) -> (),
17854    CreateAccelerationStructureKHR => (
17855        device: Device,
17856        pCreateInfo: *const AccelerationStructureCreateInfoKHR,
17857        pAllocator: *const AllocationCallbacks,
17858        pAccelerationStructure: *mut AccelerationStructureKHR,
17859    ) -> Result,
17860    DestroyAccelerationStructureKHR => (
17861        device: Device,
17862        accelerationStructure: AccelerationStructureKHR,
17863        pAllocator: *const AllocationCallbacks,
17864    ) -> (),
17865    CmdBuildAccelerationStructuresKHR => (
17866        commandBuffer: CommandBuffer,
17867        infoCount: u32,
17868        pInfos: *const AccelerationStructureBuildGeometryInfoKHR,
17869        ppBuildRangeInfos: *const *const AccelerationStructureBuildRangeInfoKHR,
17870    ) -> (),
17871    CmdBuildAccelerationStructuresIndirectKHR => (
17872        commandBuffer: CommandBuffer,
17873        infoCount: u32,
17874        pInfos: *const AccelerationStructureBuildGeometryInfoKHR,
17875        pIndirectDeviceAddresses: *const DeviceAddress,
17876        pIndirectStrides: *const u32,
17877        ppMaxPrimitiveCounts: *const *const u32,
17878    ) -> (),
17879    BuildAccelerationStructuresKHR => (
17880        device: Device,
17881        deferredOperation: DeferredOperationKHR,
17882        infoCount: u32,
17883        pInfos: *const AccelerationStructureBuildGeometryInfoKHR,
17884        ppBuildRangeInfos: *const *const AccelerationStructureBuildRangeInfoKHR,
17885    ) -> Result,
17886    CopyAccelerationStructureKHR => (
17887        device: Device,
17888        deferredOperation: DeferredOperationKHR,
17889        pInfo: *const CopyAccelerationStructureInfoKHR,
17890    ) -> Result,
17891    CopyAccelerationStructureToMemoryKHR => (
17892        device: Device,
17893        deferredOperation: DeferredOperationKHR,
17894        pInfo: *const CopyAccelerationStructureToMemoryInfoKHR,
17895    ) -> Result,
17896    CopyMemoryToAccelerationStructureKHR => (
17897        device: Device,
17898        deferredOperation: DeferredOperationKHR,
17899        pInfo: *const CopyMemoryToAccelerationStructureInfoKHR,
17900    ) -> Result,
17901    WriteAccelerationStructuresPropertiesKHR => (
17902        device: Device,
17903        accelerationStructureCount: u32,
17904        pAccelerationStructures: *const AccelerationStructureKHR,
17905        queryType: QueryType,
17906        dataSize: usize,
17907        pData: *mut c_void,
17908        stride: usize,
17909    ) -> Result,
17910    CmdCopyAccelerationStructureKHR => (
17911        commandBuffer: CommandBuffer,
17912        pInfo: *const CopyAccelerationStructureInfoKHR,
17913    ) -> (),
17914    CmdCopyAccelerationStructureToMemoryKHR => (
17915        commandBuffer: CommandBuffer,
17916        pInfo: *const CopyAccelerationStructureToMemoryInfoKHR,
17917    ) -> (),
17918    CmdCopyMemoryToAccelerationStructureKHR => (
17919        commandBuffer: CommandBuffer,
17920        pInfo: *const CopyMemoryToAccelerationStructureInfoKHR,
17921    ) -> (),
17922    GetAccelerationStructureDeviceAddressKHR => (
17923        device: Device,
17924        pInfo: *const AccelerationStructureDeviceAddressInfoKHR,
17925    ) -> DeviceAddress,
17926    CmdWriteAccelerationStructuresPropertiesKHR => (
17927        commandBuffer: CommandBuffer,
17928        accelerationStructureCount: u32,
17929        pAccelerationStructures: *const AccelerationStructureKHR,
17930        queryType: QueryType,
17931        queryPool: QueryPool,
17932        firstQuery: u32,
17933    ) -> (),
17934    GetDeviceAccelerationStructureCompatibilityKHR => (
17935        device: Device,
17936        pVersionInfo: *const AccelerationStructureVersionInfoKHR,
17937        pCompatibility: *mut AccelerationStructureCompatibilityKHR,
17938    ) -> (),
17939    GetAccelerationStructureBuildSizesKHR => (
17940        device: Device,
17941        buildType: AccelerationStructureBuildTypeKHR,
17942        pBuildInfo: *const AccelerationStructureBuildGeometryInfoKHR,
17943        pMaxPrimitiveCounts: *const u32,
17944        pSizeInfo: *mut AccelerationStructureBuildSizesInfoKHR,
17945    ) -> (),
17946    CmdTraceRaysKHR => (
17947        commandBuffer: CommandBuffer,
17948        pRaygenShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17949        pMissShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17950        pHitShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17951        pCallableShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17952        width: u32,
17953        height: u32,
17954        depth: u32,
17955    ) -> (),
17956    CreateRayTracingPipelinesKHR => (
17957        device: Device,
17958        deferredOperation: DeferredOperationKHR,
17959        pipelineCache: PipelineCache,
17960        createInfoCount: u32,
17961        pCreateInfos: *const RayTracingPipelineCreateInfoKHR,
17962        pAllocator: *const AllocationCallbacks,
17963        pPipelines: *mut Pipeline,
17964    ) -> Result,
17965    GetRayTracingShaderGroupHandlesKHR => (
17966        device: Device,
17967        pipeline: Pipeline,
17968        firstGroup: u32,
17969        groupCount: u32,
17970        dataSize: usize,
17971        pData: *mut c_void,
17972    ) -> Result,
17973    GetRayTracingCaptureReplayShaderGroupHandlesKHR => (
17974        device: Device,
17975        pipeline: Pipeline,
17976        firstGroup: u32,
17977        groupCount: u32,
17978        dataSize: usize,
17979        pData: *mut c_void,
17980    ) -> Result,
17981    CmdTraceRaysIndirectKHR => (
17982        commandBuffer: CommandBuffer,
17983        pRaygenShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17984        pMissShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17985        pHitShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17986        pCallableShaderBindingTable: *const StridedDeviceAddressRegionKHR,
17987        indirectDeviceAddress: DeviceAddress,
17988    ) -> (),
17989    GetRayTracingShaderGroupStackSizeKHR => (
17990        device: Device,
17991        pipeline: Pipeline,
17992        group: u32,
17993        groupShader: ShaderGroupShaderKHR,
17994    ) -> DeviceSize,
17995    CmdSetRayTracingPipelineStackSizeKHR => (
17996        commandBuffer: CommandBuffer,
17997        pipelineStackSize: u32,
17998    ) -> (),
17999    CreateSamplerYcbcrConversionKHR => (
18000        device: Device,
18001        pCreateInfo: *const SamplerYcbcrConversionCreateInfo,
18002        pAllocator: *const AllocationCallbacks,
18003        pYcbcrConversion: *mut SamplerYcbcrConversion,
18004    ) -> Result,
18005    DestroySamplerYcbcrConversionKHR => (
18006        device: Device,
18007        ycbcrConversion: SamplerYcbcrConversion,
18008        pAllocator: *const AllocationCallbacks,
18009    ) -> (),
18010    BindBufferMemory2KHR => (
18011        device: Device,
18012        bindInfoCount: u32,
18013        pBindInfos: *const BindBufferMemoryInfo,
18014    ) -> Result,
18015    BindImageMemory2KHR => (
18016        device: Device,
18017        bindInfoCount: u32,
18018        pBindInfos: *const BindImageMemoryInfo,
18019    ) -> Result,
18020    GetImageDrmFormatModifierPropertiesEXT => (
18021        device: Device,
18022        image: Image,
18023        pProperties: *mut ImageDrmFormatModifierPropertiesEXT,
18024    ) -> Result,
18025    CreateValidationCacheEXT => (
18026        device: Device,
18027        pCreateInfo: *const ValidationCacheCreateInfoEXT,
18028        pAllocator: *const AllocationCallbacks,
18029        pValidationCache: *mut ValidationCacheEXT,
18030    ) -> Result,
18031    DestroyValidationCacheEXT => (
18032        device: Device,
18033        validationCache: ValidationCacheEXT,
18034        pAllocator: *const AllocationCallbacks,
18035    ) -> (),
18036    MergeValidationCachesEXT => (
18037        device: Device,
18038        dstCache: ValidationCacheEXT,
18039        srcCacheCount: u32,
18040        pSrcCaches: *const ValidationCacheEXT,
18041    ) -> Result,
18042    GetValidationCacheDataEXT => (
18043        device: Device,
18044        validationCache: ValidationCacheEXT,
18045        pDataSize: *mut usize,
18046        pData: *mut c_void,
18047    ) -> Result,
18048    CmdBindShadingRateImageNV => (
18049        commandBuffer: CommandBuffer,
18050        imageView: ImageView,
18051        imageLayout: ImageLayout,
18052    ) -> (),
18053    CmdSetViewportShadingRatePaletteNV => (
18054        commandBuffer: CommandBuffer,
18055        firstViewport: u32,
18056        viewportCount: u32,
18057        pShadingRatePalettes: *const ShadingRatePaletteNV,
18058    ) -> (),
18059    CmdSetCoarseSampleOrderNV => (
18060        commandBuffer: CommandBuffer,
18061        sampleOrderType: CoarseSampleOrderTypeNV,
18062        customSampleOrderCount: u32,
18063        pCustomSampleOrders: *const CoarseSampleOrderCustomNV,
18064    ) -> (),
18065    CreateAccelerationStructureNV => (
18066        device: Device,
18067        pCreateInfo: *const AccelerationStructureCreateInfoNV,
18068        pAllocator: *const AllocationCallbacks,
18069        pAccelerationStructure: *mut AccelerationStructureNV,
18070    ) -> Result,
18071    DestroyAccelerationStructureNV => (
18072        device: Device,
18073        accelerationStructure: AccelerationStructureNV,
18074        pAllocator: *const AllocationCallbacks,
18075    ) -> (),
18076    GetAccelerationStructureMemoryRequirementsNV => (
18077        device: Device,
18078        pInfo: *const AccelerationStructureMemoryRequirementsInfoNV,
18079        pMemoryRequirements: *mut MemoryRequirements2KHR,
18080    ) -> (),
18081    BindAccelerationStructureMemoryNV => (
18082        device: Device,
18083        bindInfoCount: u32,
18084        pBindInfos: *const BindAccelerationStructureMemoryInfoNV,
18085    ) -> Result,
18086    CmdBuildAccelerationStructureNV => (
18087        commandBuffer: CommandBuffer,
18088        pInfo: *const AccelerationStructureInfoNV,
18089        instanceData: Buffer,
18090        instanceOffset: DeviceSize,
18091        update: Bool32,
18092        dst: AccelerationStructureNV,
18093        src: AccelerationStructureNV,
18094        scratch: Buffer,
18095        scratchOffset: DeviceSize,
18096    ) -> (),
18097    CmdCopyAccelerationStructureNV => (
18098        commandBuffer: CommandBuffer,
18099        dst: AccelerationStructureNV,
18100        src: AccelerationStructureNV,
18101        mode: CopyAccelerationStructureModeKHR,
18102    ) -> (),
18103    CmdTraceRaysNV => (
18104        commandBuffer: CommandBuffer,
18105        raygenShaderBindingTableBuffer: Buffer,
18106        raygenShaderBindingOffset: DeviceSize,
18107        missShaderBindingTableBuffer: Buffer,
18108        missShaderBindingOffset: DeviceSize,
18109        missShaderBindingStride: DeviceSize,
18110        hitShaderBindingTableBuffer: Buffer,
18111        hitShaderBindingOffset: DeviceSize,
18112        hitShaderBindingStride: DeviceSize,
18113        callableShaderBindingTableBuffer: Buffer,
18114        callableShaderBindingOffset: DeviceSize,
18115        callableShaderBindingStride: DeviceSize,
18116        width: u32,
18117        height: u32,
18118        depth: u32,
18119    ) -> (),
18120    CreateRayTracingPipelinesNV => (
18121        device: Device,
18122        pipelineCache: PipelineCache,
18123        createInfoCount: u32,
18124        pCreateInfos: *const RayTracingPipelineCreateInfoNV,
18125        pAllocator: *const AllocationCallbacks,
18126        pPipelines: *mut Pipeline,
18127    ) -> Result,
18128    GetRayTracingShaderGroupHandlesNV => (
18129        device: Device,
18130        pipeline: Pipeline,
18131        firstGroup: u32,
18132        groupCount: u32,
18133        dataSize: usize,
18134        pData: *mut c_void,
18135    ) -> Result,
18136    GetAccelerationStructureHandleNV => (
18137        device: Device,
18138        accelerationStructure: AccelerationStructureNV,
18139        dataSize: usize,
18140        pData: *mut c_void,
18141    ) -> Result,
18142    CmdWriteAccelerationStructuresPropertiesNV => (
18143        commandBuffer: CommandBuffer,
18144        accelerationStructureCount: u32,
18145        pAccelerationStructures: *const AccelerationStructureNV,
18146        queryType: QueryType,
18147        queryPool: QueryPool,
18148        firstQuery: u32,
18149    ) -> (),
18150    CompileDeferredNV => (
18151        device: Device,
18152        pipeline: Pipeline,
18153        shader: u32,
18154    ) -> Result,
18155    GetDescriptorSetLayoutSupportKHR => (
18156        device: Device,
18157        pCreateInfo: *const DescriptorSetLayoutCreateInfo,
18158        pSupport: *mut DescriptorSetLayoutSupport,
18159    ) -> (),
18160    CmdDrawIndirectCountKHR => (
18161        commandBuffer: CommandBuffer,
18162        buffer: Buffer,
18163        offset: DeviceSize,
18164        countBuffer: Buffer,
18165        countBufferOffset: DeviceSize,
18166        maxDrawCount: u32,
18167        stride: u32,
18168    ) -> (),
18169    CmdDrawIndexedIndirectCountKHR => (
18170        commandBuffer: CommandBuffer,
18171        buffer: Buffer,
18172        offset: DeviceSize,
18173        countBuffer: Buffer,
18174        countBufferOffset: DeviceSize,
18175        maxDrawCount: u32,
18176        stride: u32,
18177    ) -> (),
18178    GetMemoryHostPointerPropertiesEXT => (
18179        device: Device,
18180        handleType: ExternalMemoryHandleTypeFlagBits,
18181        pHostPointer: *const c_void,
18182        pMemoryHostPointerProperties: *mut MemoryHostPointerPropertiesEXT,
18183    ) -> Result,
18184    CmdWriteBufferMarkerAMD => (
18185        commandBuffer: CommandBuffer,
18186        pipelineStage: PipelineStageFlagBits,
18187        dstBuffer: Buffer,
18188        dstOffset: DeviceSize,
18189        marker: u32,
18190    ) -> (),
18191    GetCalibratedTimestampsEXT => (
18192        device: Device,
18193        timestampCount: u32,
18194        pTimestampInfos: *const CalibratedTimestampInfoEXT,
18195        pTimestamps: *mut u64,
18196        pMaxDeviation: *mut u64,
18197    ) -> Result,
18198    CmdDrawMeshTasksNV => (
18199        commandBuffer: CommandBuffer,
18200        taskCount: u32,
18201        firstTask: u32,
18202    ) -> (),
18203    CmdDrawMeshTasksIndirectNV => (
18204        commandBuffer: CommandBuffer,
18205        buffer: Buffer,
18206        offset: DeviceSize,
18207        drawCount: u32,
18208        stride: u32,
18209    ) -> (),
18210    CmdDrawMeshTasksIndirectCountNV => (
18211        commandBuffer: CommandBuffer,
18212        buffer: Buffer,
18213        offset: DeviceSize,
18214        countBuffer: Buffer,
18215        countBufferOffset: DeviceSize,
18216        maxDrawCount: u32,
18217        stride: u32,
18218    ) -> (),
18219    CmdSetExclusiveScissorNV => (
18220        commandBuffer: CommandBuffer,
18221        firstExclusiveScissor: u32,
18222        exclusiveScissorCount: u32,
18223        pExclusiveScissors: *const Rect2D,
18224    ) -> (),
18225    CmdSetCheckpointNV => (
18226        commandBuffer: CommandBuffer,
18227        pCheckpointMarker: *const c_void,
18228    ) -> (),
18229    GetQueueCheckpointDataNV => (
18230        queue: Queue,
18231        pCheckpointDataCount: *mut u32,
18232        pCheckpointData: *mut CheckpointDataNV,
18233    ) -> (),
18234    GetSemaphoreCounterValueKHR => (
18235        device: Device,
18236        semaphore: Semaphore,
18237        pValue: *mut u64,
18238    ) -> Result,
18239    WaitSemaphoresKHR => (
18240        device: Device,
18241        pWaitInfo: *const SemaphoreWaitInfo,
18242        timeout: u64,
18243    ) -> Result,
18244    SignalSemaphoreKHR => (
18245        device: Device,
18246        pSignalInfo: *const SemaphoreSignalInfo,
18247    ) -> Result,
18248    InitializePerformanceApiINTEL => (
18249        device: Device,
18250        pInitializeInfo: *const InitializePerformanceApiInfoINTEL,
18251    ) -> Result,
18252    UninitializePerformanceApiINTEL => (
18253        device: Device,
18254    ) -> (),
18255    CmdSetPerformanceMarkerINTEL => (
18256        commandBuffer: CommandBuffer,
18257        pMarkerInfo: *const PerformanceMarkerInfoINTEL,
18258    ) -> Result,
18259    CmdSetPerformanceStreamMarkerINTEL => (
18260        commandBuffer: CommandBuffer,
18261        pMarkerInfo: *const PerformanceStreamMarkerInfoINTEL,
18262    ) -> Result,
18263    CmdSetPerformanceOverrideINTEL => (
18264        commandBuffer: CommandBuffer,
18265        pOverrideInfo: *const PerformanceOverrideInfoINTEL,
18266    ) -> Result,
18267    AcquirePerformanceConfigurationINTEL => (
18268        device: Device,
18269        pAcquireInfo: *const PerformanceConfigurationAcquireInfoINTEL,
18270        pConfiguration: *mut PerformanceConfigurationINTEL,
18271    ) -> Result,
18272    ReleasePerformanceConfigurationINTEL => (
18273        device: Device,
18274        configuration: PerformanceConfigurationINTEL,
18275    ) -> Result,
18276    QueueSetPerformanceConfigurationINTEL => (
18277        queue: Queue,
18278        configuration: PerformanceConfigurationINTEL,
18279    ) -> Result,
18280    GetPerformanceParameterINTEL => (
18281        device: Device,
18282        parameter: PerformanceParameterTypeINTEL,
18283        pValue: *mut PerformanceValueINTEL,
18284    ) -> Result,
18285    SetLocalDimmingAMD => (
18286        device: Device,
18287        swapChain: SwapchainKHR,
18288        localDimmingEnable: Bool32,
18289    ) -> (),
18290    CmdSetFragmentShadingRateKHR => (
18291        commandBuffer: CommandBuffer,
18292        pFragmentSize: *const Extent2D,
18293        combinerOps: [FragmentShadingRateCombinerOpKHR; 2],
18294    ) -> (),
18295    GetBufferDeviceAddressEXT => (
18296        device: Device,
18297        pInfo: *const BufferDeviceAddressInfo,
18298    ) -> DeviceAddress,
18299    WaitForPresentKHR => (
18300        device: Device,
18301        swapchain: SwapchainKHR,
18302        presentId: u64,
18303        timeout: u64,
18304    ) -> Result,
18305    GetBufferDeviceAddressKHR => (
18306        device: Device,
18307        pInfo: *const BufferDeviceAddressInfo,
18308    ) -> DeviceAddress,
18309    GetBufferOpaqueCaptureAddressKHR => (
18310        device: Device,
18311        pInfo: *const BufferDeviceAddressInfo,
18312    ) -> u64,
18313    GetDeviceMemoryOpaqueCaptureAddressKHR => (
18314        device: Device,
18315        pInfo: *const DeviceMemoryOpaqueCaptureAddressInfo,
18316    ) -> u64,
18317    CmdSetLineStippleEXT => (
18318        commandBuffer: CommandBuffer,
18319        lineStippleFactor: u32,
18320        lineStipplePattern: u16,
18321    ) -> (),
18322    ResetQueryPoolEXT => (
18323        device: Device,
18324        queryPool: QueryPool,
18325        firstQuery: u32,
18326        queryCount: u32,
18327    ) -> (),
18328    CmdSetCullModeEXT => (
18329        commandBuffer: CommandBuffer,
18330        cullMode: CullModeFlags,
18331    ) -> (),
18332    CmdSetFrontFaceEXT => (
18333        commandBuffer: CommandBuffer,
18334        frontFace: FrontFace,
18335    ) -> (),
18336    CmdSetPrimitiveTopologyEXT => (
18337        commandBuffer: CommandBuffer,
18338        primitiveTopology: PrimitiveTopology,
18339    ) -> (),
18340    CmdSetViewportWithCountEXT => (
18341        commandBuffer: CommandBuffer,
18342        viewportCount: u32,
18343        pViewports: *const Viewport,
18344    ) -> (),
18345    CmdSetScissorWithCountEXT => (
18346        commandBuffer: CommandBuffer,
18347        scissorCount: u32,
18348        pScissors: *const Rect2D,
18349    ) -> (),
18350    CmdBindVertexBuffers2EXT => (
18351        commandBuffer: CommandBuffer,
18352        firstBinding: u32,
18353        bindingCount: u32,
18354        pBuffers: *const Buffer,
18355        pOffsets: *const DeviceSize,
18356        pSizes: *const DeviceSize,
18357        pStrides: *const DeviceSize,
18358    ) -> (),
18359    CmdSetDepthTestEnableEXT => (
18360        commandBuffer: CommandBuffer,
18361        depthTestEnable: Bool32,
18362    ) -> (),
18363    CmdSetDepthWriteEnableEXT => (
18364        commandBuffer: CommandBuffer,
18365        depthWriteEnable: Bool32,
18366    ) -> (),
18367    CmdSetDepthCompareOpEXT => (
18368        commandBuffer: CommandBuffer,
18369        depthCompareOp: CompareOp,
18370    ) -> (),
18371    CmdSetDepthBoundsTestEnableEXT => (
18372        commandBuffer: CommandBuffer,
18373        depthBoundsTestEnable: Bool32,
18374    ) -> (),
18375    CmdSetStencilTestEnableEXT => (
18376        commandBuffer: CommandBuffer,
18377        stencilTestEnable: Bool32,
18378    ) -> (),
18379    CmdSetStencilOpEXT => (
18380        commandBuffer: CommandBuffer,
18381        faceMask: StencilFaceFlags,
18382        failOp: StencilOp,
18383        passOp: StencilOp,
18384        depthFailOp: StencilOp,
18385        compareOp: CompareOp,
18386    ) -> (),
18387    CreateDeferredOperationKHR => (
18388        device: Device,
18389        pAllocator: *const AllocationCallbacks,
18390        pDeferredOperation: *mut DeferredOperationKHR,
18391    ) -> Result,
18392    DestroyDeferredOperationKHR => (
18393        device: Device,
18394        operation: DeferredOperationKHR,
18395        pAllocator: *const AllocationCallbacks,
18396    ) -> (),
18397    GetDeferredOperationMaxConcurrencyKHR => (
18398        device: Device,
18399        operation: DeferredOperationKHR,
18400    ) -> u32,
18401    GetDeferredOperationResultKHR => (
18402        device: Device,
18403        operation: DeferredOperationKHR,
18404    ) -> Result,
18405    DeferredOperationJoinKHR => (
18406        device: Device,
18407        operation: DeferredOperationKHR,
18408    ) -> Result,
18409    GetPipelineExecutablePropertiesKHR => (
18410        device: Device,
18411        pPipelineInfo: *const PipelineInfoKHR,
18412        pExecutableCount: *mut u32,
18413        pProperties: *mut PipelineExecutablePropertiesKHR,
18414    ) -> Result,
18415    GetPipelineExecutableStatisticsKHR => (
18416        device: Device,
18417        pExecutableInfo: *const PipelineExecutableInfoKHR,
18418        pStatisticCount: *mut u32,
18419        pStatistics: *mut PipelineExecutableStatisticKHR,
18420    ) -> Result,
18421    GetPipelineExecutableInternalRepresentationsKHR => (
18422        device: Device,
18423        pExecutableInfo: *const PipelineExecutableInfoKHR,
18424        pInternalRepresentationCount: *mut u32,
18425        pInternalRepresentations: *mut PipelineExecutableInternalRepresentationKHR,
18426    ) -> Result,
18427    ReleaseSwapchainImagesEXT => (
18428        device: Device,
18429        pReleaseInfo: *const ReleaseSwapchainImagesInfoEXT,
18430    ) -> Result,
18431    GetGeneratedCommandsMemoryRequirementsNV => (
18432        device: Device,
18433        pInfo: *const GeneratedCommandsMemoryRequirementsInfoNV,
18434        pMemoryRequirements: *mut MemoryRequirements2,
18435    ) -> (),
18436    CmdPreprocessGeneratedCommandsNV => (
18437        commandBuffer: CommandBuffer,
18438        pGeneratedCommandsInfo: *const GeneratedCommandsInfoNV,
18439    ) -> (),
18440    CmdExecuteGeneratedCommandsNV => (
18441        commandBuffer: CommandBuffer,
18442        isPreprocessed: Bool32,
18443        pGeneratedCommandsInfo: *const GeneratedCommandsInfoNV,
18444    ) -> (),
18445    CmdBindPipelineShaderGroupNV => (
18446        commandBuffer: CommandBuffer,
18447        pipelineBindPoint: PipelineBindPoint,
18448        pipeline: Pipeline,
18449        groupIndex: u32,
18450    ) -> (),
18451    CreateIndirectCommandsLayoutNV => (
18452        device: Device,
18453        pCreateInfo: *const IndirectCommandsLayoutCreateInfoNV,
18454        pAllocator: *const AllocationCallbacks,
18455        pIndirectCommandsLayout: *mut IndirectCommandsLayoutNV,
18456    ) -> Result,
18457    DestroyIndirectCommandsLayoutNV => (
18458        device: Device,
18459        indirectCommandsLayout: IndirectCommandsLayoutNV,
18460        pAllocator: *const AllocationCallbacks,
18461    ) -> (),
18462    CreatePrivateDataSlotEXT => (
18463        device: Device,
18464        pCreateInfo: *const PrivateDataSlotCreateInfo,
18465        pAllocator: *const AllocationCallbacks,
18466        pPrivateDataSlot: *mut PrivateDataSlot,
18467    ) -> Result,
18468    DestroyPrivateDataSlotEXT => (
18469        device: Device,
18470        privateDataSlot: PrivateDataSlot,
18471        pAllocator: *const AllocationCallbacks,
18472    ) -> (),
18473    SetPrivateDataEXT => (
18474        device: Device,
18475        objectType: ObjectType,
18476        objectHandle: u64,
18477        privateDataSlot: PrivateDataSlot,
18478        data: u64,
18479    ) -> Result,
18480    GetPrivateDataEXT => (
18481        device: Device,
18482        objectType: ObjectType,
18483        objectHandle: u64,
18484        privateDataSlot: PrivateDataSlot,
18485        pData: *mut u64,
18486    ) -> (),
18487    CmdEncodeVideoKHR => (
18488        commandBuffer: CommandBuffer,
18489        pEncodeInfo: *const VideoEncodeInfoKHR,
18490    ) -> (),
18491    CmdSetEvent2KHR => (
18492        commandBuffer: CommandBuffer,
18493        event: Event,
18494        pDependencyInfo: *const DependencyInfo,
18495    ) -> (),
18496    CmdResetEvent2KHR => (
18497        commandBuffer: CommandBuffer,
18498        event: Event,
18499        stageMask: PipelineStageFlags2,
18500    ) -> (),
18501    CmdWaitEvents2KHR => (
18502        commandBuffer: CommandBuffer,
18503        eventCount: u32,
18504        pEvents: *const Event,
18505        pDependencyInfos: *const DependencyInfo,
18506    ) -> (),
18507    CmdPipelineBarrier2KHR => (
18508        commandBuffer: CommandBuffer,
18509        pDependencyInfo: *const DependencyInfo,
18510    ) -> (),
18511    CmdWriteTimestamp2KHR => (
18512        commandBuffer: CommandBuffer,
18513        stage: PipelineStageFlags2,
18514        queryPool: QueryPool,
18515        query: u32,
18516    ) -> (),
18517    QueueSubmit2KHR => (
18518        queue: Queue,
18519        submitCount: u32,
18520        pSubmits: *const SubmitInfo2,
18521        fence: Fence,
18522    ) -> Result,
18523    CmdWriteBufferMarker2AMD => (
18524        commandBuffer: CommandBuffer,
18525        stage: PipelineStageFlags2,
18526        dstBuffer: Buffer,
18527        dstOffset: DeviceSize,
18528        marker: u32,
18529    ) -> (),
18530    GetQueueCheckpointData2NV => (
18531        queue: Queue,
18532        pCheckpointDataCount: *mut u32,
18533        pCheckpointData: *mut CheckpointData2NV,
18534    ) -> (),
18535    GetDescriptorSetLayoutSizeEXT => (
18536        device: Device,
18537        layout: DescriptorSetLayout,
18538        pLayoutSizeInBytes: *mut DeviceSize,
18539    ) -> (),
18540    GetDescriptorSetLayoutBindingOffsetEXT => (
18541        device: Device,
18542        layout: DescriptorSetLayout,
18543        binding: u32,
18544        pOffset: *mut DeviceSize,
18545    ) -> (),
18546    GetDescriptorEXT => (
18547        device: Device,
18548        pDescriptorInfo: *const DescriptorGetInfoEXT,
18549        dataSize: usize,
18550        pDescriptor: *mut c_void,
18551    ) -> (),
18552    CmdBindDescriptorBuffersEXT => (
18553        commandBuffer: CommandBuffer,
18554        bufferCount: u32,
18555        pBindingInfos: *const DescriptorBufferBindingInfoEXT,
18556    ) -> (),
18557    CmdSetDescriptorBufferOffsetsEXT => (
18558        commandBuffer: CommandBuffer,
18559        pipelineBindPoint: PipelineBindPoint,
18560        layout: PipelineLayout,
18561        firstSet: u32,
18562        setCount: u32,
18563        pBufferIndices: *const u32,
18564        pOffsets: *const DeviceSize,
18565    ) -> (),
18566    CmdBindDescriptorBufferEmbeddedSamplersEXT => (
18567        commandBuffer: CommandBuffer,
18568        pipelineBindPoint: PipelineBindPoint,
18569        layout: PipelineLayout,
18570        set: u32,
18571    ) -> (),
18572    GetBufferOpaqueCaptureDescriptorDataEXT => (
18573        device: Device,
18574        pInfo: *const BufferCaptureDescriptorDataInfoEXT,
18575        pData: *mut c_void,
18576    ) -> Result,
18577    GetImageOpaqueCaptureDescriptorDataEXT => (
18578        device: Device,
18579        pInfo: *const ImageCaptureDescriptorDataInfoEXT,
18580        pData: *mut c_void,
18581    ) -> Result,
18582    GetImageViewOpaqueCaptureDescriptorDataEXT => (
18583        device: Device,
18584        pInfo: *const ImageViewCaptureDescriptorDataInfoEXT,
18585        pData: *mut c_void,
18586    ) -> Result,
18587    GetSamplerOpaqueCaptureDescriptorDataEXT => (
18588        device: Device,
18589        pInfo: *const SamplerCaptureDescriptorDataInfoEXT,
18590        pData: *mut c_void,
18591    ) -> Result,
18592    GetAccelerationStructureOpaqueCaptureDescriptorDataEXT => (
18593        device: Device,
18594        pInfo: *const AccelerationStructureCaptureDescriptorDataInfoEXT,
18595        pData: *mut c_void,
18596    ) -> Result,
18597    CmdSetFragmentShadingRateEnumNV => (
18598        commandBuffer: CommandBuffer,
18599        shadingRate: FragmentShadingRateNV,
18600        combinerOps: [FragmentShadingRateCombinerOpKHR; 2],
18601    ) -> (),
18602    CmdDrawMeshTasksEXT => (
18603        commandBuffer: CommandBuffer,
18604        groupCountX: u32,
18605        groupCountY: u32,
18606        groupCountZ: u32,
18607    ) -> (),
18608    CmdDrawMeshTasksIndirectEXT => (
18609        commandBuffer: CommandBuffer,
18610        buffer: Buffer,
18611        offset: DeviceSize,
18612        drawCount: u32,
18613        stride: u32,
18614    ) -> (),
18615    CmdDrawMeshTasksIndirectCountEXT => (
18616        commandBuffer: CommandBuffer,
18617        buffer: Buffer,
18618        offset: DeviceSize,
18619        countBuffer: Buffer,
18620        countBufferOffset: DeviceSize,
18621        maxDrawCount: u32,
18622        stride: u32,
18623    ) -> (),
18624    CmdCopyBuffer2KHR => (
18625        commandBuffer: CommandBuffer,
18626        pCopyBufferInfo: *const CopyBufferInfo2,
18627    ) -> (),
18628    CmdCopyImage2KHR => (
18629        commandBuffer: CommandBuffer,
18630        pCopyImageInfo: *const CopyImageInfo2,
18631    ) -> (),
18632    CmdCopyBufferToImage2KHR => (
18633        commandBuffer: CommandBuffer,
18634        pCopyBufferToImageInfo: *const CopyBufferToImageInfo2,
18635    ) -> (),
18636    CmdCopyImageToBuffer2KHR => (
18637        commandBuffer: CommandBuffer,
18638        pCopyImageToBufferInfo: *const CopyImageToBufferInfo2,
18639    ) -> (),
18640    CmdBlitImage2KHR => (
18641        commandBuffer: CommandBuffer,
18642        pBlitImageInfo: *const BlitImageInfo2,
18643    ) -> (),
18644    CmdResolveImage2KHR => (
18645        commandBuffer: CommandBuffer,
18646        pResolveImageInfo: *const ResolveImageInfo2,
18647    ) -> (),
18648    GetImageSubresourceLayout2EXT => (
18649        device: Device,
18650        image: Image,
18651        pSubresource: *const ImageSubresource2EXT,
18652        pLayout: *mut SubresourceLayout2EXT,
18653    ) -> (),
18654    GetDeviceFaultInfoEXT => (
18655        device: Device,
18656        pFaultCounts: *mut DeviceFaultCountsEXT,
18657        pFaultInfo: *mut DeviceFaultInfoEXT,
18658    ) -> Result,
18659    CmdSetVertexInputEXT => (
18660        commandBuffer: CommandBuffer,
18661        vertexBindingDescriptionCount: u32,
18662        pVertexBindingDescriptions: *const VertexInputBindingDescription2EXT,
18663        vertexAttributeDescriptionCount: u32,
18664        pVertexAttributeDescriptions: *const VertexInputAttributeDescription2EXT,
18665    ) -> (),
18666    GetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI => (
18667        device: Device,
18668        renderpass: RenderPass,
18669        pMaxWorkgroupSize: *mut Extent2D,
18670    ) -> Result,
18671    CmdSubpassShadingHUAWEI => (
18672        commandBuffer: CommandBuffer,
18673    ) -> (),
18674    CmdBindInvocationMaskHUAWEI => (
18675        commandBuffer: CommandBuffer,
18676        imageView: ImageView,
18677        imageLayout: ImageLayout,
18678    ) -> (),
18679    GetMemoryRemoteAddressNV => (
18680        device: Device,
18681        pMemoryGetRemoteAddressInfo: *const MemoryGetRemoteAddressInfoNV,
18682        pAddress: *mut RemoteAddressNV,
18683    ) -> Result,
18684    GetPipelinePropertiesEXT => (
18685        device: Device,
18686        pPipelineInfo: *const PipelineInfoEXT,
18687        pPipelineProperties: *mut BaseOutStructure,
18688    ) -> Result,
18689    CmdSetPatchControlPointsEXT => (
18690        commandBuffer: CommandBuffer,
18691        patchControlPoints: u32,
18692    ) -> (),
18693    CmdSetRasterizerDiscardEnableEXT => (
18694        commandBuffer: CommandBuffer,
18695        rasterizerDiscardEnable: Bool32,
18696    ) -> (),
18697    CmdSetDepthBiasEnableEXT => (
18698        commandBuffer: CommandBuffer,
18699        depthBiasEnable: Bool32,
18700    ) -> (),
18701    CmdSetLogicOpEXT => (
18702        commandBuffer: CommandBuffer,
18703        logicOp: LogicOp,
18704    ) -> (),
18705    CmdSetPrimitiveRestartEnableEXT => (
18706        commandBuffer: CommandBuffer,
18707        primitiveRestartEnable: Bool32,
18708    ) -> (),
18709    CmdSetColorWriteEnableEXT => (
18710        commandBuffer: CommandBuffer,
18711        attachmentCount: u32,
18712        pColorWriteEnables: *const Bool32,
18713    ) -> (),
18714    CmdTraceRaysIndirect2KHR => (
18715        commandBuffer: CommandBuffer,
18716        indirectDeviceAddress: DeviceAddress,
18717    ) -> (),
18718    CmdDrawMultiEXT => (
18719        commandBuffer: CommandBuffer,
18720        drawCount: u32,
18721        pVertexInfo: *const MultiDrawInfoEXT,
18722        instanceCount: u32,
18723        firstInstance: u32,
18724        stride: u32,
18725    ) -> (),
18726    CmdDrawMultiIndexedEXT => (
18727        commandBuffer: CommandBuffer,
18728        drawCount: u32,
18729        pIndexInfo: *const MultiDrawIndexedInfoEXT,
18730        instanceCount: u32,
18731        firstInstance: u32,
18732        stride: u32,
18733        pVertexOffset: *const i32,
18734    ) -> (),
18735    CreateMicromapEXT => (
18736        device: Device,
18737        pCreateInfo: *const MicromapCreateInfoEXT,
18738        pAllocator: *const AllocationCallbacks,
18739        pMicromap: *mut MicromapEXT,
18740    ) -> Result,
18741    DestroyMicromapEXT => (
18742        device: Device,
18743        micromap: MicromapEXT,
18744        pAllocator: *const AllocationCallbacks,
18745    ) -> (),
18746    CmdBuildMicromapsEXT => (
18747        commandBuffer: CommandBuffer,
18748        infoCount: u32,
18749        pInfos: *const MicromapBuildInfoEXT,
18750    ) -> (),
18751    BuildMicromapsEXT => (
18752        device: Device,
18753        deferredOperation: DeferredOperationKHR,
18754        infoCount: u32,
18755        pInfos: *const MicromapBuildInfoEXT,
18756    ) -> Result,
18757    CopyMicromapEXT => (
18758        device: Device,
18759        deferredOperation: DeferredOperationKHR,
18760        pInfo: *const CopyMicromapInfoEXT,
18761    ) -> Result,
18762    CopyMicromapToMemoryEXT => (
18763        device: Device,
18764        deferredOperation: DeferredOperationKHR,
18765        pInfo: *const CopyMicromapToMemoryInfoEXT,
18766    ) -> Result,
18767    CopyMemoryToMicromapEXT => (
18768        device: Device,
18769        deferredOperation: DeferredOperationKHR,
18770        pInfo: *const CopyMemoryToMicromapInfoEXT,
18771    ) -> Result,
18772    WriteMicromapsPropertiesEXT => (
18773        device: Device,
18774        micromapCount: u32,
18775        pMicromaps: *const MicromapEXT,
18776        queryType: QueryType,
18777        dataSize: usize,
18778        pData: *mut c_void,
18779        stride: usize,
18780    ) -> Result,
18781    CmdCopyMicromapEXT => (
18782        commandBuffer: CommandBuffer,
18783        pInfo: *const CopyMicromapInfoEXT,
18784    ) -> (),
18785    CmdCopyMicromapToMemoryEXT => (
18786        commandBuffer: CommandBuffer,
18787        pInfo: *const CopyMicromapToMemoryInfoEXT,
18788    ) -> (),
18789    CmdCopyMemoryToMicromapEXT => (
18790        commandBuffer: CommandBuffer,
18791        pInfo: *const CopyMemoryToMicromapInfoEXT,
18792    ) -> (),
18793    CmdWriteMicromapsPropertiesEXT => (
18794        commandBuffer: CommandBuffer,
18795        micromapCount: u32,
18796        pMicromaps: *const MicromapEXT,
18797        queryType: QueryType,
18798        queryPool: QueryPool,
18799        firstQuery: u32,
18800    ) -> (),
18801    GetDeviceMicromapCompatibilityEXT => (
18802        device: Device,
18803        pVersionInfo: *const MicromapVersionInfoEXT,
18804        pCompatibility: *mut AccelerationStructureCompatibilityKHR,
18805    ) -> (),
18806    GetMicromapBuildSizesEXT => (
18807        device: Device,
18808        buildType: AccelerationStructureBuildTypeKHR,
18809        pBuildInfo: *const MicromapBuildInfoEXT,
18810        pSizeInfo: *mut MicromapBuildSizesInfoEXT,
18811    ) -> (),
18812    SetDeviceMemoryPriorityEXT => (
18813        device: Device,
18814        memory: DeviceMemory,
18815        priority: f32,
18816    ) -> (),
18817    GetDeviceBufferMemoryRequirementsKHR => (
18818        device: Device,
18819        pInfo: *const DeviceBufferMemoryRequirements,
18820        pMemoryRequirements: *mut MemoryRequirements2,
18821    ) -> (),
18822    GetDeviceImageMemoryRequirementsKHR => (
18823        device: Device,
18824        pInfo: *const DeviceImageMemoryRequirements,
18825        pMemoryRequirements: *mut MemoryRequirements2,
18826    ) -> (),
18827    GetDeviceImageSparseMemoryRequirementsKHR => (
18828        device: Device,
18829        pInfo: *const DeviceImageMemoryRequirements,
18830        pSparseMemoryRequirementCount: *mut u32,
18831        pSparseMemoryRequirements: *mut SparseImageMemoryRequirements2,
18832    ) -> (),
18833    GetDescriptorSetLayoutHostMappingInfoVALVE => (
18834        device: Device,
18835        pBindingReference: *const DescriptorSetBindingReferenceVALVE,
18836        pHostMapping: *mut DescriptorSetLayoutHostMappingInfoVALVE,
18837    ) -> (),
18838    GetDescriptorSetHostMappingVALVE => (
18839        device: Device,
18840        descriptorSet: DescriptorSet,
18841        ppData: *mut *mut c_void,
18842    ) -> (),
18843    CmdCopyMemoryIndirectNV => (
18844        commandBuffer: CommandBuffer,
18845        copyBufferAddress: DeviceAddress,
18846        copyCount: u32,
18847        stride: u32,
18848    ) -> (),
18849    CmdCopyMemoryToImageIndirectNV => (
18850        commandBuffer: CommandBuffer,
18851        copyBufferAddress: DeviceAddress,
18852        copyCount: u32,
18853        stride: u32,
18854        dstImage: Image,
18855        dstImageLayout: ImageLayout,
18856        pImageSubresources: *const ImageSubresourceLayers,
18857    ) -> (),
18858    CmdDecompressMemoryNV => (
18859        commandBuffer: CommandBuffer,
18860        decompressRegionCount: u32,
18861        pDecompressMemoryRegions: *const DecompressMemoryRegionNV,
18862    ) -> (),
18863    CmdDecompressMemoryIndirectCountNV => (
18864        commandBuffer: CommandBuffer,
18865        indirectCommandsAddress: DeviceAddress,
18866        indirectCommandsCountAddress: DeviceAddress,
18867        stride: u32,
18868    ) -> (),
18869    CmdSetTessellationDomainOriginEXT => (
18870        commandBuffer: CommandBuffer,
18871        domainOrigin: TessellationDomainOrigin,
18872    ) -> (),
18873    CmdSetDepthClampEnableEXT => (
18874        commandBuffer: CommandBuffer,
18875        depthClampEnable: Bool32,
18876    ) -> (),
18877    CmdSetPolygonModeEXT => (
18878        commandBuffer: CommandBuffer,
18879        polygonMode: PolygonMode,
18880    ) -> (),
18881    CmdSetRasterizationSamplesEXT => (
18882        commandBuffer: CommandBuffer,
18883        rasterizationSamples: SampleCountFlagBits,
18884    ) -> (),
18885    CmdSetSampleMaskEXT => (
18886        commandBuffer: CommandBuffer,
18887        samples: SampleCountFlagBits,
18888        pSampleMask: *const SampleMask,
18889    ) -> (),
18890    CmdSetAlphaToCoverageEnableEXT => (
18891        commandBuffer: CommandBuffer,
18892        alphaToCoverageEnable: Bool32,
18893    ) -> (),
18894    CmdSetAlphaToOneEnableEXT => (
18895        commandBuffer: CommandBuffer,
18896        alphaToOneEnable: Bool32,
18897    ) -> (),
18898    CmdSetLogicOpEnableEXT => (
18899        commandBuffer: CommandBuffer,
18900        logicOpEnable: Bool32,
18901    ) -> (),
18902    CmdSetColorBlendEnableEXT => (
18903        commandBuffer: CommandBuffer,
18904        firstAttachment: u32,
18905        attachmentCount: u32,
18906        pColorBlendEnables: *const Bool32,
18907    ) -> (),
18908    CmdSetColorBlendEquationEXT => (
18909        commandBuffer: CommandBuffer,
18910        firstAttachment: u32,
18911        attachmentCount: u32,
18912        pColorBlendEquations: *const ColorBlendEquationEXT,
18913    ) -> (),
18914    CmdSetColorWriteMaskEXT => (
18915        commandBuffer: CommandBuffer,
18916        firstAttachment: u32,
18917        attachmentCount: u32,
18918        pColorWriteMasks: *const ColorComponentFlags,
18919    ) -> (),
18920    CmdSetRasterizationStreamEXT => (
18921        commandBuffer: CommandBuffer,
18922        rasterizationStream: u32,
18923    ) -> (),
18924    CmdSetConservativeRasterizationModeEXT => (
18925        commandBuffer: CommandBuffer,
18926        conservativeRasterizationMode: ConservativeRasterizationModeEXT,
18927    ) -> (),
18928    CmdSetExtraPrimitiveOverestimationSizeEXT => (
18929        commandBuffer: CommandBuffer,
18930        extraPrimitiveOverestimationSize: f32,
18931    ) -> (),
18932    CmdSetDepthClipEnableEXT => (
18933        commandBuffer: CommandBuffer,
18934        depthClipEnable: Bool32,
18935    ) -> (),
18936    CmdSetSampleLocationsEnableEXT => (
18937        commandBuffer: CommandBuffer,
18938        sampleLocationsEnable: Bool32,
18939    ) -> (),
18940    CmdSetColorBlendAdvancedEXT => (
18941        commandBuffer: CommandBuffer,
18942        firstAttachment: u32,
18943        attachmentCount: u32,
18944        pColorBlendAdvanced: *const ColorBlendAdvancedEXT,
18945    ) -> (),
18946    CmdSetProvokingVertexModeEXT => (
18947        commandBuffer: CommandBuffer,
18948        provokingVertexMode: ProvokingVertexModeEXT,
18949    ) -> (),
18950    CmdSetLineRasterizationModeEXT => (
18951        commandBuffer: CommandBuffer,
18952        lineRasterizationMode: LineRasterizationModeEXT,
18953    ) -> (),
18954    CmdSetLineStippleEnableEXT => (
18955        commandBuffer: CommandBuffer,
18956        stippledLineEnable: Bool32,
18957    ) -> (),
18958    CmdSetDepthClipNegativeOneToOneEXT => (
18959        commandBuffer: CommandBuffer,
18960        negativeOneToOne: Bool32,
18961    ) -> (),
18962    CmdSetViewportWScalingEnableNV => (
18963        commandBuffer: CommandBuffer,
18964        viewportWScalingEnable: Bool32,
18965    ) -> (),
18966    CmdSetViewportSwizzleNV => (
18967        commandBuffer: CommandBuffer,
18968        firstViewport: u32,
18969        viewportCount: u32,
18970        pViewportSwizzles: *const ViewportSwizzleNV,
18971    ) -> (),
18972    CmdSetCoverageToColorEnableNV => (
18973        commandBuffer: CommandBuffer,
18974        coverageToColorEnable: Bool32,
18975    ) -> (),
18976    CmdSetCoverageToColorLocationNV => (
18977        commandBuffer: CommandBuffer,
18978        coverageToColorLocation: u32,
18979    ) -> (),
18980    CmdSetCoverageModulationModeNV => (
18981        commandBuffer: CommandBuffer,
18982        coverageModulationMode: CoverageModulationModeNV,
18983    ) -> (),
18984    CmdSetCoverageModulationTableEnableNV => (
18985        commandBuffer: CommandBuffer,
18986        coverageModulationTableEnable: Bool32,
18987    ) -> (),
18988    CmdSetCoverageModulationTableNV => (
18989        commandBuffer: CommandBuffer,
18990        coverageModulationTableCount: u32,
18991        pCoverageModulationTable: *const f32,
18992    ) -> (),
18993    CmdSetShadingRateImageEnableNV => (
18994        commandBuffer: CommandBuffer,
18995        shadingRateImageEnable: Bool32,
18996    ) -> (),
18997    CmdSetRepresentativeFragmentTestEnableNV => (
18998        commandBuffer: CommandBuffer,
18999        representativeFragmentTestEnable: Bool32,
19000    ) -> (),
19001    CmdSetCoverageReductionModeNV => (
19002        commandBuffer: CommandBuffer,
19003        coverageReductionMode: CoverageReductionModeNV,
19004    ) -> (),
19005    GetShaderModuleIdentifierEXT => (
19006        device: Device,
19007        shaderModule: ShaderModule,
19008        pIdentifier: *mut ShaderModuleIdentifierEXT,
19009    ) -> (),
19010    GetShaderModuleCreateInfoIdentifierEXT => (
19011        device: Device,
19012        pCreateInfo: *const ShaderModuleCreateInfo,
19013        pIdentifier: *mut ShaderModuleIdentifierEXT,
19014    ) -> (),
19015    CreateOpticalFlowSessionNV => (
19016        device: Device,
19017        pCreateInfo: *const OpticalFlowSessionCreateInfoNV,
19018        pAllocator: *const AllocationCallbacks,
19019        pSession: *mut OpticalFlowSessionNV,
19020    ) -> Result,
19021    DestroyOpticalFlowSessionNV => (
19022        device: Device,
19023        session: OpticalFlowSessionNV,
19024        pAllocator: *const AllocationCallbacks,
19025    ) -> (),
19026    BindOpticalFlowSessionImageNV => (
19027        device: Device,
19028        session: OpticalFlowSessionNV,
19029        bindingPoint: OpticalFlowSessionBindingPointNV,
19030        view: ImageView,
19031        layout: ImageLayout,
19032    ) -> Result,
19033    CmdOpticalFlowExecuteNV => (
19034        commandBuffer: CommandBuffer,
19035        session: OpticalFlowSessionNV,
19036        pExecuteInfo: *const OpticalFlowExecuteInfoNV,
19037    ) -> (),
19038    GetFramebufferTilePropertiesQCOM => (
19039        device: Device,
19040        framebuffer: Framebuffer,
19041        pPropertiesCount: *mut u32,
19042        pProperties: *mut TilePropertiesQCOM,
19043    ) -> Result,
19044    GetDynamicRenderingTilePropertiesQCOM => (
19045        device: Device,
19046        pRenderingInfo: *const RenderingInfo,
19047        pProperties: *mut TilePropertiesQCOM,
19048    ) -> Result,
19049});