1use crate::vk::definitions::*;
2#[repr(transparent)]
3#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
4#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheCreateFlagBits.html>"]
5pub struct PipelineCacheCreateFlags(pub(crate) Flags);
6vk_bitflags_wrapped!(PipelineCacheCreateFlags, Flags);
7impl PipelineCacheCreateFlags {}
8#[repr(transparent)]
9#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueueFlagBits.html>"]
11pub struct QueueFlags(pub(crate) Flags);
12vk_bitflags_wrapped!(QueueFlags, Flags);
13impl QueueFlags {
14 #[doc = "Queue supports graphics operations"]
15 pub const GRAPHICS: Self = Self(0b1);
16 #[doc = "Queue supports compute operations"]
17 pub const COMPUTE: Self = Self(0b10);
18 #[doc = "Queue supports transfer operations"]
19 pub const TRANSFER: Self = Self(0b100);
20 #[doc = "Queue supports sparse resource memory management operations"]
21 pub const SPARSE_BINDING: Self = Self(0b1000);
22}
23#[repr(transparent)]
24#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
25#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCullModeFlagBits.html>"]
26pub struct CullModeFlags(pub(crate) Flags);
27vk_bitflags_wrapped!(CullModeFlags, Flags);
28impl CullModeFlags {
29 pub const NONE: Self = Self(0);
30 pub const FRONT: Self = Self(0b1);
31 pub const BACK: Self = Self(0b10);
32 pub const FRONT_AND_BACK: Self = Self(0x0000_0003);
33}
34#[repr(transparent)]
35#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
36#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderPassCreateFlagBits.html>"]
37pub struct RenderPassCreateFlags(pub(crate) Flags);
38vk_bitflags_wrapped!(RenderPassCreateFlags, Flags);
39impl RenderPassCreateFlags {}
40#[repr(transparent)]
41#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
42#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceQueueCreateFlagBits.html>"]
43pub struct DeviceQueueCreateFlags(pub(crate) Flags);
44vk_bitflags_wrapped!(DeviceQueueCreateFlags, Flags);
45impl DeviceQueueCreateFlags {}
46#[repr(transparent)]
47#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
48#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryPropertyFlagBits.html>"]
49pub struct MemoryPropertyFlags(pub(crate) Flags);
50vk_bitflags_wrapped!(MemoryPropertyFlags, Flags);
51impl MemoryPropertyFlags {
52 #[doc = "If otherwise stated, then allocate memory on device"]
53 pub const DEVICE_LOCAL: Self = Self(0b1);
54 #[doc = "Memory is mappable by host"]
55 pub const HOST_VISIBLE: Self = Self(0b10);
56 #[doc = "Memory will have i/o coherency. If not set, application may need to use vkFlushMappedMemoryRanges and vkInvalidateMappedMemoryRanges to flush/invalidate host cache"]
57 pub const HOST_COHERENT: Self = Self(0b100);
58 #[doc = "Memory will be cached by the host"]
59 pub const HOST_CACHED: Self = Self(0b1000);
60 #[doc = "Memory may be allocated by the driver when it is required"]
61 pub const LAZILY_ALLOCATED: Self = Self(0b1_0000);
62}
63#[repr(transparent)]
64#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
65#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryHeapFlagBits.html>"]
66pub struct MemoryHeapFlags(pub(crate) Flags);
67vk_bitflags_wrapped!(MemoryHeapFlags, Flags);
68impl MemoryHeapFlags {
69 #[doc = "If set, heap represents device memory"]
70 pub const DEVICE_LOCAL: Self = Self(0b1);
71}
72#[repr(transparent)]
73#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
74#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccessFlagBits.html>"]
75pub struct AccessFlags(pub(crate) Flags);
76vk_bitflags_wrapped!(AccessFlags, Flags);
77impl AccessFlags {
78 #[doc = "Controls coherency of indirect command reads"]
79 pub const INDIRECT_COMMAND_READ: Self = Self(0b1);
80 #[doc = "Controls coherency of index reads"]
81 pub const INDEX_READ: Self = Self(0b10);
82 #[doc = "Controls coherency of vertex attribute reads"]
83 pub const VERTEX_ATTRIBUTE_READ: Self = Self(0b100);
84 #[doc = "Controls coherency of uniform buffer reads"]
85 pub const UNIFORM_READ: Self = Self(0b1000);
86 #[doc = "Controls coherency of input attachment reads"]
87 pub const INPUT_ATTACHMENT_READ: Self = Self(0b1_0000);
88 #[doc = "Controls coherency of shader reads"]
89 pub const SHADER_READ: Self = Self(0b10_0000);
90 #[doc = "Controls coherency of shader writes"]
91 pub const SHADER_WRITE: Self = Self(0b100_0000);
92 #[doc = "Controls coherency of color attachment reads"]
93 pub const COLOR_ATTACHMENT_READ: Self = Self(0b1000_0000);
94 #[doc = "Controls coherency of color attachment writes"]
95 pub const COLOR_ATTACHMENT_WRITE: Self = Self(0b1_0000_0000);
96 #[doc = "Controls coherency of depth/stencil attachment reads"]
97 pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(0b10_0000_0000);
98 #[doc = "Controls coherency of depth/stencil attachment writes"]
99 pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(0b100_0000_0000);
100 #[doc = "Controls coherency of transfer reads"]
101 pub const TRANSFER_READ: Self = Self(0b1000_0000_0000);
102 #[doc = "Controls coherency of transfer writes"]
103 pub const TRANSFER_WRITE: Self = Self(0b1_0000_0000_0000);
104 #[doc = "Controls coherency of host reads"]
105 pub const HOST_READ: Self = Self(0b10_0000_0000_0000);
106 #[doc = "Controls coherency of host writes"]
107 pub const HOST_WRITE: Self = Self(0b100_0000_0000_0000);
108 #[doc = "Controls coherency of memory reads"]
109 pub const MEMORY_READ: Self = Self(0b1000_0000_0000_0000);
110 #[doc = "Controls coherency of memory writes"]
111 pub const MEMORY_WRITE: Self = Self(0b1_0000_0000_0000_0000);
112}
113#[repr(transparent)]
114#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
115#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits.html>"]
116pub struct BufferUsageFlags(pub(crate) Flags);
117vk_bitflags_wrapped!(BufferUsageFlags, Flags);
118impl BufferUsageFlags {
119 #[doc = "Can be used as a source of transfer operations"]
120 pub const TRANSFER_SRC: Self = Self(0b1);
121 #[doc = "Can be used as a destination of transfer operations"]
122 pub const TRANSFER_DST: Self = Self(0b10);
123 #[doc = "Can be used as TBO"]
124 pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b100);
125 #[doc = "Can be used as IBO"]
126 pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1000);
127 #[doc = "Can be used as UBO"]
128 pub const UNIFORM_BUFFER: Self = Self(0b1_0000);
129 #[doc = "Can be used as SSBO"]
130 pub const STORAGE_BUFFER: Self = Self(0b10_0000);
131 #[doc = "Can be used as source of fixed-function index fetch (index buffer)"]
132 pub const INDEX_BUFFER: Self = Self(0b100_0000);
133 #[doc = "Can be used as source of fixed-function vertex fetch (VBO)"]
134 pub const VERTEX_BUFFER: Self = Self(0b1000_0000);
135 #[doc = "Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer)"]
136 pub const INDIRECT_BUFFER: Self = Self(0b1_0000_0000);
137}
138#[repr(transparent)]
139#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
140#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferUsageFlagBits2.html>"]
141pub struct BufferUsageFlags2(pub(crate) Flags64);
142vk_bitflags_wrapped!(BufferUsageFlags2, Flags64);
143impl BufferUsageFlags2 {
144 pub const TRANSFER_SRC: Self = Self(0b1);
145 pub const TRANSFER_DST: Self = Self(0b10);
146 pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b100);
147 pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1000);
148 pub const UNIFORM_BUFFER: Self = Self(0b1_0000);
149 pub const STORAGE_BUFFER: Self = Self(0b10_0000);
150 pub const INDEX_BUFFER: Self = Self(0b100_0000);
151 pub const VERTEX_BUFFER: Self = Self(0b1000_0000);
152 pub const INDIRECT_BUFFER: Self = Self(0b1_0000_0000);
153}
154#[repr(transparent)]
155#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
156#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBufferCreateFlagBits.html>"]
157pub struct BufferCreateFlags(pub(crate) Flags);
158vk_bitflags_wrapped!(BufferCreateFlags, Flags);
159impl BufferCreateFlags {
160 #[doc = "Buffer should support sparse backing"]
161 pub const SPARSE_BINDING: Self = Self(0b1);
162 #[doc = "Buffer should support sparse backing with partial residency"]
163 pub const SPARSE_RESIDENCY: Self = Self(0b10);
164 #[doc = "Buffer should support constant data access to physical memory ranges mapped into multiple locations of sparse buffers"]
165 pub const SPARSE_ALIASED: Self = Self(0b100);
166}
167#[repr(transparent)]
168#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
169#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderStageFlagBits.html>"]
170pub struct ShaderStageFlags(pub(crate) Flags);
171vk_bitflags_wrapped!(ShaderStageFlags, Flags);
172impl ShaderStageFlags {
173 pub const VERTEX: Self = Self(0b1);
174 pub const TESSELLATION_CONTROL: Self = Self(0b10);
175 pub const TESSELLATION_EVALUATION: Self = Self(0b100);
176 pub const GEOMETRY: Self = Self(0b1000);
177 pub const FRAGMENT: Self = Self(0b1_0000);
178 pub const COMPUTE: Self = Self(0b10_0000);
179 pub const ALL_GRAPHICS: Self = Self(0x0000_001F);
180 pub const ALL: Self = Self(0x7FFF_FFFF);
181}
182#[repr(transparent)]
183#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
184#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageUsageFlagBits.html>"]
185pub struct ImageUsageFlags(pub(crate) Flags);
186vk_bitflags_wrapped!(ImageUsageFlags, Flags);
187impl ImageUsageFlags {
188 #[doc = "Can be used as a source of transfer operations"]
189 pub const TRANSFER_SRC: Self = Self(0b1);
190 #[doc = "Can be used as a destination of transfer operations"]
191 pub const TRANSFER_DST: Self = Self(0b10);
192 #[doc = "Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"]
193 pub const SAMPLED: Self = Self(0b100);
194 #[doc = "Can be used as storage image (STORAGE_IMAGE descriptor type)"]
195 pub const STORAGE: Self = Self(0b1000);
196 #[doc = "Can be used as framebuffer color attachment"]
197 pub const COLOR_ATTACHMENT: Self = Self(0b1_0000);
198 #[doc = "Can be used as framebuffer depth/stencil attachment"]
199 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000);
200 #[doc = "Image data not needed outside of rendering"]
201 pub const TRANSIENT_ATTACHMENT: Self = Self(0b100_0000);
202 #[doc = "Can be used as framebuffer input attachment"]
203 pub const INPUT_ATTACHMENT: Self = Self(0b1000_0000);
204}
205#[repr(transparent)]
206#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
207#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCreateFlagBits.html>"]
208pub struct ImageCreateFlags(pub(crate) Flags);
209vk_bitflags_wrapped!(ImageCreateFlags, Flags);
210impl ImageCreateFlags {
211 #[doc = "Image should support sparse backing"]
212 pub const SPARSE_BINDING: Self = Self(0b1);
213 #[doc = "Image should support sparse backing with partial residency"]
214 pub const SPARSE_RESIDENCY: Self = Self(0b10);
215 #[doc = "Image should support constant data access to physical memory ranges mapped into multiple locations of sparse images"]
216 pub const SPARSE_ALIASED: Self = Self(0b100);
217 #[doc = "Allows image views to have different format than the base image"]
218 pub const MUTABLE_FORMAT: Self = Self(0b1000);
219 #[doc = "Allows creating image views with cube type from the created image"]
220 pub const CUBE_COMPATIBLE: Self = Self(0b1_0000);
221}
222#[repr(transparent)]
223#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
224#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageViewCreateFlagBits.html>"]
225pub struct ImageViewCreateFlags(pub(crate) Flags);
226vk_bitflags_wrapped!(ImageViewCreateFlags, Flags);
227impl ImageViewCreateFlags {}
228#[repr(transparent)]
229#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
230#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSamplerCreateFlagBits.html>"]
231pub struct SamplerCreateFlags(pub(crate) Flags);
232vk_bitflags_wrapped!(SamplerCreateFlags, Flags);
233impl SamplerCreateFlags {}
234#[repr(transparent)]
235#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
236#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits.html>"]
237pub struct PipelineCreateFlags(pub(crate) Flags);
238vk_bitflags_wrapped!(PipelineCreateFlags, Flags);
239impl PipelineCreateFlags {
240 pub const DISABLE_OPTIMIZATION: Self = Self(0b1);
241 pub const ALLOW_DERIVATIVES: Self = Self(0b10);
242 pub const DERIVATIVE: Self = Self(0b100);
243}
244#[repr(transparent)]
245#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
246#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreateFlagBits2.html>"]
247pub struct PipelineCreateFlags2(pub(crate) Flags64);
248vk_bitflags_wrapped!(PipelineCreateFlags2, Flags64);
249impl PipelineCreateFlags2 {
250 pub const DISABLE_OPTIMIZATION: Self = Self(0b1);
251 pub const ALLOW_DERIVATIVES: Self = Self(0b10);
252 pub const DERIVATIVE: Self = Self(0b100);
253 pub const VIEW_INDEX_FROM_DEVICE_INDEX: Self = Self(0b1000);
254 pub const DISPATCH_BASE: Self = Self(0b1_0000);
255 pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED: Self = Self(0b1_0000_0000);
256 pub const EARLY_RETURN_ON_FAILURE: Self = Self(0b10_0000_0000);
257 pub const NO_PROTECTED_ACCESS: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
258 pub const PROTECTED_ACCESS_ONLY: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000);
259}
260#[repr(transparent)]
261#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
262#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageCreateFlagBits.html>"]
263pub struct PipelineShaderStageCreateFlags(pub(crate) Flags);
264vk_bitflags_wrapped!(PipelineShaderStageCreateFlags, Flags);
265impl PipelineShaderStageCreateFlags {}
266#[repr(transparent)]
267#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
268#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkColorComponentFlagBits.html>"]
269pub struct ColorComponentFlags(pub(crate) Flags);
270vk_bitflags_wrapped!(ColorComponentFlags, Flags);
271impl ColorComponentFlags {
272 pub const R: Self = Self(0b1);
273 pub const G: Self = Self(0b10);
274 pub const B: Self = Self(0b100);
275 pub const A: Self = Self(0b1000);
276}
277#[repr(transparent)]
278#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
279#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceCreateFlagBits.html>"]
280pub struct FenceCreateFlags(pub(crate) Flags);
281vk_bitflags_wrapped!(FenceCreateFlags, Flags);
282impl FenceCreateFlags {
283 pub const SIGNALED: Self = Self(0b1);
284}
285#[repr(transparent)]
286#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
287#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreCreateFlagBits.html>"]
288pub struct SemaphoreCreateFlags(pub(crate) Flags);
289vk_bitflags_wrapped!(SemaphoreCreateFlags, Flags);
290impl SemaphoreCreateFlags {}
291#[repr(transparent)]
292#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
293#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits.html>"]
294pub struct FormatFeatureFlags(pub(crate) Flags);
295vk_bitflags_wrapped!(FormatFeatureFlags, Flags);
296impl FormatFeatureFlags {
297 #[doc = "Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"]
298 pub const SAMPLED_IMAGE: Self = Self(0b1);
299 #[doc = "Format can be used for storage images (STORAGE_IMAGE descriptor type)"]
300 pub const STORAGE_IMAGE: Self = Self(0b10);
301 #[doc = "Format supports atomic operations in case it is used for storage images"]
302 pub const STORAGE_IMAGE_ATOMIC: Self = Self(0b100);
303 #[doc = "Format can be used for uniform texel buffers (TBOs)"]
304 pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b1000);
305 #[doc = "Format can be used for storage texel buffers (IBOs)"]
306 pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1_0000);
307 #[doc = "Format supports atomic operations in case it is used for storage texel buffers"]
308 pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(0b10_0000);
309 #[doc = "Format can be used for vertex buffers (VBOs)"]
310 pub const VERTEX_BUFFER: Self = Self(0b100_0000);
311 #[doc = "Format can be used for color attachment images"]
312 pub const COLOR_ATTACHMENT: Self = Self(0b1000_0000);
313 #[doc = "Format supports blending in case it is used for color attachment images"]
314 pub const COLOR_ATTACHMENT_BLEND: Self = Self(0b1_0000_0000);
315 #[doc = "Format can be used for depth/stencil attachment images"]
316 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000_0000);
317 #[doc = "Format can be used as the source image of blits with vkCmdBlitImage"]
318 pub const BLIT_SRC: Self = Self(0b100_0000_0000);
319 #[doc = "Format can be used as the destination image of blits with vkCmdBlitImage"]
320 pub const BLIT_DST: Self = Self(0b1000_0000_0000);
321 #[doc = "Format can be filtered with VK_FILTER_LINEAR when being sampled"]
322 pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(0b1_0000_0000_0000);
323}
324#[repr(transparent)]
325#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
326#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryControlFlagBits.html>"]
327pub struct QueryControlFlags(pub(crate) Flags);
328vk_bitflags_wrapped!(QueryControlFlags, Flags);
329impl QueryControlFlags {
330 #[doc = "Require precise results to be collected by the query"]
331 pub const PRECISE: Self = Self(0b1);
332}
333#[repr(transparent)]
334#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
335#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html>"]
336pub struct QueryResultFlags(pub(crate) Flags);
337vk_bitflags_wrapped!(QueryResultFlags, Flags);
338impl QueryResultFlags {
339 #[doc = "Results of the queries are written to the destination buffer as 64-bit values"]
340 pub const TYPE_64: Self = Self(0b1);
341 #[doc = "Results of the queries are waited on before proceeding with the result copy"]
342 pub const WAIT: Self = Self(0b10);
343 #[doc = "Besides the results of the query, the availability of the results is also written"]
344 pub const WITH_AVAILABILITY: Self = Self(0b100);
345 #[doc = "Copy the partial results of the query even if the final results are not available"]
346 pub const PARTIAL: Self = Self(0b1000);
347}
348#[repr(transparent)]
349#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
350#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferUsageFlagBits.html>"]
351pub struct CommandBufferUsageFlags(pub(crate) Flags);
352vk_bitflags_wrapped!(CommandBufferUsageFlags, Flags);
353impl CommandBufferUsageFlags {
354 pub const ONE_TIME_SUBMIT: Self = Self(0b1);
355 pub const RENDER_PASS_CONTINUE: Self = Self(0b10);
356 #[doc = "Command buffer may be submitted/executed more than once simultaneously"]
357 pub const SIMULTANEOUS_USE: Self = Self(0b100);
358}
359#[repr(transparent)]
360#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
361#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html>"]
362pub struct QueryPipelineStatisticFlags(pub(crate) Flags);
363vk_bitflags_wrapped!(QueryPipelineStatisticFlags, Flags);
364impl QueryPipelineStatisticFlags {
365 #[doc = "Optional"]
366 pub const INPUT_ASSEMBLY_VERTICES: Self = Self(0b1);
367 #[doc = "Optional"]
368 pub const INPUT_ASSEMBLY_PRIMITIVES: Self = Self(0b10);
369 #[doc = "Optional"]
370 pub const VERTEX_SHADER_INVOCATIONS: Self = Self(0b100);
371 #[doc = "Optional"]
372 pub const GEOMETRY_SHADER_INVOCATIONS: Self = Self(0b1000);
373 #[doc = "Optional"]
374 pub const GEOMETRY_SHADER_PRIMITIVES: Self = Self(0b1_0000);
375 #[doc = "Optional"]
376 pub const CLIPPING_INVOCATIONS: Self = Self(0b10_0000);
377 #[doc = "Optional"]
378 pub const CLIPPING_PRIMITIVES: Self = Self(0b100_0000);
379 #[doc = "Optional"]
380 pub const FRAGMENT_SHADER_INVOCATIONS: Self = Self(0b1000_0000);
381 #[doc = "Optional"]
382 pub const TESSELLATION_CONTROL_SHADER_PATCHES: Self = Self(0b1_0000_0000);
383 #[doc = "Optional"]
384 pub const TESSELLATION_EVALUATION_SHADER_INVOCATIONS: Self = Self(0b10_0000_0000);
385 #[doc = "Optional"]
386 pub const COMPUTE_SHADER_INVOCATIONS: Self = Self(0b100_0000_0000);
387}
388#[repr(transparent)]
389#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
390#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryMapFlagBits.html>"]
391pub struct MemoryMapFlags(pub(crate) Flags);
392vk_bitflags_wrapped!(MemoryMapFlags, Flags);
393impl MemoryMapFlags {}
394#[repr(transparent)]
395#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
396#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageAspectFlagBits.html>"]
397pub struct ImageAspectFlags(pub(crate) Flags);
398vk_bitflags_wrapped!(ImageAspectFlags, Flags);
399impl ImageAspectFlags {
400 pub const COLOR: Self = Self(0b1);
401 pub const DEPTH: Self = Self(0b10);
402 pub const STENCIL: Self = Self(0b100);
403 pub const METADATA: Self = Self(0b1000);
404}
405#[repr(transparent)]
406#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
407#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatFlagBits.html>"]
408pub struct SparseImageFormatFlags(pub(crate) Flags);
409vk_bitflags_wrapped!(SparseImageFormatFlags, Flags);
410impl SparseImageFormatFlags {
411 #[doc = "Image uses a single mip tail region for all array layers"]
412 pub const SINGLE_MIPTAIL: Self = Self(0b1);
413 #[doc = "Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels."]
414 pub const ALIGNED_MIP_SIZE: Self = Self(0b10);
415 #[doc = "Image uses a non-standard sparse image block dimensions"]
416 pub const NONSTANDARD_BLOCK_SIZE: Self = Self(0b100);
417}
418#[repr(transparent)]
419#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
420#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseMemoryBindFlagBits.html>"]
421pub struct SparseMemoryBindFlags(pub(crate) Flags);
422vk_bitflags_wrapped!(SparseMemoryBindFlags, Flags);
423impl SparseMemoryBindFlags {
424 #[doc = "Operation binds resource metadata to memory"]
425 pub const METADATA: Self = Self(0b1);
426}
427#[repr(transparent)]
428#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
429#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html>"]
430pub struct PipelineStageFlags(pub(crate) Flags);
431vk_bitflags_wrapped!(PipelineStageFlags, Flags);
432impl PipelineStageFlags {
433 #[doc = "Before subsequent commands are processed"]
434 pub const TOP_OF_PIPE: Self = Self(0b1);
435 #[doc = "Draw/DispatchIndirect command fetch"]
436 pub const DRAW_INDIRECT: Self = Self(0b10);
437 #[doc = "Vertex/index fetch"]
438 pub const VERTEX_INPUT: Self = Self(0b100);
439 #[doc = "Vertex shading"]
440 pub const VERTEX_SHADER: Self = Self(0b1000);
441 #[doc = "Tessellation control shading"]
442 pub const TESSELLATION_CONTROL_SHADER: Self = Self(0b1_0000);
443 #[doc = "Tessellation evaluation shading"]
444 pub const TESSELLATION_EVALUATION_SHADER: Self = Self(0b10_0000);
445 #[doc = "Geometry shading"]
446 pub const GEOMETRY_SHADER: Self = Self(0b100_0000);
447 #[doc = "Fragment shading"]
448 pub const FRAGMENT_SHADER: Self = Self(0b1000_0000);
449 #[doc = "Early fragment (depth and stencil) tests"]
450 pub const EARLY_FRAGMENT_TESTS: Self = Self(0b1_0000_0000);
451 #[doc = "Late fragment (depth and stencil) tests"]
452 pub const LATE_FRAGMENT_TESTS: Self = Self(0b10_0000_0000);
453 #[doc = "Color attachment writes"]
454 pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(0b100_0000_0000);
455 #[doc = "Compute shading"]
456 pub const COMPUTE_SHADER: Self = Self(0b1000_0000_0000);
457 #[doc = "Transfer/copy operations"]
458 pub const TRANSFER: Self = Self(0b1_0000_0000_0000);
459 #[doc = "After previous commands have completed"]
460 pub const BOTTOM_OF_PIPE: Self = Self(0b10_0000_0000_0000);
461 #[doc = "Indicates host (CPU) is a source/sink of the dependency"]
462 pub const HOST: Self = Self(0b100_0000_0000_0000);
463 #[doc = "All stages of the graphics pipeline"]
464 pub const ALL_GRAPHICS: Self = Self(0b1000_0000_0000_0000);
465 #[doc = "All stages supported on the queue"]
466 pub const ALL_COMMANDS: Self = Self(0b1_0000_0000_0000_0000);
467}
468#[repr(transparent)]
469#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
470#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateFlagBits.html>"]
471pub struct CommandPoolCreateFlags(pub(crate) Flags);
472vk_bitflags_wrapped!(CommandPoolCreateFlags, Flags);
473impl CommandPoolCreateFlags {
474 #[doc = "Command buffers have a short lifetime"]
475 pub const TRANSIENT: Self = Self(0b1);
476 #[doc = "Command buffers may release their memory individually"]
477 pub const RESET_COMMAND_BUFFER: Self = Self(0b10);
478}
479#[repr(transparent)]
480#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
481#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolResetFlagBits.html>"]
482pub struct CommandPoolResetFlags(pub(crate) Flags);
483vk_bitflags_wrapped!(CommandPoolResetFlags, Flags);
484impl CommandPoolResetFlags {
485 #[doc = "Release resources owned by the pool"]
486 pub const RELEASE_RESOURCES: Self = Self(0b1);
487}
488#[repr(transparent)]
489#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
490#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferResetFlagBits.html>"]
491pub struct CommandBufferResetFlags(pub(crate) Flags);
492vk_bitflags_wrapped!(CommandBufferResetFlags, Flags);
493impl CommandBufferResetFlags {
494 #[doc = "Release resources owned by the buffer"]
495 pub const RELEASE_RESOURCES: Self = Self(0b1);
496}
497#[repr(transparent)]
498#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
499#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html>"]
500pub struct SampleCountFlags(pub(crate) Flags);
501vk_bitflags_wrapped!(SampleCountFlags, Flags);
502impl SampleCountFlags {
503 #[doc = "Sample count 1 supported"]
504 pub const TYPE_1: Self = Self(0b1);
505 #[doc = "Sample count 2 supported"]
506 pub const TYPE_2: Self = Self(0b10);
507 #[doc = "Sample count 4 supported"]
508 pub const TYPE_4: Self = Self(0b100);
509 #[doc = "Sample count 8 supported"]
510 pub const TYPE_8: Self = Self(0b1000);
511 #[doc = "Sample count 16 supported"]
512 pub const TYPE_16: Self = Self(0b1_0000);
513 #[doc = "Sample count 32 supported"]
514 pub const TYPE_32: Self = Self(0b10_0000);
515 #[doc = "Sample count 64 supported"]
516 pub const TYPE_64: Self = Self(0b100_0000);
517}
518#[repr(transparent)]
519#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
520#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescriptionFlagBits.html>"]
521pub struct AttachmentDescriptionFlags(pub(crate) Flags);
522vk_bitflags_wrapped!(AttachmentDescriptionFlags, Flags);
523impl AttachmentDescriptionFlags {
524 #[doc = "The attachment may alias physical memory of another attachment in the same render pass"]
525 pub const MAY_ALIAS: Self = Self(0b1);
526}
527#[repr(transparent)]
528#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
529#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilFaceFlagBits.html>"]
530pub struct StencilFaceFlags(pub(crate) Flags);
531vk_bitflags_wrapped!(StencilFaceFlags, Flags);
532impl StencilFaceFlags {
533 #[doc = "Front face"]
534 pub const FRONT: Self = Self(0b1);
535 #[doc = "Back face"]
536 pub const BACK: Self = Self(0b10);
537 #[doc = "Front and back faces"]
538 pub const FRONT_AND_BACK: Self = Self(0x0000_0003);
539}
540#[repr(transparent)]
541#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
542#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateFlagBits.html>"]
543pub struct DescriptorPoolCreateFlags(pub(crate) Flags);
544vk_bitflags_wrapped!(DescriptorPoolCreateFlags, Flags);
545impl DescriptorPoolCreateFlags {
546 #[doc = "Descriptor sets may be freed individually"]
547 pub const FREE_DESCRIPTOR_SET: Self = Self(0b1);
548}
549#[repr(transparent)]
550#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
551#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDependencyFlagBits.html>"]
552pub struct DependencyFlags(pub(crate) Flags);
553vk_bitflags_wrapped!(DependencyFlags, Flags);
554impl DependencyFlags {
555 #[doc = "Dependency is per pixel region "]
556 pub const BY_REGION: Self = Self(0b1);
557}
558#[repr(transparent)]
559#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
560#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreWaitFlagBits.html>"]
561pub struct SemaphoreWaitFlags(pub(crate) Flags);
562vk_bitflags_wrapped!(SemaphoreWaitFlags, Flags);
563impl SemaphoreWaitFlags {
564 pub const ANY: Self = Self(0b1);
565}
566#[repr(transparent)]
567#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
568#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneAlphaFlagBitsKHR.html>"]
569pub struct DisplayPlaneAlphaFlagsKHR(pub(crate) Flags);
570vk_bitflags_wrapped!(DisplayPlaneAlphaFlagsKHR, Flags);
571impl DisplayPlaneAlphaFlagsKHR {
572 pub const OPAQUE: Self = Self(0b1);
573 pub const GLOBAL: Self = Self(0b10);
574 pub const PER_PIXEL: Self = Self(0b100);
575 pub const PER_PIXEL_PREMULTIPLIED: Self = Self(0b1000);
576}
577#[repr(transparent)]
578#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
579#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompositeAlphaFlagBitsKHR.html>"]
580pub struct CompositeAlphaFlagsKHR(pub(crate) Flags);
581vk_bitflags_wrapped!(CompositeAlphaFlagsKHR, Flags);
582impl CompositeAlphaFlagsKHR {
583 pub const OPAQUE: Self = Self(0b1);
584 pub const PRE_MULTIPLIED: Self = Self(0b10);
585 pub const POST_MULTIPLIED: Self = Self(0b100);
586 pub const INHERIT: Self = Self(0b1000);
587}
588#[repr(transparent)]
589#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
590#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSurfaceTransformFlagBitsKHR.html>"]
591pub struct SurfaceTransformFlagsKHR(pub(crate) Flags);
592vk_bitflags_wrapped!(SurfaceTransformFlagsKHR, Flags);
593impl SurfaceTransformFlagsKHR {
594 pub const IDENTITY: Self = Self(0b1);
595 pub const ROTATE_90: Self = Self(0b10);
596 pub const ROTATE_180: Self = Self(0b100);
597 pub const ROTATE_270: Self = Self(0b1000);
598 pub const HORIZONTAL_MIRROR: Self = Self(0b1_0000);
599 pub const HORIZONTAL_MIRROR_ROTATE_90: Self = Self(0b10_0000);
600 pub const HORIZONTAL_MIRROR_ROTATE_180: Self = Self(0b100_0000);
601 pub const HORIZONTAL_MIRROR_ROTATE_270: Self = Self(0b1000_0000);
602 pub const INHERIT: Self = Self(0b1_0000_0000);
603}
604#[repr(transparent)]
605#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
606#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSwapchainImageUsageFlagBitsANDROID.html>"]
607pub struct SwapchainImageUsageFlagsANDROID(pub(crate) Flags);
608vk_bitflags_wrapped!(SwapchainImageUsageFlagsANDROID, Flags);
609impl SwapchainImageUsageFlagsANDROID {
610 pub const SHARED: Self = Self(0b1);
611}
612#[repr(transparent)]
613#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
614#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDebugReportFlagBitsEXT.html>"]
615pub struct DebugReportFlagsEXT(pub(crate) Flags);
616vk_bitflags_wrapped!(DebugReportFlagsEXT, Flags);
617impl DebugReportFlagsEXT {
618 pub const INFORMATION: Self = Self(0b1);
619 pub const WARNING: Self = Self(0b10);
620 pub const PERFORMANCE_WARNING: Self = Self(0b100);
621 pub const ERROR: Self = Self(0b1000);
622 pub const DEBUG: Self = Self(0b1_0000);
623}
624#[repr(transparent)]
625#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
626#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBitsNV.html>"]
627pub struct ExternalMemoryHandleTypeFlagsNV(pub(crate) Flags);
628vk_bitflags_wrapped!(ExternalMemoryHandleTypeFlagsNV, Flags);
629impl ExternalMemoryHandleTypeFlagsNV {
630 pub const OPAQUE_WIN32: Self = Self(0b1);
631 pub const OPAQUE_WIN32_KMT: Self = Self(0b10);
632 pub const D3D11_IMAGE: Self = Self(0b100);
633 pub const D3D11_IMAGE_KMT: Self = Self(0b1000);
634}
635#[repr(transparent)]
636#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
637#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBitsNV.html>"]
638pub struct ExternalMemoryFeatureFlagsNV(pub(crate) Flags);
639vk_bitflags_wrapped!(ExternalMemoryFeatureFlagsNV, Flags);
640impl ExternalMemoryFeatureFlagsNV {
641 pub const DEDICATED_ONLY: Self = Self(0b1);
642 pub const EXPORTABLE: Self = Self(0b10);
643 pub const IMPORTABLE: Self = Self(0b100);
644}
645#[repr(transparent)]
646#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
647#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClusterAccelerationStructureIndexFormatFlagBitsNV.html>"]
648pub struct ClusterAccelerationStructureIndexFormatFlagsNV(pub(crate) Flags);
649vk_bitflags_wrapped!(ClusterAccelerationStructureIndexFormatFlagsNV, Flags);
650impl ClusterAccelerationStructureIndexFormatFlagsNV {
651 pub const TYPE_8BIT: Self = Self(0b1);
652 pub const TYPE_16BIT: Self = Self(0b10);
653 pub const TYPE_32BIT: Self = Self(0b100);
654}
655#[repr(transparent)]
656#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
657#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClusterAccelerationStructureClusterFlagBitsNV.html>"]
658pub struct ClusterAccelerationStructureClusterFlagsNV(pub(crate) Flags);
659vk_bitflags_wrapped!(ClusterAccelerationStructureClusterFlagsNV, Flags);
660impl ClusterAccelerationStructureClusterFlagsNV {
661 pub const ALLOW_DISABLE_OPACITY_MICROMAPS: Self = Self(0b1);
662}
663#[repr(transparent)]
664#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
665#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClusterAccelerationStructureGeometryFlagBitsNV.html>"]
666pub struct ClusterAccelerationStructureGeometryFlagsNV(pub(crate) Flags);
667vk_bitflags_wrapped!(ClusterAccelerationStructureGeometryFlagsNV, Flags);
668impl ClusterAccelerationStructureGeometryFlagsNV {
669 pub const CULL_DISABLE: Self = Self(0b1);
670 pub const NO_DUPLICATE_ANYHIT_INVOCATION: Self = Self(0b10);
671 pub const OPAQUE: Self = Self(0b100);
672}
673#[repr(transparent)]
674#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
675#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkClusterAccelerationStructureAddressResolutionFlagBitsNV.html>"]
676pub struct ClusterAccelerationStructureAddressResolutionFlagsNV(pub(crate) Flags);
677vk_bitflags_wrapped!(ClusterAccelerationStructureAddressResolutionFlagsNV, Flags);
678impl ClusterAccelerationStructureAddressResolutionFlagsNV {
679 pub const NONE: Self = Self(0);
680 pub const INDIRECTED_DST_IMPLICIT_DATA: Self = Self(0b1);
681 pub const INDIRECTED_SCRATCH_DATA: Self = Self(0b10);
682 pub const INDIRECTED_DST_ADDRESS_ARRAY: Self = Self(0b100);
683 pub const INDIRECTED_DST_SIZES_ARRAY: Self = Self(0b1000);
684 pub const INDIRECTED_SRC_INFOS_ARRAY: Self = Self(0b1_0000);
685 pub const INDIRECTED_SRC_INFOS_COUNT: Self = Self(0b10_0000);
686}
687#[repr(transparent)]
688#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
689#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html>"]
690pub struct SubgroupFeatureFlags(pub(crate) Flags);
691vk_bitflags_wrapped!(SubgroupFeatureFlags, Flags);
692impl SubgroupFeatureFlags {
693 #[doc = "Basic subgroup operations"]
694 pub const BASIC: Self = Self(0b1);
695 #[doc = "Vote subgroup operations"]
696 pub const VOTE: Self = Self(0b10);
697 #[doc = "Arithmetic subgroup operations"]
698 pub const ARITHMETIC: Self = Self(0b100);
699 #[doc = "Ballot subgroup operations"]
700 pub const BALLOT: Self = Self(0b1000);
701 #[doc = "Shuffle subgroup operations"]
702 pub const SHUFFLE: Self = Self(0b1_0000);
703 #[doc = "Shuffle relative subgroup operations"]
704 pub const SHUFFLE_RELATIVE: Self = Self(0b10_0000);
705 #[doc = "Clustered subgroup operations"]
706 pub const CLUSTERED: Self = Self(0b100_0000);
707 #[doc = "Quad subgroup operations"]
708 pub const QUAD: Self = Self(0b1000_0000);
709}
710#[repr(transparent)]
711#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
712#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsLayoutUsageFlagBitsNV.html>"]
713pub struct IndirectCommandsLayoutUsageFlagsNV(pub(crate) Flags);
714vk_bitflags_wrapped!(IndirectCommandsLayoutUsageFlagsNV, Flags);
715impl IndirectCommandsLayoutUsageFlagsNV {
716 pub const EXPLICIT_PREPROCESS: Self = Self(0b1);
717 pub const INDEXED_SEQUENCES: Self = Self(0b10);
718 pub const UNORDERED_SEQUENCES: Self = Self(0b100);
719}
720#[repr(transparent)]
721#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
722#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndirectStateFlagBitsNV.html>"]
723pub struct IndirectStateFlagsNV(pub(crate) Flags);
724vk_bitflags_wrapped!(IndirectStateFlagsNV, Flags);
725impl IndirectStateFlagsNV {
726 pub const FLAG_FRONTFACE: Self = Self(0b1);
727}
728#[repr(transparent)]
729#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
730#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateFlagBits.html>"]
731pub struct PrivateDataSlotCreateFlags(pub(crate) Flags);
732vk_bitflags_wrapped!(PrivateDataSlotCreateFlags, Flags);
733impl PrivateDataSlotCreateFlags {}
734#[repr(transparent)]
735#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
736#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutCreateFlagBits.html>"]
737pub struct DescriptorSetLayoutCreateFlags(pub(crate) Flags);
738vk_bitflags_wrapped!(DescriptorSetLayoutCreateFlags, Flags);
739impl DescriptorSetLayoutCreateFlags {}
740#[repr(transparent)]
741#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
742#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html>"]
743pub struct ExternalMemoryHandleTypeFlags(pub(crate) Flags);
744vk_bitflags_wrapped!(ExternalMemoryHandleTypeFlags, Flags);
745impl ExternalMemoryHandleTypeFlags {
746 pub const OPAQUE_FD: Self = Self(0b1);
747 pub const OPAQUE_WIN32: Self = Self(0b10);
748 pub const OPAQUE_WIN32_KMT: Self = Self(0b100);
749 pub const D3D11_TEXTURE: Self = Self(0b1000);
750 pub const D3D11_TEXTURE_KMT: Self = Self(0b1_0000);
751 pub const D3D12_HEAP: Self = Self(0b10_0000);
752 pub const D3D12_RESOURCE: Self = Self(0b100_0000);
753}
754#[repr(transparent)]
755#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
756#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBits.html>"]
757pub struct ExternalMemoryFeatureFlags(pub(crate) Flags);
758vk_bitflags_wrapped!(ExternalMemoryFeatureFlags, Flags);
759impl ExternalMemoryFeatureFlags {
760 pub const DEDICATED_ONLY: Self = Self(0b1);
761 pub const EXPORTABLE: Self = Self(0b10);
762 pub const IMPORTABLE: Self = Self(0b100);
763}
764#[repr(transparent)]
765#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
766#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html>"]
767pub struct ExternalSemaphoreHandleTypeFlags(pub(crate) Flags);
768vk_bitflags_wrapped!(ExternalSemaphoreHandleTypeFlags, Flags);
769impl ExternalSemaphoreHandleTypeFlags {
770 pub const OPAQUE_FD: Self = Self(0b1);
771 pub const OPAQUE_WIN32: Self = Self(0b10);
772 pub const OPAQUE_WIN32_KMT: Self = Self(0b100);
773 pub const D3D12_FENCE: Self = Self(0b1000);
774 pub const D3D11_FENCE: Self = Self::D3D12_FENCE;
775 pub const SYNC_FD: Self = Self(0b1_0000);
776}
777#[repr(transparent)]
778#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
779#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html>"]
780pub struct ExternalSemaphoreFeatureFlags(pub(crate) Flags);
781vk_bitflags_wrapped!(ExternalSemaphoreFeatureFlags, Flags);
782impl ExternalSemaphoreFeatureFlags {
783 pub const EXPORTABLE: Self = Self(0b1);
784 pub const IMPORTABLE: Self = Self(0b10);
785}
786#[repr(transparent)]
787#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
788#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreImportFlagBits.html>"]
789pub struct SemaphoreImportFlags(pub(crate) Flags);
790vk_bitflags_wrapped!(SemaphoreImportFlags, Flags);
791impl SemaphoreImportFlags {
792 pub const TEMPORARY: Self = Self(0b1);
793}
794#[repr(transparent)]
795#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
796#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html>"]
797pub struct ExternalFenceHandleTypeFlags(pub(crate) Flags);
798vk_bitflags_wrapped!(ExternalFenceHandleTypeFlags, Flags);
799impl ExternalFenceHandleTypeFlags {
800 pub const OPAQUE_FD: Self = Self(0b1);
801 pub const OPAQUE_WIN32: Self = Self(0b10);
802 pub const OPAQUE_WIN32_KMT: Self = Self(0b100);
803 pub const SYNC_FD: Self = Self(0b1000);
804}
805#[repr(transparent)]
806#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
807#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceFeatureFlagBits.html>"]
808pub struct ExternalFenceFeatureFlags(pub(crate) Flags);
809vk_bitflags_wrapped!(ExternalFenceFeatureFlags, Flags);
810impl ExternalFenceFeatureFlags {
811 pub const EXPORTABLE: Self = Self(0b1);
812 pub const IMPORTABLE: Self = Self(0b10);
813}
814#[repr(transparent)]
815#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
816#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceImportFlagBits.html>"]
817pub struct FenceImportFlags(pub(crate) Flags);
818vk_bitflags_wrapped!(FenceImportFlags, Flags);
819impl FenceImportFlags {
820 pub const TEMPORARY: Self = Self(0b1);
821}
822#[repr(transparent)]
823#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
824#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSurfaceCounterFlagBitsEXT.html>"]
825pub struct SurfaceCounterFlagsEXT(pub(crate) Flags);
826vk_bitflags_wrapped!(SurfaceCounterFlagsEXT, Flags);
827impl SurfaceCounterFlagsEXT {
828 pub const VBLANK: Self = Self(0b1);
829}
830#[repr(transparent)]
831#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
832#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html>"]
833pub struct PeerMemoryFeatureFlags(pub(crate) Flags);
834vk_bitflags_wrapped!(PeerMemoryFeatureFlags, Flags);
835impl PeerMemoryFeatureFlags {
836 #[doc = "Can read with vkCmdCopy commands"]
837 pub const COPY_SRC: Self = Self(0b1);
838 #[doc = "Can write with vkCmdCopy commands"]
839 pub const COPY_DST: Self = Self(0b10);
840 #[doc = "Can read with any access type/command"]
841 pub const GENERIC_SRC: Self = Self(0b100);
842 #[doc = "Can write with and access type/command"]
843 pub const GENERIC_DST: Self = Self(0b1000);
844}
845#[repr(transparent)]
846#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
847#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html>"]
848pub struct MemoryAllocateFlags(pub(crate) Flags);
849vk_bitflags_wrapped!(MemoryAllocateFlags, Flags);
850impl MemoryAllocateFlags {
851 #[doc = "Force allocation on specific devices"]
852 pub const DEVICE_MASK: Self = Self(0b1);
853}
854#[repr(transparent)]
855#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
856#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupPresentModeFlagBitsKHR.html>"]
857pub struct DeviceGroupPresentModeFlagsKHR(pub(crate) Flags);
858vk_bitflags_wrapped!(DeviceGroupPresentModeFlagsKHR, Flags);
859impl DeviceGroupPresentModeFlagsKHR {
860 #[doc = "Present from local memory"]
861 pub const LOCAL: Self = Self(0b1);
862 #[doc = "Present from remote memory"]
863 pub const REMOTE: Self = Self(0b10);
864 #[doc = "Present sum of local and/or remote memory"]
865 pub const SUM: Self = Self(0b100);
866 #[doc = "Each physical device presents from local memory"]
867 pub const LOCAL_MULTI_DEVICE: Self = Self(0b1000);
868}
869#[repr(transparent)]
870#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
871#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSwapchainCreateFlagBitsKHR.html>"]
872pub struct SwapchainCreateFlagsKHR(pub(crate) Flags);
873vk_bitflags_wrapped!(SwapchainCreateFlagsKHR, Flags);
874impl SwapchainCreateFlagsKHR {}
875#[repr(transparent)]
876#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
877#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassDescriptionFlagBits.html>"]
878pub struct SubpassDescriptionFlags(pub(crate) Flags);
879vk_bitflags_wrapped!(SubpassDescriptionFlags, Flags);
880impl SubpassDescriptionFlags {}
881#[repr(transparent)]
882#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
883#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsMessageSeverityFlagBitsEXT.html>"]
884pub struct DebugUtilsMessageSeverityFlagsEXT(pub(crate) Flags);
885vk_bitflags_wrapped!(DebugUtilsMessageSeverityFlagsEXT, Flags);
886impl DebugUtilsMessageSeverityFlagsEXT {
887 pub const VERBOSE: Self = Self(0b1);
888 pub const INFO: Self = Self(0b1_0000);
889 pub const WARNING: Self = Self(0b1_0000_0000);
890 pub const ERROR: Self = Self(0b1_0000_0000_0000);
891}
892#[repr(transparent)]
893#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
894#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsMessageTypeFlagBitsEXT.html>"]
895pub struct DebugUtilsMessageTypeFlagsEXT(pub(crate) Flags);
896vk_bitflags_wrapped!(DebugUtilsMessageTypeFlagsEXT, Flags);
897impl DebugUtilsMessageTypeFlagsEXT {
898 pub const GENERAL: Self = Self(0b1);
899 pub const VALIDATION: Self = Self(0b10);
900 pub const PERFORMANCE: Self = Self(0b100);
901}
902#[repr(transparent)]
903#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
904#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorBindingFlagBits.html>"]
905pub struct DescriptorBindingFlags(pub(crate) Flags);
906vk_bitflags_wrapped!(DescriptorBindingFlags, Flags);
907impl DescriptorBindingFlags {
908 pub const UPDATE_AFTER_BIND: Self = Self(0b1);
909 pub const UPDATE_UNUSED_WHILE_PENDING: Self = Self(0b10);
910 pub const PARTIALLY_BOUND: Self = Self(0b100);
911 pub const VARIABLE_DESCRIPTOR_COUNT: Self = Self(0b1000);
912}
913#[repr(transparent)]
914#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
915#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingFlagBitsEXT.html>"]
916pub struct ConditionalRenderingFlagsEXT(pub(crate) Flags);
917vk_bitflags_wrapped!(ConditionalRenderingFlagsEXT, Flags);
918impl ConditionalRenderingFlagsEXT {
919 pub const INVERTED: Self = Self(0b1);
920}
921#[repr(transparent)]
922#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
923#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html>"]
924pub struct ResolveModeFlags(pub(crate) Flags);
925vk_bitflags_wrapped!(ResolveModeFlags, Flags);
926impl ResolveModeFlags {
927 pub const NONE: Self = Self(0);
928 pub const SAMPLE_ZERO: Self = Self(0b1);
929 pub const AVERAGE: Self = Self(0b10);
930 pub const MIN: Self = Self(0b100);
931 pub const MAX: Self = Self(0b1000);
932}
933#[repr(transparent)]
934#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
935#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGeometryInstanceFlagBitsKHR.html>"]
936pub struct GeometryInstanceFlagsKHR(pub(crate) Flags);
937vk_bitflags_wrapped!(GeometryInstanceFlagsKHR, Flags);
938impl GeometryInstanceFlagsKHR {
939 pub const TRIANGLE_FACING_CULL_DISABLE: Self = Self(0b1);
940 pub const TRIANGLE_FLIP_FACING: Self = Self(0b10);
941 pub const FORCE_OPAQUE: Self = Self(0b100);
942 pub const FORCE_NO_OPAQUE: Self = Self(0b1000);
943 pub const TRIANGLE_FRONT_COUNTERCLOCKWISE: Self = Self::TRIANGLE_FLIP_FACING;
944}
945#[repr(transparent)]
946#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
947#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGeometryFlagBitsKHR.html>"]
948pub struct GeometryFlagsKHR(pub(crate) Flags);
949vk_bitflags_wrapped!(GeometryFlagsKHR, Flags);
950impl GeometryFlagsKHR {
951 pub const OPAQUE: Self = Self(0b1);
952 pub const NO_DUPLICATE_ANY_HIT_INVOCATION: Self = Self(0b10);
953}
954#[repr(transparent)]
955#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
956#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBuildAccelerationStructureFlagBitsKHR.html>"]
957pub struct BuildAccelerationStructureFlagsKHR(pub(crate) Flags);
958vk_bitflags_wrapped!(BuildAccelerationStructureFlagsKHR, Flags);
959impl BuildAccelerationStructureFlagsKHR {
960 pub const ALLOW_UPDATE: Self = Self(0b1);
961 pub const ALLOW_COMPACTION: Self = Self(0b10);
962 pub const PREFER_FAST_TRACE: Self = Self(0b100);
963 pub const PREFER_FAST_BUILD: Self = Self(0b1000);
964 pub const LOW_MEMORY: Self = Self(0b1_0000);
965}
966#[repr(transparent)]
967#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
968#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureCreateFlagBitsKHR.html>"]
969pub struct AccelerationStructureCreateFlagsKHR(pub(crate) Flags);
970vk_bitflags_wrapped!(AccelerationStructureCreateFlagsKHR, Flags);
971impl AccelerationStructureCreateFlagsKHR {
972 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1);
973}
974#[repr(transparent)]
975#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
976#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateFlagBits.html>"]
977pub struct FramebufferCreateFlags(pub(crate) Flags);
978vk_bitflags_wrapped!(FramebufferCreateFlags, Flags);
979impl FramebufferCreateFlags {}
980#[repr(transparent)]
981#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
982#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPoolCreateFlagBits.html>"]
983pub struct QueryPoolCreateFlags(pub(crate) Flags);
984vk_bitflags_wrapped!(QueryPoolCreateFlags, Flags);
985impl QueryPoolCreateFlags {}
986#[repr(transparent)]
987#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
988#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceDiagnosticsConfigFlagBitsNV.html>"]
989pub struct DeviceDiagnosticsConfigFlagsNV(pub(crate) Flags);
990vk_bitflags_wrapped!(DeviceDiagnosticsConfigFlagsNV, Flags);
991impl DeviceDiagnosticsConfigFlagsNV {
992 pub const ENABLE_SHADER_DEBUG_INFO: Self = Self(0b1);
993 pub const ENABLE_RESOURCE_TRACKING: Self = Self(0b10);
994 pub const ENABLE_AUTOMATIC_CHECKPOINTS: Self = Self(0b100);
995 pub const ENABLE_SHADER_ERROR_REPORTING: Self = Self(0b1000);
996}
997#[repr(transparent)]
998#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
999#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedbackFlagBits.html>"]
1000pub struct PipelineCreationFeedbackFlags(pub(crate) Flags);
1001vk_bitflags_wrapped!(PipelineCreationFeedbackFlags, Flags);
1002impl PipelineCreationFeedbackFlags {
1003 pub const VALID: Self = Self(0b1);
1004 pub const APPLICATION_PIPELINE_CACHE_HIT: Self = Self(0b10);
1005 pub const BASE_PIPELINE_ACCELERATION: Self = Self(0b100);
1006}
1007#[repr(transparent)]
1008#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1009#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryDecompressionMethodFlagBitsEXT.html>"]
1010pub struct MemoryDecompressionMethodFlagsEXT(pub(crate) Flags64);
1011vk_bitflags_wrapped!(MemoryDecompressionMethodFlagsEXT, Flags64);
1012impl MemoryDecompressionMethodFlagsEXT {
1013 pub const GDEFLATE_1_0: Self = Self(0b1);
1014 pub const GDEFLATE_1_0_NV: Self = Self::GDEFLATE_1_0;
1015}
1016#[repr(transparent)]
1017#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1018#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterDescriptionFlagBitsKHR.html>"]
1019pub struct PerformanceCounterDescriptionFlagsKHR(pub(crate) Flags);
1020vk_bitflags_wrapped!(PerformanceCounterDescriptionFlagsKHR, Flags);
1021impl PerformanceCounterDescriptionFlagsKHR {
1022 pub const PERFORMANCE_IMPACTING: Self = Self(0b1);
1023 pub const CONCURRENTLY_IMPACTED: Self = Self(0b10);
1024}
1025#[repr(transparent)]
1026#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1027#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAcquireProfilingLockFlagBitsKHR.html>"]
1028pub struct AcquireProfilingLockFlagsKHR(pub(crate) Flags);
1029vk_bitflags_wrapped!(AcquireProfilingLockFlagsKHR, Flags);
1030impl AcquireProfilingLockFlagsKHR {}
1031#[repr(transparent)]
1032#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1033#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderCorePropertiesFlagBitsAMD.html>"]
1034pub struct ShaderCorePropertiesFlagsAMD(pub(crate) Flags);
1035vk_bitflags_wrapped!(ShaderCorePropertiesFlagsAMD, Flags);
1036impl ShaderCorePropertiesFlagsAMD {}
1037#[repr(transparent)]
1038#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1039#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderModuleCreateFlagBits.html>"]
1040pub struct ShaderModuleCreateFlags(pub(crate) Flags);
1041vk_bitflags_wrapped!(ShaderModuleCreateFlags, Flags);
1042impl ShaderModuleCreateFlags {}
1043#[repr(transparent)]
1044#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1045#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCompilerControlFlagBitsAMD.html>"]
1046pub struct PipelineCompilerControlFlagsAMD(pub(crate) Flags);
1047vk_bitflags_wrapped!(PipelineCompilerControlFlagsAMD, Flags);
1048impl PipelineCompilerControlFlagsAMD {}
1049#[repr(transparent)]
1050#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1051#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkToolPurposeFlagBits.html>"]
1052pub struct ToolPurposeFlags(pub(crate) Flags);
1053vk_bitflags_wrapped!(ToolPurposeFlags, Flags);
1054impl ToolPurposeFlags {
1055 pub const VALIDATION: Self = Self(0b1);
1056 pub const PROFILING: Self = Self(0b10);
1057 pub const TRACING: Self = Self(0b100);
1058 pub const ADDITIONAL_FEATURES: Self = Self(0b1000);
1059 pub const MODIFYING_FEATURES: Self = Self(0b1_0000);
1060}
1061#[repr(transparent)]
1062#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1063#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccessFlagBits2.html>"]
1064pub struct AccessFlags2(pub(crate) Flags64);
1065vk_bitflags_wrapped!(AccessFlags2, Flags64);
1066impl AccessFlags2 {
1067 pub const NONE: Self = Self(0);
1068 pub const INDIRECT_COMMAND_READ: Self = Self(0b1);
1069 pub const INDEX_READ: Self = Self(0b10);
1070 pub const VERTEX_ATTRIBUTE_READ: Self = Self(0b100);
1071 pub const UNIFORM_READ: Self = Self(0b1000);
1072 pub const INPUT_ATTACHMENT_READ: Self = Self(0b1_0000);
1073 pub const SHADER_READ: Self = Self(0b10_0000);
1074 pub const SHADER_WRITE: Self = Self(0b100_0000);
1075 pub const COLOR_ATTACHMENT_READ: Self = Self(0b1000_0000);
1076 pub const COLOR_ATTACHMENT_WRITE: Self = Self(0b1_0000_0000);
1077 pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(0b10_0000_0000);
1078 pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(0b100_0000_0000);
1079 pub const TRANSFER_READ: Self = Self(0b1000_0000_0000);
1080 pub const TRANSFER_WRITE: Self = Self(0b1_0000_0000_0000);
1081 pub const HOST_READ: Self = Self(0b10_0000_0000_0000);
1082 pub const HOST_WRITE: Self = Self(0b100_0000_0000_0000);
1083 pub const MEMORY_READ: Self = Self(0b1000_0000_0000_0000);
1084 pub const MEMORY_WRITE: Self = Self(0b1_0000_0000_0000_0000);
1085 pub const SHADER_SAMPLED_READ: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000);
1086 pub const SHADER_STORAGE_READ: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000);
1087 pub const SHADER_STORAGE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000);
1088}
1089#[repr(transparent)]
1090#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1091#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits2.html>"]
1092pub struct PipelineStageFlags2(pub(crate) Flags64);
1093vk_bitflags_wrapped!(PipelineStageFlags2, Flags64);
1094impl PipelineStageFlags2 {
1095 pub const NONE: Self = Self(0);
1096 pub const TOP_OF_PIPE: Self = Self(0b1);
1097 pub const DRAW_INDIRECT: Self = Self(0b10);
1098 pub const VERTEX_INPUT: Self = Self(0b100);
1099 pub const VERTEX_SHADER: Self = Self(0b1000);
1100 pub const TESSELLATION_CONTROL_SHADER: Self = Self(0b1_0000);
1101 pub const TESSELLATION_EVALUATION_SHADER: Self = Self(0b10_0000);
1102 pub const GEOMETRY_SHADER: Self = Self(0b100_0000);
1103 pub const FRAGMENT_SHADER: Self = Self(0b1000_0000);
1104 pub const EARLY_FRAGMENT_TESTS: Self = Self(0b1_0000_0000);
1105 pub const LATE_FRAGMENT_TESTS: Self = Self(0b10_0000_0000);
1106 pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(0b100_0000_0000);
1107 pub const COMPUTE_SHADER: Self = Self(0b1000_0000_0000);
1108 pub const ALL_TRANSFER: Self = Self(0b1_0000_0000_0000);
1109 pub const TRANSFER: Self = Self::ALL_TRANSFER;
1110 pub const BOTTOM_OF_PIPE: Self = Self(0b10_0000_0000_0000);
1111 pub const HOST: Self = Self(0b100_0000_0000_0000);
1112 pub const ALL_GRAPHICS: Self = Self(0b1000_0000_0000_0000);
1113 pub const ALL_COMMANDS: Self = Self(0b1_0000_0000_0000_0000);
1114 pub const COPY: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000);
1115 pub const RESOLVE: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000);
1116 pub const BLIT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000);
1117 pub const CLEAR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
1118 pub const INDEX_INPUT: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
1119 pub const VERTEX_ATTRIBUTE_INPUT: Self =
1120 Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
1121 pub const PRE_RASTERIZATION_SHADERS: Self =
1122 Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
1123}
1124#[repr(transparent)]
1125#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1126#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubmitFlagBits.html>"]
1127pub struct SubmitFlags(pub(crate) Flags);
1128vk_bitflags_wrapped!(SubmitFlags, Flags);
1129impl SubmitFlags {
1130 pub const PROTECTED: Self = Self(0b1);
1131}
1132#[repr(transparent)]
1133#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1134#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkEventCreateFlagBits.html>"]
1135pub struct EventCreateFlags(pub(crate) Flags);
1136vk_bitflags_wrapped!(EventCreateFlags, Flags);
1137impl EventCreateFlags {}
1138#[repr(transparent)]
1139#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1140#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineLayoutCreateFlagBits.html>"]
1141pub struct PipelineLayoutCreateFlags(pub(crate) Flags);
1142vk_bitflags_wrapped!(PipelineLayoutCreateFlags, Flags);
1143impl PipelineLayoutCreateFlags {}
1144#[repr(transparent)]
1145#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1146#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineColorBlendStateCreateFlagBits.html>"]
1147pub struct PipelineColorBlendStateCreateFlags(pub(crate) Flags);
1148vk_bitflags_wrapped!(PipelineColorBlendStateCreateFlags, Flags);
1149impl PipelineColorBlendStateCreateFlags {}
1150#[repr(transparent)]
1151#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1152#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineDepthStencilStateCreateFlagBits.html>"]
1153pub struct PipelineDepthStencilStateCreateFlags(pub(crate) Flags);
1154vk_bitflags_wrapped!(PipelineDepthStencilStateCreateFlags, Flags);
1155impl PipelineDepthStencilStateCreateFlags {}
1156#[repr(transparent)]
1157#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1158#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineLibraryFlagBitsEXT.html>"]
1159pub struct GraphicsPipelineLibraryFlagsEXT(pub(crate) Flags);
1160vk_bitflags_wrapped!(GraphicsPipelineLibraryFlagsEXT, Flags);
1161impl GraphicsPipelineLibraryFlagsEXT {
1162 pub const VERTEX_INPUT_INTERFACE: Self = Self(0b1);
1163 pub const PRE_RASTERIZATION_SHADERS: Self = Self(0b10);
1164 pub const FRAGMENT_SHADER: Self = Self(0b100);
1165 pub const FRAGMENT_OUTPUT_INTERFACE: Self = Self(0b1000);
1166}
1167#[repr(transparent)]
1168#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1169#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderingAttachmentFlagBitsKHR.html>"]
1170pub struct RenderingAttachmentFlagsKHR(pub(crate) Flags);
1171vk_bitflags_wrapped!(RenderingAttachmentFlagsKHR, Flags);
1172impl RenderingAttachmentFlagsKHR {}
1173#[repr(transparent)]
1174#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1175#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveImageFlagBitsKHR.html>"]
1176pub struct ResolveImageFlagsKHR(pub(crate) Flags);
1177vk_bitflags_wrapped!(ResolveImageFlagsKHR, Flags);
1178impl ResolveImageFlagsKHR {}
1179#[repr(transparent)]
1180#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1181#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceAddressBindingFlagBitsEXT.html>"]
1182pub struct DeviceAddressBindingFlagsEXT(pub(crate) Flags);
1183vk_bitflags_wrapped!(DeviceAddressBindingFlagsEXT, Flags);
1184impl DeviceAddressBindingFlagsEXT {
1185 pub const INTERNAL_OBJECT: Self = Self(0b1);
1186}
1187#[repr(transparent)]
1188#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1189#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFrameBoundaryFlagBitsEXT.html>"]
1190pub struct FrameBoundaryFlagsEXT(pub(crate) Flags);
1191vk_bitflags_wrapped!(FrameBoundaryFlagsEXT, Flags);
1192impl FrameBoundaryFlagsEXT {
1193 pub const FRAME_END: Self = Self(0b1);
1194}
1195#[repr(transparent)]
1196#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1197#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentScalingFlagBitsKHR.html>"]
1198pub struct PresentScalingFlagsKHR(pub(crate) Flags);
1199vk_bitflags_wrapped!(PresentScalingFlagsKHR, Flags);
1200impl PresentScalingFlagsKHR {
1201 pub const ONE_TO_ONE: Self = Self(0b1);
1202 pub const ONE_TO_ONE_EXT: Self = Self::ONE_TO_ONE;
1203 pub const ASPECT_RATIO_STRETCH: Self = Self(0b10);
1204 pub const ASPECT_RATIO_STRETCH_EXT: Self = Self::ASPECT_RATIO_STRETCH;
1205 pub const STRETCH: Self = Self(0b100);
1206 pub const STRETCH_EXT: Self = Self::STRETCH;
1207}
1208#[repr(transparent)]
1209#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1210#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentGravityFlagBitsKHR.html>"]
1211pub struct PresentGravityFlagsKHR(pub(crate) Flags);
1212vk_bitflags_wrapped!(PresentGravityFlagsKHR, Flags);
1213impl PresentGravityFlagsKHR {
1214 pub const MIN: Self = Self(0b1);
1215 pub const MIN_EXT: Self = Self::MIN;
1216 pub const MAX: Self = Self(0b10);
1217 pub const MAX_EXT: Self = Self::MAX;
1218 pub const CENTERED: Self = Self(0b100);
1219 pub const CENTERED_EXT: Self = Self::CENTERED;
1220}
1221#[repr(transparent)]
1222#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1223#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSchedulingControlsFlagBitsARM.html>"]
1224pub struct PhysicalDeviceSchedulingControlsFlagsARM(pub(crate) Flags64);
1225vk_bitflags_wrapped!(PhysicalDeviceSchedulingControlsFlagsARM, Flags64);
1226impl PhysicalDeviceSchedulingControlsFlagsARM {
1227 pub const SHADER_CORE_COUNT: Self = Self(0b1);
1228}
1229#[repr(transparent)]
1230#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1231#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentStageFlagBitsEXT.html>"]
1232pub struct PresentStageFlagsEXT(pub(crate) Flags);
1233vk_bitflags_wrapped!(PresentStageFlagsEXT, Flags);
1234impl PresentStageFlagsEXT {
1235 pub const QUEUE_OPERATIONS_END: Self = Self(0b1);
1236 pub const REQUEST_DEQUEUED: Self = Self(0b10);
1237 pub const IMAGE_FIRST_PIXEL_OUT: Self = Self(0b100);
1238 pub const IMAGE_FIRST_PIXEL_VISIBLE: Self = Self(0b1000);
1239}
1240#[repr(transparent)]
1241#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1242#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPastPresentationTimingFlagBitsEXT.html>"]
1243pub struct PastPresentationTimingFlagsEXT(pub(crate) Flags);
1244vk_bitflags_wrapped!(PastPresentationTimingFlagsEXT, Flags);
1245impl PastPresentationTimingFlagsEXT {
1246 pub const ALLOW_PARTIAL_RESULTS: Self = Self(0b1);
1247 pub const ALLOW_OUT_OF_ORDER_RESULTS: Self = Self(0b10);
1248}
1249#[repr(transparent)]
1250#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1251#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentTimingInfoFlagBitsEXT.html>"]
1252pub struct PresentTimingInfoFlagsEXT(pub(crate) Flags);
1253vk_bitflags_wrapped!(PresentTimingInfoFlagsEXT, Flags);
1254impl PresentTimingInfoFlagsEXT {
1255 pub const PRESENT_AT_RELATIVE_TIME: Self = Self(0b1);
1256 pub const PRESENT_AT_NEAREST_REFRESH_CYCLE: Self = Self(0b10);
1257}
1258#[repr(transparent)]
1259#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1260#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoCodecOperationFlagBitsKHR.html>"]
1261pub struct VideoCodecOperationFlagsKHR(pub(crate) Flags);
1262vk_bitflags_wrapped!(VideoCodecOperationFlagsKHR, Flags);
1263impl VideoCodecOperationFlagsKHR {
1264 pub const NONE: Self = Self(0);
1265}
1266#[repr(transparent)]
1267#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1268#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoChromaSubsamplingFlagBitsKHR.html>"]
1269pub struct VideoChromaSubsamplingFlagsKHR(pub(crate) Flags);
1270vk_bitflags_wrapped!(VideoChromaSubsamplingFlagsKHR, Flags);
1271impl VideoChromaSubsamplingFlagsKHR {
1272 pub const INVALID: Self = Self(0);
1273 pub const MONOCHROME: Self = Self(0b1);
1274 pub const TYPE_420: Self = Self(0b10);
1275 pub const TYPE_422: Self = Self(0b100);
1276 pub const TYPE_444: Self = Self(0b1000);
1277}
1278#[repr(transparent)]
1279#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1280#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoComponentBitDepthFlagBitsKHR.html>"]
1281pub struct VideoComponentBitDepthFlagsKHR(pub(crate) Flags);
1282vk_bitflags_wrapped!(VideoComponentBitDepthFlagsKHR, Flags);
1283impl VideoComponentBitDepthFlagsKHR {
1284 pub const INVALID: Self = Self(0);
1285 pub const TYPE_8: Self = Self(0b1);
1286 pub const TYPE_10: Self = Self(0b100);
1287 pub const TYPE_12: Self = Self(0b1_0000);
1288}
1289#[repr(transparent)]
1290#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1291#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoCapabilityFlagBitsKHR.html>"]
1292pub struct VideoCapabilityFlagsKHR(pub(crate) Flags);
1293vk_bitflags_wrapped!(VideoCapabilityFlagsKHR, Flags);
1294impl VideoCapabilityFlagsKHR {
1295 pub const PROTECTED_CONTENT: Self = Self(0b1);
1296 pub const SEPARATE_REFERENCE_IMAGES: Self = Self(0b10);
1297}
1298#[repr(transparent)]
1299#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1300#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoSessionCreateFlagBitsKHR.html>"]
1301pub struct VideoSessionCreateFlagsKHR(pub(crate) Flags);
1302vk_bitflags_wrapped!(VideoSessionCreateFlagsKHR, Flags);
1303impl VideoSessionCreateFlagsKHR {
1304 pub const PROTECTED_CONTENT: Self = Self(0b1);
1305}
1306#[repr(transparent)]
1307#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1308#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoSessionParametersCreateFlagBitsKHR.html>"]
1309pub struct VideoSessionParametersCreateFlagsKHR(pub(crate) Flags);
1310vk_bitflags_wrapped!(VideoSessionParametersCreateFlagsKHR, Flags);
1311impl VideoSessionParametersCreateFlagsKHR {}
1312#[repr(transparent)]
1313#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1314#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeH264PictureLayoutFlagBitsKHR.html>"]
1315pub struct VideoDecodeH264PictureLayoutFlagsKHR(pub(crate) Flags);
1316vk_bitflags_wrapped!(VideoDecodeH264PictureLayoutFlagsKHR, Flags);
1317impl VideoDecodeH264PictureLayoutFlagsKHR {
1318 pub const PROGRESSIVE: Self = Self(0);
1319 pub const INTERLACED_INTERLEAVED_LINES: Self = Self(0b1);
1320 pub const INTERLACED_SEPARATE_PLANES: Self = Self(0b10);
1321}
1322#[repr(transparent)]
1323#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1324#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoCodingControlFlagBitsKHR.html>"]
1325pub struct VideoCodingControlFlagsKHR(pub(crate) Flags);
1326vk_bitflags_wrapped!(VideoCodingControlFlagsKHR, Flags);
1327impl VideoCodingControlFlagsKHR {
1328 pub const RESET: Self = Self(0b1);
1329}
1330#[repr(transparent)]
1331#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1332#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeUsageFlagBitsKHR.html>"]
1333pub struct VideoDecodeUsageFlagsKHR(pub(crate) Flags);
1334vk_bitflags_wrapped!(VideoDecodeUsageFlagsKHR, Flags);
1335impl VideoDecodeUsageFlagsKHR {
1336 pub const DEFAULT: Self = Self(0);
1337 pub const TRANSCODING: Self = Self(0b1);
1338 pub const OFFLINE: Self = Self(0b10);
1339 pub const STREAMING: Self = Self(0b100);
1340}
1341#[repr(transparent)]
1342#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1343#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeCapabilityFlagBitsKHR.html>"]
1344pub struct VideoDecodeCapabilityFlagsKHR(pub(crate) Flags);
1345vk_bitflags_wrapped!(VideoDecodeCapabilityFlagsKHR, Flags);
1346impl VideoDecodeCapabilityFlagsKHR {
1347 pub const DPB_AND_OUTPUT_COINCIDE: Self = Self(0b1);
1348 pub const DPB_AND_OUTPUT_DISTINCT: Self = Self(0b10);
1349}
1350#[repr(transparent)]
1351#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1352#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeFlagBitsKHR.html>"]
1353pub struct VideoEncodeFlagsKHR(pub(crate) Flags);
1354vk_bitflags_wrapped!(VideoEncodeFlagsKHR, Flags);
1355impl VideoEncodeFlagsKHR {}
1356#[repr(transparent)]
1357#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1358#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeUsageFlagBitsKHR.html>"]
1359pub struct VideoEncodeUsageFlagsKHR(pub(crate) Flags);
1360vk_bitflags_wrapped!(VideoEncodeUsageFlagsKHR, Flags);
1361impl VideoEncodeUsageFlagsKHR {
1362 pub const DEFAULT: Self = Self(0);
1363 pub const TRANSCODING: Self = Self(0b1);
1364 pub const STREAMING: Self = Self(0b10);
1365 pub const RECORDING: Self = Self(0b100);
1366 pub const CONFERENCING: Self = Self(0b1000);
1367}
1368#[repr(transparent)]
1369#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1370#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeContentFlagBitsKHR.html>"]
1371pub struct VideoEncodeContentFlagsKHR(pub(crate) Flags);
1372vk_bitflags_wrapped!(VideoEncodeContentFlagsKHR, Flags);
1373impl VideoEncodeContentFlagsKHR {
1374 pub const DEFAULT: Self = Self(0);
1375 pub const CAMERA: Self = Self(0b1);
1376 pub const DESKTOP: Self = Self(0b10);
1377 pub const RENDERED: Self = Self(0b100);
1378}
1379#[repr(transparent)]
1380#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1381#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeCapabilityFlagBitsKHR.html>"]
1382pub struct VideoEncodeCapabilityFlagsKHR(pub(crate) Flags);
1383vk_bitflags_wrapped!(VideoEncodeCapabilityFlagsKHR, Flags);
1384impl VideoEncodeCapabilityFlagsKHR {
1385 pub const PRECEDING_EXTERNALLY_ENCODED_BYTES: Self = Self(0b1);
1386 pub const INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION: Self = Self(0b10);
1387}
1388#[repr(transparent)]
1389#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1390#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeFeedbackFlagBitsKHR.html>"]
1391pub struct VideoEncodeFeedbackFlagsKHR(pub(crate) Flags);
1392vk_bitflags_wrapped!(VideoEncodeFeedbackFlagsKHR, Flags);
1393impl VideoEncodeFeedbackFlagsKHR {
1394 pub const BITSTREAM_BUFFER_OFFSET: Self = Self(0b1);
1395 pub const BITSTREAM_BYTES_WRITTEN: Self = Self(0b10);
1396 pub const BITSTREAM_HAS_OVERRIDES: Self = Self(0b100);
1397}
1398#[repr(transparent)]
1399#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1400#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeRateControlModeFlagBitsKHR.html>"]
1401pub struct VideoEncodeRateControlModeFlagsKHR(pub(crate) Flags);
1402vk_bitflags_wrapped!(VideoEncodeRateControlModeFlagsKHR, Flags);
1403impl VideoEncodeRateControlModeFlagsKHR {
1404 pub const DEFAULT: Self = Self(0);
1405 pub const DISABLED: Self = Self(0b1);
1406 pub const CBR: Self = Self(0b10);
1407 pub const VBR: Self = Self(0b100);
1408}
1409#[repr(transparent)]
1410#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1411#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeIntraRefreshModeFlagBitsKHR.html>"]
1412pub struct VideoEncodeIntraRefreshModeFlagsKHR(pub(crate) Flags);
1413vk_bitflags_wrapped!(VideoEncodeIntraRefreshModeFlagsKHR, Flags);
1414impl VideoEncodeIntraRefreshModeFlagsKHR {
1415 pub const NONE: Self = Self(0);
1416 pub const PER_PICTURE_PARTITION: Self = Self(0b1);
1417 pub const BLOCK_BASED: Self = Self(0b10);
1418 pub const BLOCK_ROW_BASED: Self = Self(0b100);
1419 pub const BLOCK_COLUMN_BASED: Self = Self(0b1000);
1420}
1421#[repr(transparent)]
1422#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1423#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264CapabilityFlagBitsKHR.html>"]
1424pub struct VideoEncodeH264CapabilityFlagsKHR(pub(crate) Flags);
1425vk_bitflags_wrapped!(VideoEncodeH264CapabilityFlagsKHR, Flags);
1426impl VideoEncodeH264CapabilityFlagsKHR {
1427 pub const HRD_COMPLIANCE: Self = Self(0b1);
1428 pub const PREDICTION_WEIGHT_TABLE_GENERATED: Self = Self(0b10);
1429 pub const ROW_UNALIGNED_SLICE: Self = Self(0b100);
1430 pub const DIFFERENT_SLICE_TYPE: Self = Self(0b1000);
1431 pub const B_FRAME_IN_L0_LIST: Self = Self(0b1_0000);
1432 pub const B_FRAME_IN_L1_LIST: Self = Self(0b10_0000);
1433 pub const PER_PICTURE_TYPE_MIN_MAX_QP: Self = Self(0b100_0000);
1434 pub const PER_SLICE_CONSTANT_QP: Self = Self(0b1000_0000);
1435 pub const GENERATE_PREFIX_NALU: Self = Self(0b1_0000_0000);
1436}
1437#[repr(transparent)]
1438#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1439#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264StdFlagBitsKHR.html>"]
1440pub struct VideoEncodeH264StdFlagsKHR(pub(crate) Flags);
1441vk_bitflags_wrapped!(VideoEncodeH264StdFlagsKHR, Flags);
1442impl VideoEncodeH264StdFlagsKHR {
1443 pub const SEPARATE_COLOR_PLANE_FLAG_SET: Self = Self(0b1);
1444 pub const QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET: Self = Self(0b10);
1445 pub const SCALING_MATRIX_PRESENT_FLAG_SET: Self = Self(0b100);
1446 pub const CHROMA_QP_INDEX_OFFSET: Self = Self(0b1000);
1447 pub const SECOND_CHROMA_QP_INDEX_OFFSET: Self = Self(0b1_0000);
1448 pub const PIC_INIT_QP_MINUS26: Self = Self(0b10_0000);
1449 pub const WEIGHTED_PRED_FLAG_SET: Self = Self(0b100_0000);
1450 pub const WEIGHTED_BIPRED_IDC_EXPLICIT: Self = Self(0b1000_0000);
1451 pub const WEIGHTED_BIPRED_IDC_IMPLICIT: Self = Self(0b1_0000_0000);
1452 pub const TRANSFORM_8X8_MODE_FLAG_SET: Self = Self(0b10_0000_0000);
1453 pub const DIRECT_SPATIAL_MV_PRED_FLAG_UNSET: Self = Self(0b100_0000_0000);
1454 pub const ENTROPY_CODING_MODE_FLAG_UNSET: Self = Self(0b1000_0000_0000);
1455 pub const ENTROPY_CODING_MODE_FLAG_SET: Self = Self(0b1_0000_0000_0000);
1456 pub const DIRECT_8X8_INFERENCE_FLAG_UNSET: Self = Self(0b10_0000_0000_0000);
1457 pub const CONSTRAINED_INTRA_PRED_FLAG_SET: Self = Self(0b100_0000_0000_0000);
1458 pub const DEBLOCKING_FILTER_DISABLED: Self = Self(0b1000_0000_0000_0000);
1459 pub const DEBLOCKING_FILTER_ENABLED: Self = Self(0b1_0000_0000_0000_0000);
1460 pub const DEBLOCKING_FILTER_PARTIAL: Self = Self(0b10_0000_0000_0000_0000);
1461 pub const SLICE_QP_DELTA: Self = Self(0b1000_0000_0000_0000_0000);
1462 pub const DIFFERENT_SLICE_QP_DELTA: Self = Self(0b1_0000_0000_0000_0000_0000);
1463}
1464#[repr(transparent)]
1465#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1466#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264RateControlFlagBitsKHR.html>"]
1467pub struct VideoEncodeH264RateControlFlagsKHR(pub(crate) Flags);
1468vk_bitflags_wrapped!(VideoEncodeH264RateControlFlagsKHR, Flags);
1469impl VideoEncodeH264RateControlFlagsKHR {
1470 pub const ATTEMPT_HRD_COMPLIANCE: Self = Self(0b1);
1471 pub const REGULAR_GOP: Self = Self(0b10);
1472 pub const REFERENCE_PATTERN_FLAT: Self = Self(0b100);
1473 pub const REFERENCE_PATTERN_DYADIC: Self = Self(0b1000);
1474 pub const TEMPORAL_LAYER_PATTERN_DYADIC: Self = Self(0b1_0000);
1475}
1476#[repr(transparent)]
1477#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1478#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkHostImageCopyFlagBits.html>"]
1479pub struct HostImageCopyFlags(pub(crate) Flags);
1480vk_bitflags_wrapped!(HostImageCopyFlags, Flags);
1481impl HostImageCopyFlags {
1482 pub const MEMCPY: Self = Self(0b1);
1483}
1484#[repr(transparent)]
1485#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1486#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPartitionedAccelerationStructureInstanceFlagBitsNV.html>"]
1487pub struct PartitionedAccelerationStructureInstanceFlagsNV(pub(crate) Flags);
1488vk_bitflags_wrapped!(PartitionedAccelerationStructureInstanceFlagsNV, Flags);
1489impl PartitionedAccelerationStructureInstanceFlagsNV {
1490 pub const FLAG_TRIANGLE_FACING_CULL_DISABLE: Self = Self(0b1);
1491 pub const FLAG_TRIANGLE_FLIP_FACING: Self = Self(0b10);
1492 pub const FLAG_FORCE_OPAQUE: Self = Self(0b100);
1493 pub const FLAG_FORCE_NO_OPAQUE: Self = Self(0b1000);
1494 pub const FLAG_ENABLE_EXPLICIT_BOUNDING_BOX: Self = Self(0b1_0000);
1495}
1496#[repr(transparent)]
1497#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1498#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageFormatConstraintsFlagBitsFUCHSIA.html>"]
1499pub struct ImageFormatConstraintsFlagsFUCHSIA(pub(crate) Flags);
1500vk_bitflags_wrapped!(ImageFormatConstraintsFlagsFUCHSIA, Flags);
1501impl ImageFormatConstraintsFlagsFUCHSIA {}
1502#[repr(transparent)]
1503#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1504#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageConstraintsInfoFlagBitsFUCHSIA.html>"]
1505pub struct ImageConstraintsInfoFlagsFUCHSIA(pub(crate) Flags);
1506vk_bitflags_wrapped!(ImageConstraintsInfoFlagsFUCHSIA, Flags);
1507impl ImageConstraintsInfoFlagsFUCHSIA {
1508 pub const CPU_READ_RARELY: Self = Self(0b1);
1509 pub const CPU_READ_OFTEN: Self = Self(0b10);
1510 pub const CPU_WRITE_RARELY: Self = Self(0b100);
1511 pub const CPU_WRITE_OFTEN: Self = Self(0b1000);
1512 pub const PROTECTED_OPTIONAL: Self = Self(0b1_0000);
1513}
1514#[repr(transparent)]
1515#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1516#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits2.html>"]
1517pub struct FormatFeatureFlags2(pub(crate) Flags64);
1518vk_bitflags_wrapped!(FormatFeatureFlags2, Flags64);
1519impl FormatFeatureFlags2 {
1520 pub const SAMPLED_IMAGE: Self = Self(0b1);
1521 pub const STORAGE_IMAGE: Self = Self(0b10);
1522 pub const STORAGE_IMAGE_ATOMIC: Self = Self(0b100);
1523 pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b1000);
1524 pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1_0000);
1525 pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(0b10_0000);
1526 pub const VERTEX_BUFFER: Self = Self(0b100_0000);
1527 pub const COLOR_ATTACHMENT: Self = Self(0b1000_0000);
1528 pub const COLOR_ATTACHMENT_BLEND: Self = Self(0b1_0000_0000);
1529 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000_0000);
1530 pub const BLIT_SRC: Self = Self(0b100_0000_0000);
1531 pub const BLIT_DST: Self = Self(0b1000_0000_0000);
1532 pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(0b1_0000_0000_0000);
1533 pub const TRANSFER_SRC: Self = Self(0b100_0000_0000_0000);
1534 pub const TRANSFER_DST: Self = Self(0b1000_0000_0000_0000);
1535 pub const SAMPLED_IMAGE_FILTER_MINMAX: Self = Self(0b1_0000_0000_0000_0000);
1536 pub const MIDPOINT_CHROMA_SAMPLES: Self = Self(0b10_0000_0000_0000_0000);
1537 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER: Self = Self(0b100_0000_0000_0000_0000);
1538 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER: Self =
1539 Self(0b1000_0000_0000_0000_0000);
1540 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT: Self =
1541 Self(0b1_0000_0000_0000_0000_0000);
1542 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE: Self =
1543 Self(0b10_0000_0000_0000_0000_0000);
1544 pub const DISJOINT: Self = Self(0b100_0000_0000_0000_0000_0000);
1545 pub const COSITED_CHROMA_SAMPLES: Self = Self(0b1000_0000_0000_0000_0000_0000);
1546 pub const STORAGE_READ_WITHOUT_FORMAT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000);
1547 pub const STORAGE_WRITE_WITHOUT_FORMAT: Self =
1548 Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000);
1549 pub const SAMPLED_IMAGE_DEPTH_COMPARISON: Self =
1550 Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000);
1551}
1552#[repr(transparent)]
1553#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1554#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderingFlagBits.html>"]
1555pub struct RenderingFlags(pub(crate) Flags);
1556vk_bitflags_wrapped!(RenderingFlags, Flags);
1557impl RenderingFlags {
1558 pub const CONTENTS_SECONDARY_COMMAND_BUFFERS: Self = Self(0b1);
1559 pub const SUSPENDING: Self = Self(0b10);
1560 pub const RESUMING: Self = Self(0b100);
1561}
1562#[repr(transparent)]
1563#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1564#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265CapabilityFlagBitsKHR.html>"]
1565pub struct VideoEncodeH265CapabilityFlagsKHR(pub(crate) Flags);
1566vk_bitflags_wrapped!(VideoEncodeH265CapabilityFlagsKHR, Flags);
1567impl VideoEncodeH265CapabilityFlagsKHR {
1568 pub const HRD_COMPLIANCE: Self = Self(0b1);
1569 pub const PREDICTION_WEIGHT_TABLE_GENERATED: Self = Self(0b10);
1570 pub const ROW_UNALIGNED_SLICE_SEGMENT: Self = Self(0b100);
1571 pub const DIFFERENT_SLICE_SEGMENT_TYPE: Self = Self(0b1000);
1572 pub const B_FRAME_IN_L0_LIST: Self = Self(0b1_0000);
1573 pub const B_FRAME_IN_L1_LIST: Self = Self(0b10_0000);
1574 pub const PER_PICTURE_TYPE_MIN_MAX_QP: Self = Self(0b100_0000);
1575 pub const PER_SLICE_SEGMENT_CONSTANT_QP: Self = Self(0b1000_0000);
1576 pub const MULTIPLE_TILES_PER_SLICE_SEGMENT: Self = Self(0b1_0000_0000);
1577 pub const MULTIPLE_SLICE_SEGMENTS_PER_TILE: Self = Self(0b10_0000_0000);
1578}
1579#[repr(transparent)]
1580#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1581#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265StdFlagBitsKHR.html>"]
1582pub struct VideoEncodeH265StdFlagsKHR(pub(crate) Flags);
1583vk_bitflags_wrapped!(VideoEncodeH265StdFlagsKHR, Flags);
1584impl VideoEncodeH265StdFlagsKHR {
1585 pub const SEPARATE_COLOR_PLANE_FLAG_SET: Self = Self(0b1);
1586 pub const SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET: Self = Self(0b10);
1587 pub const SCALING_LIST_DATA_PRESENT_FLAG_SET: Self = Self(0b100);
1588 pub const PCM_ENABLED_FLAG_SET: Self = Self(0b1000);
1589 pub const SPS_TEMPORAL_MVP_ENABLED_FLAG_SET: Self = Self(0b1_0000);
1590 pub const INIT_QP_MINUS26: Self = Self(0b10_0000);
1591 pub const WEIGHTED_PRED_FLAG_SET: Self = Self(0b100_0000);
1592 pub const WEIGHTED_BIPRED_FLAG_SET: Self = Self(0b1000_0000);
1593 pub const LOG2_PARALLEL_MERGE_LEVEL_MINUS2: Self = Self(0b1_0000_0000);
1594 pub const SIGN_DATA_HIDING_ENABLED_FLAG_SET: Self = Self(0b10_0000_0000);
1595 pub const TRANSFORM_SKIP_ENABLED_FLAG_SET: Self = Self(0b100_0000_0000);
1596 pub const TRANSFORM_SKIP_ENABLED_FLAG_UNSET: Self = Self(0b1000_0000_0000);
1597 pub const PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET: Self = Self(0b1_0000_0000_0000);
1598 pub const TRANSQUANT_BYPASS_ENABLED_FLAG_SET: Self = Self(0b10_0000_0000_0000);
1599 pub const CONSTRAINED_INTRA_PRED_FLAG_SET: Self = Self(0b100_0000_0000_0000);
1600 pub const ENTROPY_CODING_SYNC_ENABLED_FLAG_SET: Self = Self(0b1000_0000_0000_0000);
1601 pub const DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET: Self = Self(0b1_0000_0000_0000_0000);
1602 pub const DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET: Self = Self(0b10_0000_0000_0000_0000);
1603 pub const DEPENDENT_SLICE_SEGMENT_FLAG_SET: Self = Self(0b100_0000_0000_0000_0000);
1604 pub const SLICE_QP_DELTA: Self = Self(0b1000_0000_0000_0000_0000);
1605 pub const DIFFERENT_SLICE_QP_DELTA: Self = Self(0b1_0000_0000_0000_0000_0000);
1606}
1607#[repr(transparent)]
1608#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1609#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265RateControlFlagBitsKHR.html>"]
1610pub struct VideoEncodeH265RateControlFlagsKHR(pub(crate) Flags);
1611vk_bitflags_wrapped!(VideoEncodeH265RateControlFlagsKHR, Flags);
1612impl VideoEncodeH265RateControlFlagsKHR {
1613 pub const ATTEMPT_HRD_COMPLIANCE: Self = Self(0b1);
1614 pub const REGULAR_GOP: Self = Self(0b10);
1615 pub const REFERENCE_PATTERN_FLAT: Self = Self(0b100);
1616 pub const REFERENCE_PATTERN_DYADIC: Self = Self(0b1000);
1617 pub const TEMPORAL_SUB_LAYER_PATTERN_DYADIC: Self = Self(0b1_0000);
1618}
1619#[repr(transparent)]
1620#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1621#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265CtbSizeFlagBitsKHR.html>"]
1622pub struct VideoEncodeH265CtbSizeFlagsKHR(pub(crate) Flags);
1623vk_bitflags_wrapped!(VideoEncodeH265CtbSizeFlagsKHR, Flags);
1624impl VideoEncodeH265CtbSizeFlagsKHR {
1625 pub const TYPE_16: Self = Self(0b1);
1626 pub const TYPE_32: Self = Self(0b10);
1627 pub const TYPE_64: Self = Self(0b100);
1628}
1629#[repr(transparent)]
1630#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1631#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265TransformBlockSizeFlagBitsKHR.html>"]
1632pub struct VideoEncodeH265TransformBlockSizeFlagsKHR(pub(crate) Flags);
1633vk_bitflags_wrapped!(VideoEncodeH265TransformBlockSizeFlagsKHR, Flags);
1634impl VideoEncodeH265TransformBlockSizeFlagsKHR {
1635 pub const TYPE_4: Self = Self(0b1);
1636 pub const TYPE_8: Self = Self(0b10);
1637 pub const TYPE_16: Self = Self(0b100);
1638 pub const TYPE_32: Self = Self(0b1000);
1639}
1640#[repr(transparent)]
1641#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1642#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1CapabilityFlagBitsKHR.html>"]
1643pub struct VideoEncodeAV1CapabilityFlagsKHR(pub(crate) Flags);
1644vk_bitflags_wrapped!(VideoEncodeAV1CapabilityFlagsKHR, Flags);
1645impl VideoEncodeAV1CapabilityFlagsKHR {
1646 pub const PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX: Self = Self(0b1);
1647 pub const GENERATE_OBU_EXTENSION_HEADER: Self = Self(0b10);
1648 pub const PRIMARY_REFERENCE_CDF_ONLY: Self = Self(0b100);
1649 pub const FRAME_SIZE_OVERRIDE: Self = Self(0b1000);
1650 pub const MOTION_VECTOR_SCALING: Self = Self(0b1_0000);
1651}
1652#[repr(transparent)]
1653#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1654#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1StdFlagBitsKHR.html>"]
1655pub struct VideoEncodeAV1StdFlagsKHR(pub(crate) Flags);
1656vk_bitflags_wrapped!(VideoEncodeAV1StdFlagsKHR, Flags);
1657impl VideoEncodeAV1StdFlagsKHR {
1658 pub const UNIFORM_TILE_SPACING_FLAG_SET: Self = Self(0b1);
1659 pub const SKIP_MODE_PRESENT_UNSET: Self = Self(0b10);
1660 pub const PRIMARY_REF_FRAME: Self = Self(0b100);
1661 pub const DELTA_Q: Self = Self(0b1000);
1662}
1663#[repr(transparent)]
1664#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1665#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1RateControlFlagBitsKHR.html>"]
1666pub struct VideoEncodeAV1RateControlFlagsKHR(pub(crate) Flags);
1667vk_bitflags_wrapped!(VideoEncodeAV1RateControlFlagsKHR, Flags);
1668impl VideoEncodeAV1RateControlFlagsKHR {
1669 pub const REGULAR_GOP: Self = Self(0b1);
1670 pub const TEMPORAL_LAYER_PATTERN_DYADIC: Self = Self(0b10);
1671 pub const REFERENCE_PATTERN_FLAT: Self = Self(0b100);
1672 pub const REFERENCE_PATTERN_DYADIC: Self = Self(0b1000);
1673}
1674#[repr(transparent)]
1675#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1676#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeAV1SuperblockSizeFlagBitsKHR.html>"]
1677pub struct VideoEncodeAV1SuperblockSizeFlagsKHR(pub(crate) Flags);
1678vk_bitflags_wrapped!(VideoEncodeAV1SuperblockSizeFlagsKHR, Flags);
1679impl VideoEncodeAV1SuperblockSizeFlagsKHR {
1680 pub const TYPE_64: Self = Self(0b1);
1681 pub const TYPE_128: Self = Self(0b10);
1682}
1683#[repr(transparent)]
1684#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1685#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExportMetalObjectTypeFlagBitsEXT.html>"]
1686pub struct ExportMetalObjectTypeFlagsEXT(pub(crate) Flags);
1687vk_bitflags_wrapped!(ExportMetalObjectTypeFlagsEXT, Flags);
1688impl ExportMetalObjectTypeFlagsEXT {
1689 pub const METAL_DEVICE: Self = Self(0b1);
1690 pub const METAL_COMMAND_QUEUE: Self = Self(0b10);
1691 pub const METAL_BUFFER: Self = Self(0b100);
1692 pub const METAL_TEXTURE: Self = Self(0b1000);
1693 pub const METAL_IOSURFACE: Self = Self(0b1_0000);
1694 pub const METAL_SHARED_EVENT: Self = Self(0b10_0000);
1695}
1696#[repr(transparent)]
1697#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1698#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkInstanceCreateFlagBits.html>"]
1699pub struct InstanceCreateFlags(pub(crate) Flags);
1700vk_bitflags_wrapped!(InstanceCreateFlags, Flags);
1701impl InstanceCreateFlags {}
1702#[repr(transparent)]
1703#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1704#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCompressionFlagBitsEXT.html>"]
1705pub struct ImageCompressionFlagsEXT(pub(crate) Flags);
1706vk_bitflags_wrapped!(ImageCompressionFlagsEXT, Flags);
1707impl ImageCompressionFlagsEXT {
1708 pub const DEFAULT: Self = Self(0);
1709 pub const FIXED_RATE_DEFAULT: Self = Self(0b1);
1710 pub const FIXED_RATE_EXPLICIT: Self = Self(0b10);
1711 pub const DISABLED: Self = Self(0b100);
1712}
1713#[repr(transparent)]
1714#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1715#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCompressionFixedRateFlagBitsEXT.html>"]
1716pub struct ImageCompressionFixedRateFlagsEXT(pub(crate) Flags);
1717vk_bitflags_wrapped!(ImageCompressionFixedRateFlagsEXT, Flags);
1718impl ImageCompressionFixedRateFlagsEXT {
1719 pub const NONE: Self = Self(0);
1720 pub const TYPE_1BPC: Self = Self(0b1);
1721 pub const TYPE_2BPC: Self = Self(0b10);
1722 pub const TYPE_3BPC: Self = Self(0b100);
1723 pub const TYPE_4BPC: Self = Self(0b1000);
1724 pub const TYPE_5BPC: Self = Self(0b1_0000);
1725 pub const TYPE_6BPC: Self = Self(0b10_0000);
1726 pub const TYPE_7BPC: Self = Self(0b100_0000);
1727 pub const TYPE_8BPC: Self = Self(0b1000_0000);
1728 pub const TYPE_9BPC: Self = Self(0b1_0000_0000);
1729 pub const TYPE_10BPC: Self = Self(0b10_0000_0000);
1730 pub const TYPE_11BPC: Self = Self(0b100_0000_0000);
1731 pub const TYPE_12BPC: Self = Self(0b1000_0000_0000);
1732 pub const TYPE_13BPC: Self = Self(0b1_0000_0000_0000);
1733 pub const TYPE_14BPC: Self = Self(0b10_0000_0000_0000);
1734 pub const TYPE_15BPC: Self = Self(0b100_0000_0000_0000);
1735 pub const TYPE_16BPC: Self = Self(0b1000_0000_0000_0000);
1736 pub const TYPE_17BPC: Self = Self(0b1_0000_0000_0000_0000);
1737 pub const TYPE_18BPC: Self = Self(0b10_0000_0000_0000_0000);
1738 pub const TYPE_19BPC: Self = Self(0b100_0000_0000_0000_0000);
1739 pub const TYPE_20BPC: Self = Self(0b1000_0000_0000_0000_0000);
1740 pub const TYPE_21BPC: Self = Self(0b1_0000_0000_0000_0000_0000);
1741 pub const TYPE_22BPC: Self = Self(0b10_0000_0000_0000_0000_0000);
1742 pub const TYPE_23BPC: Self = Self(0b100_0000_0000_0000_0000_0000);
1743 pub const TYPE_24BPC: Self = Self(0b1000_0000_0000_0000_0000_0000);
1744}
1745#[repr(transparent)]
1746#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1747#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowGridSizeFlagBitsNV.html>"]
1748pub struct OpticalFlowGridSizeFlagsNV(pub(crate) Flags);
1749vk_bitflags_wrapped!(OpticalFlowGridSizeFlagsNV, Flags);
1750impl OpticalFlowGridSizeFlagsNV {
1751 pub const UNKNOWN: Self = Self(0);
1752 pub const TYPE_1X1: Self = Self(0b1);
1753 pub const TYPE_2X2: Self = Self(0b10);
1754 pub const TYPE_4X4: Self = Self(0b100);
1755 pub const TYPE_8X8: Self = Self(0b1000);
1756}
1757#[repr(transparent)]
1758#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1759#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowUsageFlagBitsNV.html>"]
1760pub struct OpticalFlowUsageFlagsNV(pub(crate) Flags);
1761vk_bitflags_wrapped!(OpticalFlowUsageFlagsNV, Flags);
1762impl OpticalFlowUsageFlagsNV {
1763 pub const UNKNOWN: Self = Self(0);
1764 pub const INPUT: Self = Self(0b1);
1765 pub const OUTPUT: Self = Self(0b10);
1766 pub const HINT: Self = Self(0b100);
1767 pub const COST: Self = Self(0b1000);
1768 pub const GLOBAL_FLOW: Self = Self(0b1_0000);
1769}
1770#[repr(transparent)]
1771#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1772#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionCreateFlagBitsNV.html>"]
1773pub struct OpticalFlowSessionCreateFlagsNV(pub(crate) Flags);
1774vk_bitflags_wrapped!(OpticalFlowSessionCreateFlagsNV, Flags);
1775impl OpticalFlowSessionCreateFlagsNV {
1776 pub const ENABLE_HINT: Self = Self(0b1);
1777 pub const ENABLE_COST: Self = Self(0b10);
1778 pub const ENABLE_GLOBAL_FLOW: Self = Self(0b100);
1779 pub const ALLOW_REGIONS: Self = Self(0b1000);
1780 pub const BOTH_DIRECTIONS: Self = Self(0b1_0000);
1781}
1782#[repr(transparent)]
1783#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1784#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowExecuteFlagBitsNV.html>"]
1785pub struct OpticalFlowExecuteFlagsNV(pub(crate) Flags);
1786vk_bitflags_wrapped!(OpticalFlowExecuteFlagsNV, Flags);
1787impl OpticalFlowExecuteFlagsNV {
1788 pub const DISABLE_TEMPORAL_HINTS: Self = Self(0b1);
1789}
1790#[repr(transparent)]
1791#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1792#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBuildMicromapFlagBitsEXT.html>"]
1793pub struct BuildMicromapFlagsEXT(pub(crate) Flags);
1794vk_bitflags_wrapped!(BuildMicromapFlagsEXT, Flags);
1795impl BuildMicromapFlagsEXT {
1796 pub const PREFER_FAST_TRACE: Self = Self(0b1);
1797 pub const PREFER_FAST_BUILD: Self = Self(0b10);
1798 pub const ALLOW_COMPACTION: Self = Self(0b100);
1799}
1800#[repr(transparent)]
1801#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1802#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMicromapCreateFlagBitsEXT.html>"]
1803pub struct MicromapCreateFlagsEXT(pub(crate) Flags);
1804vk_bitflags_wrapped!(MicromapCreateFlagsEXT, Flags);
1805impl MicromapCreateFlagsEXT {
1806 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1);
1807}
1808#[repr(transparent)]
1809#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1810#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsLayoutUsageFlagBitsEXT.html>"]
1811pub struct IndirectCommandsLayoutUsageFlagsEXT(pub(crate) Flags);
1812vk_bitflags_wrapped!(IndirectCommandsLayoutUsageFlagsEXT, Flags);
1813impl IndirectCommandsLayoutUsageFlagsEXT {
1814 pub const EXPLICIT_PREPROCESS: Self = Self(0b1);
1815 pub const UNORDERED_SEQUENCES: Self = Self(0b10);
1816}
1817#[repr(transparent)]
1818#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1819#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsInputModeFlagBitsEXT.html>"]
1820pub struct IndirectCommandsInputModeFlagsEXT(pub(crate) Flags);
1821vk_bitflags_wrapped!(IndirectCommandsInputModeFlagsEXT, Flags);
1822impl IndirectCommandsInputModeFlagsEXT {
1823 pub const VULKAN_INDEX_BUFFER: Self = Self(0b1);
1824 pub const DXGI_INDEX_BUFFER: Self = Self(0b10);
1825}
1826#[repr(transparent)]
1827#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1828#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderCreateFlagBitsEXT.html>"]
1829pub struct ShaderCreateFlagsEXT(pub(crate) Flags);
1830vk_bitflags_wrapped!(ShaderCreateFlagsEXT, Flags);
1831impl ShaderCreateFlagsEXT {
1832 pub const LINK_STAGE: Self = Self(0b1);
1833}
1834#[repr(transparent)]
1835#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1836#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryUnmapFlagBits.html>"]
1837pub struct MemoryUnmapFlags(pub(crate) Flags);
1838vk_bitflags_wrapped!(MemoryUnmapFlags, Flags);
1839impl MemoryUnmapFlags {}
1840#[repr(transparent)]
1841#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1842#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkWaylandSurfaceCreateFlagBitsKHR.html>"]
1843pub struct WaylandSurfaceCreateFlagsKHR(pub(crate) Flags);
1844vk_bitflags_wrapped!(WaylandSurfaceCreateFlagsKHR, Flags);
1845impl WaylandSurfaceCreateFlagsKHR {}
1846#[repr(transparent)]
1847#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1848#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccessFlagBits3KHR.html>"]
1849pub struct AccessFlags3KHR(pub(crate) Flags64);
1850vk_bitflags_wrapped!(AccessFlags3KHR, Flags64);
1851impl AccessFlags3KHR {
1852 pub const NONE: Self = Self(0);
1853}
1854#[repr(transparent)]
1855#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1856#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTileShadingRenderPassFlagBitsQCOM.html>"]
1857pub struct TileShadingRenderPassFlagsQCOM(pub(crate) Flags);
1858vk_bitflags_wrapped!(TileShadingRenderPassFlagsQCOM, Flags);
1859impl TileShadingRenderPassFlagsQCOM {
1860 pub const ENABLE: Self = Self(0b1);
1861 pub const PER_TILE_EXECUTION: Self = Self(0b10);
1862}
1863#[repr(transparent)]
1864#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1865#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAddressCopyFlagBitsKHR.html>"]
1866pub struct AddressCopyFlagsKHR(pub(crate) Flags);
1867vk_bitflags_wrapped!(AddressCopyFlagsKHR, Flags);
1868impl AddressCopyFlagsKHR {
1869 pub const DEVICE_LOCAL: Self = Self(0b1);
1870 pub const SPARSE: Self = Self(0b10);
1871 pub const PROTECTED: Self = Self(0b100);
1872}
1873#[repr(transparent)]
1874#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1875#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTensorCreateFlagBitsARM.html>"]
1876pub struct TensorCreateFlagsARM(pub(crate) Flags64);
1877vk_bitflags_wrapped!(TensorCreateFlagsARM, Flags64);
1878impl TensorCreateFlagsARM {
1879 pub const MUTABLE_FORMAT: Self = Self(0b1);
1880 pub const PROTECTED: Self = Self(0b10);
1881}
1882#[repr(transparent)]
1883#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1884#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTensorUsageFlagBitsARM.html>"]
1885pub struct TensorUsageFlagsARM(pub(crate) Flags64);
1886vk_bitflags_wrapped!(TensorUsageFlagsARM, Flags64);
1887impl TensorUsageFlagsARM {
1888 #[doc = "Tensor written/read through shader descriptor"]
1889 pub const SHADER: Self = Self(0b10);
1890 #[doc = "Tensor can be src of a transfer operation"]
1891 pub const TRANSFER_SRC: Self = Self(0b100);
1892 #[doc = "Tensor can be dst of a transfer operation"]
1893 pub const TRANSFER_DST: Self = Self(0b1000);
1894 #[doc = "Tensor can be aliased with an image"]
1895 pub const IMAGE_ALIASING: Self = Self(0b1_0000);
1896}
1897#[repr(transparent)]
1898#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1899#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkTensorViewCreateFlagBitsARM.html>"]
1900pub struct TensorViewCreateFlagsARM(pub(crate) Flags64);
1901vk_bitflags_wrapped!(TensorViewCreateFlagsARM, Flags64);
1902impl TensorViewCreateFlagsARM {}
1903#[repr(transparent)]
1904#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1905#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDataGraphPipelineSessionCreateFlagBitsARM.html>"]
1906pub struct DataGraphPipelineSessionCreateFlagsARM(pub(crate) Flags64);
1907vk_bitflags_wrapped!(DataGraphPipelineSessionCreateFlagsARM, Flags64);
1908impl DataGraphPipelineSessionCreateFlagsARM {
1909 pub const PROTECTED: Self = Self(0b1);
1910}
1911#[repr(transparent)]
1912#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1913#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDataGraphPipelineDispatchFlagBitsARM.html>"]
1914pub struct DataGraphPipelineDispatchFlagsARM(pub(crate) Flags64);
1915vk_bitflags_wrapped!(DataGraphPipelineDispatchFlagsARM, Flags64);
1916impl DataGraphPipelineDispatchFlagsARM {}
1917#[repr(transparent)]
1918#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1919#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeRgbModelConversionFlagBitsVALVE.html>"]
1920pub struct VideoEncodeRgbModelConversionFlagsVALVE(pub(crate) Flags);
1921vk_bitflags_wrapped!(VideoEncodeRgbModelConversionFlagsVALVE, Flags);
1922impl VideoEncodeRgbModelConversionFlagsVALVE {
1923 pub const RGB_IDENTITY: Self = Self(0b1);
1924 pub const YCBCR_IDENTITY: Self = Self(0b10);
1925 pub const YCBCR_709: Self = Self(0b100);
1926 pub const YCBCR_601: Self = Self(0b1000);
1927 pub const YCBCR_2020: Self = Self(0b1_0000);
1928}
1929#[repr(transparent)]
1930#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1931#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeRgbRangeCompressionFlagBitsVALVE.html>"]
1932pub struct VideoEncodeRgbRangeCompressionFlagsVALVE(pub(crate) Flags);
1933vk_bitflags_wrapped!(VideoEncodeRgbRangeCompressionFlagsVALVE, Flags);
1934impl VideoEncodeRgbRangeCompressionFlagsVALVE {
1935 pub const FULL_RANGE: Self = Self(0b1);
1936 pub const NARROW_RANGE: Self = Self(0b10);
1937}
1938#[repr(transparent)]
1939#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1940#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeRgbChromaOffsetFlagBitsVALVE.html>"]
1941pub struct VideoEncodeRgbChromaOffsetFlagsVALVE(pub(crate) Flags);
1942vk_bitflags_wrapped!(VideoEncodeRgbChromaOffsetFlagsVALVE, Flags);
1943impl VideoEncodeRgbChromaOffsetFlagsVALVE {
1944 pub const COSITED_EVEN: Self = Self(0b1);
1945 pub const MIDPOINT: Self = Self(0b10);
1946}
1947#[repr(transparent)]
1948#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1949#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSpirvResourceTypeFlagBitsEXT.html>"]
1950pub struct SpirvResourceTypeFlagsEXT(pub(crate) Flags);
1951vk_bitflags_wrapped!(SpirvResourceTypeFlagsEXT, Flags);
1952impl SpirvResourceTypeFlagsEXT {
1953 pub const ALL: Self = Self(0x7FFF_FFFF);
1954 pub const SAMPLER: Self = Self(0b1);
1955 pub const SAMPLED_IMAGE: Self = Self(0b10);
1956 pub const READ_ONLY_IMAGE: Self = Self(0b100);
1957 pub const READ_WRITE_IMAGE: Self = Self(0b1000);
1958 pub const COMBINED_SAMPLED_IMAGE: Self = Self(0b1_0000);
1959 pub const UNIFORM_BUFFER: Self = Self(0b10_0000);
1960 pub const READ_ONLY_STORAGE_BUFFER: Self = Self(0b100_0000);
1961 pub const READ_WRITE_STORAGE_BUFFER: Self = Self(0b1000_0000);
1962}