Skip to main content

vulkanalia_sys/
bitmasks.rs

1// SPDX-License-Identifier: Apache-2.0
2
3// DO NOT EDIT.
4//
5// This file has been generated by the Kotlin project in the `generator`
6// directory from a Vulkan API registry.
7
8#![allow(
9    non_camel_case_types,
10    non_snake_case,
11    clippy::bad_bit_mask,
12    clippy::let_unit_value,
13    clippy::missing_safety_doc,
14    clippy::missing_transmute_annotations,
15    clippy::needless_lifetimes,
16    clippy::too_many_arguments,
17    clippy::type_complexity,
18    clippy::unnecessary_cast,
19    clippy::upper_case_acronyms,
20    clippy::useless_transmute
21)]
22
23use bitflags::bitflags;
24
25use crate::{Flags, Flags64};
26
27bitflags! {
28    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccelerationStructureCreateFlagsKHR.html>
29    #[repr(transparent)]
30    #[derive(Default)]
31    pub struct AccelerationStructureCreateFlagsKHR: Flags {
32        const DEVICE_ADDRESS_CAPTURE_REPLAY = 1;
33        const MOTION_NV = 1 << 2;
34        const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT = 1 << 3;
35    }
36}
37
38bitflags! {
39    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInfoFlagsNV.html>
40    #[repr(transparent)]
41    #[derive(Default)]
42    pub struct AccelerationStructureMotionInfoFlagsNV: Flags { }
43}
44
45bitflags! {
46    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccelerationStructureMotionInstanceFlagsNV.html>
47    #[repr(transparent)]
48    #[derive(Default)]
49    pub struct AccelerationStructureMotionInstanceFlagsNV: Flags { }
50}
51
52bitflags! {
53    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccessFlags.html>
54    #[repr(transparent)]
55    #[derive(Default)]
56    pub struct AccessFlags: Flags {
57        const INDIRECT_COMMAND_READ = 1;
58        const INDEX_READ = 1 << 1;
59        const VERTEX_ATTRIBUTE_READ = 1 << 2;
60        const UNIFORM_READ = 1 << 3;
61        const INPUT_ATTACHMENT_READ = 1 << 4;
62        const SHADER_READ = 1 << 5;
63        const SHADER_WRITE = 1 << 6;
64        const COLOR_ATTACHMENT_READ = 1 << 7;
65        const COLOR_ATTACHMENT_WRITE = 1 << 8;
66        const DEPTH_STENCIL_ATTACHMENT_READ = 1 << 9;
67        const DEPTH_STENCIL_ATTACHMENT_WRITE = 1 << 10;
68        const TRANSFER_READ = 1 << 11;
69        const TRANSFER_WRITE = 1 << 12;
70        const HOST_READ = 1 << 13;
71        const HOST_WRITE = 1 << 14;
72        const MEMORY_READ = 1 << 15;
73        const MEMORY_WRITE = 1 << 16;
74        const COMMAND_PREPROCESS_READ_EXT = 1 << 17;
75        const COMMAND_PREPROCESS_WRITE_EXT = 1 << 18;
76        const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT = 1 << 19;
77        const CONDITIONAL_RENDERING_READ_EXT = 1 << 20;
78        const ACCELERATION_STRUCTURE_READ_KHR = 1 << 21;
79        const ACCELERATION_STRUCTURE_WRITE_KHR = 1 << 22;
80        const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR = 1 << 23;
81        const FRAGMENT_DENSITY_MAP_READ_EXT = 1 << 24;
82        const TRANSFORM_FEEDBACK_WRITE_EXT = 1 << 25;
83        const TRANSFORM_FEEDBACK_COUNTER_READ_EXT = 1 << 26;
84        const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT = 1 << 27;
85    }
86}
87
88bitflags! {
89    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccessFlags2.html>
90    #[repr(transparent)]
91    #[derive(Default)]
92    pub struct AccessFlags2: Flags64 {
93        const NONE = 0;
94        const INDIRECT_COMMAND_READ = 1;
95        const INDEX_READ = 1 << 1;
96        const VERTEX_ATTRIBUTE_READ = 1 << 2;
97        const UNIFORM_READ = 1 << 3;
98        const INPUT_ATTACHMENT_READ = 1 << 4;
99        const SHADER_READ = 1 << 5;
100        const SHADER_WRITE = 1 << 6;
101        const COLOR_ATTACHMENT_READ = 1 << 7;
102        const COLOR_ATTACHMENT_WRITE = 1 << 8;
103        const DEPTH_STENCIL_ATTACHMENT_READ = 1 << 9;
104        const DEPTH_STENCIL_ATTACHMENT_WRITE = 1 << 10;
105        const TRANSFER_READ = 1 << 11;
106        const TRANSFER_WRITE = 1 << 12;
107        const HOST_READ = 1 << 13;
108        const HOST_WRITE = 1 << 14;
109        const MEMORY_READ = 1 << 15;
110        const MEMORY_WRITE = 1 << 16;
111        const COMMAND_PREPROCESS_READ_EXT = 1 << 17;
112        const COMMAND_PREPROCESS_WRITE_EXT = 1 << 18;
113        const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT = 1 << 19;
114        const CONDITIONAL_RENDERING_READ_EXT = 1 << 20;
115        const ACCELERATION_STRUCTURE_READ_KHR = 1 << 21;
116        const ACCELERATION_STRUCTURE_WRITE_KHR = 1 << 22;
117        const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR = 1 << 23;
118        const FRAGMENT_DENSITY_MAP_READ_EXT = 1 << 24;
119        const TRANSFORM_FEEDBACK_WRITE_EXT = 1 << 25;
120        const TRANSFORM_FEEDBACK_COUNTER_READ_EXT = 1 << 26;
121        const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT = 1 << 27;
122        const SHADER_SAMPLED_READ = 1 << 32;
123        const SHADER_STORAGE_READ = 1 << 33;
124        const SHADER_STORAGE_WRITE = 1 << 34;
125        const VIDEO_DECODE_READ_KHR = 1 << 35;
126        const VIDEO_DECODE_WRITE_KHR = 1 << 36;
127        const VIDEO_ENCODE_READ_KHR = 1 << 37;
128        const VIDEO_ENCODE_WRITE_KHR = 1 << 38;
129        const INVOCATION_MASK_READ_HUAWEI = 1 << 39;
130        const SHADER_BINDING_TABLE_READ_KHR = 1 << 40;
131        const DESCRIPTOR_BUFFER_READ_EXT = 1 << 41;
132        const OPTICAL_FLOW_READ_NV = 1 << 42;
133        const OPTICAL_FLOW_WRITE_NV = 1 << 43;
134        const MICROMAP_READ_EXT = 1 << 44;
135        const MICROMAP_WRITE_EXT = 1 << 45;
136        const DATA_GRAPH_READ_ARM = 1 << 47;
137        const DATA_GRAPH_WRITE_ARM = 1 << 48;
138        const SHADER_TILE_ATTACHMENT_READ_QCOM = 1 << 51;
139        const SHADER_TILE_ATTACHMENT_WRITE_QCOM = 1 << 52;
140        const MEMORY_DECOMPRESSION_READ_EXT = 1 << 55;
141        const MEMORY_DECOMPRESSION_WRITE_EXT = 1 << 56;
142        const SAMPLER_HEAP_READ_EXT = 1 << 57;
143        const RESOURCE_HEAP_READ_EXT = 1 << 58;
144    }
145}
146
147bitflags! {
148    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccessFlags3KHR.html>
149    #[repr(transparent)]
150    #[derive(Default)]
151    pub struct AccessFlags3KHR: Flags {
152        const NONE = 0;
153    }
154}
155
156bitflags! {
157    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAcquireProfilingLockFlagsKHR.html>
158    #[repr(transparent)]
159    #[derive(Default)]
160    pub struct AcquireProfilingLockFlagsKHR: Flags { }
161}
162
163bitflags! {
164    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAddressCopyFlagsKHR.html>
165    #[repr(transparent)]
166    #[derive(Default)]
167    pub struct AddressCopyFlagsKHR: Flags {
168        const DEVICE_LOCAL = 1;
169        const SPARSE = 1 << 1;
170        const PROTECTED = 1 << 2;
171    }
172}
173
174bitflags! {
175    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAndroidSurfaceCreateFlagsKHR.html>
176    #[repr(transparent)]
177    #[derive(Default)]
178    pub struct AndroidSurfaceCreateFlagsKHR: Flags { }
179}
180
181bitflags! {
182    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAttachmentDescriptionFlags.html>
183    #[repr(transparent)]
184    #[derive(Default)]
185    pub struct AttachmentDescriptionFlags: Flags {
186        const MAY_ALIAS = 1;
187        const RESOLVE_SKIP_TRANSFER_FUNCTION_KHR = 1 << 1;
188        const RESOLVE_ENABLE_TRANSFER_FUNCTION_KHR = 1 << 2;
189    }
190}
191
192bitflags! {
193    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBufferCreateFlags.html>
194    #[repr(transparent)]
195    #[derive(Default)]
196    pub struct BufferCreateFlags: Flags {
197        const SPARSE_BINDING = 1;
198        const SPARSE_RESIDENCY = 1 << 1;
199        const SPARSE_ALIASED = 1 << 2;
200        const PROTECTED = 1 << 3;
201        const DEVICE_ADDRESS_CAPTURE_REPLAY = 1 << 4;
202        const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT = 1 << 5;
203        const VIDEO_PROFILE_INDEPENDENT_KHR = 1 << 6;
204    }
205}
206
207bitflags! {
208    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBufferUsageFlags.html>
209    #[repr(transparent)]
210    #[derive(Default)]
211    pub struct BufferUsageFlags: Flags {
212        const TRANSFER_SRC = 1;
213        const TRANSFER_DST = 1 << 1;
214        const UNIFORM_TEXEL_BUFFER = 1 << 2;
215        const STORAGE_TEXEL_BUFFER = 1 << 3;
216        const UNIFORM_BUFFER = 1 << 4;
217        const STORAGE_BUFFER = 1 << 5;
218        const INDEX_BUFFER = 1 << 6;
219        const VERTEX_BUFFER = 1 << 7;
220        const INDIRECT_BUFFER = 1 << 8;
221        const CONDITIONAL_RENDERING_EXT = 1 << 9;
222        const SHADER_BINDING_TABLE_KHR = 1 << 10;
223        const TRANSFORM_FEEDBACK_BUFFER_EXT = 1 << 11;
224        const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT = 1 << 12;
225        const VIDEO_DECODE_SRC_KHR = 1 << 13;
226        const VIDEO_DECODE_DST_KHR = 1 << 14;
227        const VIDEO_ENCODE_DST_KHR = 1 << 15;
228        const VIDEO_ENCODE_SRC_KHR = 1 << 16;
229        const SHADER_DEVICE_ADDRESS = 1 << 17;
230        const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR = 1 << 19;
231        const ACCELERATION_STRUCTURE_STORAGE_KHR = 1 << 20;
232        const SAMPLER_DESCRIPTOR_BUFFER_EXT = 1 << 21;
233        const RESOURCE_DESCRIPTOR_BUFFER_EXT = 1 << 22;
234        const MICROMAP_BUILD_INPUT_READ_ONLY_EXT = 1 << 23;
235        const MICROMAP_STORAGE_EXT = 1 << 24;
236        const EXECUTION_GRAPH_SCRATCH_AMDX = 1 << 25;
237        const PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT = 1 << 26;
238        const TILE_MEMORY_QCOM = 1 << 27;
239        const DESCRIPTOR_HEAP_EXT = 1 << 28;
240    }
241}
242
243bitflags! {
244    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBufferUsageFlags2.html>
245    #[repr(transparent)]
246    #[derive(Default)]
247    pub struct BufferUsageFlags2: Flags64 {
248        const TRANSFER_SRC = 1;
249        const TRANSFER_DST = 1 << 1;
250        const UNIFORM_TEXEL_BUFFER = 1 << 2;
251        const STORAGE_TEXEL_BUFFER = 1 << 3;
252        const UNIFORM_BUFFER = 1 << 4;
253        const STORAGE_BUFFER = 1 << 5;
254        const INDEX_BUFFER = 1 << 6;
255        const VERTEX_BUFFER = 1 << 7;
256        const INDIRECT_BUFFER = 1 << 8;
257        const CONDITIONAL_RENDERING_EXT = 1 << 9;
258        const SHADER_BINDING_TABLE_KHR = 1 << 10;
259        const TRANSFORM_FEEDBACK_BUFFER_EXT = 1 << 11;
260        const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT = 1 << 12;
261        const VIDEO_DECODE_SRC_KHR = 1 << 13;
262        const VIDEO_DECODE_DST_KHR = 1 << 14;
263        const VIDEO_ENCODE_DST_KHR = 1 << 15;
264        const VIDEO_ENCODE_SRC_KHR = 1 << 16;
265        const SHADER_DEVICE_ADDRESS = 1 << 17;
266        const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR = 1 << 19;
267        const ACCELERATION_STRUCTURE_STORAGE_KHR = 1 << 20;
268        const SAMPLER_DESCRIPTOR_BUFFER_EXT = 1 << 21;
269        const RESOURCE_DESCRIPTOR_BUFFER_EXT = 1 << 22;
270        const MICROMAP_BUILD_INPUT_READ_ONLY_EXT = 1 << 23;
271        const MICROMAP_STORAGE_EXT = 1 << 24;
272        const EXECUTION_GRAPH_SCRATCH_AMDX = 1 << 25;
273        const PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT = 1 << 26;
274        const TILE_MEMORY_QCOM = 1 << 27;
275        const DESCRIPTOR_HEAP_EXT = 1 << 28;
276        const DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM = 1 << 29;
277        const PREPROCESS_BUFFER_EXT = 1 << 31;
278        const MEMORY_DECOMPRESSION_EXT = 1 << 32;
279        const COMPRESSED_DATA_DGF1_AMDX = 1 << 33;
280    }
281}
282
283bitflags! {
284    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBufferViewCreateFlags.html>
285    #[repr(transparent)]
286    #[derive(Default)]
287    pub struct BufferViewCreateFlags: Flags { }
288}
289
290bitflags! {
291    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBuildAccelerationStructureFlagsKHR.html>
292    #[repr(transparent)]
293    #[derive(Default)]
294    pub struct BuildAccelerationStructureFlagsKHR: Flags {
295        const ALLOW_UPDATE = 1;
296        const ALLOW_COMPACTION = 1 << 1;
297        const PREFER_FAST_TRACE = 1 << 2;
298        const PREFER_FAST_BUILD = 1 << 3;
299        const LOW_MEMORY = 1 << 4;
300        const MOTION_NV = 1 << 5;
301        const ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 1 << 6;
302        const ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 1 << 7;
303        const ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 1 << 8;
304        const ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 1 << 9;
305        const ALLOW_DATA_ACCESS = 1 << 11;
306        const ALLOW_CLUSTER_OPACITY_MICROMAPS_NV = 1 << 12;
307    }
308}
309
310bitflags! {
311    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBuildMicromapFlagsEXT.html>
312    #[repr(transparent)]
313    #[derive(Default)]
314    pub struct BuildMicromapFlagsEXT: Flags {
315        const PREFER_FAST_TRACE = 1;
316        const PREFER_FAST_BUILD = 1 << 1;
317        const ALLOW_COMPACTION = 1 << 2;
318    }
319}
320
321bitflags! {
322    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClusterAccelerationStructureAddressResolutionFlagsNV.html>
323    #[repr(transparent)]
324    #[derive(Default)]
325    pub struct ClusterAccelerationStructureAddressResolutionFlagsNV: Flags {
326        const NONE = 0;
327        const INDIRECTED_DST_IMPLICIT_DATA = 1;
328        const INDIRECTED_SCRATCH_DATA = 1 << 1;
329        const INDIRECTED_DST_ADDRESS_ARRAY = 1 << 2;
330        const INDIRECTED_DST_SIZES_ARRAY = 1 << 3;
331        const INDIRECTED_SRC_INFOS_ARRAY = 1 << 4;
332        const INDIRECTED_SRC_INFOS_COUNT = 1 << 5;
333    }
334}
335
336bitflags! {
337    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClusterAccelerationStructureClusterFlagsNV.html>
338    #[repr(transparent)]
339    #[derive(Default)]
340    pub struct ClusterAccelerationStructureClusterFlagsNV: Flags {
341        const ALLOW_DISABLE_OPACITY_MICROMAPS = 1;
342    }
343}
344
345bitflags! {
346    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClusterAccelerationStructureGeometryFlagsNV.html>
347    #[repr(transparent)]
348    #[derive(Default)]
349    pub struct ClusterAccelerationStructureGeometryFlagsNV: Flags {
350        const CULL_DISABLE = 1;
351        const NO_DUPLICATE_ANYHIT_INVOCATION = 1 << 1;
352        const OPAQUE = 1 << 2;
353    }
354}
355
356bitflags! {
357    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkClusterAccelerationStructureIndexFormatFlagsNV.html>
358    #[repr(transparent)]
359    #[derive(Default)]
360    pub struct ClusterAccelerationStructureIndexFormatFlagsNV: Flags {
361        const _8BIT = 1;
362        const _16BIT = 1 << 1;
363        const _32BIT = 1 << 2;
364    }
365}
366
367bitflags! {
368    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkColorComponentFlags.html>
369    #[repr(transparent)]
370    #[derive(Default)]
371    pub struct ColorComponentFlags: Flags {
372        const R = 1;
373        const G = 1 << 1;
374        const B = 1 << 2;
375        const A = 1 << 3;
376    }
377}
378
379bitflags! {
380    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCommandBufferResetFlags.html>
381    #[repr(transparent)]
382    #[derive(Default)]
383    pub struct CommandBufferResetFlags: Flags {
384        const RELEASE_RESOURCES = 1;
385    }
386}
387
388bitflags! {
389    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCommandBufferUsageFlags.html>
390    #[repr(transparent)]
391    #[derive(Default)]
392    pub struct CommandBufferUsageFlags: Flags {
393        const ONE_TIME_SUBMIT = 1;
394        const RENDER_PASS_CONTINUE = 1 << 1;
395        const SIMULTANEOUS_USE = 1 << 2;
396    }
397}
398
399bitflags! {
400    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCommandPoolCreateFlags.html>
401    #[repr(transparent)]
402    #[derive(Default)]
403    pub struct CommandPoolCreateFlags: Flags {
404        const TRANSIENT = 1;
405        const RESET_COMMAND_BUFFER = 1 << 1;
406        const PROTECTED = 1 << 2;
407    }
408}
409
410bitflags! {
411    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCommandPoolResetFlags.html>
412    #[repr(transparent)]
413    #[derive(Default)]
414    pub struct CommandPoolResetFlags: Flags {
415        const RELEASE_RESOURCES = 1;
416    }
417}
418
419bitflags! {
420    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCommandPoolTrimFlags.html>
421    #[repr(transparent)]
422    #[derive(Default)]
423    pub struct CommandPoolTrimFlags: Flags { }
424}
425
426bitflags! {
427    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCompositeAlphaFlagsKHR.html>
428    #[repr(transparent)]
429    #[derive(Default)]
430    pub struct CompositeAlphaFlagsKHR: Flags {
431        const OPAQUE = 1;
432        const PRE_MULTIPLIED = 1 << 1;
433        const POST_MULTIPLIED = 1 << 2;
434        const INHERIT = 1 << 3;
435    }
436}
437
438bitflags! {
439    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkConditionalRenderingFlagsEXT.html>
440    #[repr(transparent)]
441    #[derive(Default)]
442    pub struct ConditionalRenderingFlagsEXT: Flags {
443        const INVERTED = 1;
444    }
445}
446
447bitflags! {
448    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCullModeFlags.html>
449    #[repr(transparent)]
450    #[derive(Default)]
451    pub struct CullModeFlags: Flags {
452        const NONE = 0;
453        const FRONT = 1;
454        const BACK = 1 << 1;
455        const FRONT_AND_BACK = Self::FRONT.bits | Self::BACK.bits;
456    }
457}
458
459bitflags! {
460    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDataGraphPipelineDispatchFlagsARM.html>
461    #[repr(transparent)]
462    #[derive(Default)]
463    pub struct DataGraphPipelineDispatchFlagsARM: Flags { }
464}
465
466bitflags! {
467    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDataGraphPipelineSessionCreateFlagsARM.html>
468    #[repr(transparent)]
469    #[derive(Default)]
470    pub struct DataGraphPipelineSessionCreateFlagsARM: Flags {
471        const PROTECTED = 1;
472    }
473}
474
475bitflags! {
476    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDebugReportFlagsEXT.html>
477    #[repr(transparent)]
478    #[derive(Default)]
479    pub struct DebugReportFlagsEXT: Flags {
480        const INFORMATION = 1;
481        const WARNING = 1 << 1;
482        const PERFORMANCE_WARNING = 1 << 2;
483        const ERROR = 1 << 3;
484        const DEBUG = 1 << 4;
485    }
486}
487
488bitflags! {
489    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDebugUtilsMessageSeverityFlagsEXT.html>
490    #[repr(transparent)]
491    #[derive(Default)]
492    pub struct DebugUtilsMessageSeverityFlagsEXT: Flags {
493        const VERBOSE = 1;
494        const INFO = 1 << 4;
495        const WARNING = 1 << 8;
496        const ERROR = 1 << 12;
497    }
498}
499
500bitflags! {
501    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDebugUtilsMessageTypeFlagsEXT.html>
502    #[repr(transparent)]
503    #[derive(Default)]
504    pub struct DebugUtilsMessageTypeFlagsEXT: Flags {
505        const GENERAL = 1;
506        const VALIDATION = 1 << 1;
507        const PERFORMANCE = 1 << 2;
508        const DEVICE_ADDRESS_BINDING = 1 << 3;
509    }
510}
511
512bitflags! {
513    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDebugUtilsMessengerCallbackDataFlagsEXT.html>
514    #[repr(transparent)]
515    #[derive(Default)]
516    pub struct DebugUtilsMessengerCallbackDataFlagsEXT: Flags { }
517}
518
519bitflags! {
520    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDebugUtilsMessengerCreateFlagsEXT.html>
521    #[repr(transparent)]
522    #[derive(Default)]
523    pub struct DebugUtilsMessengerCreateFlagsEXT: Flags { }
524}
525
526bitflags! {
527    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDependencyFlags.html>
528    #[repr(transparent)]
529    #[derive(Default)]
530    pub struct DependencyFlags: Flags {
531        const BY_REGION = 1;
532        const VIEW_LOCAL = 1 << 1;
533        const DEVICE_GROUP = 1 << 2;
534        const FEEDBACK_LOOP_EXT = 1 << 3;
535        const QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR = 1 << 5;
536        const ASYMMETRIC_EVENT_KHR = 1 << 6;
537    }
538}
539
540bitflags! {
541    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorBindingFlags.html>
542    #[repr(transparent)]
543    #[derive(Default)]
544    pub struct DescriptorBindingFlags: Flags {
545        const UPDATE_AFTER_BIND = 1;
546        const UPDATE_UNUSED_WHILE_PENDING = 1 << 1;
547        const PARTIALLY_BOUND = 1 << 2;
548        const VARIABLE_DESCRIPTOR_COUNT = 1 << 3;
549    }
550}
551
552bitflags! {
553    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorPoolCreateFlags.html>
554    #[repr(transparent)]
555    #[derive(Default)]
556    pub struct DescriptorPoolCreateFlags: Flags {
557        const FREE_DESCRIPTOR_SET = 1;
558        const UPDATE_AFTER_BIND = 1 << 1;
559        const HOST_ONLY_EXT = 1 << 2;
560        const ALLOW_OVERALLOCATION_SETS_NV = 1 << 3;
561        const ALLOW_OVERALLOCATION_POOLS_NV = 1 << 4;
562    }
563}
564
565bitflags! {
566    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorPoolResetFlags.html>
567    #[repr(transparent)]
568    #[derive(Default)]
569    pub struct DescriptorPoolResetFlags: Flags { }
570}
571
572bitflags! {
573    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorSetLayoutCreateFlags.html>
574    #[repr(transparent)]
575    #[derive(Default)]
576    pub struct DescriptorSetLayoutCreateFlags: Flags {
577        const PUSH_DESCRIPTOR = 1;
578        const UPDATE_AFTER_BIND_POOL = 1 << 1;
579        const HOST_ONLY_POOL_EXT = 1 << 2;
580        const DESCRIPTOR_BUFFER_EXT = 1 << 4;
581        const EMBEDDED_IMMUTABLE_SAMPLERS_EXT = 1 << 5;
582        const PER_STAGE_NV = 1 << 6;
583        const INDIRECT_BINDABLE_NV = 1 << 7;
584    }
585}
586
587bitflags! {
588    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorUpdateTemplateCreateFlags.html>
589    #[repr(transparent)]
590    #[derive(Default)]
591    pub struct DescriptorUpdateTemplateCreateFlags: Flags { }
592}
593
594bitflags! {
595    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceAddressBindingFlagsEXT.html>
596    #[repr(transparent)]
597    #[derive(Default)]
598    pub struct DeviceAddressBindingFlagsEXT: Flags {
599        const INTERNAL_OBJECT = 1;
600    }
601}
602
603bitflags! {
604    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceCreateFlags.html>
605    #[repr(transparent)]
606    #[derive(Default)]
607    pub struct DeviceCreateFlags: Flags { }
608}
609
610bitflags! {
611    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceDiagnosticsConfigFlagsNV.html>
612    #[repr(transparent)]
613    #[derive(Default)]
614    pub struct DeviceDiagnosticsConfigFlagsNV: Flags {
615        const ENABLE_SHADER_DEBUG_INFO = 1;
616        const ENABLE_RESOURCE_TRACKING = 1 << 1;
617        const ENABLE_AUTOMATIC_CHECKPOINTS = 1 << 2;
618        const ENABLE_SHADER_ERROR_REPORTING = 1 << 3;
619    }
620}
621
622bitflags! {
623    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceGroupPresentModeFlagsKHR.html>
624    #[repr(transparent)]
625    #[derive(Default)]
626    pub struct DeviceGroupPresentModeFlagsKHR: Flags {
627        const LOCAL = 1;
628        const REMOTE = 1 << 1;
629        const SUM = 1 << 2;
630        const LOCAL_MULTI_DEVICE = 1 << 3;
631    }
632}
633
634bitflags! {
635    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceMemoryReportFlagsEXT.html>
636    #[repr(transparent)]
637    #[derive(Default)]
638    pub struct DeviceMemoryReportFlagsEXT: Flags { }
639}
640
641bitflags! {
642    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDeviceQueueCreateFlags.html>
643    #[repr(transparent)]
644    #[derive(Default)]
645    pub struct DeviceQueueCreateFlags: Flags {
646        const PROTECTED = 1;
647        const INTERNALLY_SYNCHRONIZED_KHR = 1 << 2;
648    }
649}
650
651bitflags! {
652    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDirectDriverLoadingFlagsLUNARG.html>
653    #[repr(transparent)]
654    #[derive(Default)]
655    pub struct DirectDriverLoadingFlagsLUNARG: Flags { }
656}
657
658bitflags! {
659    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDirectFBSurfaceCreateFlagsEXT.html>
660    #[repr(transparent)]
661    #[derive(Default)]
662    pub struct DirectFBSurfaceCreateFlagsEXT: Flags { }
663}
664
665bitflags! {
666    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDisplayModeCreateFlagsKHR.html>
667    #[repr(transparent)]
668    #[derive(Default)]
669    pub struct DisplayModeCreateFlagsKHR: Flags { }
670}
671
672bitflags! {
673    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDisplayPlaneAlphaFlagsKHR.html>
674    #[repr(transparent)]
675    #[derive(Default)]
676    pub struct DisplayPlaneAlphaFlagsKHR: Flags {
677        const OPAQUE = 1;
678        const GLOBAL = 1 << 1;
679        const PER_PIXEL = 1 << 2;
680        const PER_PIXEL_PREMULTIPLIED = 1 << 3;
681    }
682}
683
684bitflags! {
685    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDisplaySurfaceCreateFlagsKHR.html>
686    #[repr(transparent)]
687    #[derive(Default)]
688    pub struct DisplaySurfaceCreateFlagsKHR: Flags { }
689}
690
691bitflags! {
692    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkEventCreateFlags.html>
693    #[repr(transparent)]
694    #[derive(Default)]
695    pub struct EventCreateFlags: Flags {
696        const DEVICE_ONLY = 1;
697    }
698}
699
700bitflags! {
701    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExportMetalObjectTypeFlagsEXT.html>
702    #[repr(transparent)]
703    #[derive(Default)]
704    pub struct ExportMetalObjectTypeFlagsEXT: Flags {
705        const METAL_DEVICE = 1;
706        const METAL_COMMAND_QUEUE = 1 << 1;
707        const METAL_BUFFER = 1 << 2;
708        const METAL_TEXTURE = 1 << 3;
709        const METAL_IOSURFACE = 1 << 4;
710        const METAL_SHARED_EVENT = 1 << 5;
711    }
712}
713
714bitflags! {
715    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalFenceFeatureFlags.html>
716    #[repr(transparent)]
717    #[derive(Default)]
718    pub struct ExternalFenceFeatureFlags: Flags {
719        const EXPORTABLE = 1;
720        const IMPORTABLE = 1 << 1;
721    }
722}
723
724bitflags! {
725    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalFenceHandleTypeFlags.html>
726    #[repr(transparent)]
727    #[derive(Default)]
728    pub struct ExternalFenceHandleTypeFlags: Flags {
729        const OPAQUE_FD = 1;
730        const OPAQUE_WIN32 = 1 << 1;
731        const OPAQUE_WIN32_KMT = 1 << 2;
732        const SYNC_FD = 1 << 3;
733        const SCI_SYNC_OBJ_NV = 1 << 4;
734        const SCI_SYNC_FENCE_NV = 1 << 5;
735    }
736}
737
738bitflags! {
739    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalMemoryFeatureFlags.html>
740    #[repr(transparent)]
741    #[derive(Default)]
742    pub struct ExternalMemoryFeatureFlags: Flags {
743        const DEDICATED_ONLY = 1;
744        const EXPORTABLE = 1 << 1;
745        const IMPORTABLE = 1 << 2;
746    }
747}
748
749bitflags! {
750    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalMemoryFeatureFlagsNV.html>
751    #[repr(transparent)]
752    #[derive(Default)]
753    pub struct ExternalMemoryFeatureFlagsNV: Flags {
754        const DEDICATED_ONLY = 1;
755        const EXPORTABLE = 1 << 1;
756        const IMPORTABLE = 1 << 2;
757    }
758}
759
760bitflags! {
761    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalMemoryHandleTypeFlags.html>
762    #[repr(transparent)]
763    #[derive(Default)]
764    pub struct ExternalMemoryHandleTypeFlags: Flags {
765        const OPAQUE_FD = 1;
766        const OPAQUE_WIN32 = 1 << 1;
767        const OPAQUE_WIN32_KMT = 1 << 2;
768        const D3D11_TEXTURE = 1 << 3;
769        const D3D11_TEXTURE_KMT = 1 << 4;
770        const D3D12_HEAP = 1 << 5;
771        const D3D12_RESOURCE = 1 << 6;
772        const HOST_ALLOCATION_EXT = 1 << 7;
773        const HOST_MAPPED_FOREIGN_MEMORY_EXT = 1 << 8;
774        const DMA_BUF_EXT = 1 << 9;
775        const ANDROID_HARDWARE_BUFFER_ANDROID = 1 << 10;
776        const ZIRCON_VMO_FUCHSIA = 1 << 11;
777        const RDMA_ADDRESS_NV = 1 << 12;
778        const SCI_BUF_NV = 1 << 13;
779        const SCREEN_BUFFER_QNX = 1 << 14;
780        const OH_NATIVE_BUFFER_OHOS = 1 << 15;
781        const MTLBUFFER_EXT = 1 << 16;
782        const MTLTEXTURE_EXT = 1 << 17;
783        const MTLHEAP_EXT = 1 << 18;
784    }
785}
786
787bitflags! {
788    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalMemoryHandleTypeFlagsNV.html>
789    #[repr(transparent)]
790    #[derive(Default)]
791    pub struct ExternalMemoryHandleTypeFlagsNV: Flags {
792        const OPAQUE_WIN32 = 1;
793        const OPAQUE_WIN32_KMT = 1 << 1;
794        const D3D11_IMAGE = 1 << 2;
795        const D3D11_IMAGE_KMT = 1 << 3;
796    }
797}
798
799bitflags! {
800    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalSemaphoreFeatureFlags.html>
801    #[repr(transparent)]
802    #[derive(Default)]
803    pub struct ExternalSemaphoreFeatureFlags: Flags {
804        const EXPORTABLE = 1;
805        const IMPORTABLE = 1 << 1;
806    }
807}
808
809bitflags! {
810    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalSemaphoreHandleTypeFlags.html>
811    #[repr(transparent)]
812    #[derive(Default)]
813    pub struct ExternalSemaphoreHandleTypeFlags: Flags {
814        const OPAQUE_FD = 1;
815        const OPAQUE_WIN32 = 1 << 1;
816        const OPAQUE_WIN32_KMT = 1 << 2;
817        const D3D12_FENCE = 1 << 3;
818        const SYNC_FD = 1 << 4;
819        const SCI_SYNC_OBJ_NV = 1 << 5;
820        const ZIRCON_EVENT_FUCHSIA = 1 << 7;
821    }
822}
823
824bitflags! {
825    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFenceCreateFlags.html>
826    #[repr(transparent)]
827    #[derive(Default)]
828    pub struct FenceCreateFlags: Flags {
829        const SIGNALED = 1;
830    }
831}
832
833bitflags! {
834    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFenceImportFlags.html>
835    #[repr(transparent)]
836    #[derive(Default)]
837    pub struct FenceImportFlags: Flags {
838        const TEMPORARY = 1;
839    }
840}
841
842bitflags! {
843    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFormatFeatureFlags.html>
844    #[repr(transparent)]
845    #[derive(Default)]
846    pub struct FormatFeatureFlags: Flags {
847        const SAMPLED_IMAGE = 1;
848        const STORAGE_IMAGE = 1 << 1;
849        const STORAGE_IMAGE_ATOMIC = 1 << 2;
850        const UNIFORM_TEXEL_BUFFER = 1 << 3;
851        const STORAGE_TEXEL_BUFFER = 1 << 4;
852        const STORAGE_TEXEL_BUFFER_ATOMIC = 1 << 5;
853        const VERTEX_BUFFER = 1 << 6;
854        const COLOR_ATTACHMENT = 1 << 7;
855        const COLOR_ATTACHMENT_BLEND = 1 << 8;
856        const DEPTH_STENCIL_ATTACHMENT = 1 << 9;
857        const BLIT_SRC = 1 << 10;
858        const BLIT_DST = 1 << 11;
859        const SAMPLED_IMAGE_FILTER_LINEAR = 1 << 12;
860        const SAMPLED_IMAGE_FILTER_CUBIC_EXT = 1 << 13;
861        const TRANSFER_SRC = 1 << 14;
862        const TRANSFER_DST = 1 << 15;
863        const SAMPLED_IMAGE_FILTER_MINMAX = 1 << 16;
864        const MIDPOINT_CHROMA_SAMPLES = 1 << 17;
865        const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER = 1 << 18;
866        const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER = 1 << 19;
867        const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT = 1 << 20;
868        const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE = 1 << 21;
869        const DISJOINT = 1 << 22;
870        const COSITED_CHROMA_SAMPLES = 1 << 23;
871        const FRAGMENT_DENSITY_MAP_EXT = 1 << 24;
872        const VIDEO_DECODE_OUTPUT_KHR = 1 << 25;
873        const VIDEO_DECODE_DPB_KHR = 1 << 26;
874        const VIDEO_ENCODE_INPUT_KHR = 1 << 27;
875        const VIDEO_ENCODE_DPB_KHR = 1 << 28;
876        const ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR = 1 << 29;
877        const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 30;
878    }
879}
880
881bitflags! {
882    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFormatFeatureFlags2.html>
883    #[repr(transparent)]
884    #[derive(Default)]
885    pub struct FormatFeatureFlags2: Flags64 {
886        const SAMPLED_IMAGE = 1;
887        const STORAGE_IMAGE = 1 << 1;
888        const STORAGE_IMAGE_ATOMIC = 1 << 2;
889        const UNIFORM_TEXEL_BUFFER = 1 << 3;
890        const STORAGE_TEXEL_BUFFER = 1 << 4;
891        const STORAGE_TEXEL_BUFFER_ATOMIC = 1 << 5;
892        const VERTEX_BUFFER = 1 << 6;
893        const COLOR_ATTACHMENT = 1 << 7;
894        const COLOR_ATTACHMENT_BLEND = 1 << 8;
895        const DEPTH_STENCIL_ATTACHMENT = 1 << 9;
896        const BLIT_SRC = 1 << 10;
897        const BLIT_DST = 1 << 11;
898        const SAMPLED_IMAGE_FILTER_LINEAR = 1 << 12;
899        const SAMPLED_IMAGE_FILTER_CUBIC = 1 << 13;
900        const TRANSFER_SRC = 1 << 14;
901        const TRANSFER_DST = 1 << 15;
902        const SAMPLED_IMAGE_FILTER_MINMAX = 1 << 16;
903        const MIDPOINT_CHROMA_SAMPLES = 1 << 17;
904        const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER = 1 << 18;
905        const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER = 1 << 19;
906        const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT = 1 << 20;
907        const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE = 1 << 21;
908        const DISJOINT = 1 << 22;
909        const COSITED_CHROMA_SAMPLES = 1 << 23;
910        const FRAGMENT_DENSITY_MAP_EXT = 1 << 24;
911        const VIDEO_DECODE_OUTPUT_KHR = 1 << 25;
912        const VIDEO_DECODE_DPB_KHR = 1 << 26;
913        const VIDEO_ENCODE_INPUT_KHR = 1 << 27;
914        const VIDEO_ENCODE_DPB_KHR = 1 << 28;
915        const ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR = 1 << 29;
916        const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 30;
917        const STORAGE_READ_WITHOUT_FORMAT = 1 << 31;
918        const STORAGE_WRITE_WITHOUT_FORMAT = 1 << 32;
919        const SAMPLED_IMAGE_DEPTH_COMPARISON = 1 << 33;
920        const WEIGHT_IMAGE_QCOM = 1 << 34;
921        const WEIGHT_SAMPLED_IMAGE_QCOM = 1 << 35;
922        const BLOCK_MATCHING_QCOM = 1 << 36;
923        const BOX_FILTER_SAMPLED_QCOM = 1 << 37;
924        const LINEAR_COLOR_ATTACHMENT_NV = 1 << 38;
925        const TENSOR_SHADER_ARM = 1 << 39;
926        const OPTICAL_FLOW_IMAGE_NV = 1 << 40;
927        const OPTICAL_FLOW_VECTOR_NV = 1 << 41;
928        const OPTICAL_FLOW_COST_NV = 1 << 42;
929        const TENSOR_IMAGE_ALIASING_ARM = 1 << 43;
930        const HOST_IMAGE_TRANSFER = 1 << 46;
931        const TENSOR_DATA_GRAPH_ARM = 1 << 48;
932        const VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR = 1 << 49;
933        const VIDEO_ENCODE_EMPHASIS_MAP_KHR = 1 << 50;
934        const ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV = 1 << 51;
935        const DEPTH_COPY_ON_COMPUTE_QUEUE_KHR = 1 << 52;
936        const DEPTH_COPY_ON_TRANSFER_QUEUE_KHR = 1 << 53;
937        const STENCIL_COPY_ON_COMPUTE_QUEUE_KHR = 1 << 54;
938        const STENCIL_COPY_ON_TRANSFER_QUEUE_KHR = 1 << 55;
939        const COPY_IMAGE_INDIRECT_DST_KHR = 1 << 59;
940    }
941}
942
943bitflags! {
944    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFrameBoundaryFlagsEXT.html>
945    #[repr(transparent)]
946    #[derive(Default)]
947    pub struct FrameBoundaryFlagsEXT: Flags {
948        const FRAME_END = 1;
949    }
950}
951
952bitflags! {
953    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFramebufferCreateFlags.html>
954    #[repr(transparent)]
955    #[derive(Default)]
956    pub struct FramebufferCreateFlags: Flags {
957        const IMAGELESS = 1;
958    }
959}
960
961bitflags! {
962    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkGeometryFlagsKHR.html>
963    #[repr(transparent)]
964    #[derive(Default)]
965    pub struct GeometryFlagsKHR: Flags {
966        const OPAQUE = 1;
967        const NO_DUPLICATE_ANY_HIT_INVOCATION = 1 << 1;
968    }
969}
970
971bitflags! {
972    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkGeometryInstanceFlagsKHR.html>
973    #[repr(transparent)]
974    #[derive(Default)]
975    pub struct GeometryInstanceFlagsKHR: Flags {
976        const TRIANGLE_FACING_CULL_DISABLE = 1;
977        const TRIANGLE_FLIP_FACING = 1 << 1;
978        const FORCE_OPAQUE = 1 << 2;
979        const FORCE_NO_OPAQUE = 1 << 3;
980        const FORCE_OPACITY_MICROMAP_2_STATE_EXT = 1 << 4;
981        const DISABLE_OPACITY_MICROMAPS_EXT = 1 << 5;
982    }
983}
984
985bitflags! {
986    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkGraphicsPipelineLibraryFlagsEXT.html>
987    #[repr(transparent)]
988    #[derive(Default)]
989    pub struct GraphicsPipelineLibraryFlagsEXT: Flags {
990        const VERTEX_INPUT_INTERFACE = 1;
991        const PRE_RASTERIZATION_SHADERS = 1 << 1;
992        const FRAGMENT_SHADER = 1 << 2;
993        const FRAGMENT_OUTPUT_INTERFACE = 1 << 3;
994    }
995}
996
997bitflags! {
998    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkHeadlessSurfaceCreateFlagsEXT.html>
999    #[repr(transparent)]
1000    #[derive(Default)]
1001    pub struct HeadlessSurfaceCreateFlagsEXT: Flags { }
1002}
1003
1004bitflags! {
1005    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkHostImageCopyFlags.html>
1006    #[repr(transparent)]
1007    #[derive(Default)]
1008    pub struct HostImageCopyFlags: Flags {
1009        const MEMCPY = 1;
1010    }
1011}
1012
1013bitflags! {
1014    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIOSSurfaceCreateFlagsMVK.html>
1015    #[repr(transparent)]
1016    #[derive(Default)]
1017    pub struct IOSSurfaceCreateFlagsMVK: Flags { }
1018}
1019
1020bitflags! {
1021    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageAspectFlags.html>
1022    #[repr(transparent)]
1023    #[derive(Default)]
1024    pub struct ImageAspectFlags: Flags {
1025        const COLOR = 1;
1026        const DEPTH = 1 << 1;
1027        const STENCIL = 1 << 2;
1028        const METADATA = 1 << 3;
1029        const PLANE_0 = 1 << 4;
1030        const PLANE_1 = 1 << 5;
1031        const PLANE_2 = 1 << 6;
1032        const MEMORY_PLANE_0_EXT = 1 << 7;
1033        const MEMORY_PLANE_1_EXT = 1 << 8;
1034        const MEMORY_PLANE_2_EXT = 1 << 9;
1035        const MEMORY_PLANE_3_EXT = 1 << 10;
1036    }
1037}
1038
1039bitflags! {
1040    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageCompressionFixedRateFlagsEXT.html>
1041    #[repr(transparent)]
1042    #[derive(Default)]
1043    pub struct ImageCompressionFixedRateFlagsEXT: Flags {
1044        const NONE = 0;
1045        const _1BPC = 1;
1046        const _2BPC = 1 << 1;
1047        const _3BPC = 1 << 2;
1048        const _4BPC = 1 << 3;
1049        const _5BPC = 1 << 4;
1050        const _6BPC = 1 << 5;
1051        const _7BPC = 1 << 6;
1052        const _8BPC = 1 << 7;
1053        const _9BPC = 1 << 8;
1054        const _10BPC = 1 << 9;
1055        const _11BPC = 1 << 10;
1056        const _12BPC = 1 << 11;
1057        const _13BPC = 1 << 12;
1058        const _14BPC = 1 << 13;
1059        const _15BPC = 1 << 14;
1060        const _16BPC = 1 << 15;
1061        const _17BPC = 1 << 16;
1062        const _18BPC = 1 << 17;
1063        const _19BPC = 1 << 18;
1064        const _20BPC = 1 << 19;
1065        const _21BPC = 1 << 20;
1066        const _22BPC = 1 << 21;
1067        const _23BPC = 1 << 22;
1068        const _24BPC = 1 << 23;
1069    }
1070}
1071
1072bitflags! {
1073    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageCompressionFlagsEXT.html>
1074    #[repr(transparent)]
1075    #[derive(Default)]
1076    pub struct ImageCompressionFlagsEXT: Flags {
1077        const DEFAULT = 0;
1078        const FIXED_RATE_DEFAULT = 1;
1079        const FIXED_RATE_EXPLICIT = 1 << 1;
1080        const DISABLED = 1 << 2;
1081    }
1082}
1083
1084bitflags! {
1085    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageConstraintsInfoFlagsFUCHSIA.html>
1086    #[repr(transparent)]
1087    #[derive(Default)]
1088    pub struct ImageConstraintsInfoFlagsFUCHSIA: Flags {
1089        const CPU_READ_RARELY = 1;
1090        const CPU_READ_OFTEN = 1 << 1;
1091        const CPU_WRITE_RARELY = 1 << 2;
1092        const CPU_WRITE_OFTEN = 1 << 3;
1093        const PROTECTED_OPTIONAL = 1 << 4;
1094    }
1095}
1096
1097bitflags! {
1098    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageCreateFlags.html>
1099    #[repr(transparent)]
1100    #[derive(Default)]
1101    pub struct ImageCreateFlags: Flags {
1102        const SPARSE_BINDING = 1;
1103        const SPARSE_RESIDENCY = 1 << 1;
1104        const SPARSE_ALIASED = 1 << 2;
1105        const MUTABLE_FORMAT = 1 << 3;
1106        const CUBE_COMPATIBLE = 1 << 4;
1107        const _2D_ARRAY_COMPATIBLE = 1 << 5;
1108        const SPLIT_INSTANCE_BIND_REGIONS = 1 << 6;
1109        const BLOCK_TEXEL_VIEW_COMPATIBLE = 1 << 7;
1110        const EXTENDED_USAGE = 1 << 8;
1111        const DISJOINT = 1 << 9;
1112        const ALIAS = 1 << 10;
1113        const PROTECTED = 1 << 11;
1114        const SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT = 1 << 12;
1115        const CORNER_SAMPLED_NV = 1 << 13;
1116        const SUBSAMPLED_EXT = 1 << 14;
1117        const FRAGMENT_DENSITY_MAP_OFFSET_EXT = 1 << 15;
1118        const DESCRIPTOR_HEAP_CAPTURE_REPLAY_EXT = 1 << 16;
1119        const _2D_VIEW_COMPATIBLE_EXT = 1 << 17;
1120        const MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT = 1 << 18;
1121        const VIDEO_PROFILE_INDEPENDENT_KHR = 1 << 20;
1122    }
1123}
1124
1125bitflags! {
1126    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageFormatConstraintsFlagsFUCHSIA.html>
1127    #[repr(transparent)]
1128    #[derive(Default)]
1129    pub struct ImageFormatConstraintsFlagsFUCHSIA: Flags { }
1130}
1131
1132bitflags! {
1133    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImagePipeSurfaceCreateFlagsFUCHSIA.html>
1134    #[repr(transparent)]
1135    #[derive(Default)]
1136    pub struct ImagePipeSurfaceCreateFlagsFUCHSIA: Flags { }
1137}
1138
1139bitflags! {
1140    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageUsageFlags.html>
1141    #[repr(transparent)]
1142    #[derive(Default)]
1143    pub struct ImageUsageFlags: Flags {
1144        const TRANSFER_SRC = 1;
1145        const TRANSFER_DST = 1 << 1;
1146        const SAMPLED = 1 << 2;
1147        const STORAGE = 1 << 3;
1148        const COLOR_ATTACHMENT = 1 << 4;
1149        const DEPTH_STENCIL_ATTACHMENT = 1 << 5;
1150        const TRANSIENT_ATTACHMENT = 1 << 6;
1151        const INPUT_ATTACHMENT = 1 << 7;
1152        const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 8;
1153        const FRAGMENT_DENSITY_MAP_EXT = 1 << 9;
1154        const VIDEO_DECODE_DST_KHR = 1 << 10;
1155        const VIDEO_DECODE_SRC_KHR = 1 << 11;
1156        const VIDEO_DECODE_DPB_KHR = 1 << 12;
1157        const VIDEO_ENCODE_DST_KHR = 1 << 13;
1158        const VIDEO_ENCODE_SRC_KHR = 1 << 14;
1159        const VIDEO_ENCODE_DPB_KHR = 1 << 15;
1160        const INVOCATION_MASK_HUAWEI = 1 << 18;
1161        const ATTACHMENT_FEEDBACK_LOOP_EXT = 1 << 19;
1162        const SAMPLE_WEIGHT_QCOM = 1 << 20;
1163        const SAMPLE_BLOCK_MATCH_QCOM = 1 << 21;
1164        const HOST_TRANSFER = 1 << 22;
1165        const TENSOR_ALIASING_ARM = 1 << 23;
1166        const VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR = 1 << 25;
1167        const VIDEO_ENCODE_EMPHASIS_MAP_KHR = 1 << 26;
1168        const TILE_MEMORY_QCOM = 1 << 27;
1169    }
1170}
1171
1172bitflags! {
1173    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkImageViewCreateFlags.html>
1174    #[repr(transparent)]
1175    #[derive(Default)]
1176    pub struct ImageViewCreateFlags: Flags {
1177        const FRAGMENT_DENSITY_MAP_DYNAMIC_EXT = 1;
1178        const FRAGMENT_DENSITY_MAP_DEFERRED_EXT = 1 << 1;
1179        const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT = 1 << 2;
1180    }
1181}
1182
1183bitflags! {
1184    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIndirectCommandsInputModeFlagsEXT.html>
1185    #[repr(transparent)]
1186    #[derive(Default)]
1187    pub struct IndirectCommandsInputModeFlagsEXT: Flags {
1188        const VULKAN_INDEX_BUFFER = 1;
1189        const DXGI_INDEX_BUFFER = 1 << 1;
1190    }
1191}
1192
1193bitflags! {
1194    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutUsageFlagsEXT.html>
1195    #[repr(transparent)]
1196    #[derive(Default)]
1197    pub struct IndirectCommandsLayoutUsageFlagsEXT: Flags {
1198        const EXPLICIT_PREPROCESS = 1;
1199        const UNORDERED_SEQUENCES = 1 << 1;
1200    }
1201}
1202
1203bitflags! {
1204    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIndirectCommandsLayoutUsageFlagsNV.html>
1205    #[repr(transparent)]
1206    #[derive(Default)]
1207    pub struct IndirectCommandsLayoutUsageFlagsNV: Flags {
1208        const EXPLICIT_PREPROCESS = 1;
1209        const INDEXED_SEQUENCES = 1 << 1;
1210        const UNORDERED_SEQUENCES = 1 << 2;
1211    }
1212}
1213
1214bitflags! {
1215    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkIndirectStateFlagsNV.html>
1216    #[repr(transparent)]
1217    #[derive(Default)]
1218    pub struct IndirectStateFlagsNV: Flags {
1219        const FLAG_FRONTFACE = 1;
1220    }
1221}
1222
1223bitflags! {
1224    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkInstanceCreateFlags.html>
1225    #[repr(transparent)]
1226    #[derive(Default)]
1227    pub struct InstanceCreateFlags: Flags {
1228        const ENUMERATE_PORTABILITY_KHR = 1;
1229    }
1230}
1231
1232bitflags! {
1233    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMacOSSurfaceCreateFlagsMVK.html>
1234    #[repr(transparent)]
1235    #[derive(Default)]
1236    pub struct MacOSSurfaceCreateFlagsMVK: Flags { }
1237}
1238
1239bitflags! {
1240    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryAllocateFlags.html>
1241    #[repr(transparent)]
1242    #[derive(Default)]
1243    pub struct MemoryAllocateFlags: Flags {
1244        const DEVICE_MASK = 1;
1245        const DEVICE_ADDRESS = 1 << 1;
1246        const DEVICE_ADDRESS_CAPTURE_REPLAY = 1 << 2;
1247        const ZERO_INITIALIZE_EXT = 1 << 3;
1248    }
1249}
1250
1251bitflags! {
1252    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryDecompressionMethodFlagsEXT.html>
1253    #[repr(transparent)]
1254    #[derive(Default)]
1255    pub struct MemoryDecompressionMethodFlagsEXT: Flags {
1256        const GDEFLATE_1_0 = 1;
1257    }
1258}
1259
1260bitflags! {
1261    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryHeapFlags.html>
1262    #[repr(transparent)]
1263    #[derive(Default)]
1264    pub struct MemoryHeapFlags: Flags {
1265        const DEVICE_LOCAL = 1;
1266        const MULTI_INSTANCE = 1 << 1;
1267        const TILE_MEMORY_QCOM = 1 << 3;
1268    }
1269}
1270
1271bitflags! {
1272    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryMapFlags.html>
1273    #[repr(transparent)]
1274    #[derive(Default)]
1275    pub struct MemoryMapFlags: Flags {
1276        const PLACED_EXT = 1;
1277    }
1278}
1279
1280bitflags! {
1281    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryPropertyFlags.html>
1282    #[repr(transparent)]
1283    #[derive(Default)]
1284    pub struct MemoryPropertyFlags: Flags {
1285        const DEVICE_LOCAL = 1;
1286        const HOST_VISIBLE = 1 << 1;
1287        const HOST_COHERENT = 1 << 2;
1288        const HOST_CACHED = 1 << 3;
1289        const LAZILY_ALLOCATED = 1 << 4;
1290        const PROTECTED = 1 << 5;
1291        const DEVICE_COHERENT_AMD = 1 << 6;
1292        const DEVICE_UNCACHED_AMD = 1 << 7;
1293        const RDMA_CAPABLE_NV = 1 << 8;
1294    }
1295}
1296
1297bitflags! {
1298    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryUnmapFlags.html>
1299    #[repr(transparent)]
1300    #[derive(Default)]
1301    pub struct MemoryUnmapFlags: Flags {
1302        const RESERVE_EXT = 1;
1303    }
1304}
1305
1306bitflags! {
1307    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMetalSurfaceCreateFlagsEXT.html>
1308    #[repr(transparent)]
1309    #[derive(Default)]
1310    pub struct MetalSurfaceCreateFlagsEXT: Flags { }
1311}
1312
1313bitflags! {
1314    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMicromapCreateFlagsEXT.html>
1315    #[repr(transparent)]
1316    #[derive(Default)]
1317    pub struct MicromapCreateFlagsEXT: Flags {
1318        const DEVICE_ADDRESS_CAPTURE_REPLAY = 1;
1319    }
1320}
1321
1322bitflags! {
1323    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkOpticalFlowExecuteFlagsNV.html>
1324    #[repr(transparent)]
1325    #[derive(Default)]
1326    pub struct OpticalFlowExecuteFlagsNV: Flags {
1327        const DISABLE_TEMPORAL_HINTS = 1;
1328    }
1329}
1330
1331bitflags! {
1332    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkOpticalFlowGridSizeFlagsNV.html>
1333    #[repr(transparent)]
1334    #[derive(Default)]
1335    pub struct OpticalFlowGridSizeFlagsNV: Flags {
1336        const UNKNOWN = 0;
1337        const _1X1 = 1;
1338        const _2X2 = 1 << 1;
1339        const _4X4 = 1 << 2;
1340        const _8X8 = 1 << 3;
1341    }
1342}
1343
1344bitflags! {
1345    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkOpticalFlowSessionCreateFlagsNV.html>
1346    #[repr(transparent)]
1347    #[derive(Default)]
1348    pub struct OpticalFlowSessionCreateFlagsNV: Flags {
1349        const ENABLE_HINT = 1;
1350        const ENABLE_COST = 1 << 1;
1351        const ENABLE_GLOBAL_FLOW = 1 << 2;
1352        const ALLOW_REGIONS = 1 << 3;
1353        const BOTH_DIRECTIONS = 1 << 4;
1354    }
1355}
1356
1357bitflags! {
1358    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkOpticalFlowUsageFlagsNV.html>
1359    #[repr(transparent)]
1360    #[derive(Default)]
1361    pub struct OpticalFlowUsageFlagsNV: Flags {
1362        const UNKNOWN = 0;
1363        const INPUT = 1;
1364        const OUTPUT = 1 << 1;
1365        const HINT = 1 << 2;
1366        const COST = 1 << 3;
1367        const GLOBAL_FLOW = 1 << 4;
1368    }
1369}
1370
1371bitflags! {
1372    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPartitionedAccelerationStructureInstanceFlagsNV.html>
1373    #[repr(transparent)]
1374    #[derive(Default)]
1375    pub struct PartitionedAccelerationStructureInstanceFlagsNV: Flags {
1376        const FLAG_TRIANGLE_FACING_CULL_DISABLE = 1;
1377        const FLAG_TRIANGLE_FLIP_FACING = 1 << 1;
1378        const FLAG_FORCE_OPAQUE = 1 << 2;
1379        const FLAG_FORCE_NO_OPAQUE = 1 << 3;
1380        const FLAG_ENABLE_EXPLICIT_BOUNDING_BOX = 1 << 4;
1381    }
1382}
1383
1384bitflags! {
1385    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPastPresentationTimingFlagsEXT.html>
1386    #[repr(transparent)]
1387    #[derive(Default)]
1388    pub struct PastPresentationTimingFlagsEXT: Flags {
1389        const ALLOW_PARTIAL_RESULTS = 1;
1390        const ALLOW_OUT_OF_ORDER_RESULTS = 1 << 1;
1391    }
1392}
1393
1394bitflags! {
1395    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPeerMemoryFeatureFlags.html>
1396    #[repr(transparent)]
1397    #[derive(Default)]
1398    pub struct PeerMemoryFeatureFlags: Flags {
1399        const COPY_SRC = 1;
1400        const COPY_DST = 1 << 1;
1401        const GENERIC_SRC = 1 << 2;
1402        const GENERIC_DST = 1 << 3;
1403    }
1404}
1405
1406bitflags! {
1407    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPerformanceCounterDescriptionFlagsARM.html>
1408    #[repr(transparent)]
1409    #[derive(Default)]
1410    pub struct PerformanceCounterDescriptionFlagsARM: Flags { }
1411}
1412
1413bitflags! {
1414    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPerformanceCounterDescriptionFlagsKHR.html>
1415    #[repr(transparent)]
1416    #[derive(Default)]
1417    pub struct PerformanceCounterDescriptionFlagsKHR: Flags {
1418        const PERFORMANCE_IMPACTING = 1;
1419        const CONCURRENTLY_IMPACTED = 1 << 1;
1420    }
1421}
1422
1423bitflags! {
1424    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPhysicalDeviceSchedulingControlsFlagsARM.html>
1425    #[repr(transparent)]
1426    #[derive(Default)]
1427    pub struct PhysicalDeviceSchedulingControlsFlagsARM: Flags {
1428        const SHADER_CORE_COUNT = 1;
1429    }
1430}
1431
1432bitflags! {
1433    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCacheCreateFlags.html>
1434    #[repr(transparent)]
1435    #[derive(Default)]
1436    pub struct PipelineCacheCreateFlags: Flags {
1437        const EXTERNALLY_SYNCHRONIZED = 1;
1438        const INTERNALLY_SYNCHRONIZED_MERGE_KHR = 1 << 3;
1439    }
1440}
1441
1442bitflags! {
1443    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineColorBlendStateCreateFlags.html>
1444    #[repr(transparent)]
1445    #[derive(Default)]
1446    pub struct PipelineColorBlendStateCreateFlags: Flags {
1447        const RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT = 1;
1448    }
1449}
1450
1451bitflags! {
1452    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCompilerControlFlagsAMD.html>
1453    #[repr(transparent)]
1454    #[derive(Default)]
1455    pub struct PipelineCompilerControlFlagsAMD: Flags { }
1456}
1457
1458bitflags! {
1459    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCoverageModulationStateCreateFlagsNV.html>
1460    #[repr(transparent)]
1461    #[derive(Default)]
1462    pub struct PipelineCoverageModulationStateCreateFlagsNV: Flags { }
1463}
1464
1465bitflags! {
1466    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCoverageReductionStateCreateFlagsNV.html>
1467    #[repr(transparent)]
1468    #[derive(Default)]
1469    pub struct PipelineCoverageReductionStateCreateFlagsNV: Flags { }
1470}
1471
1472bitflags! {
1473    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCoverageToColorStateCreateFlagsNV.html>
1474    #[repr(transparent)]
1475    #[derive(Default)]
1476    pub struct PipelineCoverageToColorStateCreateFlagsNV: Flags { }
1477}
1478
1479bitflags! {
1480    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCreateFlags.html>
1481    #[repr(transparent)]
1482    #[derive(Default)]
1483    pub struct PipelineCreateFlags: Flags {
1484        const DISABLE_OPTIMIZATION = 1;
1485        const ALLOW_DERIVATIVES = 1 << 1;
1486        const DERIVATIVE = 1 << 2;
1487        const VIEW_INDEX_FROM_DEVICE_INDEX = 1 << 3;
1488        const DISPATCH_BASE = 1 << 4;
1489        const DEFER_COMPILE_NV = 1 << 5;
1490        const CAPTURE_STATISTICS_KHR = 1 << 6;
1491        const CAPTURE_INTERNAL_REPRESENTATIONS_KHR = 1 << 7;
1492        const FAIL_ON_PIPELINE_COMPILE_REQUIRED = 1 << 8;
1493        const EARLY_RETURN_ON_FAILURE = 1 << 9;
1494        const LINK_TIME_OPTIMIZATION_EXT = 1 << 10;
1495        const LIBRARY_KHR = 1 << 11;
1496        const RAY_TRACING_SKIP_TRIANGLES_KHR = 1 << 12;
1497        const RAY_TRACING_SKIP_AABBS_KHR = 1 << 13;
1498        const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR = 1 << 14;
1499        const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR = 1 << 15;
1500        const RAY_TRACING_NO_NULL_MISS_SHADERS_KHR = 1 << 16;
1501        const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR = 1 << 17;
1502        const INDIRECT_BINDABLE_NV = 1 << 18;
1503        const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR = 1 << 19;
1504        const RAY_TRACING_ALLOW_MOTION_NV = 1 << 20;
1505        const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 21;
1506        const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT = 1 << 22;
1507        const RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT = 1 << 23;
1508        const RAY_TRACING_OPACITY_MICROMAP_EXT = 1 << 24;
1509        const COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT = 1 << 25;
1510        const DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT = 1 << 26;
1511        const NO_PROTECTED_ACCESS = 1 << 27;
1512        const RAY_TRACING_DISPLACEMENT_MICROMAP_NV = 1 << 28;
1513        const DESCRIPTOR_BUFFER_EXT = 1 << 29;
1514        const PROTECTED_ACCESS_ONLY = 1 << 30;
1515    }
1516}
1517
1518bitflags! {
1519    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCreateFlags2.html>
1520    #[repr(transparent)]
1521    #[derive(Default)]
1522    pub struct PipelineCreateFlags2: Flags64 {
1523        const DISABLE_OPTIMIZATION = 1;
1524        const ALLOW_DERIVATIVES = 1 << 1;
1525        const DERIVATIVE = 1 << 2;
1526        const VIEW_INDEX_FROM_DEVICE_INDEX = 1 << 3;
1527        const DISPATCH_BASE = 1 << 4;
1528        const DEFER_COMPILE_NV = 1 << 5;
1529        const CAPTURE_STATISTICS_KHR = 1 << 6;
1530        const CAPTURE_INTERNAL_REPRESENTATIONS_KHR = 1 << 7;
1531        const FAIL_ON_PIPELINE_COMPILE_REQUIRED = 1 << 8;
1532        const EARLY_RETURN_ON_FAILURE = 1 << 9;
1533        const LINK_TIME_OPTIMIZATION_EXT = 1 << 10;
1534        const LIBRARY_KHR = 1 << 11;
1535        const RAY_TRACING_SKIP_TRIANGLES_KHR = 1 << 12;
1536        const RAY_TRACING_SKIP_AABBS_KHR = 1 << 13;
1537        const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR = 1 << 14;
1538        const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR = 1 << 15;
1539        const RAY_TRACING_NO_NULL_MISS_SHADERS_KHR = 1 << 16;
1540        const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR = 1 << 17;
1541        const INDIRECT_BINDABLE_NV = 1 << 18;
1542        const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR = 1 << 19;
1543        const RAY_TRACING_ALLOW_MOTION_NV = 1 << 20;
1544        const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 21;
1545        const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT = 1 << 22;
1546        const RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT = 1 << 23;
1547        const RAY_TRACING_OPACITY_MICROMAP_EXT = 1 << 24;
1548        const COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT = 1 << 25;
1549        const DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT = 1 << 26;
1550        const NO_PROTECTED_ACCESS = 1 << 27;
1551        const RAY_TRACING_DISPLACEMENT_MICROMAP_NV = 1 << 28;
1552        const DESCRIPTOR_BUFFER_EXT = 1 << 29;
1553        const PROTECTED_ACCESS_ONLY = 1 << 30;
1554        const CAPTURE_DATA_KHR = 1 << 31;
1555        const EXECUTION_GRAPH_AMDX = 1 << 32;
1556        const RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV = 1 << 33;
1557        const ENABLE_LEGACY_DITHERING_EXT = 1 << 34;
1558        const DESCRIPTOR_HEAP_EXT = 1 << 36;
1559        const DISALLOW_OPACITY_MICROMAP_ARM = 1 << 37;
1560        const INDIRECT_BINDABLE_EXT = 1 << 38;
1561        const PER_LAYER_FRAGMENT_DENSITY_VALVE = 1 << 40;
1562        const _64_BIT_INDEXING_EXT = 1 << 43;
1563    }
1564}
1565
1566bitflags! {
1567    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCreationFeedbackFlags.html>
1568    #[repr(transparent)]
1569    #[derive(Default)]
1570    pub struct PipelineCreationFeedbackFlags: Flags {
1571        const VALID = 1;
1572        const APPLICATION_PIPELINE_CACHE_HIT = 1 << 1;
1573        const BASE_PIPELINE_ACCELERATION = 1 << 2;
1574    }
1575}
1576
1577bitflags! {
1578    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineDepthStencilStateCreateFlags.html>
1579    #[repr(transparent)]
1580    #[derive(Default)]
1581    pub struct PipelineDepthStencilStateCreateFlags: Flags {
1582        const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT = 1;
1583        const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT = 1 << 1;
1584    }
1585}
1586
1587bitflags! {
1588    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineDiscardRectangleStateCreateFlagsEXT.html>
1589    #[repr(transparent)]
1590    #[derive(Default)]
1591    pub struct PipelineDiscardRectangleStateCreateFlagsEXT: Flags { }
1592}
1593
1594bitflags! {
1595    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineDynamicStateCreateFlags.html>
1596    #[repr(transparent)]
1597    #[derive(Default)]
1598    pub struct PipelineDynamicStateCreateFlags: Flags { }
1599}
1600
1601bitflags! {
1602    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineInputAssemblyStateCreateFlags.html>
1603    #[repr(transparent)]
1604    #[derive(Default)]
1605    pub struct PipelineInputAssemblyStateCreateFlags: Flags { }
1606}
1607
1608bitflags! {
1609    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineLayoutCreateFlags.html>
1610    #[repr(transparent)]
1611    #[derive(Default)]
1612    pub struct PipelineLayoutCreateFlags: Flags {
1613        const INDEPENDENT_SETS_EXT = 1 << 1;
1614    }
1615}
1616
1617bitflags! {
1618    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineMultisampleStateCreateFlags.html>
1619    #[repr(transparent)]
1620    #[derive(Default)]
1621    pub struct PipelineMultisampleStateCreateFlags: Flags { }
1622}
1623
1624bitflags! {
1625    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineRasterizationConservativeStateCreateFlagsEXT.html>
1626    #[repr(transparent)]
1627    #[derive(Default)]
1628    pub struct PipelineRasterizationConservativeStateCreateFlagsEXT: Flags { }
1629}
1630
1631bitflags! {
1632    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineRasterizationDepthClipStateCreateFlagsEXT.html>
1633    #[repr(transparent)]
1634    #[derive(Default)]
1635    pub struct PipelineRasterizationDepthClipStateCreateFlagsEXT: Flags { }
1636}
1637
1638bitflags! {
1639    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineRasterizationStateCreateFlags.html>
1640    #[repr(transparent)]
1641    #[derive(Default)]
1642    pub struct PipelineRasterizationStateCreateFlags: Flags { }
1643}
1644
1645bitflags! {
1646    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineRasterizationStateStreamCreateFlagsEXT.html>
1647    #[repr(transparent)]
1648    #[derive(Default)]
1649    pub struct PipelineRasterizationStateStreamCreateFlagsEXT: Flags { }
1650}
1651
1652bitflags! {
1653    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineShaderStageCreateFlags.html>
1654    #[repr(transparent)]
1655    #[derive(Default)]
1656    pub struct PipelineShaderStageCreateFlags: Flags {
1657        const ALLOW_VARYING_SUBGROUP_SIZE = 1;
1658        const REQUIRE_FULL_SUBGROUPS = 1 << 1;
1659    }
1660}
1661
1662bitflags! {
1663    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineStageFlags.html>
1664    #[repr(transparent)]
1665    #[derive(Default)]
1666    pub struct PipelineStageFlags: Flags {
1667        const TOP_OF_PIPE = 1;
1668        const DRAW_INDIRECT = 1 << 1;
1669        const VERTEX_INPUT = 1 << 2;
1670        const VERTEX_SHADER = 1 << 3;
1671        const TESSELLATION_CONTROL_SHADER = 1 << 4;
1672        const TESSELLATION_EVALUATION_SHADER = 1 << 5;
1673        const GEOMETRY_SHADER = 1 << 6;
1674        const FRAGMENT_SHADER = 1 << 7;
1675        const EARLY_FRAGMENT_TESTS = 1 << 8;
1676        const LATE_FRAGMENT_TESTS = 1 << 9;
1677        const COLOR_ATTACHMENT_OUTPUT = 1 << 10;
1678        const COMPUTE_SHADER = 1 << 11;
1679        const TRANSFER = 1 << 12;
1680        const BOTTOM_OF_PIPE = 1 << 13;
1681        const HOST = 1 << 14;
1682        const ALL_GRAPHICS = 1 << 15;
1683        const ALL_COMMANDS = 1 << 16;
1684        const COMMAND_PREPROCESS_EXT = 1 << 17;
1685        const CONDITIONAL_RENDERING_EXT = 1 << 18;
1686        const TASK_SHADER_EXT = 1 << 19;
1687        const MESH_SHADER_EXT = 1 << 20;
1688        const RAY_TRACING_SHADER_KHR = 1 << 21;
1689        const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 22;
1690        const FRAGMENT_DENSITY_PROCESS_EXT = 1 << 23;
1691        const TRANSFORM_FEEDBACK_EXT = 1 << 24;
1692        const ACCELERATION_STRUCTURE_BUILD_KHR = 1 << 25;
1693    }
1694}
1695
1696bitflags! {
1697    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineStageFlags2.html>
1698    #[repr(transparent)]
1699    #[derive(Default)]
1700    pub struct PipelineStageFlags2: Flags64 {
1701        const NONE = 0;
1702        const TOP_OF_PIPE = 1;
1703        const DRAW_INDIRECT = 1 << 1;
1704        const VERTEX_INPUT = 1 << 2;
1705        const VERTEX_SHADER = 1 << 3;
1706        const TESSELLATION_CONTROL_SHADER = 1 << 4;
1707        const TESSELLATION_EVALUATION_SHADER = 1 << 5;
1708        const GEOMETRY_SHADER = 1 << 6;
1709        const FRAGMENT_SHADER = 1 << 7;
1710        const EARLY_FRAGMENT_TESTS = 1 << 8;
1711        const LATE_FRAGMENT_TESTS = 1 << 9;
1712        const COLOR_ATTACHMENT_OUTPUT = 1 << 10;
1713        const COMPUTE_SHADER = 1 << 11;
1714        const ALL_TRANSFER = 1 << 12;
1715        const BOTTOM_OF_PIPE = 1 << 13;
1716        const HOST = 1 << 14;
1717        const ALL_GRAPHICS = 1 << 15;
1718        const ALL_COMMANDS = 1 << 16;
1719        const COMMAND_PREPROCESS_EXT = 1 << 17;
1720        const CONDITIONAL_RENDERING_EXT = 1 << 18;
1721        const TASK_SHADER_EXT = 1 << 19;
1722        const MESH_SHADER_EXT = 1 << 20;
1723        const RAY_TRACING_SHADER_KHR = 1 << 21;
1724        const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR = 1 << 22;
1725        const FRAGMENT_DENSITY_PROCESS_EXT = 1 << 23;
1726        const TRANSFORM_FEEDBACK_EXT = 1 << 24;
1727        const ACCELERATION_STRUCTURE_BUILD_KHR = 1 << 25;
1728        const VIDEO_DECODE_KHR = 1 << 26;
1729        const VIDEO_ENCODE_KHR = 1 << 27;
1730        const ACCELERATION_STRUCTURE_COPY_KHR = 1 << 28;
1731        const OPTICAL_FLOW_NV = 1 << 29;
1732        const MICROMAP_BUILD_EXT = 1 << 30;
1733        const COPY = 1 << 32;
1734        const RESOLVE = 1 << 33;
1735        const BLIT = 1 << 34;
1736        const CLEAR = 1 << 35;
1737        const INDEX_INPUT = 1 << 36;
1738        const VERTEX_ATTRIBUTE_INPUT = 1 << 37;
1739        const PRE_RASTERIZATION_SHADERS = 1 << 38;
1740        const SUBPASS_SHADER_HUAWEI = 1 << 39;
1741        const INVOCATION_MASK_HUAWEI = 1 << 40;
1742        const CLUSTER_CULLING_SHADER_HUAWEI = 1 << 41;
1743        const DATA_GRAPH_ARM = 1 << 42;
1744        const CONVERT_COOPERATIVE_VECTOR_MATRIX_NV = 1 << 44;
1745        const MEMORY_DECOMPRESSION_EXT = 1 << 45;
1746        const COPY_INDIRECT_KHR = 1 << 46;
1747    }
1748}
1749
1750bitflags! {
1751    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineTessellationStateCreateFlags.html>
1752    #[repr(transparent)]
1753    #[derive(Default)]
1754    pub struct PipelineTessellationStateCreateFlags: Flags { }
1755}
1756
1757bitflags! {
1758    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineVertexInputStateCreateFlags.html>
1759    #[repr(transparent)]
1760    #[derive(Default)]
1761    pub struct PipelineVertexInputStateCreateFlags: Flags { }
1762}
1763
1764bitflags! {
1765    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineViewportStateCreateFlags.html>
1766    #[repr(transparent)]
1767    #[derive(Default)]
1768    pub struct PipelineViewportStateCreateFlags: Flags { }
1769}
1770
1771bitflags! {
1772    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineViewportSwizzleStateCreateFlagsNV.html>
1773    #[repr(transparent)]
1774    #[derive(Default)]
1775    pub struct PipelineViewportSwizzleStateCreateFlagsNV: Flags { }
1776}
1777
1778bitflags! {
1779    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPresentGravityFlagsKHR.html>
1780    #[repr(transparent)]
1781    #[derive(Default)]
1782    pub struct PresentGravityFlagsKHR: Flags {
1783        const MIN = 1;
1784        const MAX = 1 << 1;
1785        const CENTERED = 1 << 2;
1786    }
1787}
1788
1789bitflags! {
1790    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPresentScalingFlagsKHR.html>
1791    #[repr(transparent)]
1792    #[derive(Default)]
1793    pub struct PresentScalingFlagsKHR: Flags {
1794        const ONE_TO_ONE = 1;
1795        const ASPECT_RATIO_STRETCH = 1 << 1;
1796        const STRETCH = 1 << 2;
1797    }
1798}
1799
1800bitflags! {
1801    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPresentStageFlagsEXT.html>
1802    #[repr(transparent)]
1803    #[derive(Default)]
1804    pub struct PresentStageFlagsEXT: Flags {
1805        const QUEUE_OPERATIONS_END = 1;
1806        const REQUEST_DEQUEUED = 1 << 1;
1807        const IMAGE_FIRST_PIXEL_OUT = 1 << 2;
1808        const IMAGE_FIRST_PIXEL_VISIBLE = 1 << 3;
1809    }
1810}
1811
1812bitflags! {
1813    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPresentTimingInfoFlagsEXT.html>
1814    #[repr(transparent)]
1815    #[derive(Default)]
1816    pub struct PresentTimingInfoFlagsEXT: Flags {
1817        const PRESENT_AT_RELATIVE_TIME = 1;
1818        const PRESENT_AT_NEAREST_REFRESH_CYCLE = 1 << 1;
1819    }
1820}
1821
1822bitflags! {
1823    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPrivateDataSlotCreateFlags.html>
1824    #[repr(transparent)]
1825    #[derive(Default)]
1826    pub struct PrivateDataSlotCreateFlags: Flags { }
1827}
1828
1829bitflags! {
1830    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkQueryControlFlags.html>
1831    #[repr(transparent)]
1832    #[derive(Default)]
1833    pub struct QueryControlFlags: Flags {
1834        const PRECISE = 1;
1835    }
1836}
1837
1838bitflags! {
1839    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkQueryPipelineStatisticFlags.html>
1840    #[repr(transparent)]
1841    #[derive(Default)]
1842    pub struct QueryPipelineStatisticFlags: Flags {
1843        const INPUT_ASSEMBLY_VERTICES = 1;
1844        const INPUT_ASSEMBLY_PRIMITIVES = 1 << 1;
1845        const VERTEX_SHADER_INVOCATIONS = 1 << 2;
1846        const GEOMETRY_SHADER_INVOCATIONS = 1 << 3;
1847        const GEOMETRY_SHADER_PRIMITIVES = 1 << 4;
1848        const CLIPPING_INVOCATIONS = 1 << 5;
1849        const CLIPPING_PRIMITIVES = 1 << 6;
1850        const FRAGMENT_SHADER_INVOCATIONS = 1 << 7;
1851        const TESSELLATION_CONTROL_SHADER_PATCHES = 1 << 8;
1852        const TESSELLATION_EVALUATION_SHADER_INVOCATIONS = 1 << 9;
1853        const COMPUTE_SHADER_INVOCATIONS = 1 << 10;
1854        const TASK_SHADER_INVOCATIONS_EXT = 1 << 11;
1855        const MESH_SHADER_INVOCATIONS_EXT = 1 << 12;
1856        const CLUSTER_CULLING_SHADER_INVOCATIONS_HUAWEI = 1 << 13;
1857    }
1858}
1859
1860bitflags! {
1861    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkQueryPoolCreateFlags.html>
1862    #[repr(transparent)]
1863    #[derive(Default)]
1864    pub struct QueryPoolCreateFlags: Flags {
1865        const RESET_KHR = 1;
1866    }
1867}
1868
1869bitflags! {
1870    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkQueryResultFlags.html>
1871    #[repr(transparent)]
1872    #[derive(Default)]
1873    pub struct QueryResultFlags: Flags {
1874        const _64 = 1;
1875        const WAIT = 1 << 1;
1876        const WITH_AVAILABILITY = 1 << 2;
1877        const PARTIAL = 1 << 3;
1878        const WITH_STATUS_KHR = 1 << 4;
1879    }
1880}
1881
1882bitflags! {
1883    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkQueueFlags.html>
1884    #[repr(transparent)]
1885    #[derive(Default)]
1886    pub struct QueueFlags: Flags {
1887        const GRAPHICS = 1;
1888        const COMPUTE = 1 << 1;
1889        const TRANSFER = 1 << 2;
1890        const SPARSE_BINDING = 1 << 3;
1891        const PROTECTED = 1 << 4;
1892        const VIDEO_DECODE_KHR = 1 << 5;
1893        const VIDEO_ENCODE_KHR = 1 << 6;
1894        const OPTICAL_FLOW_NV = 1 << 8;
1895        const DATA_GRAPH_ARM = 1 << 10;
1896    }
1897}
1898
1899bitflags! {
1900    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkRefreshObjectFlagsKHR.html>
1901    #[repr(transparent)]
1902    #[derive(Default)]
1903    pub struct RefreshObjectFlagsKHR: Flags { }
1904}
1905
1906bitflags! {
1907    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkRenderPassCreateFlags.html>
1908    #[repr(transparent)]
1909    #[derive(Default)]
1910    pub struct RenderPassCreateFlags: Flags {
1911        const TRANSFORM_QCOM = 1 << 1;
1912        const PER_LAYER_FRAGMENT_DENSITY_VALVE = 1 << 2;
1913    }
1914}
1915
1916bitflags! {
1917    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkRenderingAttachmentFlagsKHR.html>
1918    #[repr(transparent)]
1919    #[derive(Default)]
1920    pub struct RenderingAttachmentFlagsKHR: Flags {
1921        const INPUT_ATTACHMENT_FEEDBACK = 1;
1922        const RESOLVE_SKIP_TRANSFER_FUNCTION = 1 << 1;
1923        const RESOLVE_ENABLE_TRANSFER_FUNCTION = 1 << 2;
1924    }
1925}
1926
1927bitflags! {
1928    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkRenderingFlags.html>
1929    #[repr(transparent)]
1930    #[derive(Default)]
1931    pub struct RenderingFlags: Flags {
1932        const CONTENTS_SECONDARY_COMMAND_BUFFERS = 1;
1933        const SUSPENDING = 1 << 1;
1934        const RESUMING = 1 << 2;
1935        const ENABLE_LEGACY_DITHERING_EXT = 1 << 3;
1936        const CONTENTS_INLINE_KHR = 1 << 4;
1937        const PER_LAYER_FRAGMENT_DENSITY_VALVE = 1 << 5;
1938        const FRAGMENT_REGION_EXT = 1 << 6;
1939        const CUSTOM_RESOLVE_EXT = 1 << 7;
1940        const LOCAL_READ_CONCURRENT_ACCESS_CONTROL_KHR = 1 << 8;
1941    }
1942}
1943
1944bitflags! {
1945    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkResolveImageFlagsKHR.html>
1946    #[repr(transparent)]
1947    #[derive(Default)]
1948    pub struct ResolveImageFlagsKHR: Flags {
1949        const SKIP_TRANSFER_FUNCTION = 1;
1950        const ENABLE_TRANSFER_FUNCTION = 1 << 1;
1951    }
1952}
1953
1954bitflags! {
1955    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkResolveModeFlags.html>
1956    #[repr(transparent)]
1957    #[derive(Default)]
1958    pub struct ResolveModeFlags: Flags {
1959        const NONE = 0;
1960        const SAMPLE_ZERO = 1;
1961        const AVERAGE = 1 << 1;
1962        const MIN = 1 << 2;
1963        const MAX = 1 << 3;
1964        const EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 1 << 4;
1965        const CUSTOM_EXT = 1 << 5;
1966    }
1967}
1968
1969bitflags! {
1970    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSampleCountFlags.html>
1971    #[repr(transparent)]
1972    #[derive(Default)]
1973    pub struct SampleCountFlags: Flags {
1974        const _1 = 1;
1975        const _2 = 1 << 1;
1976        const _4 = 1 << 2;
1977        const _8 = 1 << 3;
1978        const _16 = 1 << 4;
1979        const _32 = 1 << 5;
1980        const _64 = 1 << 6;
1981    }
1982}
1983
1984bitflags! {
1985    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSamplerCreateFlags.html>
1986    #[repr(transparent)]
1987    #[derive(Default)]
1988    pub struct SamplerCreateFlags: Flags {
1989        const SUBSAMPLED_EXT = 1;
1990        const SUBSAMPLED_COARSE_RECONSTRUCTION_EXT = 1 << 1;
1991        const NON_SEAMLESS_CUBE_MAP_EXT = 1 << 2;
1992        const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT = 1 << 3;
1993        const IMAGE_PROCESSING_QCOM = 1 << 4;
1994    }
1995}
1996
1997bitflags! {
1998    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkScreenSurfaceCreateFlagsQNX.html>
1999    #[repr(transparent)]
2000    #[derive(Default)]
2001    pub struct ScreenSurfaceCreateFlagsQNX: Flags { }
2002}
2003
2004bitflags! {
2005    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSemaphoreCreateFlags.html>
2006    #[repr(transparent)]
2007    #[derive(Default)]
2008    pub struct SemaphoreCreateFlags: Flags { }
2009}
2010
2011bitflags! {
2012    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSemaphoreImportFlags.html>
2013    #[repr(transparent)]
2014    #[derive(Default)]
2015    pub struct SemaphoreImportFlags: Flags {
2016        const TEMPORARY = 1;
2017    }
2018}
2019
2020bitflags! {
2021    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSemaphoreWaitFlags.html>
2022    #[repr(transparent)]
2023    #[derive(Default)]
2024    pub struct SemaphoreWaitFlags: Flags {
2025        const ANY = 1;
2026    }
2027}
2028
2029bitflags! {
2030    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderCorePropertiesFlagsAMD.html>
2031    #[repr(transparent)]
2032    #[derive(Default)]
2033    pub struct ShaderCorePropertiesFlagsAMD: Flags { }
2034}
2035
2036bitflags! {
2037    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderCreateFlagsEXT.html>
2038    #[repr(transparent)]
2039    #[derive(Default)]
2040    pub struct ShaderCreateFlagsEXT: Flags {
2041        const LINK_STAGE = 1;
2042        const ALLOW_VARYING_SUBGROUP_SIZE = 1 << 1;
2043        const REQUIRE_FULL_SUBGROUPS = 1 << 2;
2044        const NO_TASK_SHADER = 1 << 3;
2045        const DISPATCH_BASE = 1 << 4;
2046        const FRAGMENT_SHADING_RATE_ATTACHMENT = 1 << 5;
2047        const FRAGMENT_DENSITY_MAP_ATTACHMENT = 1 << 6;
2048        const INDIRECT_BINDABLE = 1 << 7;
2049        const DESCRIPTOR_HEAP = 1 << 10;
2050        const _64_BIT_INDEXING = 1 << 15;
2051    }
2052}
2053
2054bitflags! {
2055    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderModuleCreateFlags.html>
2056    #[repr(transparent)]
2057    #[derive(Default)]
2058    pub struct ShaderModuleCreateFlags: Flags { }
2059}
2060
2061bitflags! {
2062    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkShaderStageFlags.html>
2063    #[repr(transparent)]
2064    #[derive(Default)]
2065    pub struct ShaderStageFlags: Flags {
2066        const VERTEX = 1;
2067        const TESSELLATION_CONTROL = 1 << 1;
2068        const TESSELLATION_EVALUATION = 1 << 2;
2069        const GEOMETRY = 1 << 3;
2070        const FRAGMENT = 1 << 4;
2071        const ALL_GRAPHICS = Self::VERTEX.bits | Self::TESSELLATION_CONTROL.bits | Self::TESSELLATION_EVALUATION.bits | Self::GEOMETRY.bits | Self::FRAGMENT.bits;
2072        const COMPUTE = 1 << 5;
2073        const TASK_EXT = 1 << 6;
2074        const MESH_EXT = 1 << 7;
2075        const RAYGEN_KHR = 1 << 8;
2076        const ANY_HIT_KHR = 1 << 9;
2077        const CLOSEST_HIT_KHR = 1 << 10;
2078        const MISS_KHR = 1 << 11;
2079        const INTERSECTION_KHR = 1 << 12;
2080        const CALLABLE_KHR = 1 << 13;
2081        const SUBPASS_SHADING_HUAWEI = 1 << 14;
2082        const CLUSTER_CULLING_HUAWEI = 1 << 19;
2083        const ALL = i32::MAX as u32;
2084    }
2085}
2086
2087bitflags! {
2088    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSparseImageFormatFlags.html>
2089    #[repr(transparent)]
2090    #[derive(Default)]
2091    pub struct SparseImageFormatFlags: Flags {
2092        const SINGLE_MIPTAIL = 1;
2093        const ALIGNED_MIP_SIZE = 1 << 1;
2094        const NONSTANDARD_BLOCK_SIZE = 1 << 2;
2095    }
2096}
2097
2098bitflags! {
2099    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSparseMemoryBindFlags.html>
2100    #[repr(transparent)]
2101    #[derive(Default)]
2102    pub struct SparseMemoryBindFlags: Flags {
2103        const METADATA = 1;
2104    }
2105}
2106
2107bitflags! {
2108    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSpirvResourceTypeFlagsEXT.html>
2109    #[repr(transparent)]
2110    #[derive(Default)]
2111    pub struct SpirvResourceTypeFlagsEXT: Flags {
2112        const SAMPLER = 1;
2113        const SAMPLED_IMAGE = 1 << 1;
2114        const READ_ONLY_IMAGE = 1 << 2;
2115        const READ_WRITE_IMAGE = 1 << 3;
2116        const COMBINED_SAMPLED_IMAGE = 1 << 4;
2117        const UNIFORM_BUFFER = 1 << 5;
2118        const READ_ONLY_STORAGE_BUFFER = 1 << 6;
2119        const READ_WRITE_STORAGE_BUFFER = 1 << 7;
2120        const ACCELERATION_STRUCTURE = 1 << 8;
2121        const TENSOR_ARM = 1 << 9;
2122        const ALL = i32::MAX as u32;
2123    }
2124}
2125
2126bitflags! {
2127    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkStencilFaceFlags.html>
2128    #[repr(transparent)]
2129    #[derive(Default)]
2130    pub struct StencilFaceFlags: Flags {
2131        const FRONT = 1;
2132        const BACK = 1 << 1;
2133        const FRONT_AND_BACK = Self::FRONT.bits | Self::BACK.bits;
2134    }
2135}
2136
2137bitflags! {
2138    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkStreamDescriptorSurfaceCreateFlagsGGP.html>
2139    #[repr(transparent)]
2140    #[derive(Default)]
2141    pub struct StreamDescriptorSurfaceCreateFlagsGGP: Flags { }
2142}
2143
2144bitflags! {
2145    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSubgroupFeatureFlags.html>
2146    #[repr(transparent)]
2147    #[derive(Default)]
2148    pub struct SubgroupFeatureFlags: Flags {
2149        const BASIC = 1;
2150        const VOTE = 1 << 1;
2151        const ARITHMETIC = 1 << 2;
2152        const BALLOT = 1 << 3;
2153        const SHUFFLE = 1 << 4;
2154        const SHUFFLE_RELATIVE = 1 << 5;
2155        const CLUSTERED = 1 << 6;
2156        const QUAD = 1 << 7;
2157        const PARTITIONED_EXT = 1 << 8;
2158        const ROTATE = 1 << 9;
2159        const ROTATE_CLUSTERED = 1 << 10;
2160    }
2161}
2162
2163bitflags! {
2164    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSubmitFlags.html>
2165    #[repr(transparent)]
2166    #[derive(Default)]
2167    pub struct SubmitFlags: Flags {
2168        const PROTECTED = 1;
2169    }
2170}
2171
2172bitflags! {
2173    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSubpassDescriptionFlags.html>
2174    #[repr(transparent)]
2175    #[derive(Default)]
2176    pub struct SubpassDescriptionFlags: Flags {
2177        const PER_VIEW_ATTRIBUTES_NVX = 1;
2178        const PER_VIEW_POSITION_X_ONLY_NVX = 1 << 1;
2179        const FRAGMENT_REGION_EXT = 1 << 2;
2180        const CUSTOM_RESOLVE_EXT = 1 << 3;
2181        const RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT = 1 << 4;
2182        const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT = 1 << 5;
2183        const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT = 1 << 6;
2184        const ENABLE_LEGACY_DITHERING_EXT = 1 << 7;
2185        const TILE_SHADING_APRON_QCOM = 1 << 8;
2186    }
2187}
2188
2189bitflags! {
2190    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSurfaceCounterFlagsEXT.html>
2191    #[repr(transparent)]
2192    #[derive(Default)]
2193    pub struct SurfaceCounterFlagsEXT: Flags {
2194        const VBLANK = 1;
2195    }
2196}
2197
2198bitflags! {
2199    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSurfaceCreateFlagsOHOS.html>
2200    #[repr(transparent)]
2201    #[derive(Default)]
2202    pub struct SurfaceCreateFlagsOHOS: Flags { }
2203}
2204
2205bitflags! {
2206    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSurfaceTransformFlagsKHR.html>
2207    #[repr(transparent)]
2208    #[derive(Default)]
2209    pub struct SurfaceTransformFlagsKHR: Flags {
2210        const IDENTITY = 1;
2211        const ROTATE_90 = 1 << 1;
2212        const ROTATE_180 = 1 << 2;
2213        const ROTATE_270 = 1 << 3;
2214        const HORIZONTAL_MIRROR = 1 << 4;
2215        const HORIZONTAL_MIRROR_ROTATE_90 = 1 << 5;
2216        const HORIZONTAL_MIRROR_ROTATE_180 = 1 << 6;
2217        const HORIZONTAL_MIRROR_ROTATE_270 = 1 << 7;
2218        const INHERIT = 1 << 8;
2219    }
2220}
2221
2222bitflags! {
2223    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSwapchainCreateFlagsKHR.html>
2224    #[repr(transparent)]
2225    #[derive(Default)]
2226    pub struct SwapchainCreateFlagsKHR: Flags {
2227        const SPLIT_INSTANCE_BIND_REGIONS = 1;
2228        const PROTECTED = 1 << 1;
2229        const MUTABLE_FORMAT = 1 << 2;
2230        const DEFERRED_MEMORY_ALLOCATION = 1 << 3;
2231        const PRESENT_ID_2 = 1 << 6;
2232        const PRESENT_WAIT_2 = 1 << 7;
2233        const PRESENT_TIMING_EXT = 1 << 9;
2234    }
2235}
2236
2237bitflags! {
2238    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkTensorCreateFlagsARM.html>
2239    #[repr(transparent)]
2240    #[derive(Default)]
2241    pub struct TensorCreateFlagsARM: Flags {
2242        const MUTABLE_FORMAT = 1;
2243        const PROTECTED = 1 << 1;
2244        const DESCRIPTOR_BUFFER_CAPTURE_REPLAY = 1 << 2;
2245        const DESCRIPTOR_HEAP_CAPTURE_REPLAY = 1 << 3;
2246    }
2247}
2248
2249bitflags! {
2250    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkTensorUsageFlagsARM.html>
2251    #[repr(transparent)]
2252    #[derive(Default)]
2253    pub struct TensorUsageFlagsARM: Flags {
2254        const SHADER = 1 << 1;
2255        const TRANSFER_SRC = 1 << 2;
2256        const TRANSFER_DST = 1 << 3;
2257        const IMAGE_ALIASING = 1 << 4;
2258        const DATA_GRAPH = 1 << 5;
2259    }
2260}
2261
2262bitflags! {
2263    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkTensorViewCreateFlagsARM.html>
2264    #[repr(transparent)]
2265    #[derive(Default)]
2266    pub struct TensorViewCreateFlagsARM: Flags {
2267        const DESCRIPTOR_BUFFER_CAPTURE_REPLAY = 1;
2268    }
2269}
2270
2271bitflags! {
2272    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkTileShadingRenderPassFlagsQCOM.html>
2273    #[repr(transparent)]
2274    #[derive(Default)]
2275    pub struct TileShadingRenderPassFlagsQCOM: Flags {
2276        const ENABLE = 1;
2277        const PER_TILE_EXECUTION = 1 << 1;
2278    }
2279}
2280
2281bitflags! {
2282    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkToolPurposeFlags.html>
2283    #[repr(transparent)]
2284    #[derive(Default)]
2285    pub struct ToolPurposeFlags: Flags {
2286        const VALIDATION = 1;
2287        const PROFILING = 1 << 1;
2288        const TRACING = 1 << 2;
2289        const ADDITIONAL_FEATURES = 1 << 3;
2290        const MODIFYING_FEATURES = 1 << 4;
2291        const DEBUG_REPORTING_EXT = 1 << 5;
2292        const DEBUG_MARKERS_EXT = 1 << 6;
2293    }
2294}
2295
2296bitflags! {
2297    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkUbmSurfaceCreateFlagsSEC.html>
2298    #[repr(transparent)]
2299    #[derive(Default)]
2300    pub struct UbmSurfaceCreateFlagsSEC: Flags { }
2301}
2302
2303bitflags! {
2304    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkValidationCacheCreateFlagsEXT.html>
2305    #[repr(transparent)]
2306    #[derive(Default)]
2307    pub struct ValidationCacheCreateFlagsEXT: Flags { }
2308}
2309
2310bitflags! {
2311    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkViSurfaceCreateFlagsNN.html>
2312    #[repr(transparent)]
2313    #[derive(Default)]
2314    pub struct ViSurfaceCreateFlagsNN: Flags { }
2315}
2316
2317bitflags! {
2318    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoBeginCodingFlagsKHR.html>
2319    #[repr(transparent)]
2320    #[derive(Default)]
2321    pub struct VideoBeginCodingFlagsKHR: Flags { }
2322}
2323
2324bitflags! {
2325    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoCapabilityFlagsKHR.html>
2326    #[repr(transparent)]
2327    #[derive(Default)]
2328    pub struct VideoCapabilityFlagsKHR: Flags {
2329        const PROTECTED_CONTENT = 1;
2330        const SEPARATE_REFERENCE_IMAGES = 1 << 1;
2331    }
2332}
2333
2334bitflags! {
2335    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoChromaSubsamplingFlagsKHR.html>
2336    #[repr(transparent)]
2337    #[derive(Default)]
2338    pub struct VideoChromaSubsamplingFlagsKHR: Flags {
2339        const INVALID = 0;
2340        const MONOCHROME = 1;
2341        const _420 = 1 << 1;
2342        const _422 = 1 << 2;
2343        const _444 = 1 << 3;
2344    }
2345}
2346
2347bitflags! {
2348    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoCodecOperationFlagsKHR.html>
2349    #[repr(transparent)]
2350    #[derive(Default)]
2351    pub struct VideoCodecOperationFlagsKHR: Flags {
2352        const NONE = 0;
2353        const DECODE_H264 = 1;
2354        const DECODE_H265 = 1 << 1;
2355        const DECODE_AV1 = 1 << 2;
2356        const DECODE_VP9 = 1 << 3;
2357        const ENCODE_H264 = 1 << 16;
2358        const ENCODE_H265 = 1 << 17;
2359        const ENCODE_AV1 = 1 << 18;
2360    }
2361}
2362
2363bitflags! {
2364    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoCodingControlFlagsKHR.html>
2365    #[repr(transparent)]
2366    #[derive(Default)]
2367    pub struct VideoCodingControlFlagsKHR: Flags {
2368        const RESET = 1;
2369        const ENCODE_RATE_CONTROL = 1 << 1;
2370        const ENCODE_QUALITY_LEVEL = 1 << 2;
2371    }
2372}
2373
2374bitflags! {
2375    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoComponentBitDepthFlagsKHR.html>
2376    #[repr(transparent)]
2377    #[derive(Default)]
2378    pub struct VideoComponentBitDepthFlagsKHR: Flags {
2379        const INVALID = 0;
2380        const _8 = 1;
2381        const _10 = 1 << 2;
2382        const _12 = 1 << 4;
2383    }
2384}
2385
2386bitflags! {
2387    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoDecodeCapabilityFlagsKHR.html>
2388    #[repr(transparent)]
2389    #[derive(Default)]
2390    pub struct VideoDecodeCapabilityFlagsKHR: Flags {
2391        const DPB_AND_OUTPUT_COINCIDE = 1;
2392        const DPB_AND_OUTPUT_DISTINCT = 1 << 1;
2393    }
2394}
2395
2396bitflags! {
2397    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoDecodeFlagsKHR.html>
2398    #[repr(transparent)]
2399    #[derive(Default)]
2400    pub struct VideoDecodeFlagsKHR: Flags { }
2401}
2402
2403bitflags! {
2404    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoDecodeH264PictureLayoutFlagsKHR.html>
2405    #[repr(transparent)]
2406    #[derive(Default)]
2407    pub struct VideoDecodeH264PictureLayoutFlagsKHR: Flags {
2408        const PROGRESSIVE = 0;
2409        const INTERLACED_INTERLEAVED_LINES = 1;
2410        const INTERLACED_SEPARATE_PLANES = 1 << 1;
2411    }
2412}
2413
2414bitflags! {
2415    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoDecodeUsageFlagsKHR.html>
2416    #[repr(transparent)]
2417    #[derive(Default)]
2418    pub struct VideoDecodeUsageFlagsKHR: Flags {
2419        const DEFAULT = 0;
2420        const TRANSCODING = 1;
2421        const OFFLINE = 1 << 1;
2422        const STREAMING = 1 << 2;
2423    }
2424}
2425
2426bitflags! {
2427    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeAV1CapabilityFlagsKHR.html>
2428    #[repr(transparent)]
2429    #[derive(Default)]
2430    pub struct VideoEncodeAV1CapabilityFlagsKHR: Flags {
2431        const VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX = 1;
2432        const VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER = 1 << 1;
2433        const VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY = 1 << 2;
2434        const VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE = 1 << 3;
2435        const VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING = 1 << 4;
2436        const VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH = 1 << 5;
2437    }
2438}
2439
2440bitflags! {
2441    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeAV1RateControlFlagsKHR.html>
2442    #[repr(transparent)]
2443    #[derive(Default)]
2444    pub struct VideoEncodeAV1RateControlFlagsKHR: Flags {
2445        const VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP = 1;
2446        const VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC = 1 << 1;
2447        const VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT = 1 << 2;
2448        const VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC = 1 << 3;
2449    }
2450}
2451
2452bitflags! {
2453    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeAV1StdFlagsKHR.html>
2454    #[repr(transparent)]
2455    #[derive(Default)]
2456    pub struct VideoEncodeAV1StdFlagsKHR: Flags {
2457        const VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET = 1;
2458        const VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET = 1 << 1;
2459        const VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME = 1 << 2;
2460        const VIDEO_ENCODE_AV1_STD_DELTA_Q = 1 << 3;
2461    }
2462}
2463
2464bitflags! {
2465    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeAV1SuperblockSizeFlagsKHR.html>
2466    #[repr(transparent)]
2467    #[derive(Default)]
2468    pub struct VideoEncodeAV1SuperblockSizeFlagsKHR: Flags {
2469        const VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64 = 1;
2470        const VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128 = 1 << 1;
2471    }
2472}
2473
2474bitflags! {
2475    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeCapabilityFlagsKHR.html>
2476    #[repr(transparent)]
2477    #[derive(Default)]
2478    pub struct VideoEncodeCapabilityFlagsKHR: Flags {
2479        const PRECEDING_EXTERNALLY_ENCODED_BYTES = 1;
2480        const INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION = 1 << 1;
2481        const QUANTIZATION_DELTA_MAP = 1 << 2;
2482        const EMPHASIS_MAP = 1 << 3;
2483    }
2484}
2485
2486bitflags! {
2487    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeContentFlagsKHR.html>
2488    #[repr(transparent)]
2489    #[derive(Default)]
2490    pub struct VideoEncodeContentFlagsKHR: Flags {
2491        const DEFAULT = 0;
2492        const CAMERA = 1;
2493        const DESKTOP = 1 << 1;
2494        const RENDERED = 1 << 2;
2495    }
2496}
2497
2498bitflags! {
2499    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeFeedbackFlagsKHR.html>
2500    #[repr(transparent)]
2501    #[derive(Default)]
2502    pub struct VideoEncodeFeedbackFlagsKHR: Flags {
2503        const BITSTREAM_BUFFER_OFFSET = 1;
2504        const BITSTREAM_BYTES_WRITTEN = 1 << 1;
2505        const BITSTREAM_HAS_OVERRIDES = 1 << 2;
2506    }
2507}
2508
2509bitflags! {
2510    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeFlagsKHR.html>
2511    #[repr(transparent)]
2512    #[derive(Default)]
2513    pub struct VideoEncodeFlagsKHR: Flags {
2514        const WITH_QUANTIZATION_DELTA_MAP = 1;
2515        const WITH_EMPHASIS_MAP = 1 << 1;
2516        const INTRA_REFRESH = 1 << 2;
2517    }
2518}
2519
2520bitflags! {
2521    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH264CapabilityFlagsKHR.html>
2522    #[repr(transparent)]
2523    #[derive(Default)]
2524    pub struct VideoEncodeH264CapabilityFlagsKHR: Flags {
2525        const HRD_COMPLIANCE = 1;
2526        const PREDICTION_WEIGHT_TABLE_GENERATED = 1 << 1;
2527        const ROW_UNALIGNED_SLICE = 1 << 2;
2528        const DIFFERENT_SLICE_TYPE = 1 << 3;
2529        const B_FRAME_IN_L0_LIST = 1 << 4;
2530        const B_FRAME_IN_L1_LIST = 1 << 5;
2531        const PER_PICTURE_TYPE_MIN_MAX_QP = 1 << 6;
2532        const PER_SLICE_CONSTANT_QP = 1 << 7;
2533        const GENERATE_PREFIX_NALU = 1 << 8;
2534        const MB_QP_DIFF_WRAPAROUND = 1 << 9;
2535        const B_PICTURE_INTRA_REFRESH = 1 << 10;
2536    }
2537}
2538
2539bitflags! {
2540    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH264RateControlFlagsKHR.html>
2541    #[repr(transparent)]
2542    #[derive(Default)]
2543    pub struct VideoEncodeH264RateControlFlagsKHR: Flags {
2544        const ATTEMPT_HRD_COMPLIANCE = 1;
2545        const REGULAR_GOP = 1 << 1;
2546        const REFERENCE_PATTERN_FLAT = 1 << 2;
2547        const REFERENCE_PATTERN_DYADIC = 1 << 3;
2548        const TEMPORAL_LAYER_PATTERN_DYADIC = 1 << 4;
2549    }
2550}
2551
2552bitflags! {
2553    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH264StdFlagsKHR.html>
2554    #[repr(transparent)]
2555    #[derive(Default)]
2556    pub struct VideoEncodeH264StdFlagsKHR: Flags {
2557        const SEPARATE_COLOR_PLANE_FLAG_SET = 1;
2558        const QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET = 1 << 1;
2559        const SCALING_MATRIX_PRESENT_FLAG_SET = 1 << 2;
2560        const CHROMA_QP_INDEX_OFFSET = 1 << 3;
2561        const SECOND_CHROMA_QP_INDEX_OFFSET = 1 << 4;
2562        const PIC_INIT_QP_MINUS26 = 1 << 5;
2563        const WEIGHTED_PRED_FLAG_SET = 1 << 6;
2564        const WEIGHTED_BIPRED_IDC_EXPLICIT = 1 << 7;
2565        const WEIGHTED_BIPRED_IDC_IMPLICIT = 1 << 8;
2566        const TRANSFORM_8X8_MODE_FLAG_SET = 1 << 9;
2567        const DIRECT_SPATIAL_MV_PRED_FLAG_UNSET = 1 << 10;
2568        const ENTROPY_CODING_MODE_FLAG_UNSET = 1 << 11;
2569        const ENTROPY_CODING_MODE_FLAG_SET = 1 << 12;
2570        const DIRECT_8X8_INFERENCE_FLAG_UNSET = 1 << 13;
2571        const CONSTRAINED_INTRA_PRED_FLAG_SET = 1 << 14;
2572        const DEBLOCKING_FILTER_DISABLED = 1 << 15;
2573        const DEBLOCKING_FILTER_ENABLED = 1 << 16;
2574        const DEBLOCKING_FILTER_PARTIAL = 1 << 17;
2575        const SLICE_QP_DELTA = 1 << 19;
2576        const DIFFERENT_SLICE_QP_DELTA = 1 << 20;
2577    }
2578}
2579
2580bitflags! {
2581    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH265CapabilityFlagsKHR.html>
2582    #[repr(transparent)]
2583    #[derive(Default)]
2584    pub struct VideoEncodeH265CapabilityFlagsKHR: Flags {
2585        const HRD_COMPLIANCE = 1;
2586        const PREDICTION_WEIGHT_TABLE_GENERATED = 1 << 1;
2587        const ROW_UNALIGNED_SLICE_SEGMENT = 1 << 2;
2588        const DIFFERENT_SLICE_SEGMENT_TYPE = 1 << 3;
2589        const B_FRAME_IN_L0_LIST = 1 << 4;
2590        const B_FRAME_IN_L1_LIST = 1 << 5;
2591        const PER_PICTURE_TYPE_MIN_MAX_QP = 1 << 6;
2592        const PER_SLICE_SEGMENT_CONSTANT_QP = 1 << 7;
2593        const MULTIPLE_TILES_PER_SLICE_SEGMENT = 1 << 8;
2594        const MULTIPLE_SLICE_SEGMENTS_PER_TILE = 1 << 9;
2595        const CU_QP_DIFF_WRAPAROUND = 1 << 10;
2596        const B_PICTURE_INTRA_REFRESH = 1 << 11;
2597    }
2598}
2599
2600bitflags! {
2601    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH265CtbSizeFlagsKHR.html>
2602    #[repr(transparent)]
2603    #[derive(Default)]
2604    pub struct VideoEncodeH265CtbSizeFlagsKHR: Flags {
2605        const _16 = 1;
2606        const _32 = 1 << 1;
2607        const _64 = 1 << 2;
2608    }
2609}
2610
2611bitflags! {
2612    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH265RateControlFlagsKHR.html>
2613    #[repr(transparent)]
2614    #[derive(Default)]
2615    pub struct VideoEncodeH265RateControlFlagsKHR: Flags {
2616        const ATTEMPT_HRD_COMPLIANCE = 1;
2617        const REGULAR_GOP = 1 << 1;
2618        const REFERENCE_PATTERN_FLAT = 1 << 2;
2619        const REFERENCE_PATTERN_DYADIC = 1 << 3;
2620        const TEMPORAL_SUB_LAYER_PATTERN_DYADIC = 1 << 4;
2621    }
2622}
2623
2624bitflags! {
2625    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH265StdFlagsKHR.html>
2626    #[repr(transparent)]
2627    #[derive(Default)]
2628    pub struct VideoEncodeH265StdFlagsKHR: Flags {
2629        const SEPARATE_COLOR_PLANE_FLAG_SET = 1;
2630        const SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET = 1 << 1;
2631        const SCALING_LIST_DATA_PRESENT_FLAG_SET = 1 << 2;
2632        const PCM_ENABLED_FLAG_SET = 1 << 3;
2633        const SPS_TEMPORAL_MVP_ENABLED_FLAG_SET = 1 << 4;
2634        const INIT_QP_MINUS26 = 1 << 5;
2635        const WEIGHTED_PRED_FLAG_SET = 1 << 6;
2636        const WEIGHTED_BIPRED_FLAG_SET = 1 << 7;
2637        const LOG2_PARALLEL_MERGE_LEVEL_MINUS2 = 1 << 8;
2638        const SIGN_DATA_HIDING_ENABLED_FLAG_SET = 1 << 9;
2639        const TRANSFORM_SKIP_ENABLED_FLAG_SET = 1 << 10;
2640        const TRANSFORM_SKIP_ENABLED_FLAG_UNSET = 1 << 11;
2641        const PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET = 1 << 12;
2642        const TRANSQUANT_BYPASS_ENABLED_FLAG_SET = 1 << 13;
2643        const CONSTRAINED_INTRA_PRED_FLAG_SET = 1 << 14;
2644        const ENTROPY_CODING_SYNC_ENABLED_FLAG_SET = 1 << 15;
2645        const DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET = 1 << 16;
2646        const DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET = 1 << 17;
2647        const DEPENDENT_SLICE_SEGMENT_FLAG_SET = 1 << 18;
2648        const SLICE_QP_DELTA = 1 << 19;
2649        const DIFFERENT_SLICE_QP_DELTA = 1 << 20;
2650    }
2651}
2652
2653bitflags! {
2654    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeH265TransformBlockSizeFlagsKHR.html>
2655    #[repr(transparent)]
2656    #[derive(Default)]
2657    pub struct VideoEncodeH265TransformBlockSizeFlagsKHR: Flags {
2658        const _4 = 1;
2659        const _8 = 1 << 1;
2660        const _16 = 1 << 2;
2661        const _32 = 1 << 3;
2662    }
2663}
2664
2665bitflags! {
2666    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeIntraRefreshModeFlagsKHR.html>
2667    #[repr(transparent)]
2668    #[derive(Default)]
2669    pub struct VideoEncodeIntraRefreshModeFlagsKHR: Flags {
2670        const NONE = 0;
2671        const PER_PICTURE_PARTITION = 1;
2672        const BLOCK_BASED = 1 << 1;
2673        const BLOCK_ROW_BASED = 1 << 2;
2674        const BLOCK_COLUMN_BASED = 1 << 3;
2675    }
2676}
2677
2678bitflags! {
2679    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeRateControlFlagsKHR.html>
2680    #[repr(transparent)]
2681    #[derive(Default)]
2682    pub struct VideoEncodeRateControlFlagsKHR: Flags { }
2683}
2684
2685bitflags! {
2686    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeRateControlModeFlagsKHR.html>
2687    #[repr(transparent)]
2688    #[derive(Default)]
2689    pub struct VideoEncodeRateControlModeFlagsKHR: Flags {
2690        const DEFAULT = 0;
2691        const DISABLED = 1;
2692        const CBR = 1 << 1;
2693        const VBR = 1 << 2;
2694    }
2695}
2696
2697bitflags! {
2698    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeRgbChromaOffsetFlagsVALVE.html>
2699    #[repr(transparent)]
2700    #[derive(Default)]
2701    pub struct VideoEncodeRgbChromaOffsetFlagsVALVE: Flags {
2702        const COSITED_EVEN = 1;
2703        const MIDPOINT = 1 << 1;
2704    }
2705}
2706
2707bitflags! {
2708    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeRgbModelConversionFlagsVALVE.html>
2709    #[repr(transparent)]
2710    #[derive(Default)]
2711    pub struct VideoEncodeRgbModelConversionFlagsVALVE: Flags {
2712        const RGB_IDENTITY = 1;
2713        const YCBCR_IDENTITY = 1 << 1;
2714        const YCBCR_709 = 1 << 2;
2715        const YCBCR_601 = 1 << 3;
2716        const YCBCR_2020 = 1 << 4;
2717    }
2718}
2719
2720bitflags! {
2721    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeRgbRangeCompressionFlagsVALVE.html>
2722    #[repr(transparent)]
2723    #[derive(Default)]
2724    pub struct VideoEncodeRgbRangeCompressionFlagsVALVE: Flags {
2725        const FULL_RANGE = 1;
2726        const NARROW_RANGE = 1 << 1;
2727    }
2728}
2729
2730bitflags! {
2731    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEncodeUsageFlagsKHR.html>
2732    #[repr(transparent)]
2733    #[derive(Default)]
2734    pub struct VideoEncodeUsageFlagsKHR: Flags {
2735        const DEFAULT = 0;
2736        const TRANSCODING = 1;
2737        const STREAMING = 1 << 1;
2738        const RECORDING = 1 << 2;
2739        const CONFERENCING = 1 << 3;
2740    }
2741}
2742
2743bitflags! {
2744    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoEndCodingFlagsKHR.html>
2745    #[repr(transparent)]
2746    #[derive(Default)]
2747    pub struct VideoEndCodingFlagsKHR: Flags { }
2748}
2749
2750bitflags! {
2751    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoSessionCreateFlagsKHR.html>
2752    #[repr(transparent)]
2753    #[derive(Default)]
2754    pub struct VideoSessionCreateFlagsKHR: Flags {
2755        const PROTECTED_CONTENT = 1;
2756        const ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS = 1 << 1;
2757        const INLINE_QUERIES = 1 << 2;
2758        const ALLOW_ENCODE_QUANTIZATION_DELTA_MAP = 1 << 3;
2759        const ALLOW_ENCODE_EMPHASIS_MAP = 1 << 4;
2760        const INLINE_SESSION_PARAMETERS = 1 << 5;
2761    }
2762}
2763
2764bitflags! {
2765    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkVideoSessionParametersCreateFlagsKHR.html>
2766    #[repr(transparent)]
2767    #[derive(Default)]
2768    pub struct VideoSessionParametersCreateFlagsKHR: Flags {
2769        const QUANTIZATION_MAP_COMPATIBLE = 1;
2770    }
2771}
2772
2773bitflags! {
2774    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkWaylandSurfaceCreateFlagsKHR.html>
2775    #[repr(transparent)]
2776    #[derive(Default)]
2777    pub struct WaylandSurfaceCreateFlagsKHR: Flags { }
2778}
2779
2780bitflags! {
2781    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkWin32SurfaceCreateFlagsKHR.html>
2782    #[repr(transparent)]
2783    #[derive(Default)]
2784    pub struct Win32SurfaceCreateFlagsKHR: Flags { }
2785}
2786
2787bitflags! {
2788    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkXcbSurfaceCreateFlagsKHR.html>
2789    #[repr(transparent)]
2790    #[derive(Default)]
2791    pub struct XcbSurfaceCreateFlagsKHR: Flags { }
2792}
2793
2794bitflags! {
2795    /// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkXlibSurfaceCreateFlagsKHR.html>
2796    #[repr(transparent)]
2797    #[derive(Default)]
2798    pub struct XlibSurfaceCreateFlagsKHR: Flags { }
2799}
2800
2801/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkAccessFlags2KHR.html>
2802pub type AccessFlags2KHR = AccessFlags2;
2803/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBufferUsageFlags2KHR.html>
2804pub type BufferUsageFlags2KHR = BufferUsageFlags2;
2805/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkBuildAccelerationStructureFlagsNV.html>
2806pub type BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR;
2807/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkCommandPoolTrimFlagsKHR.html>
2808pub type CommandPoolTrimFlagsKHR = CommandPoolTrimFlags;
2809/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorBindingFlagsEXT.html>
2810pub type DescriptorBindingFlagsEXT = DescriptorBindingFlags;
2811/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkDescriptorUpdateTemplateCreateFlagsKHR.html>
2812pub type DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags;
2813/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalFenceFeatureFlagsKHR.html>
2814pub type ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags;
2815/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalFenceHandleTypeFlagsKHR.html>
2816pub type ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags;
2817/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalMemoryFeatureFlagsKHR.html>
2818pub type ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags;
2819/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalMemoryHandleTypeFlagsKHR.html>
2820pub type ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags;
2821/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalSemaphoreFeatureFlagsKHR.html>
2822pub type ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags;
2823/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkExternalSemaphoreHandleTypeFlagsKHR.html>
2824pub type ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags;
2825/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFenceImportFlagsKHR.html>
2826pub type FenceImportFlagsKHR = FenceImportFlags;
2827/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkFormatFeatureFlags2KHR.html>
2828pub type FormatFeatureFlags2KHR = FormatFeatureFlags2;
2829/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkGeometryFlagsNV.html>
2830pub type GeometryFlagsNV = GeometryFlagsKHR;
2831/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkGeometryInstanceFlagsNV.html>
2832pub type GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR;
2833/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkHostImageCopyFlagsEXT.html>
2834pub type HostImageCopyFlagsEXT = HostImageCopyFlags;
2835/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryAllocateFlagsKHR.html>
2836pub type MemoryAllocateFlagsKHR = MemoryAllocateFlags;
2837/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryDecompressionMethodFlagsNV.html>
2838pub type MemoryDecompressionMethodFlagsNV = MemoryDecompressionMethodFlagsEXT;
2839/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkMemoryUnmapFlagsKHR.html>
2840pub type MemoryUnmapFlagsKHR = MemoryUnmapFlags;
2841/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPeerMemoryFeatureFlagsKHR.html>
2842pub type PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags;
2843/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCreateFlags2KHR.html>
2844pub type PipelineCreateFlags2KHR = PipelineCreateFlags2;
2845/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineCreationFeedbackFlagsEXT.html>
2846pub type PipelineCreationFeedbackFlagsEXT = PipelineCreationFeedbackFlags;
2847/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPipelineStageFlags2KHR.html>
2848pub type PipelineStageFlags2KHR = PipelineStageFlags2;
2849/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPresentGravityFlagsEXT.html>
2850pub type PresentGravityFlagsEXT = PresentGravityFlagsKHR;
2851/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPresentScalingFlagsEXT.html>
2852pub type PresentScalingFlagsEXT = PresentScalingFlagsKHR;
2853/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkPrivateDataSlotCreateFlagsEXT.html>
2854pub type PrivateDataSlotCreateFlagsEXT = PrivateDataSlotCreateFlags;
2855/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkRenderingFlagsKHR.html>
2856pub type RenderingFlagsKHR = RenderingFlags;
2857/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkResolveModeFlagsKHR.html>
2858pub type ResolveModeFlagsKHR = ResolveModeFlags;
2859/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSemaphoreImportFlagsKHR.html>
2860pub type SemaphoreImportFlagsKHR = SemaphoreImportFlags;
2861/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSemaphoreWaitFlagsKHR.html>
2862pub type SemaphoreWaitFlagsKHR = SemaphoreWaitFlags;
2863/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkSubmitFlagsKHR.html>
2864pub type SubmitFlagsKHR = SubmitFlags;
2865/// <https://www.khronos.org/registry/vulkan/specs/latest/man/html/VkToolPurposeFlagsEXT.html>
2866pub type ToolPurposeFlagsEXT = ToolPurposeFlags;