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/VkBufferUsageFlagBits2KHR.html>"]
141pub struct BufferUsageFlags2KHR(pub(crate) Flags64);
142vk_bitflags_wrapped!(BufferUsageFlags2KHR, Flags64);
143impl BufferUsageFlags2KHR {
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/VkPipelineCreateFlagBits2KHR.html>"]
247pub struct PipelineCreateFlags2KHR(pub(crate) Flags64);
248vk_bitflags_wrapped!(PipelineCreateFlags2KHR, Flags64);
249impl PipelineCreateFlags2KHR {
250 pub const DISABLE_OPTIMIZATION: Self = Self(0b1);
251 pub const ALLOW_DERIVATIVES: Self = Self(0b10);
252 pub const DERIVATIVE: Self = Self(0b100);
253}
254#[repr(transparent)]
255#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
256#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineShaderStageCreateFlagBits.html>"]
257pub struct PipelineShaderStageCreateFlags(pub(crate) Flags);
258vk_bitflags_wrapped!(PipelineShaderStageCreateFlags, Flags);
259impl PipelineShaderStageCreateFlags {}
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/VkColorComponentFlagBits.html>"]
263pub struct ColorComponentFlags(pub(crate) Flags);
264vk_bitflags_wrapped!(ColorComponentFlags, Flags);
265impl ColorComponentFlags {
266 pub const R: Self = Self(0b1);
267 pub const G: Self = Self(0b10);
268 pub const B: Self = Self(0b100);
269 pub const A: Self = Self(0b1000);
270}
271#[repr(transparent)]
272#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
273#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceCreateFlagBits.html>"]
274pub struct FenceCreateFlags(pub(crate) Flags);
275vk_bitflags_wrapped!(FenceCreateFlags, Flags);
276impl FenceCreateFlags {
277 pub const SIGNALED: Self = Self(0b1);
278}
279#[repr(transparent)]
280#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
281#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreCreateFlagBits.html>"]
282pub struct SemaphoreCreateFlags(pub(crate) Flags);
283vk_bitflags_wrapped!(SemaphoreCreateFlags, Flags);
284impl SemaphoreCreateFlags {}
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/VkFormatFeatureFlagBits.html>"]
288pub struct FormatFeatureFlags(pub(crate) Flags);
289vk_bitflags_wrapped!(FormatFeatureFlags, Flags);
290impl FormatFeatureFlags {
291 #[doc = "Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)"]
292 pub const SAMPLED_IMAGE: Self = Self(0b1);
293 #[doc = "Format can be used for storage images (STORAGE_IMAGE descriptor type)"]
294 pub const STORAGE_IMAGE: Self = Self(0b10);
295 #[doc = "Format supports atomic operations in case it is used for storage images"]
296 pub const STORAGE_IMAGE_ATOMIC: Self = Self(0b100);
297 #[doc = "Format can be used for uniform texel buffers (TBOs)"]
298 pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b1000);
299 #[doc = "Format can be used for storage texel buffers (IBOs)"]
300 pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1_0000);
301 #[doc = "Format supports atomic operations in case it is used for storage texel buffers"]
302 pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(0b10_0000);
303 #[doc = "Format can be used for vertex buffers (VBOs)"]
304 pub const VERTEX_BUFFER: Self = Self(0b100_0000);
305 #[doc = "Format can be used for color attachment images"]
306 pub const COLOR_ATTACHMENT: Self = Self(0b1000_0000);
307 #[doc = "Format supports blending in case it is used for color attachment images"]
308 pub const COLOR_ATTACHMENT_BLEND: Self = Self(0b1_0000_0000);
309 #[doc = "Format can be used for depth/stencil attachment images"]
310 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000_0000);
311 #[doc = "Format can be used as the source image of blits with vkCmdBlitImage"]
312 pub const BLIT_SRC: Self = Self(0b100_0000_0000);
313 #[doc = "Format can be used as the destination image of blits with vkCmdBlitImage"]
314 pub const BLIT_DST: Self = Self(0b1000_0000_0000);
315 #[doc = "Format can be filtered with VK_FILTER_LINEAR when being sampled"]
316 pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(0b1_0000_0000_0000);
317}
318#[repr(transparent)]
319#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
320#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryControlFlagBits.html>"]
321pub struct QueryControlFlags(pub(crate) Flags);
322vk_bitflags_wrapped!(QueryControlFlags, Flags);
323impl QueryControlFlags {
324 #[doc = "Require precise results to be collected by the query"]
325 pub const PRECISE: Self = Self(0b1);
326}
327#[repr(transparent)]
328#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
329#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryResultFlagBits.html>"]
330pub struct QueryResultFlags(pub(crate) Flags);
331vk_bitflags_wrapped!(QueryResultFlags, Flags);
332impl QueryResultFlags {
333 #[doc = "Results of the queries are written to the destination buffer as 64-bit values"]
334 pub const TYPE_64: Self = Self(0b1);
335 #[doc = "Results of the queries are waited on before proceeding with the result copy"]
336 pub const WAIT: Self = Self(0b10);
337 #[doc = "Besides the results of the query, the availability of the results is also written"]
338 pub const WITH_AVAILABILITY: Self = Self(0b100);
339 #[doc = "Copy the partial results of the query even if the final results are not available"]
340 pub const PARTIAL: Self = Self(0b1000);
341}
342#[repr(transparent)]
343#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
344#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferUsageFlagBits.html>"]
345pub struct CommandBufferUsageFlags(pub(crate) Flags);
346vk_bitflags_wrapped!(CommandBufferUsageFlags, Flags);
347impl CommandBufferUsageFlags {
348 pub const ONE_TIME_SUBMIT: Self = Self(0b1);
349 pub const RENDER_PASS_CONTINUE: Self = Self(0b10);
350 #[doc = "Command buffer may be submitted/executed more than once simultaneously"]
351 pub const SIMULTANEOUS_USE: Self = Self(0b100);
352}
353#[repr(transparent)]
354#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
355#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkQueryPipelineStatisticFlagBits.html>"]
356pub struct QueryPipelineStatisticFlags(pub(crate) Flags);
357vk_bitflags_wrapped!(QueryPipelineStatisticFlags, Flags);
358impl QueryPipelineStatisticFlags {
359 #[doc = "Optional"]
360 pub const INPUT_ASSEMBLY_VERTICES: Self = Self(0b1);
361 #[doc = "Optional"]
362 pub const INPUT_ASSEMBLY_PRIMITIVES: Self = Self(0b10);
363 #[doc = "Optional"]
364 pub const VERTEX_SHADER_INVOCATIONS: Self = Self(0b100);
365 #[doc = "Optional"]
366 pub const GEOMETRY_SHADER_INVOCATIONS: Self = Self(0b1000);
367 #[doc = "Optional"]
368 pub const GEOMETRY_SHADER_PRIMITIVES: Self = Self(0b1_0000);
369 #[doc = "Optional"]
370 pub const CLIPPING_INVOCATIONS: Self = Self(0b10_0000);
371 #[doc = "Optional"]
372 pub const CLIPPING_PRIMITIVES: Self = Self(0b100_0000);
373 #[doc = "Optional"]
374 pub const FRAGMENT_SHADER_INVOCATIONS: Self = Self(0b1000_0000);
375 #[doc = "Optional"]
376 pub const TESSELLATION_CONTROL_SHADER_PATCHES: Self = Self(0b1_0000_0000);
377 #[doc = "Optional"]
378 pub const TESSELLATION_EVALUATION_SHADER_INVOCATIONS: Self = Self(0b10_0000_0000);
379 #[doc = "Optional"]
380 pub const COMPUTE_SHADER_INVOCATIONS: Self = Self(0b100_0000_0000);
381}
382#[repr(transparent)]
383#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
384#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryMapFlagBits.html>"]
385pub struct MemoryMapFlags(pub(crate) Flags);
386vk_bitflags_wrapped!(MemoryMapFlags, Flags);
387impl MemoryMapFlags {}
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/VkImageAspectFlagBits.html>"]
391pub struct ImageAspectFlags(pub(crate) Flags);
392vk_bitflags_wrapped!(ImageAspectFlags, Flags);
393impl ImageAspectFlags {
394 pub const COLOR: Self = Self(0b1);
395 pub const DEPTH: Self = Self(0b10);
396 pub const STENCIL: Self = Self(0b100);
397 pub const METADATA: Self = Self(0b1000);
398}
399#[repr(transparent)]
400#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
401#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseImageFormatFlagBits.html>"]
402pub struct SparseImageFormatFlags(pub(crate) Flags);
403vk_bitflags_wrapped!(SparseImageFormatFlags, Flags);
404impl SparseImageFormatFlags {
405 #[doc = "Image uses a single mip tail region for all array layers"]
406 pub const SINGLE_MIPTAIL: Self = Self(0b1);
407 #[doc = "Image requires mip level dimensions to be an integer multiple of the sparse image block dimensions for non-tail mip levels."]
408 pub const ALIGNED_MIP_SIZE: Self = Self(0b10);
409 #[doc = "Image uses a non-standard sparse image block dimensions"]
410 pub const NONSTANDARD_BLOCK_SIZE: Self = Self(0b100);
411}
412#[repr(transparent)]
413#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
414#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSparseMemoryBindFlagBits.html>"]
415pub struct SparseMemoryBindFlags(pub(crate) Flags);
416vk_bitflags_wrapped!(SparseMemoryBindFlags, Flags);
417impl SparseMemoryBindFlags {
418 #[doc = "Operation binds resource metadata to memory"]
419 pub const METADATA: Self = Self(0b1);
420}
421#[repr(transparent)]
422#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
423#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits.html>"]
424pub struct PipelineStageFlags(pub(crate) Flags);
425vk_bitflags_wrapped!(PipelineStageFlags, Flags);
426impl PipelineStageFlags {
427 #[doc = "Before subsequent commands are processed"]
428 pub const TOP_OF_PIPE: Self = Self(0b1);
429 #[doc = "Draw/DispatchIndirect command fetch"]
430 pub const DRAW_INDIRECT: Self = Self(0b10);
431 #[doc = "Vertex/index fetch"]
432 pub const VERTEX_INPUT: Self = Self(0b100);
433 #[doc = "Vertex shading"]
434 pub const VERTEX_SHADER: Self = Self(0b1000);
435 #[doc = "Tessellation control shading"]
436 pub const TESSELLATION_CONTROL_SHADER: Self = Self(0b1_0000);
437 #[doc = "Tessellation evaluation shading"]
438 pub const TESSELLATION_EVALUATION_SHADER: Self = Self(0b10_0000);
439 #[doc = "Geometry shading"]
440 pub const GEOMETRY_SHADER: Self = Self(0b100_0000);
441 #[doc = "Fragment shading"]
442 pub const FRAGMENT_SHADER: Self = Self(0b1000_0000);
443 #[doc = "Early fragment (depth and stencil) tests"]
444 pub const EARLY_FRAGMENT_TESTS: Self = Self(0b1_0000_0000);
445 #[doc = "Late fragment (depth and stencil) tests"]
446 pub const LATE_FRAGMENT_TESTS: Self = Self(0b10_0000_0000);
447 #[doc = "Color attachment writes"]
448 pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(0b100_0000_0000);
449 #[doc = "Compute shading"]
450 pub const COMPUTE_SHADER: Self = Self(0b1000_0000_0000);
451 #[doc = "Transfer/copy operations"]
452 pub const TRANSFER: Self = Self(0b1_0000_0000_0000);
453 #[doc = "After previous commands have completed"]
454 pub const BOTTOM_OF_PIPE: Self = Self(0b10_0000_0000_0000);
455 #[doc = "Indicates host (CPU) is a source/sink of the dependency"]
456 pub const HOST: Self = Self(0b100_0000_0000_0000);
457 #[doc = "All stages of the graphics pipeline"]
458 pub const ALL_GRAPHICS: Self = Self(0b1000_0000_0000_0000);
459 #[doc = "All stages supported on the queue"]
460 pub const ALL_COMMANDS: Self = Self(0b1_0000_0000_0000_0000);
461}
462#[repr(transparent)]
463#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
464#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolCreateFlagBits.html>"]
465pub struct CommandPoolCreateFlags(pub(crate) Flags);
466vk_bitflags_wrapped!(CommandPoolCreateFlags, Flags);
467impl CommandPoolCreateFlags {
468 #[doc = "Command buffers have a short lifetime"]
469 pub const TRANSIENT: Self = Self(0b1);
470 #[doc = "Command buffers may release their memory individually"]
471 pub const RESET_COMMAND_BUFFER: Self = Self(0b10);
472}
473#[repr(transparent)]
474#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
475#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandPoolResetFlagBits.html>"]
476pub struct CommandPoolResetFlags(pub(crate) Flags);
477vk_bitflags_wrapped!(CommandPoolResetFlags, Flags);
478impl CommandPoolResetFlags {
479 #[doc = "Release resources owned by the pool"]
480 pub const RELEASE_RESOURCES: Self = Self(0b1);
481}
482#[repr(transparent)]
483#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
484#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCommandBufferResetFlagBits.html>"]
485pub struct CommandBufferResetFlags(pub(crate) Flags);
486vk_bitflags_wrapped!(CommandBufferResetFlags, Flags);
487impl CommandBufferResetFlags {
488 #[doc = "Release resources owned by the buffer"]
489 pub const RELEASE_RESOURCES: Self = Self(0b1);
490}
491#[repr(transparent)]
492#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
493#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSampleCountFlagBits.html>"]
494pub struct SampleCountFlags(pub(crate) Flags);
495vk_bitflags_wrapped!(SampleCountFlags, Flags);
496impl SampleCountFlags {
497 #[doc = "Sample count 1 supported"]
498 pub const TYPE_1: Self = Self(0b1);
499 #[doc = "Sample count 2 supported"]
500 pub const TYPE_2: Self = Self(0b10);
501 #[doc = "Sample count 4 supported"]
502 pub const TYPE_4: Self = Self(0b100);
503 #[doc = "Sample count 8 supported"]
504 pub const TYPE_8: Self = Self(0b1000);
505 #[doc = "Sample count 16 supported"]
506 pub const TYPE_16: Self = Self(0b1_0000);
507 #[doc = "Sample count 32 supported"]
508 pub const TYPE_32: Self = Self(0b10_0000);
509 #[doc = "Sample count 64 supported"]
510 pub const TYPE_64: Self = Self(0b100_0000);
511}
512#[repr(transparent)]
513#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
514#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAttachmentDescriptionFlagBits.html>"]
515pub struct AttachmentDescriptionFlags(pub(crate) Flags);
516vk_bitflags_wrapped!(AttachmentDescriptionFlags, Flags);
517impl AttachmentDescriptionFlags {
518 #[doc = "The attachment may alias physical memory of another attachment in the same render pass"]
519 pub const MAY_ALIAS: Self = Self(0b1);
520}
521#[repr(transparent)]
522#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
523#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkStencilFaceFlagBits.html>"]
524pub struct StencilFaceFlags(pub(crate) Flags);
525vk_bitflags_wrapped!(StencilFaceFlags, Flags);
526impl StencilFaceFlags {
527 #[doc = "Front face"]
528 pub const FRONT: Self = Self(0b1);
529 #[doc = "Back face"]
530 pub const BACK: Self = Self(0b10);
531 #[doc = "Front and back faces"]
532 pub const FRONT_AND_BACK: Self = Self(0x0000_0003);
533}
534#[repr(transparent)]
535#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
536#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorPoolCreateFlagBits.html>"]
537pub struct DescriptorPoolCreateFlags(pub(crate) Flags);
538vk_bitflags_wrapped!(DescriptorPoolCreateFlags, Flags);
539impl DescriptorPoolCreateFlags {
540 #[doc = "Descriptor sets may be freed individually"]
541 pub const FREE_DESCRIPTOR_SET: Self = Self(0b1);
542}
543#[repr(transparent)]
544#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
545#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDependencyFlagBits.html>"]
546pub struct DependencyFlags(pub(crate) Flags);
547vk_bitflags_wrapped!(DependencyFlags, Flags);
548impl DependencyFlags {
549 #[doc = "Dependency is per pixel region "]
550 pub const BY_REGION: Self = Self(0b1);
551}
552#[repr(transparent)]
553#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
554#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreWaitFlagBits.html>"]
555pub struct SemaphoreWaitFlags(pub(crate) Flags);
556vk_bitflags_wrapped!(SemaphoreWaitFlags, Flags);
557impl SemaphoreWaitFlags {
558 pub const ANY: Self = Self(0b1);
559}
560#[repr(transparent)]
561#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
562#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDisplayPlaneAlphaFlagBitsKHR.html>"]
563pub struct DisplayPlaneAlphaFlagsKHR(pub(crate) Flags);
564vk_bitflags_wrapped!(DisplayPlaneAlphaFlagsKHR, Flags);
565impl DisplayPlaneAlphaFlagsKHR {
566 pub const OPAQUE: Self = Self(0b1);
567 pub const GLOBAL: Self = Self(0b10);
568 pub const PER_PIXEL: Self = Self(0b100);
569 pub const PER_PIXEL_PREMULTIPLIED: Self = Self(0b1000);
570}
571#[repr(transparent)]
572#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
573#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkCompositeAlphaFlagBitsKHR.html>"]
574pub struct CompositeAlphaFlagsKHR(pub(crate) Flags);
575vk_bitflags_wrapped!(CompositeAlphaFlagsKHR, Flags);
576impl CompositeAlphaFlagsKHR {
577 pub const OPAQUE: Self = Self(0b1);
578 pub const PRE_MULTIPLIED: Self = Self(0b10);
579 pub const POST_MULTIPLIED: Self = Self(0b100);
580 pub const INHERIT: Self = Self(0b1000);
581}
582#[repr(transparent)]
583#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
584#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSurfaceTransformFlagBitsKHR.html>"]
585pub struct SurfaceTransformFlagsKHR(pub(crate) Flags);
586vk_bitflags_wrapped!(SurfaceTransformFlagsKHR, Flags);
587impl SurfaceTransformFlagsKHR {
588 pub const IDENTITY: Self = Self(0b1);
589 pub const ROTATE_90: Self = Self(0b10);
590 pub const ROTATE_180: Self = Self(0b100);
591 pub const ROTATE_270: Self = Self(0b1000);
592 pub const HORIZONTAL_MIRROR: Self = Self(0b1_0000);
593 pub const HORIZONTAL_MIRROR_ROTATE_90: Self = Self(0b10_0000);
594 pub const HORIZONTAL_MIRROR_ROTATE_180: Self = Self(0b100_0000);
595 pub const HORIZONTAL_MIRROR_ROTATE_270: Self = Self(0b1000_0000);
596 pub const INHERIT: Self = Self(0b1_0000_0000);
597}
598#[repr(transparent)]
599#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
600#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSwapchainImageUsageFlagBitsANDROID.html>"]
601pub struct SwapchainImageUsageFlagsANDROID(pub(crate) Flags);
602vk_bitflags_wrapped!(SwapchainImageUsageFlagsANDROID, Flags);
603impl SwapchainImageUsageFlagsANDROID {
604 pub const SHARED: Self = Self(0b1);
605}
606#[repr(transparent)]
607#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
608#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDebugReportFlagBitsEXT.html>"]
609pub struct DebugReportFlagsEXT(pub(crate) Flags);
610vk_bitflags_wrapped!(DebugReportFlagsEXT, Flags);
611impl DebugReportFlagsEXT {
612 pub const INFORMATION: Self = Self(0b1);
613 pub const WARNING: Self = Self(0b10);
614 pub const PERFORMANCE_WARNING: Self = Self(0b100);
615 pub const ERROR: Self = Self(0b1000);
616 pub const DEBUG: Self = Self(0b1_0000);
617}
618#[repr(transparent)]
619#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
620#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBitsNV.html>"]
621pub struct ExternalMemoryHandleTypeFlagsNV(pub(crate) Flags);
622vk_bitflags_wrapped!(ExternalMemoryHandleTypeFlagsNV, Flags);
623impl ExternalMemoryHandleTypeFlagsNV {
624 pub const OPAQUE_WIN32: Self = Self(0b1);
625 pub const OPAQUE_WIN32_KMT: Self = Self(0b10);
626 pub const D3D11_IMAGE: Self = Self(0b100);
627 pub const D3D11_IMAGE_KMT: Self = Self(0b1000);
628}
629#[repr(transparent)]
630#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
631#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBitsNV.html>"]
632pub struct ExternalMemoryFeatureFlagsNV(pub(crate) Flags);
633vk_bitflags_wrapped!(ExternalMemoryFeatureFlagsNV, Flags);
634impl ExternalMemoryFeatureFlagsNV {
635 pub const DEDICATED_ONLY: Self = Self(0b1);
636 pub const EXPORTABLE: Self = Self(0b10);
637 pub const IMPORTABLE: Self = Self(0b100);
638}
639#[repr(transparent)]
640#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
641#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubgroupFeatureFlagBits.html>"]
642pub struct SubgroupFeatureFlags(pub(crate) Flags);
643vk_bitflags_wrapped!(SubgroupFeatureFlags, Flags);
644impl SubgroupFeatureFlags {
645 #[doc = "Basic subgroup operations"]
646 pub const BASIC: Self = Self(0b1);
647 #[doc = "Vote subgroup operations"]
648 pub const VOTE: Self = Self(0b10);
649 #[doc = "Arithmetic subgroup operations"]
650 pub const ARITHMETIC: Self = Self(0b100);
651 #[doc = "Ballot subgroup operations"]
652 pub const BALLOT: Self = Self(0b1000);
653 #[doc = "Shuffle subgroup operations"]
654 pub const SHUFFLE: Self = Self(0b1_0000);
655 #[doc = "Shuffle relative subgroup operations"]
656 pub const SHUFFLE_RELATIVE: Self = Self(0b10_0000);
657 #[doc = "Clustered subgroup operations"]
658 pub const CLUSTERED: Self = Self(0b100_0000);
659 #[doc = "Quad subgroup operations"]
660 pub const QUAD: Self = Self(0b1000_0000);
661}
662#[repr(transparent)]
663#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
664#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsLayoutUsageFlagBitsNV.html>"]
665pub struct IndirectCommandsLayoutUsageFlagsNV(pub(crate) Flags);
666vk_bitflags_wrapped!(IndirectCommandsLayoutUsageFlagsNV, Flags);
667impl IndirectCommandsLayoutUsageFlagsNV {
668 pub const EXPLICIT_PREPROCESS: Self = Self(0b1);
669 pub const INDEXED_SEQUENCES: Self = Self(0b10);
670 pub const UNORDERED_SEQUENCES: Self = Self(0b100);
671}
672#[repr(transparent)]
673#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
674#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkIndirectStateFlagBitsNV.html>"]
675pub struct IndirectStateFlagsNV(pub(crate) Flags);
676vk_bitflags_wrapped!(IndirectStateFlagsNV, Flags);
677impl IndirectStateFlagsNV {
678 pub const FLAG_FRONTFACE: Self = Self(0b1);
679}
680#[repr(transparent)]
681#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
682#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPrivateDataSlotCreateFlagBits.html>"]
683pub struct PrivateDataSlotCreateFlags(pub(crate) Flags);
684vk_bitflags_wrapped!(PrivateDataSlotCreateFlags, Flags);
685impl PrivateDataSlotCreateFlags {}
686#[repr(transparent)]
687#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
688#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDescriptorSetLayoutCreateFlagBits.html>"]
689pub struct DescriptorSetLayoutCreateFlags(pub(crate) Flags);
690vk_bitflags_wrapped!(DescriptorSetLayoutCreateFlags, Flags);
691impl DescriptorSetLayoutCreateFlags {}
692#[repr(transparent)]
693#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
694#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryHandleTypeFlagBits.html>"]
695pub struct ExternalMemoryHandleTypeFlags(pub(crate) Flags);
696vk_bitflags_wrapped!(ExternalMemoryHandleTypeFlags, Flags);
697impl ExternalMemoryHandleTypeFlags {
698 pub const OPAQUE_FD: Self = Self(0b1);
699 pub const OPAQUE_WIN32: Self = Self(0b10);
700 pub const OPAQUE_WIN32_KMT: Self = Self(0b100);
701 pub const D3D11_TEXTURE: Self = Self(0b1000);
702 pub const D3D11_TEXTURE_KMT: Self = Self(0b1_0000);
703 pub const D3D12_HEAP: Self = Self(0b10_0000);
704 pub const D3D12_RESOURCE: Self = Self(0b100_0000);
705}
706#[repr(transparent)]
707#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
708#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalMemoryFeatureFlagBits.html>"]
709pub struct ExternalMemoryFeatureFlags(pub(crate) Flags);
710vk_bitflags_wrapped!(ExternalMemoryFeatureFlags, Flags);
711impl ExternalMemoryFeatureFlags {
712 pub const DEDICATED_ONLY: Self = Self(0b1);
713 pub const EXPORTABLE: Self = Self(0b10);
714 pub const IMPORTABLE: Self = Self(0b100);
715}
716#[repr(transparent)]
717#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
718#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html>"]
719pub struct ExternalSemaphoreHandleTypeFlags(pub(crate) Flags);
720vk_bitflags_wrapped!(ExternalSemaphoreHandleTypeFlags, Flags);
721impl ExternalSemaphoreHandleTypeFlags {
722 pub const OPAQUE_FD: Self = Self(0b1);
723 pub const OPAQUE_WIN32: Self = Self(0b10);
724 pub const OPAQUE_WIN32_KMT: Self = Self(0b100);
725 pub const D3D12_FENCE: Self = Self(0b1000);
726 pub const D3D11_FENCE: Self = Self::D3D12_FENCE;
727 pub const SYNC_FD: Self = Self(0b1_0000);
728}
729#[repr(transparent)]
730#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
731#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html>"]
732pub struct ExternalSemaphoreFeatureFlags(pub(crate) Flags);
733vk_bitflags_wrapped!(ExternalSemaphoreFeatureFlags, Flags);
734impl ExternalSemaphoreFeatureFlags {
735 pub const EXPORTABLE: Self = Self(0b1);
736 pub const IMPORTABLE: Self = Self(0b10);
737}
738#[repr(transparent)]
739#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
740#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSemaphoreImportFlagBits.html>"]
741pub struct SemaphoreImportFlags(pub(crate) Flags);
742vk_bitflags_wrapped!(SemaphoreImportFlags, Flags);
743impl SemaphoreImportFlags {
744 pub const TEMPORARY: Self = Self(0b1);
745}
746#[repr(transparent)]
747#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
748#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceHandleTypeFlagBits.html>"]
749pub struct ExternalFenceHandleTypeFlags(pub(crate) Flags);
750vk_bitflags_wrapped!(ExternalFenceHandleTypeFlags, Flags);
751impl ExternalFenceHandleTypeFlags {
752 pub const OPAQUE_FD: Self = Self(0b1);
753 pub const OPAQUE_WIN32: Self = Self(0b10);
754 pub const OPAQUE_WIN32_KMT: Self = Self(0b100);
755 pub const SYNC_FD: Self = Self(0b1000);
756}
757#[repr(transparent)]
758#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
759#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalFenceFeatureFlagBits.html>"]
760pub struct ExternalFenceFeatureFlags(pub(crate) Flags);
761vk_bitflags_wrapped!(ExternalFenceFeatureFlags, Flags);
762impl ExternalFenceFeatureFlags {
763 pub const EXPORTABLE: Self = Self(0b1);
764 pub const IMPORTABLE: Self = Self(0b10);
765}
766#[repr(transparent)]
767#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
768#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFenceImportFlagBits.html>"]
769pub struct FenceImportFlags(pub(crate) Flags);
770vk_bitflags_wrapped!(FenceImportFlags, Flags);
771impl FenceImportFlags {
772 pub const TEMPORARY: Self = Self(0b1);
773}
774#[repr(transparent)]
775#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
776#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSurfaceCounterFlagBitsEXT.html>"]
777pub struct SurfaceCounterFlagsEXT(pub(crate) Flags);
778vk_bitflags_wrapped!(SurfaceCounterFlagsEXT, Flags);
779impl SurfaceCounterFlagsEXT {
780 pub const VBLANK: Self = Self(0b1);
781}
782#[repr(transparent)]
783#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
784#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPeerMemoryFeatureFlagBits.html>"]
785pub struct PeerMemoryFeatureFlags(pub(crate) Flags);
786vk_bitflags_wrapped!(PeerMemoryFeatureFlags, Flags);
787impl PeerMemoryFeatureFlags {
788 #[doc = "Can read with vkCmdCopy commands"]
789 pub const COPY_SRC: Self = Self(0b1);
790 #[doc = "Can write with vkCmdCopy commands"]
791 pub const COPY_DST: Self = Self(0b10);
792 #[doc = "Can read with any access type/command"]
793 pub const GENERIC_SRC: Self = Self(0b100);
794 #[doc = "Can write with and access type/command"]
795 pub const GENERIC_DST: Self = Self(0b1000);
796}
797#[repr(transparent)]
798#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
799#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryAllocateFlagBits.html>"]
800pub struct MemoryAllocateFlags(pub(crate) Flags);
801vk_bitflags_wrapped!(MemoryAllocateFlags, Flags);
802impl MemoryAllocateFlags {
803 #[doc = "Force allocation on specific devices"]
804 pub const DEVICE_MASK: Self = Self(0b1);
805}
806#[repr(transparent)]
807#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
808#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceGroupPresentModeFlagBitsKHR.html>"]
809pub struct DeviceGroupPresentModeFlagsKHR(pub(crate) Flags);
810vk_bitflags_wrapped!(DeviceGroupPresentModeFlagsKHR, Flags);
811impl DeviceGroupPresentModeFlagsKHR {
812 #[doc = "Present from local memory"]
813 pub const LOCAL: Self = Self(0b1);
814 #[doc = "Present from remote memory"]
815 pub const REMOTE: Self = Self(0b10);
816 #[doc = "Present sum of local and/or remote memory"]
817 pub const SUM: Self = Self(0b100);
818 #[doc = "Each physical device presents from local memory"]
819 pub const LOCAL_MULTI_DEVICE: Self = Self(0b1000);
820}
821#[repr(transparent)]
822#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
823#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSwapchainCreateFlagBitsKHR.html>"]
824pub struct SwapchainCreateFlagsKHR(pub(crate) Flags);
825vk_bitflags_wrapped!(SwapchainCreateFlagsKHR, Flags);
826impl SwapchainCreateFlagsKHR {}
827#[repr(transparent)]
828#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
829#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSubpassDescriptionFlagBits.html>"]
830pub struct SubpassDescriptionFlags(pub(crate) Flags);
831vk_bitflags_wrapped!(SubpassDescriptionFlags, Flags);
832impl SubpassDescriptionFlags {}
833#[repr(transparent)]
834#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
835#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsMessageSeverityFlagBitsEXT.html>"]
836pub struct DebugUtilsMessageSeverityFlagsEXT(pub(crate) Flags);
837vk_bitflags_wrapped!(DebugUtilsMessageSeverityFlagsEXT, Flags);
838impl DebugUtilsMessageSeverityFlagsEXT {
839 pub const VERBOSE: Self = Self(0b1);
840 pub const INFO: Self = Self(0b1_0000);
841 pub const WARNING: Self = Self(0b1_0000_0000);
842 pub const ERROR: Self = Self(0b1_0000_0000_0000);
843}
844#[repr(transparent)]
845#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
846#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDebugUtilsMessageTypeFlagBitsEXT.html>"]
847pub struct DebugUtilsMessageTypeFlagsEXT(pub(crate) Flags);
848vk_bitflags_wrapped!(DebugUtilsMessageTypeFlagsEXT, Flags);
849impl DebugUtilsMessageTypeFlagsEXT {
850 pub const GENERAL: Self = Self(0b1);
851 pub const VALIDATION: Self = Self(0b10);
852 pub const PERFORMANCE: Self = Self(0b100);
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/VkDescriptorBindingFlagBits.html>"]
857pub struct DescriptorBindingFlags(pub(crate) Flags);
858vk_bitflags_wrapped!(DescriptorBindingFlags, Flags);
859impl DescriptorBindingFlags {
860 pub const UPDATE_AFTER_BIND: Self = Self(0b1);
861 pub const UPDATE_UNUSED_WHILE_PENDING: Self = Self(0b10);
862 pub const PARTIALLY_BOUND: Self = Self(0b100);
863 pub const VARIABLE_DESCRIPTOR_COUNT: Self = Self(0b1000);
864}
865#[repr(transparent)]
866#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
867#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkConditionalRenderingFlagBitsEXT.html>"]
868pub struct ConditionalRenderingFlagsEXT(pub(crate) Flags);
869vk_bitflags_wrapped!(ConditionalRenderingFlagsEXT, Flags);
870impl ConditionalRenderingFlagsEXT {
871 pub const INVERTED: Self = Self(0b1);
872}
873#[repr(transparent)]
874#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
875#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkResolveModeFlagBits.html>"]
876pub struct ResolveModeFlags(pub(crate) Flags);
877vk_bitflags_wrapped!(ResolveModeFlags, Flags);
878impl ResolveModeFlags {
879 pub const NONE: Self = Self(0);
880 pub const SAMPLE_ZERO: Self = Self(0b1);
881 pub const AVERAGE: Self = Self(0b10);
882 pub const MIN: Self = Self(0b100);
883 pub const MAX: Self = Self(0b1000);
884}
885#[repr(transparent)]
886#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
887#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGeometryInstanceFlagBitsKHR.html>"]
888pub struct GeometryInstanceFlagsKHR(pub(crate) Flags);
889vk_bitflags_wrapped!(GeometryInstanceFlagsKHR, Flags);
890impl GeometryInstanceFlagsKHR {
891 pub const TRIANGLE_FACING_CULL_DISABLE: Self = Self(0b1);
892 pub const TRIANGLE_FLIP_FACING: Self = Self(0b10);
893 pub const FORCE_OPAQUE: Self = Self(0b100);
894 pub const FORCE_NO_OPAQUE: Self = Self(0b1000);
895 pub const TRIANGLE_FRONT_COUNTERCLOCKWISE: Self = Self::TRIANGLE_FLIP_FACING;
896}
897#[repr(transparent)]
898#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
899#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGeometryFlagBitsKHR.html>"]
900pub struct GeometryFlagsKHR(pub(crate) Flags);
901vk_bitflags_wrapped!(GeometryFlagsKHR, Flags);
902impl GeometryFlagsKHR {
903 pub const OPAQUE: Self = Self(0b1);
904 pub const NO_DUPLICATE_ANY_HIT_INVOCATION: Self = Self(0b10);
905}
906#[repr(transparent)]
907#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
908#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBuildAccelerationStructureFlagBitsKHR.html>"]
909pub struct BuildAccelerationStructureFlagsKHR(pub(crate) Flags);
910vk_bitflags_wrapped!(BuildAccelerationStructureFlagsKHR, Flags);
911impl BuildAccelerationStructureFlagsKHR {
912 pub const ALLOW_UPDATE: Self = Self(0b1);
913 pub const ALLOW_COMPACTION: Self = Self(0b10);
914 pub const PREFER_FAST_TRACE: Self = Self(0b100);
915 pub const PREFER_FAST_BUILD: Self = Self(0b1000);
916 pub const LOW_MEMORY: Self = Self(0b1_0000);
917}
918#[repr(transparent)]
919#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
920#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureCreateFlagBitsKHR.html>"]
921pub struct AccelerationStructureCreateFlagsKHR(pub(crate) Flags);
922vk_bitflags_wrapped!(AccelerationStructureCreateFlagsKHR, Flags);
923impl AccelerationStructureCreateFlagsKHR {
924 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1);
925}
926#[repr(transparent)]
927#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
928#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFramebufferCreateFlagBits.html>"]
929pub struct FramebufferCreateFlags(pub(crate) Flags);
930vk_bitflags_wrapped!(FramebufferCreateFlags, Flags);
931impl FramebufferCreateFlags {}
932#[repr(transparent)]
933#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
934#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceDiagnosticsConfigFlagBitsNV.html>"]
935pub struct DeviceDiagnosticsConfigFlagsNV(pub(crate) Flags);
936vk_bitflags_wrapped!(DeviceDiagnosticsConfigFlagsNV, Flags);
937impl DeviceDiagnosticsConfigFlagsNV {
938 pub const ENABLE_SHADER_DEBUG_INFO: Self = Self(0b1);
939 pub const ENABLE_RESOURCE_TRACKING: Self = Self(0b10);
940 pub const ENABLE_AUTOMATIC_CHECKPOINTS: Self = Self(0b100);
941 pub const ENABLE_SHADER_ERROR_REPORTING: Self = Self(0b1000);
942}
943#[repr(transparent)]
944#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
945#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCreationFeedbackFlagBits.html>"]
946pub struct PipelineCreationFeedbackFlags(pub(crate) Flags);
947vk_bitflags_wrapped!(PipelineCreationFeedbackFlags, Flags);
948impl PipelineCreationFeedbackFlags {
949 pub const VALID: Self = Self(0b1);
950 pub const VALID_EXT: Self = Self::VALID;
951 pub const APPLICATION_PIPELINE_CACHE_HIT: Self = Self(0b10);
952 pub const APPLICATION_PIPELINE_CACHE_HIT_EXT: Self = Self::APPLICATION_PIPELINE_CACHE_HIT;
953 pub const BASE_PIPELINE_ACCELERATION: Self = Self(0b100);
954 pub const BASE_PIPELINE_ACCELERATION_EXT: Self = Self::BASE_PIPELINE_ACCELERATION;
955}
956#[repr(transparent)]
957#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
958#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryDecompressionMethodFlagBitsNV.html>"]
959pub struct MemoryDecompressionMethodFlagsNV(pub(crate) Flags64);
960vk_bitflags_wrapped!(MemoryDecompressionMethodFlagsNV, Flags64);
961impl MemoryDecompressionMethodFlagsNV {
962 pub const GDEFLATE_1_0: Self = Self(0b1);
963}
964#[repr(transparent)]
965#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
966#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterDescriptionFlagBitsKHR.html>"]
967pub struct PerformanceCounterDescriptionFlagsKHR(pub(crate) Flags);
968vk_bitflags_wrapped!(PerformanceCounterDescriptionFlagsKHR, Flags);
969impl PerformanceCounterDescriptionFlagsKHR {
970 pub const PERFORMANCE_IMPACTING: Self = Self(0b1);
971 pub const CONCURRENTLY_IMPACTED: Self = Self(0b10);
972}
973#[repr(transparent)]
974#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
975#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAcquireProfilingLockFlagBitsKHR.html>"]
976pub struct AcquireProfilingLockFlagsKHR(pub(crate) Flags);
977vk_bitflags_wrapped!(AcquireProfilingLockFlagsKHR, Flags);
978impl AcquireProfilingLockFlagsKHR {}
979#[repr(transparent)]
980#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
981#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderCorePropertiesFlagBitsAMD.html>"]
982pub struct ShaderCorePropertiesFlagsAMD(pub(crate) Flags);
983vk_bitflags_wrapped!(ShaderCorePropertiesFlagsAMD, Flags);
984impl ShaderCorePropertiesFlagsAMD {}
985#[repr(transparent)]
986#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
987#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderModuleCreateFlagBits.html>"]
988pub struct ShaderModuleCreateFlags(pub(crate) Flags);
989vk_bitflags_wrapped!(ShaderModuleCreateFlags, Flags);
990impl ShaderModuleCreateFlags {}
991#[repr(transparent)]
992#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
993#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineCompilerControlFlagBitsAMD.html>"]
994pub struct PipelineCompilerControlFlagsAMD(pub(crate) Flags);
995vk_bitflags_wrapped!(PipelineCompilerControlFlagsAMD, Flags);
996impl PipelineCompilerControlFlagsAMD {}
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/VkToolPurposeFlagBits.html>"]
1000pub struct ToolPurposeFlags(pub(crate) Flags);
1001vk_bitflags_wrapped!(ToolPurposeFlags, Flags);
1002impl ToolPurposeFlags {
1003 pub const VALIDATION: Self = Self(0b1);
1004 pub const VALIDATION_EXT: Self = Self::VALIDATION;
1005 pub const PROFILING: Self = Self(0b10);
1006 pub const PROFILING_EXT: Self = Self::PROFILING;
1007 pub const TRACING: Self = Self(0b100);
1008 pub const TRACING_EXT: Self = Self::TRACING;
1009 pub const ADDITIONAL_FEATURES: Self = Self(0b1000);
1010 pub const ADDITIONAL_FEATURES_EXT: Self = Self::ADDITIONAL_FEATURES;
1011 pub const MODIFYING_FEATURES: Self = Self(0b1_0000);
1012 pub const MODIFYING_FEATURES_EXT: Self = Self::MODIFYING_FEATURES;
1013}
1014#[repr(transparent)]
1015#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1016#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkAccessFlagBits2.html>"]
1017pub struct AccessFlags2(pub(crate) Flags64);
1018vk_bitflags_wrapped!(AccessFlags2, Flags64);
1019impl AccessFlags2 {
1020 pub const NONE: Self = Self(0);
1021 pub const NONE_KHR: Self = Self::NONE;
1022 pub const INDIRECT_COMMAND_READ: Self = Self(0b1);
1023 pub const INDIRECT_COMMAND_READ_KHR: Self = Self::INDIRECT_COMMAND_READ;
1024 pub const INDEX_READ: Self = Self(0b10);
1025 pub const INDEX_READ_KHR: Self = Self::INDEX_READ;
1026 pub const VERTEX_ATTRIBUTE_READ: Self = Self(0b100);
1027 pub const VERTEX_ATTRIBUTE_READ_KHR: Self = Self::VERTEX_ATTRIBUTE_READ;
1028 pub const UNIFORM_READ: Self = Self(0b1000);
1029 pub const UNIFORM_READ_KHR: Self = Self::UNIFORM_READ;
1030 pub const INPUT_ATTACHMENT_READ: Self = Self(0b1_0000);
1031 pub const INPUT_ATTACHMENT_READ_KHR: Self = Self::INPUT_ATTACHMENT_READ;
1032 pub const SHADER_READ: Self = Self(0b10_0000);
1033 pub const SHADER_READ_KHR: Self = Self::SHADER_READ;
1034 pub const SHADER_WRITE: Self = Self(0b100_0000);
1035 pub const SHADER_WRITE_KHR: Self = Self::SHADER_WRITE;
1036 pub const COLOR_ATTACHMENT_READ: Self = Self(0b1000_0000);
1037 pub const COLOR_ATTACHMENT_READ_KHR: Self = Self::COLOR_ATTACHMENT_READ;
1038 pub const COLOR_ATTACHMENT_WRITE: Self = Self(0b1_0000_0000);
1039 pub const COLOR_ATTACHMENT_WRITE_KHR: Self = Self::COLOR_ATTACHMENT_WRITE;
1040 pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(0b10_0000_0000);
1041 pub const DEPTH_STENCIL_ATTACHMENT_READ_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT_READ;
1042 pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(0b100_0000_0000);
1043 pub const DEPTH_STENCIL_ATTACHMENT_WRITE_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT_WRITE;
1044 pub const TRANSFER_READ: Self = Self(0b1000_0000_0000);
1045 pub const TRANSFER_READ_KHR: Self = Self::TRANSFER_READ;
1046 pub const TRANSFER_WRITE: Self = Self(0b1_0000_0000_0000);
1047 pub const TRANSFER_WRITE_KHR: Self = Self::TRANSFER_WRITE;
1048 pub const HOST_READ: Self = Self(0b10_0000_0000_0000);
1049 pub const HOST_READ_KHR: Self = Self::HOST_READ;
1050 pub const HOST_WRITE: Self = Self(0b100_0000_0000_0000);
1051 pub const HOST_WRITE_KHR: Self = Self::HOST_WRITE;
1052 pub const MEMORY_READ: Self = Self(0b1000_0000_0000_0000);
1053 pub const MEMORY_READ_KHR: Self = Self::MEMORY_READ;
1054 pub const MEMORY_WRITE: Self = Self(0b1_0000_0000_0000_0000);
1055 pub const MEMORY_WRITE_KHR: Self = Self::MEMORY_WRITE;
1056 pub const SHADER_SAMPLED_READ: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000);
1057 pub const SHADER_SAMPLED_READ_KHR: Self = Self::SHADER_SAMPLED_READ;
1058 pub const SHADER_STORAGE_READ: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000);
1059 pub const SHADER_STORAGE_READ_KHR: Self = Self::SHADER_STORAGE_READ;
1060 pub const SHADER_STORAGE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000);
1061 pub const SHADER_STORAGE_WRITE_KHR: Self = Self::SHADER_STORAGE_WRITE;
1062}
1063#[repr(transparent)]
1064#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1065#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineStageFlagBits2.html>"]
1066pub struct PipelineStageFlags2(pub(crate) Flags64);
1067vk_bitflags_wrapped!(PipelineStageFlags2, Flags64);
1068impl PipelineStageFlags2 {
1069 pub const NONE: Self = Self(0);
1070 pub const NONE_KHR: Self = Self::NONE;
1071 pub const TOP_OF_PIPE: Self = Self(0b1);
1072 pub const TOP_OF_PIPE_KHR: Self = Self::TOP_OF_PIPE;
1073 pub const DRAW_INDIRECT: Self = Self(0b10);
1074 pub const DRAW_INDIRECT_KHR: Self = Self::DRAW_INDIRECT;
1075 pub const VERTEX_INPUT: Self = Self(0b100);
1076 pub const VERTEX_INPUT_KHR: Self = Self::VERTEX_INPUT;
1077 pub const VERTEX_SHADER: Self = Self(0b1000);
1078 pub const VERTEX_SHADER_KHR: Self = Self::VERTEX_SHADER;
1079 pub const TESSELLATION_CONTROL_SHADER: Self = Self(0b1_0000);
1080 pub const TESSELLATION_CONTROL_SHADER_KHR: Self = Self::TESSELLATION_CONTROL_SHADER;
1081 pub const TESSELLATION_EVALUATION_SHADER: Self = Self(0b10_0000);
1082 pub const TESSELLATION_EVALUATION_SHADER_KHR: Self = Self::TESSELLATION_EVALUATION_SHADER;
1083 pub const GEOMETRY_SHADER: Self = Self(0b100_0000);
1084 pub const GEOMETRY_SHADER_KHR: Self = Self::GEOMETRY_SHADER;
1085 pub const FRAGMENT_SHADER: Self = Self(0b1000_0000);
1086 pub const FRAGMENT_SHADER_KHR: Self = Self::FRAGMENT_SHADER;
1087 pub const EARLY_FRAGMENT_TESTS: Self = Self(0b1_0000_0000);
1088 pub const EARLY_FRAGMENT_TESTS_KHR: Self = Self::EARLY_FRAGMENT_TESTS;
1089 pub const LATE_FRAGMENT_TESTS: Self = Self(0b10_0000_0000);
1090 pub const LATE_FRAGMENT_TESTS_KHR: Self = Self::LATE_FRAGMENT_TESTS;
1091 pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(0b100_0000_0000);
1092 pub const COLOR_ATTACHMENT_OUTPUT_KHR: Self = Self::COLOR_ATTACHMENT_OUTPUT;
1093 pub const COMPUTE_SHADER: Self = Self(0b1000_0000_0000);
1094 pub const COMPUTE_SHADER_KHR: Self = Self::COMPUTE_SHADER;
1095 pub const ALL_TRANSFER: Self = Self(0b1_0000_0000_0000);
1096 pub const ALL_TRANSFER_KHR: Self = Self::ALL_TRANSFER;
1097 pub const TRANSFER: Self = Self::ALL_TRANSFER_KHR;
1098 pub const TRANSFER_KHR: Self = Self::ALL_TRANSFER;
1099 pub const BOTTOM_OF_PIPE: Self = Self(0b10_0000_0000_0000);
1100 pub const BOTTOM_OF_PIPE_KHR: Self = Self::BOTTOM_OF_PIPE;
1101 pub const HOST: Self = Self(0b100_0000_0000_0000);
1102 pub const HOST_KHR: Self = Self::HOST;
1103 pub const ALL_GRAPHICS: Self = Self(0b1000_0000_0000_0000);
1104 pub const ALL_GRAPHICS_KHR: Self = Self::ALL_GRAPHICS;
1105 pub const ALL_COMMANDS: Self = Self(0b1_0000_0000_0000_0000);
1106 pub const ALL_COMMANDS_KHR: Self = Self::ALL_COMMANDS;
1107 pub const COPY: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000);
1108 pub const COPY_KHR: Self = Self::COPY;
1109 pub const RESOLVE: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000);
1110 pub const RESOLVE_KHR: Self = Self::RESOLVE;
1111 pub const BLIT: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000);
1112 pub const BLIT_KHR: Self = Self::BLIT;
1113 pub const CLEAR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
1114 pub const CLEAR_KHR: Self = Self::CLEAR;
1115 pub const INDEX_INPUT: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
1116 pub const INDEX_INPUT_KHR: Self = Self::INDEX_INPUT;
1117 pub const VERTEX_ATTRIBUTE_INPUT: Self =
1118 Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
1119 pub const VERTEX_ATTRIBUTE_INPUT_KHR: Self = Self::VERTEX_ATTRIBUTE_INPUT;
1120 pub const PRE_RASTERIZATION_SHADERS: Self =
1121 Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
1122 pub const PRE_RASTERIZATION_SHADERS_KHR: Self = Self::PRE_RASTERIZATION_SHADERS;
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 pub const PROTECTED_KHR: Self = Self::PROTECTED;
1132}
1133#[repr(transparent)]
1134#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1135#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkEventCreateFlagBits.html>"]
1136pub struct EventCreateFlags(pub(crate) Flags);
1137vk_bitflags_wrapped!(EventCreateFlags, Flags);
1138impl EventCreateFlags {}
1139#[repr(transparent)]
1140#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1141#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineLayoutCreateFlagBits.html>"]
1142pub struct PipelineLayoutCreateFlags(pub(crate) Flags);
1143vk_bitflags_wrapped!(PipelineLayoutCreateFlags, Flags);
1144impl PipelineLayoutCreateFlags {}
1145#[repr(transparent)]
1146#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1147#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineColorBlendStateCreateFlagBits.html>"]
1148pub struct PipelineColorBlendStateCreateFlags(pub(crate) Flags);
1149vk_bitflags_wrapped!(PipelineColorBlendStateCreateFlags, Flags);
1150impl PipelineColorBlendStateCreateFlags {}
1151#[repr(transparent)]
1152#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1153#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPipelineDepthStencilStateCreateFlagBits.html>"]
1154pub struct PipelineDepthStencilStateCreateFlags(pub(crate) Flags);
1155vk_bitflags_wrapped!(PipelineDepthStencilStateCreateFlags, Flags);
1156impl PipelineDepthStencilStateCreateFlags {}
1157#[repr(transparent)]
1158#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1159#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkGraphicsPipelineLibraryFlagBitsEXT.html>"]
1160pub struct GraphicsPipelineLibraryFlagsEXT(pub(crate) Flags);
1161vk_bitflags_wrapped!(GraphicsPipelineLibraryFlagsEXT, Flags);
1162impl GraphicsPipelineLibraryFlagsEXT {
1163 pub const VERTEX_INPUT_INTERFACE: Self = Self(0b1);
1164 pub const PRE_RASTERIZATION_SHADERS: Self = Self(0b10);
1165 pub const FRAGMENT_SHADER: Self = Self(0b100);
1166 pub const FRAGMENT_OUTPUT_INTERFACE: Self = Self(0b1000);
1167}
1168#[repr(transparent)]
1169#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1170#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkDeviceAddressBindingFlagBitsEXT.html>"]
1171pub struct DeviceAddressBindingFlagsEXT(pub(crate) Flags);
1172vk_bitflags_wrapped!(DeviceAddressBindingFlagsEXT, Flags);
1173impl DeviceAddressBindingFlagsEXT {
1174 pub const INTERNAL_OBJECT: Self = Self(0b1);
1175}
1176#[repr(transparent)]
1177#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1178#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFrameBoundaryFlagBitsEXT.html>"]
1179pub struct FrameBoundaryFlagsEXT(pub(crate) Flags);
1180vk_bitflags_wrapped!(FrameBoundaryFlagsEXT, Flags);
1181impl FrameBoundaryFlagsEXT {
1182 pub const FRAME_END: Self = Self(0b1);
1183}
1184#[repr(transparent)]
1185#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1186#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentScalingFlagBitsEXT.html>"]
1187pub struct PresentScalingFlagsEXT(pub(crate) Flags);
1188vk_bitflags_wrapped!(PresentScalingFlagsEXT, Flags);
1189impl PresentScalingFlagsEXT {
1190 pub const ONE_TO_ONE: Self = Self(0b1);
1191 pub const ASPECT_RATIO_STRETCH: Self = Self(0b10);
1192 pub const STRETCH: Self = Self(0b100);
1193}
1194#[repr(transparent)]
1195#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1196#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentGravityFlagBitsEXT.html>"]
1197pub struct PresentGravityFlagsEXT(pub(crate) Flags);
1198vk_bitflags_wrapped!(PresentGravityFlagsEXT, Flags);
1199impl PresentGravityFlagsEXT {
1200 pub const MIN: Self = Self(0b1);
1201 pub const MAX: Self = Self(0b10);
1202 pub const CENTERED: Self = Self(0b100);
1203}
1204#[repr(transparent)]
1205#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1206#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceSchedulingControlsFlagBitsARM.html>"]
1207pub struct PhysicalDeviceSchedulingControlsFlagsARM(pub(crate) Flags64);
1208vk_bitflags_wrapped!(PhysicalDeviceSchedulingControlsFlagsARM, Flags64);
1209impl PhysicalDeviceSchedulingControlsFlagsARM {
1210 pub const SHADER_CORE_COUNT: Self = Self(0b1);
1211}
1212#[repr(transparent)]
1213#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1214#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoCodecOperationFlagBitsKHR.html>"]
1215pub struct VideoCodecOperationFlagsKHR(pub(crate) Flags);
1216vk_bitflags_wrapped!(VideoCodecOperationFlagsKHR, Flags);
1217impl VideoCodecOperationFlagsKHR {
1218 pub const NONE: Self = Self(0);
1219}
1220#[repr(transparent)]
1221#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1222#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoChromaSubsamplingFlagBitsKHR.html>"]
1223pub struct VideoChromaSubsamplingFlagsKHR(pub(crate) Flags);
1224vk_bitflags_wrapped!(VideoChromaSubsamplingFlagsKHR, Flags);
1225impl VideoChromaSubsamplingFlagsKHR {
1226 pub const INVALID: Self = Self(0);
1227 pub const MONOCHROME: Self = Self(0b1);
1228 pub const TYPE_420: Self = Self(0b10);
1229 pub const TYPE_422: Self = Self(0b100);
1230 pub const TYPE_444: Self = Self(0b1000);
1231}
1232#[repr(transparent)]
1233#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1234#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoComponentBitDepthFlagBitsKHR.html>"]
1235pub struct VideoComponentBitDepthFlagsKHR(pub(crate) Flags);
1236vk_bitflags_wrapped!(VideoComponentBitDepthFlagsKHR, Flags);
1237impl VideoComponentBitDepthFlagsKHR {
1238 pub const INVALID: Self = Self(0);
1239 pub const TYPE_8: Self = Self(0b1);
1240 pub const TYPE_10: Self = Self(0b100);
1241 pub const TYPE_12: Self = Self(0b1_0000);
1242}
1243#[repr(transparent)]
1244#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1245#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoCapabilityFlagBitsKHR.html>"]
1246pub struct VideoCapabilityFlagsKHR(pub(crate) Flags);
1247vk_bitflags_wrapped!(VideoCapabilityFlagsKHR, Flags);
1248impl VideoCapabilityFlagsKHR {
1249 pub const PROTECTED_CONTENT: Self = Self(0b1);
1250 pub const SEPARATE_REFERENCE_IMAGES: Self = Self(0b10);
1251}
1252#[repr(transparent)]
1253#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1254#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoSessionCreateFlagBitsKHR.html>"]
1255pub struct VideoSessionCreateFlagsKHR(pub(crate) Flags);
1256vk_bitflags_wrapped!(VideoSessionCreateFlagsKHR, Flags);
1257impl VideoSessionCreateFlagsKHR {
1258 pub const PROTECTED_CONTENT: Self = Self(0b1);
1259}
1260#[repr(transparent)]
1261#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1262#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoDecodeH264PictureLayoutFlagBitsKHR.html>"]
1263pub struct VideoDecodeH264PictureLayoutFlagsKHR(pub(crate) Flags);
1264vk_bitflags_wrapped!(VideoDecodeH264PictureLayoutFlagsKHR, Flags);
1265impl VideoDecodeH264PictureLayoutFlagsKHR {
1266 pub const PROGRESSIVE: Self = Self(0);
1267 pub const INTERLACED_INTERLEAVED_LINES: Self = Self(0b1);
1268 pub const INTERLACED_SEPARATE_PLANES: Self = Self(0b10);
1269}
1270#[repr(transparent)]
1271#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1272#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoCodingControlFlagBitsKHR.html>"]
1273pub struct VideoCodingControlFlagsKHR(pub(crate) Flags);
1274vk_bitflags_wrapped!(VideoCodingControlFlagsKHR, Flags);
1275impl VideoCodingControlFlagsKHR {
1276 pub const RESET: Self = Self(0b1);
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/VkVideoDecodeUsageFlagBitsKHR.html>"]
1281pub struct VideoDecodeUsageFlagsKHR(pub(crate) Flags);
1282vk_bitflags_wrapped!(VideoDecodeUsageFlagsKHR, Flags);
1283impl VideoDecodeUsageFlagsKHR {
1284 pub const DEFAULT: Self = Self(0);
1285 pub const TRANSCODING: Self = Self(0b1);
1286 pub const OFFLINE: Self = Self(0b10);
1287 pub const STREAMING: Self = Self(0b100);
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/VkVideoDecodeCapabilityFlagBitsKHR.html>"]
1292pub struct VideoDecodeCapabilityFlagsKHR(pub(crate) Flags);
1293vk_bitflags_wrapped!(VideoDecodeCapabilityFlagsKHR, Flags);
1294impl VideoDecodeCapabilityFlagsKHR {
1295 pub const DPB_AND_OUTPUT_COINCIDE: Self = Self(0b1);
1296 pub const DPB_AND_OUTPUT_DISTINCT: 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/VkVideoEncodeFlagBitsKHR.html>"]
1301pub struct VideoEncodeFlagsKHR(pub(crate) Flags);
1302vk_bitflags_wrapped!(VideoEncodeFlagsKHR, Flags);
1303impl VideoEncodeFlagsKHR {}
1304#[repr(transparent)]
1305#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1306#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeUsageFlagBitsKHR.html>"]
1307pub struct VideoEncodeUsageFlagsKHR(pub(crate) Flags);
1308vk_bitflags_wrapped!(VideoEncodeUsageFlagsKHR, Flags);
1309impl VideoEncodeUsageFlagsKHR {
1310 pub const DEFAULT: Self = Self(0);
1311 pub const TRANSCODING: Self = Self(0b1);
1312 pub const STREAMING: Self = Self(0b10);
1313 pub const RECORDING: Self = Self(0b100);
1314 pub const CONFERENCING: Self = Self(0b1000);
1315}
1316#[repr(transparent)]
1317#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1318#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeContentFlagBitsKHR.html>"]
1319pub struct VideoEncodeContentFlagsKHR(pub(crate) Flags);
1320vk_bitflags_wrapped!(VideoEncodeContentFlagsKHR, Flags);
1321impl VideoEncodeContentFlagsKHR {
1322 pub const DEFAULT: Self = Self(0);
1323 pub const CAMERA: Self = Self(0b1);
1324 pub const DESKTOP: Self = Self(0b10);
1325 pub const RENDERED: Self = Self(0b100);
1326}
1327#[repr(transparent)]
1328#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1329#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeCapabilityFlagBitsKHR.html>"]
1330pub struct VideoEncodeCapabilityFlagsKHR(pub(crate) Flags);
1331vk_bitflags_wrapped!(VideoEncodeCapabilityFlagsKHR, Flags);
1332impl VideoEncodeCapabilityFlagsKHR {
1333 pub const PRECEDING_EXTERNALLY_ENCODED_BYTES: Self = Self(0b1);
1334 pub const INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION: Self = Self(0b10);
1335}
1336#[repr(transparent)]
1337#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1338#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeFeedbackFlagBitsKHR.html>"]
1339pub struct VideoEncodeFeedbackFlagsKHR(pub(crate) Flags);
1340vk_bitflags_wrapped!(VideoEncodeFeedbackFlagsKHR, Flags);
1341impl VideoEncodeFeedbackFlagsKHR {
1342 pub const BITSTREAM_BUFFER_OFFSET: Self = Self(0b1);
1343 pub const BITSTREAM_BYTES_WRITTEN: Self = Self(0b10);
1344 pub const BITSTREAM_HAS_OVERRIDES: Self = Self(0b100);
1345}
1346#[repr(transparent)]
1347#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1348#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeRateControlModeFlagBitsKHR.html>"]
1349pub struct VideoEncodeRateControlModeFlagsKHR(pub(crate) Flags);
1350vk_bitflags_wrapped!(VideoEncodeRateControlModeFlagsKHR, Flags);
1351impl VideoEncodeRateControlModeFlagsKHR {
1352 pub const DEFAULT: Self = Self(0);
1353 pub const DISABLED: Self = Self(0b1);
1354 pub const CBR: Self = Self(0b10);
1355 pub const VBR: Self = Self(0b100);
1356}
1357#[repr(transparent)]
1358#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1359#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264CapabilityFlagBitsKHR.html>"]
1360pub struct VideoEncodeH264CapabilityFlagsKHR(pub(crate) Flags);
1361vk_bitflags_wrapped!(VideoEncodeH264CapabilityFlagsKHR, Flags);
1362impl VideoEncodeH264CapabilityFlagsKHR {
1363 pub const HRD_COMPLIANCE: Self = Self(0b1);
1364 pub const PREDICTION_WEIGHT_TABLE_GENERATED: Self = Self(0b10);
1365 pub const ROW_UNALIGNED_SLICE: Self = Self(0b100);
1366 pub const DIFFERENT_SLICE_TYPE: Self = Self(0b1000);
1367 pub const B_FRAME_IN_L0_LIST: Self = Self(0b1_0000);
1368 pub const B_FRAME_IN_L1_LIST: Self = Self(0b10_0000);
1369 pub const PER_PICTURE_TYPE_MIN_MAX_QP: Self = Self(0b100_0000);
1370 pub const PER_SLICE_CONSTANT_QP: Self = Self(0b1000_0000);
1371 pub const GENERATE_PREFIX_NALU: Self = Self(0b1_0000_0000);
1372}
1373#[repr(transparent)]
1374#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1375#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264StdFlagBitsKHR.html>"]
1376pub struct VideoEncodeH264StdFlagsKHR(pub(crate) Flags);
1377vk_bitflags_wrapped!(VideoEncodeH264StdFlagsKHR, Flags);
1378impl VideoEncodeH264StdFlagsKHR {
1379 pub const SEPARATE_COLOR_PLANE_FLAG_SET: Self = Self(0b1);
1380 pub const QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET: Self = Self(0b10);
1381 pub const SCALING_MATRIX_PRESENT_FLAG_SET: Self = Self(0b100);
1382 pub const CHROMA_QP_INDEX_OFFSET: Self = Self(0b1000);
1383 pub const SECOND_CHROMA_QP_INDEX_OFFSET: Self = Self(0b1_0000);
1384 pub const PIC_INIT_QP_MINUS26: Self = Self(0b10_0000);
1385 pub const WEIGHTED_PRED_FLAG_SET: Self = Self(0b100_0000);
1386 pub const WEIGHTED_BIPRED_IDC_EXPLICIT: Self = Self(0b1000_0000);
1387 pub const WEIGHTED_BIPRED_IDC_IMPLICIT: Self = Self(0b1_0000_0000);
1388 pub const TRANSFORM_8X8_MODE_FLAG_SET: Self = Self(0b10_0000_0000);
1389 pub const DIRECT_SPATIAL_MV_PRED_FLAG_UNSET: Self = Self(0b100_0000_0000);
1390 pub const ENTROPY_CODING_MODE_FLAG_UNSET: Self = Self(0b1000_0000_0000);
1391 pub const ENTROPY_CODING_MODE_FLAG_SET: Self = Self(0b1_0000_0000_0000);
1392 pub const DIRECT_8X8_INFERENCE_FLAG_UNSET: Self = Self(0b10_0000_0000_0000);
1393 pub const CONSTRAINED_INTRA_PRED_FLAG_SET: Self = Self(0b100_0000_0000_0000);
1394 pub const DEBLOCKING_FILTER_DISABLED: Self = Self(0b1000_0000_0000_0000);
1395 pub const DEBLOCKING_FILTER_ENABLED: Self = Self(0b1_0000_0000_0000_0000);
1396 pub const DEBLOCKING_FILTER_PARTIAL: Self = Self(0b10_0000_0000_0000_0000);
1397 pub const SLICE_QP_DELTA: Self = Self(0b1000_0000_0000_0000_0000);
1398 pub const DIFFERENT_SLICE_QP_DELTA: Self = Self(0b1_0000_0000_0000_0000_0000);
1399}
1400#[repr(transparent)]
1401#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1402#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264RateControlFlagBitsKHR.html>"]
1403pub struct VideoEncodeH264RateControlFlagsKHR(pub(crate) Flags);
1404vk_bitflags_wrapped!(VideoEncodeH264RateControlFlagsKHR, Flags);
1405impl VideoEncodeH264RateControlFlagsKHR {
1406 pub const ATTEMPT_HRD_COMPLIANCE: Self = Self(0b1);
1407 pub const REGULAR_GOP: Self = Self(0b10);
1408 pub const REFERENCE_PATTERN_FLAT: Self = Self(0b100);
1409 pub const REFERENCE_PATTERN_DYADIC: Self = Self(0b1000);
1410 pub const TEMPORAL_LAYER_PATTERN_DYADIC: Self = Self(0b1_0000);
1411}
1412#[repr(transparent)]
1413#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1414#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkHostImageCopyFlagBitsEXT.html>"]
1415pub struct HostImageCopyFlagsEXT(pub(crate) Flags);
1416vk_bitflags_wrapped!(HostImageCopyFlagsEXT, Flags);
1417impl HostImageCopyFlagsEXT {
1418 pub const MEMCPY: Self = Self(0b1);
1419}
1420#[repr(transparent)]
1421#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1422#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageFormatConstraintsFlagBitsFUCHSIA.html>"]
1423pub struct ImageFormatConstraintsFlagsFUCHSIA(pub(crate) Flags);
1424vk_bitflags_wrapped!(ImageFormatConstraintsFlagsFUCHSIA, Flags);
1425impl ImageFormatConstraintsFlagsFUCHSIA {}
1426#[repr(transparent)]
1427#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1428#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageConstraintsInfoFlagBitsFUCHSIA.html>"]
1429pub struct ImageConstraintsInfoFlagsFUCHSIA(pub(crate) Flags);
1430vk_bitflags_wrapped!(ImageConstraintsInfoFlagsFUCHSIA, Flags);
1431impl ImageConstraintsInfoFlagsFUCHSIA {
1432 pub const CPU_READ_RARELY: Self = Self(0b1);
1433 pub const CPU_READ_OFTEN: Self = Self(0b10);
1434 pub const CPU_WRITE_RARELY: Self = Self(0b100);
1435 pub const CPU_WRITE_OFTEN: Self = Self(0b1000);
1436 pub const PROTECTED_OPTIONAL: Self = Self(0b1_0000);
1437}
1438#[repr(transparent)]
1439#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1440#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkFormatFeatureFlagBits2.html>"]
1441pub struct FormatFeatureFlags2(pub(crate) Flags64);
1442vk_bitflags_wrapped!(FormatFeatureFlags2, Flags64);
1443impl FormatFeatureFlags2 {
1444 pub const SAMPLED_IMAGE: Self = Self(0b1);
1445 pub const SAMPLED_IMAGE_KHR: Self = Self::SAMPLED_IMAGE;
1446 pub const STORAGE_IMAGE: Self = Self(0b10);
1447 pub const STORAGE_IMAGE_KHR: Self = Self::STORAGE_IMAGE;
1448 pub const STORAGE_IMAGE_ATOMIC: Self = Self(0b100);
1449 pub const STORAGE_IMAGE_ATOMIC_KHR: Self = Self::STORAGE_IMAGE_ATOMIC;
1450 pub const UNIFORM_TEXEL_BUFFER: Self = Self(0b1000);
1451 pub const UNIFORM_TEXEL_BUFFER_KHR: Self = Self::UNIFORM_TEXEL_BUFFER;
1452 pub const STORAGE_TEXEL_BUFFER: Self = Self(0b1_0000);
1453 pub const STORAGE_TEXEL_BUFFER_KHR: Self = Self::STORAGE_TEXEL_BUFFER;
1454 pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(0b10_0000);
1455 pub const STORAGE_TEXEL_BUFFER_ATOMIC_KHR: Self = Self::STORAGE_TEXEL_BUFFER_ATOMIC;
1456 pub const VERTEX_BUFFER: Self = Self(0b100_0000);
1457 pub const VERTEX_BUFFER_KHR: Self = Self::VERTEX_BUFFER;
1458 pub const COLOR_ATTACHMENT: Self = Self(0b1000_0000);
1459 pub const COLOR_ATTACHMENT_KHR: Self = Self::COLOR_ATTACHMENT;
1460 pub const COLOR_ATTACHMENT_BLEND: Self = Self(0b1_0000_0000);
1461 pub const COLOR_ATTACHMENT_BLEND_KHR: Self = Self::COLOR_ATTACHMENT_BLEND;
1462 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(0b10_0000_0000);
1463 pub const DEPTH_STENCIL_ATTACHMENT_KHR: Self = Self::DEPTH_STENCIL_ATTACHMENT;
1464 pub const BLIT_SRC: Self = Self(0b100_0000_0000);
1465 pub const BLIT_SRC_KHR: Self = Self::BLIT_SRC;
1466 pub const BLIT_DST: Self = Self(0b1000_0000_0000);
1467 pub const BLIT_DST_KHR: Self = Self::BLIT_DST;
1468 pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(0b1_0000_0000_0000);
1469 pub const SAMPLED_IMAGE_FILTER_LINEAR_KHR: Self = Self::SAMPLED_IMAGE_FILTER_LINEAR;
1470 pub const SAMPLED_IMAGE_FILTER_CUBIC: Self = Self(0b10_0000_0000_0000);
1471 pub const SAMPLED_IMAGE_FILTER_CUBIC_EXT: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC;
1472 pub const TRANSFER_SRC: Self = Self(0b100_0000_0000_0000);
1473 pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC;
1474 pub const TRANSFER_DST: Self = Self(0b1000_0000_0000_0000);
1475 pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST;
1476 pub const SAMPLED_IMAGE_FILTER_MINMAX: Self = Self(0b1_0000_0000_0000_0000);
1477 pub const SAMPLED_IMAGE_FILTER_MINMAX_KHR: Self = Self::SAMPLED_IMAGE_FILTER_MINMAX;
1478 pub const MIDPOINT_CHROMA_SAMPLES: Self = Self(0b10_0000_0000_0000_0000);
1479 pub const MIDPOINT_CHROMA_SAMPLES_KHR: Self = Self::MIDPOINT_CHROMA_SAMPLES;
1480 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER: Self = Self(0b100_0000_0000_0000_0000);
1481 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR: Self =
1482 Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER;
1483 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER: Self =
1484 Self(0b1000_0000_0000_0000_0000);
1485 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR: Self =
1486 Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER;
1487 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT: Self =
1488 Self(0b1_0000_0000_0000_0000_0000);
1489 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR: Self =
1490 Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT;
1491 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE: Self =
1492 Self(0b10_0000_0000_0000_0000_0000);
1493 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR: Self =
1494 Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE;
1495 pub const DISJOINT: Self = Self(0b100_0000_0000_0000_0000_0000);
1496 pub const DISJOINT_KHR: Self = Self::DISJOINT;
1497 pub const COSITED_CHROMA_SAMPLES: Self = Self(0b1000_0000_0000_0000_0000_0000);
1498 pub const COSITED_CHROMA_SAMPLES_KHR: Self = Self::COSITED_CHROMA_SAMPLES;
1499 pub const STORAGE_READ_WITHOUT_FORMAT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000);
1500 pub const STORAGE_READ_WITHOUT_FORMAT_KHR: Self = Self::STORAGE_READ_WITHOUT_FORMAT;
1501 pub const STORAGE_WRITE_WITHOUT_FORMAT: Self =
1502 Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000);
1503 pub const STORAGE_WRITE_WITHOUT_FORMAT_KHR: Self = Self::STORAGE_WRITE_WITHOUT_FORMAT;
1504 pub const SAMPLED_IMAGE_DEPTH_COMPARISON: Self =
1505 Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000);
1506 pub const SAMPLED_IMAGE_DEPTH_COMPARISON_KHR: Self = Self::SAMPLED_IMAGE_DEPTH_COMPARISON;
1507}
1508#[repr(transparent)]
1509#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1510#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkRenderingFlagBits.html>"]
1511pub struct RenderingFlags(pub(crate) Flags);
1512vk_bitflags_wrapped!(RenderingFlags, Flags);
1513impl RenderingFlags {
1514 pub const CONTENTS_SECONDARY_COMMAND_BUFFERS: Self = Self(0b1);
1515 pub const CONTENTS_SECONDARY_COMMAND_BUFFERS_KHR: Self =
1516 Self::CONTENTS_SECONDARY_COMMAND_BUFFERS;
1517 pub const SUSPENDING: Self = Self(0b10);
1518 pub const SUSPENDING_KHR: Self = Self::SUSPENDING;
1519 pub const RESUMING: Self = Self(0b100);
1520 pub const RESUMING_KHR: Self = Self::RESUMING;
1521}
1522#[repr(transparent)]
1523#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1524#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265CapabilityFlagBitsKHR.html>"]
1525pub struct VideoEncodeH265CapabilityFlagsKHR(pub(crate) Flags);
1526vk_bitflags_wrapped!(VideoEncodeH265CapabilityFlagsKHR, Flags);
1527impl VideoEncodeH265CapabilityFlagsKHR {
1528 pub const HRD_COMPLIANCE: Self = Self(0b1);
1529 pub const PREDICTION_WEIGHT_TABLE_GENERATED: Self = Self(0b10);
1530 pub const ROW_UNALIGNED_SLICE_SEGMENT: Self = Self(0b100);
1531 pub const DIFFERENT_SLICE_SEGMENT_TYPE: Self = Self(0b1000);
1532 pub const B_FRAME_IN_L0_LIST: Self = Self(0b1_0000);
1533 pub const B_FRAME_IN_L1_LIST: Self = Self(0b10_0000);
1534 pub const PER_PICTURE_TYPE_MIN_MAX_QP: Self = Self(0b100_0000);
1535 pub const PER_SLICE_SEGMENT_CONSTANT_QP: Self = Self(0b1000_0000);
1536 pub const MULTIPLE_TILES_PER_SLICE_SEGMENT: Self = Self(0b1_0000_0000);
1537 pub const MULTIPLE_SLICE_SEGMENTS_PER_TILE: Self = Self(0b10_0000_0000);
1538}
1539#[repr(transparent)]
1540#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1541#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265StdFlagBitsKHR.html>"]
1542pub struct VideoEncodeH265StdFlagsKHR(pub(crate) Flags);
1543vk_bitflags_wrapped!(VideoEncodeH265StdFlagsKHR, Flags);
1544impl VideoEncodeH265StdFlagsKHR {
1545 pub const SEPARATE_COLOR_PLANE_FLAG_SET: Self = Self(0b1);
1546 pub const SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET: Self = Self(0b10);
1547 pub const SCALING_LIST_DATA_PRESENT_FLAG_SET: Self = Self(0b100);
1548 pub const PCM_ENABLED_FLAG_SET: Self = Self(0b1000);
1549 pub const SPS_TEMPORAL_MVP_ENABLED_FLAG_SET: Self = Self(0b1_0000);
1550 pub const INIT_QP_MINUS26: Self = Self(0b10_0000);
1551 pub const WEIGHTED_PRED_FLAG_SET: Self = Self(0b100_0000);
1552 pub const WEIGHTED_BIPRED_FLAG_SET: Self = Self(0b1000_0000);
1553 pub const LOG2_PARALLEL_MERGE_LEVEL_MINUS2: Self = Self(0b1_0000_0000);
1554 pub const SIGN_DATA_HIDING_ENABLED_FLAG_SET: Self = Self(0b10_0000_0000);
1555 pub const TRANSFORM_SKIP_ENABLED_FLAG_SET: Self = Self(0b100_0000_0000);
1556 pub const TRANSFORM_SKIP_ENABLED_FLAG_UNSET: Self = Self(0b1000_0000_0000);
1557 pub const PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET: Self = Self(0b1_0000_0000_0000);
1558 pub const TRANSQUANT_BYPASS_ENABLED_FLAG_SET: Self = Self(0b10_0000_0000_0000);
1559 pub const CONSTRAINED_INTRA_PRED_FLAG_SET: Self = Self(0b100_0000_0000_0000);
1560 pub const ENTROPY_CODING_SYNC_ENABLED_FLAG_SET: Self = Self(0b1000_0000_0000_0000);
1561 pub const DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET: Self = Self(0b1_0000_0000_0000_0000);
1562 pub const DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET: Self = Self(0b10_0000_0000_0000_0000);
1563 pub const DEPENDENT_SLICE_SEGMENT_FLAG_SET: Self = Self(0b100_0000_0000_0000_0000);
1564 pub const SLICE_QP_DELTA: Self = Self(0b1000_0000_0000_0000_0000);
1565 pub const DIFFERENT_SLICE_QP_DELTA: Self = Self(0b1_0000_0000_0000_0000_0000);
1566}
1567#[repr(transparent)]
1568#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1569#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265RateControlFlagBitsKHR.html>"]
1570pub struct VideoEncodeH265RateControlFlagsKHR(pub(crate) Flags);
1571vk_bitflags_wrapped!(VideoEncodeH265RateControlFlagsKHR, Flags);
1572impl VideoEncodeH265RateControlFlagsKHR {
1573 pub const ATTEMPT_HRD_COMPLIANCE: Self = Self(0b1);
1574 pub const REGULAR_GOP: Self = Self(0b10);
1575 pub const REFERENCE_PATTERN_FLAT: Self = Self(0b100);
1576 pub const REFERENCE_PATTERN_DYADIC: Self = Self(0b1000);
1577 pub const TEMPORAL_SUB_LAYER_PATTERN_DYADIC: Self = Self(0b1_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/VkVideoEncodeH265CtbSizeFlagBitsKHR.html>"]
1582pub struct VideoEncodeH265CtbSizeFlagsKHR(pub(crate) Flags);
1583vk_bitflags_wrapped!(VideoEncodeH265CtbSizeFlagsKHR, Flags);
1584impl VideoEncodeH265CtbSizeFlagsKHR {
1585 pub const TYPE_16: Self = Self(0b1);
1586 pub const TYPE_32: Self = Self(0b10);
1587 pub const TYPE_64: Self = Self(0b100);
1588}
1589#[repr(transparent)]
1590#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1591#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265TransformBlockSizeFlagBitsKHR.html>"]
1592pub struct VideoEncodeH265TransformBlockSizeFlagsKHR(pub(crate) Flags);
1593vk_bitflags_wrapped!(VideoEncodeH265TransformBlockSizeFlagsKHR, Flags);
1594impl VideoEncodeH265TransformBlockSizeFlagsKHR {
1595 pub const TYPE_4: Self = Self(0b1);
1596 pub const TYPE_8: Self = Self(0b10);
1597 pub const TYPE_16: Self = Self(0b100);
1598 pub const TYPE_32: Self = Self(0b1000);
1599}
1600#[repr(transparent)]
1601#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1602#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExportMetalObjectTypeFlagBitsEXT.html>"]
1603pub struct ExportMetalObjectTypeFlagsEXT(pub(crate) Flags);
1604vk_bitflags_wrapped!(ExportMetalObjectTypeFlagsEXT, Flags);
1605impl ExportMetalObjectTypeFlagsEXT {
1606 pub const METAL_DEVICE: Self = Self(0b1);
1607 pub const METAL_COMMAND_QUEUE: Self = Self(0b10);
1608 pub const METAL_BUFFER: Self = Self(0b100);
1609 pub const METAL_TEXTURE: Self = Self(0b1000);
1610 pub const METAL_IOSURFACE: Self = Self(0b1_0000);
1611 pub const METAL_SHARED_EVENT: Self = Self(0b10_0000);
1612}
1613#[repr(transparent)]
1614#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1615#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkInstanceCreateFlagBits.html>"]
1616pub struct InstanceCreateFlags(pub(crate) Flags);
1617vk_bitflags_wrapped!(InstanceCreateFlags, Flags);
1618impl InstanceCreateFlags {}
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/VkImageCompressionFlagBitsEXT.html>"]
1622pub struct ImageCompressionFlagsEXT(pub(crate) Flags);
1623vk_bitflags_wrapped!(ImageCompressionFlagsEXT, Flags);
1624impl ImageCompressionFlagsEXT {
1625 pub const DEFAULT: Self = Self(0);
1626 pub const FIXED_RATE_DEFAULT: Self = Self(0b1);
1627 pub const FIXED_RATE_EXPLICIT: Self = Self(0b10);
1628 pub const DISABLED: Self = Self(0b100);
1629}
1630#[repr(transparent)]
1631#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1632#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkImageCompressionFixedRateFlagBitsEXT.html>"]
1633pub struct ImageCompressionFixedRateFlagsEXT(pub(crate) Flags);
1634vk_bitflags_wrapped!(ImageCompressionFixedRateFlagsEXT, Flags);
1635impl ImageCompressionFixedRateFlagsEXT {
1636 pub const NONE: Self = Self(0);
1637 pub const TYPE_1BPC: Self = Self(0b1);
1638 pub const TYPE_2BPC: Self = Self(0b10);
1639 pub const TYPE_3BPC: Self = Self(0b100);
1640 pub const TYPE_4BPC: Self = Self(0b1000);
1641 pub const TYPE_5BPC: Self = Self(0b1_0000);
1642 pub const TYPE_6BPC: Self = Self(0b10_0000);
1643 pub const TYPE_7BPC: Self = Self(0b100_0000);
1644 pub const TYPE_8BPC: Self = Self(0b1000_0000);
1645 pub const TYPE_9BPC: Self = Self(0b1_0000_0000);
1646 pub const TYPE_10BPC: Self = Self(0b10_0000_0000);
1647 pub const TYPE_11BPC: Self = Self(0b100_0000_0000);
1648 pub const TYPE_12BPC: Self = Self(0b1000_0000_0000);
1649 pub const TYPE_13BPC: Self = Self(0b1_0000_0000_0000);
1650 pub const TYPE_14BPC: Self = Self(0b10_0000_0000_0000);
1651 pub const TYPE_15BPC: Self = Self(0b100_0000_0000_0000);
1652 pub const TYPE_16BPC: Self = Self(0b1000_0000_0000_0000);
1653 pub const TYPE_17BPC: Self = Self(0b1_0000_0000_0000_0000);
1654 pub const TYPE_18BPC: Self = Self(0b10_0000_0000_0000_0000);
1655 pub const TYPE_19BPC: Self = Self(0b100_0000_0000_0000_0000);
1656 pub const TYPE_20BPC: Self = Self(0b1000_0000_0000_0000_0000);
1657 pub const TYPE_21BPC: Self = Self(0b1_0000_0000_0000_0000_0000);
1658 pub const TYPE_22BPC: Self = Self(0b10_0000_0000_0000_0000_0000);
1659 pub const TYPE_23BPC: Self = Self(0b100_0000_0000_0000_0000_0000);
1660 pub const TYPE_24BPC: Self = Self(0b1000_0000_0000_0000_0000_0000);
1661}
1662#[repr(transparent)]
1663#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1664#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowGridSizeFlagBitsNV.html>"]
1665pub struct OpticalFlowGridSizeFlagsNV(pub(crate) Flags);
1666vk_bitflags_wrapped!(OpticalFlowGridSizeFlagsNV, Flags);
1667impl OpticalFlowGridSizeFlagsNV {
1668 pub const UNKNOWN: Self = Self(0);
1669 pub const TYPE_1X1: Self = Self(0b1);
1670 pub const TYPE_2X2: Self = Self(0b10);
1671 pub const TYPE_4X4: Self = Self(0b100);
1672 pub const TYPE_8X8: 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/VkOpticalFlowUsageFlagBitsNV.html>"]
1677pub struct OpticalFlowUsageFlagsNV(pub(crate) Flags);
1678vk_bitflags_wrapped!(OpticalFlowUsageFlagsNV, Flags);
1679impl OpticalFlowUsageFlagsNV {
1680 pub const UNKNOWN: Self = Self(0);
1681 pub const INPUT: Self = Self(0b1);
1682 pub const OUTPUT: Self = Self(0b10);
1683 pub const HINT: Self = Self(0b100);
1684 pub const COST: Self = Self(0b1000);
1685 pub const GLOBAL_FLOW: Self = Self(0b1_0000);
1686}
1687#[repr(transparent)]
1688#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1689#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionCreateFlagBitsNV.html>"]
1690pub struct OpticalFlowSessionCreateFlagsNV(pub(crate) Flags);
1691vk_bitflags_wrapped!(OpticalFlowSessionCreateFlagsNV, Flags);
1692impl OpticalFlowSessionCreateFlagsNV {
1693 pub const ENABLE_HINT: Self = Self(0b1);
1694 pub const ENABLE_COST: Self = Self(0b10);
1695 pub const ENABLE_GLOBAL_FLOW: Self = Self(0b100);
1696 pub const ALLOW_REGIONS: Self = Self(0b1000);
1697 pub const BOTH_DIRECTIONS: Self = Self(0b1_0000);
1698}
1699#[repr(transparent)]
1700#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1701#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowExecuteFlagBitsNV.html>"]
1702pub struct OpticalFlowExecuteFlagsNV(pub(crate) Flags);
1703vk_bitflags_wrapped!(OpticalFlowExecuteFlagsNV, Flags);
1704impl OpticalFlowExecuteFlagsNV {
1705 pub const DISABLE_TEMPORAL_HINTS: Self = Self(0b1);
1706}
1707#[repr(transparent)]
1708#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1709#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkBuildMicromapFlagBitsEXT.html>"]
1710pub struct BuildMicromapFlagsEXT(pub(crate) Flags);
1711vk_bitflags_wrapped!(BuildMicromapFlagsEXT, Flags);
1712impl BuildMicromapFlagsEXT {
1713 pub const PREFER_FAST_TRACE: Self = Self(0b1);
1714 pub const PREFER_FAST_BUILD: Self = Self(0b10);
1715 pub const ALLOW_COMPACTION: Self = Self(0b100);
1716}
1717#[repr(transparent)]
1718#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1719#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMicromapCreateFlagBitsEXT.html>"]
1720pub struct MicromapCreateFlagsEXT(pub(crate) Flags);
1721vk_bitflags_wrapped!(MicromapCreateFlagsEXT, Flags);
1722impl MicromapCreateFlagsEXT {
1723 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(0b1);
1724}
1725#[repr(transparent)]
1726#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1727#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkShaderCreateFlagBitsEXT.html>"]
1728pub struct ShaderCreateFlagsEXT(pub(crate) Flags);
1729vk_bitflags_wrapped!(ShaderCreateFlagsEXT, Flags);
1730impl ShaderCreateFlagsEXT {
1731 pub const LINK_STAGE: Self = Self(0b1);
1732}
1733#[repr(transparent)]
1734#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
1735#[doc = "<https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkMemoryUnmapFlagBitsKHR.html>"]
1736pub struct MemoryUnmapFlagsKHR(pub(crate) Flags);
1737vk_bitflags_wrapped!(MemoryUnmapFlagsKHR, Flags);
1738impl MemoryUnmapFlagsKHR {}