ash/vk/
const_debugs.rs

1use crate::prelude::debug_flags;
2use crate::vk::bitflags::*;
3use crate::vk::definitions::*;
4use crate::vk::enums::*;
5use core::fmt;
6impl fmt::Debug for AccelerationStructureBuildTypeKHR {
7    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8        let name = match *self {
9            Self::HOST => Some("HOST"),
10            Self::DEVICE => Some("DEVICE"),
11            Self::HOST_OR_DEVICE => Some("HOST_OR_DEVICE"),
12            _ => None,
13        };
14        if let Some(x) = name {
15            f.write_str(x)
16        } else {
17            self.0.fmt(f)
18        }
19    }
20}
21impl fmt::Debug for AccelerationStructureCompatibilityKHR {
22    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
23        let name = match *self {
24            Self::COMPATIBLE => Some("COMPATIBLE"),
25            Self::INCOMPATIBLE => Some("INCOMPATIBLE"),
26            _ => None,
27        };
28        if let Some(x) = name {
29            f.write_str(x)
30        } else {
31            self.0.fmt(f)
32        }
33    }
34}
35impl fmt::Debug for AccelerationStructureCreateFlagsKHR {
36    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
37        const KNOWN: &[(Flags, &str)] = &[
38            (
39                AccelerationStructureCreateFlagsKHR::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
40                "DEVICE_ADDRESS_CAPTURE_REPLAY",
41            ),
42            (
43                AccelerationStructureCreateFlagsKHR::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
44                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
45            ),
46            (
47                AccelerationStructureCreateFlagsKHR::MOTION_NV.0,
48                "MOTION_NV",
49            ),
50        ];
51        debug_flags(f, KNOWN, self.0)
52    }
53}
54impl fmt::Debug for AccelerationStructureMemoryRequirementsTypeNV {
55    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
56        let name = match *self {
57            Self::OBJECT => Some("OBJECT"),
58            Self::BUILD_SCRATCH => Some("BUILD_SCRATCH"),
59            Self::UPDATE_SCRATCH => Some("UPDATE_SCRATCH"),
60            _ => None,
61        };
62        if let Some(x) = name {
63            f.write_str(x)
64        } else {
65            self.0.fmt(f)
66        }
67    }
68}
69impl fmt::Debug for AccelerationStructureMotionInfoFlagsNV {
70    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
71        const KNOWN: &[(Flags, &str)] = &[];
72        debug_flags(f, KNOWN, self.0)
73    }
74}
75impl fmt::Debug for AccelerationStructureMotionInstanceFlagsNV {
76    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
77        const KNOWN: &[(Flags, &str)] = &[];
78        debug_flags(f, KNOWN, self.0)
79    }
80}
81impl fmt::Debug for AccelerationStructureMotionInstanceTypeNV {
82    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
83        let name = match *self {
84            Self::STATIC => Some("STATIC"),
85            Self::MATRIX_MOTION => Some("MATRIX_MOTION"),
86            Self::SRT_MOTION => Some("SRT_MOTION"),
87            _ => None,
88        };
89        if let Some(x) = name {
90            f.write_str(x)
91        } else {
92            self.0.fmt(f)
93        }
94    }
95}
96impl fmt::Debug for AccelerationStructureTypeKHR {
97    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
98        let name = match *self {
99            Self::TOP_LEVEL => Some("TOP_LEVEL"),
100            Self::BOTTOM_LEVEL => Some("BOTTOM_LEVEL"),
101            Self::GENERIC => Some("GENERIC"),
102            _ => None,
103        };
104        if let Some(x) = name {
105            f.write_str(x)
106        } else {
107            self.0.fmt(f)
108        }
109    }
110}
111impl fmt::Debug for AccessFlags {
112    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
113        const KNOWN: &[(Flags, &str)] = &[
114            (
115                AccessFlags::INDIRECT_COMMAND_READ.0,
116                "INDIRECT_COMMAND_READ",
117            ),
118            (AccessFlags::INDEX_READ.0, "INDEX_READ"),
119            (
120                AccessFlags::VERTEX_ATTRIBUTE_READ.0,
121                "VERTEX_ATTRIBUTE_READ",
122            ),
123            (AccessFlags::UNIFORM_READ.0, "UNIFORM_READ"),
124            (
125                AccessFlags::INPUT_ATTACHMENT_READ.0,
126                "INPUT_ATTACHMENT_READ",
127            ),
128            (AccessFlags::SHADER_READ.0, "SHADER_READ"),
129            (AccessFlags::SHADER_WRITE.0, "SHADER_WRITE"),
130            (
131                AccessFlags::COLOR_ATTACHMENT_READ.0,
132                "COLOR_ATTACHMENT_READ",
133            ),
134            (
135                AccessFlags::COLOR_ATTACHMENT_WRITE.0,
136                "COLOR_ATTACHMENT_WRITE",
137            ),
138            (
139                AccessFlags::DEPTH_STENCIL_ATTACHMENT_READ.0,
140                "DEPTH_STENCIL_ATTACHMENT_READ",
141            ),
142            (
143                AccessFlags::DEPTH_STENCIL_ATTACHMENT_WRITE.0,
144                "DEPTH_STENCIL_ATTACHMENT_WRITE",
145            ),
146            (AccessFlags::TRANSFER_READ.0, "TRANSFER_READ"),
147            (AccessFlags::TRANSFER_WRITE.0, "TRANSFER_WRITE"),
148            (AccessFlags::HOST_READ.0, "HOST_READ"),
149            (AccessFlags::HOST_WRITE.0, "HOST_WRITE"),
150            (AccessFlags::MEMORY_READ.0, "MEMORY_READ"),
151            (AccessFlags::MEMORY_WRITE.0, "MEMORY_WRITE"),
152            (
153                AccessFlags::TRANSFORM_FEEDBACK_WRITE_EXT.0,
154                "TRANSFORM_FEEDBACK_WRITE_EXT",
155            ),
156            (
157                AccessFlags::TRANSFORM_FEEDBACK_COUNTER_READ_EXT.0,
158                "TRANSFORM_FEEDBACK_COUNTER_READ_EXT",
159            ),
160            (
161                AccessFlags::TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT.0,
162                "TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT",
163            ),
164            (
165                AccessFlags::CONDITIONAL_RENDERING_READ_EXT.0,
166                "CONDITIONAL_RENDERING_READ_EXT",
167            ),
168            (
169                AccessFlags::COLOR_ATTACHMENT_READ_NONCOHERENT_EXT.0,
170                "COLOR_ATTACHMENT_READ_NONCOHERENT_EXT",
171            ),
172            (
173                AccessFlags::ACCELERATION_STRUCTURE_READ_KHR.0,
174                "ACCELERATION_STRUCTURE_READ_KHR",
175            ),
176            (
177                AccessFlags::ACCELERATION_STRUCTURE_WRITE_KHR.0,
178                "ACCELERATION_STRUCTURE_WRITE_KHR",
179            ),
180            (
181                AccessFlags::FRAGMENT_DENSITY_MAP_READ_EXT.0,
182                "FRAGMENT_DENSITY_MAP_READ_EXT",
183            ),
184            (
185                AccessFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR.0,
186                "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR",
187            ),
188            (
189                AccessFlags::COMMAND_PREPROCESS_READ_NV.0,
190                "COMMAND_PREPROCESS_READ_NV",
191            ),
192            (
193                AccessFlags::COMMAND_PREPROCESS_WRITE_NV.0,
194                "COMMAND_PREPROCESS_WRITE_NV",
195            ),
196            (AccessFlags::NONE.0, "NONE"),
197        ];
198        debug_flags(f, KNOWN, self.0)
199    }
200}
201impl fmt::Debug for AccessFlags2 {
202    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
203        const KNOWN: &[(Flags64, &str)] = &[
204            (AccessFlags2::NONE.0, "NONE"),
205            (
206                AccessFlags2::INDIRECT_COMMAND_READ.0,
207                "INDIRECT_COMMAND_READ",
208            ),
209            (AccessFlags2::INDEX_READ.0, "INDEX_READ"),
210            (
211                AccessFlags2::VERTEX_ATTRIBUTE_READ.0,
212                "VERTEX_ATTRIBUTE_READ",
213            ),
214            (AccessFlags2::UNIFORM_READ.0, "UNIFORM_READ"),
215            (
216                AccessFlags2::INPUT_ATTACHMENT_READ.0,
217                "INPUT_ATTACHMENT_READ",
218            ),
219            (AccessFlags2::SHADER_READ.0, "SHADER_READ"),
220            (AccessFlags2::SHADER_WRITE.0, "SHADER_WRITE"),
221            (
222                AccessFlags2::COLOR_ATTACHMENT_READ.0,
223                "COLOR_ATTACHMENT_READ",
224            ),
225            (
226                AccessFlags2::COLOR_ATTACHMENT_WRITE.0,
227                "COLOR_ATTACHMENT_WRITE",
228            ),
229            (
230                AccessFlags2::DEPTH_STENCIL_ATTACHMENT_READ.0,
231                "DEPTH_STENCIL_ATTACHMENT_READ",
232            ),
233            (
234                AccessFlags2::DEPTH_STENCIL_ATTACHMENT_WRITE.0,
235                "DEPTH_STENCIL_ATTACHMENT_WRITE",
236            ),
237            (AccessFlags2::TRANSFER_READ.0, "TRANSFER_READ"),
238            (AccessFlags2::TRANSFER_WRITE.0, "TRANSFER_WRITE"),
239            (AccessFlags2::HOST_READ.0, "HOST_READ"),
240            (AccessFlags2::HOST_WRITE.0, "HOST_WRITE"),
241            (AccessFlags2::MEMORY_READ.0, "MEMORY_READ"),
242            (AccessFlags2::MEMORY_WRITE.0, "MEMORY_WRITE"),
243            (AccessFlags2::SHADER_SAMPLED_READ.0, "SHADER_SAMPLED_READ"),
244            (AccessFlags2::SHADER_STORAGE_READ.0, "SHADER_STORAGE_READ"),
245            (AccessFlags2::SHADER_STORAGE_WRITE.0, "SHADER_STORAGE_WRITE"),
246            (
247                AccessFlags2::VIDEO_DECODE_READ_KHR.0,
248                "VIDEO_DECODE_READ_KHR",
249            ),
250            (
251                AccessFlags2::VIDEO_DECODE_WRITE_KHR.0,
252                "VIDEO_DECODE_WRITE_KHR",
253            ),
254            (
255                AccessFlags2::VIDEO_ENCODE_READ_KHR.0,
256                "VIDEO_ENCODE_READ_KHR",
257            ),
258            (
259                AccessFlags2::VIDEO_ENCODE_WRITE_KHR.0,
260                "VIDEO_ENCODE_WRITE_KHR",
261            ),
262            (
263                AccessFlags2::TRANSFORM_FEEDBACK_WRITE_EXT.0,
264                "TRANSFORM_FEEDBACK_WRITE_EXT",
265            ),
266            (
267                AccessFlags2::TRANSFORM_FEEDBACK_COUNTER_READ_EXT.0,
268                "TRANSFORM_FEEDBACK_COUNTER_READ_EXT",
269            ),
270            (
271                AccessFlags2::TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT.0,
272                "TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT",
273            ),
274            (
275                AccessFlags2::CONDITIONAL_RENDERING_READ_EXT.0,
276                "CONDITIONAL_RENDERING_READ_EXT",
277            ),
278            (
279                AccessFlags2::COMMAND_PREPROCESS_READ_NV.0,
280                "COMMAND_PREPROCESS_READ_NV",
281            ),
282            (
283                AccessFlags2::COMMAND_PREPROCESS_WRITE_NV.0,
284                "COMMAND_PREPROCESS_WRITE_NV",
285            ),
286            (
287                AccessFlags2::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR.0,
288                "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR",
289            ),
290            (
291                AccessFlags2::ACCELERATION_STRUCTURE_READ_KHR.0,
292                "ACCELERATION_STRUCTURE_READ_KHR",
293            ),
294            (
295                AccessFlags2::ACCELERATION_STRUCTURE_WRITE_KHR.0,
296                "ACCELERATION_STRUCTURE_WRITE_KHR",
297            ),
298            (
299                AccessFlags2::FRAGMENT_DENSITY_MAP_READ_EXT.0,
300                "FRAGMENT_DENSITY_MAP_READ_EXT",
301            ),
302            (
303                AccessFlags2::COLOR_ATTACHMENT_READ_NONCOHERENT_EXT.0,
304                "COLOR_ATTACHMENT_READ_NONCOHERENT_EXT",
305            ),
306            (
307                AccessFlags2::DESCRIPTOR_BUFFER_READ_EXT.0,
308                "DESCRIPTOR_BUFFER_READ_EXT",
309            ),
310            (
311                AccessFlags2::INVOCATION_MASK_READ_HUAWEI.0,
312                "INVOCATION_MASK_READ_HUAWEI",
313            ),
314            (
315                AccessFlags2::SHADER_BINDING_TABLE_READ_KHR.0,
316                "SHADER_BINDING_TABLE_READ_KHR",
317            ),
318            (AccessFlags2::MICROMAP_READ_EXT.0, "MICROMAP_READ_EXT"),
319            (AccessFlags2::MICROMAP_WRITE_EXT.0, "MICROMAP_WRITE_EXT"),
320            (AccessFlags2::OPTICAL_FLOW_READ_NV.0, "OPTICAL_FLOW_READ_NV"),
321            (
322                AccessFlags2::OPTICAL_FLOW_WRITE_NV.0,
323                "OPTICAL_FLOW_WRITE_NV",
324            ),
325        ];
326        debug_flags(f, KNOWN, self.0)
327    }
328}
329impl fmt::Debug for AcquireProfilingLockFlagsKHR {
330    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
331        const KNOWN: &[(Flags, &str)] = &[];
332        debug_flags(f, KNOWN, self.0)
333    }
334}
335impl fmt::Debug for AndroidSurfaceCreateFlagsKHR {
336    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
337        const KNOWN: &[(Flags, &str)] = &[];
338        debug_flags(f, KNOWN, self.0)
339    }
340}
341impl fmt::Debug for AttachmentDescriptionFlags {
342    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
343        const KNOWN: &[(Flags, &str)] = &[(AttachmentDescriptionFlags::MAY_ALIAS.0, "MAY_ALIAS")];
344        debug_flags(f, KNOWN, self.0)
345    }
346}
347impl fmt::Debug for AttachmentLoadOp {
348    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
349        let name = match *self {
350            Self::LOAD => Some("LOAD"),
351            Self::CLEAR => Some("CLEAR"),
352            Self::DONT_CARE => Some("DONT_CARE"),
353            Self::NONE_KHR => Some("NONE_KHR"),
354            _ => None,
355        };
356        if let Some(x) = name {
357            f.write_str(x)
358        } else {
359            self.0.fmt(f)
360        }
361    }
362}
363impl fmt::Debug for AttachmentStoreOp {
364    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
365        let name = match *self {
366            Self::STORE => Some("STORE"),
367            Self::DONT_CARE => Some("DONT_CARE"),
368            Self::NONE => Some("NONE"),
369            _ => None,
370        };
371        if let Some(x) = name {
372            f.write_str(x)
373        } else {
374            self.0.fmt(f)
375        }
376    }
377}
378impl fmt::Debug for BlendFactor {
379    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
380        let name = match *self {
381            Self::ZERO => Some("ZERO"),
382            Self::ONE => Some("ONE"),
383            Self::SRC_COLOR => Some("SRC_COLOR"),
384            Self::ONE_MINUS_SRC_COLOR => Some("ONE_MINUS_SRC_COLOR"),
385            Self::DST_COLOR => Some("DST_COLOR"),
386            Self::ONE_MINUS_DST_COLOR => Some("ONE_MINUS_DST_COLOR"),
387            Self::SRC_ALPHA => Some("SRC_ALPHA"),
388            Self::ONE_MINUS_SRC_ALPHA => Some("ONE_MINUS_SRC_ALPHA"),
389            Self::DST_ALPHA => Some("DST_ALPHA"),
390            Self::ONE_MINUS_DST_ALPHA => Some("ONE_MINUS_DST_ALPHA"),
391            Self::CONSTANT_COLOR => Some("CONSTANT_COLOR"),
392            Self::ONE_MINUS_CONSTANT_COLOR => Some("ONE_MINUS_CONSTANT_COLOR"),
393            Self::CONSTANT_ALPHA => Some("CONSTANT_ALPHA"),
394            Self::ONE_MINUS_CONSTANT_ALPHA => Some("ONE_MINUS_CONSTANT_ALPHA"),
395            Self::SRC_ALPHA_SATURATE => Some("SRC_ALPHA_SATURATE"),
396            Self::SRC1_COLOR => Some("SRC1_COLOR"),
397            Self::ONE_MINUS_SRC1_COLOR => Some("ONE_MINUS_SRC1_COLOR"),
398            Self::SRC1_ALPHA => Some("SRC1_ALPHA"),
399            Self::ONE_MINUS_SRC1_ALPHA => Some("ONE_MINUS_SRC1_ALPHA"),
400            _ => None,
401        };
402        if let Some(x) = name {
403            f.write_str(x)
404        } else {
405            self.0.fmt(f)
406        }
407    }
408}
409impl fmt::Debug for BlendOp {
410    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
411        let name = match *self {
412            Self::ADD => Some("ADD"),
413            Self::SUBTRACT => Some("SUBTRACT"),
414            Self::REVERSE_SUBTRACT => Some("REVERSE_SUBTRACT"),
415            Self::MIN => Some("MIN"),
416            Self::MAX => Some("MAX"),
417            Self::ZERO_EXT => Some("ZERO_EXT"),
418            Self::SRC_EXT => Some("SRC_EXT"),
419            Self::DST_EXT => Some("DST_EXT"),
420            Self::SRC_OVER_EXT => Some("SRC_OVER_EXT"),
421            Self::DST_OVER_EXT => Some("DST_OVER_EXT"),
422            Self::SRC_IN_EXT => Some("SRC_IN_EXT"),
423            Self::DST_IN_EXT => Some("DST_IN_EXT"),
424            Self::SRC_OUT_EXT => Some("SRC_OUT_EXT"),
425            Self::DST_OUT_EXT => Some("DST_OUT_EXT"),
426            Self::SRC_ATOP_EXT => Some("SRC_ATOP_EXT"),
427            Self::DST_ATOP_EXT => Some("DST_ATOP_EXT"),
428            Self::XOR_EXT => Some("XOR_EXT"),
429            Self::MULTIPLY_EXT => Some("MULTIPLY_EXT"),
430            Self::SCREEN_EXT => Some("SCREEN_EXT"),
431            Self::OVERLAY_EXT => Some("OVERLAY_EXT"),
432            Self::DARKEN_EXT => Some("DARKEN_EXT"),
433            Self::LIGHTEN_EXT => Some("LIGHTEN_EXT"),
434            Self::COLORDODGE_EXT => Some("COLORDODGE_EXT"),
435            Self::COLORBURN_EXT => Some("COLORBURN_EXT"),
436            Self::HARDLIGHT_EXT => Some("HARDLIGHT_EXT"),
437            Self::SOFTLIGHT_EXT => Some("SOFTLIGHT_EXT"),
438            Self::DIFFERENCE_EXT => Some("DIFFERENCE_EXT"),
439            Self::EXCLUSION_EXT => Some("EXCLUSION_EXT"),
440            Self::INVERT_EXT => Some("INVERT_EXT"),
441            Self::INVERT_RGB_EXT => Some("INVERT_RGB_EXT"),
442            Self::LINEARDODGE_EXT => Some("LINEARDODGE_EXT"),
443            Self::LINEARBURN_EXT => Some("LINEARBURN_EXT"),
444            Self::VIVIDLIGHT_EXT => Some("VIVIDLIGHT_EXT"),
445            Self::LINEARLIGHT_EXT => Some("LINEARLIGHT_EXT"),
446            Self::PINLIGHT_EXT => Some("PINLIGHT_EXT"),
447            Self::HARDMIX_EXT => Some("HARDMIX_EXT"),
448            Self::HSL_HUE_EXT => Some("HSL_HUE_EXT"),
449            Self::HSL_SATURATION_EXT => Some("HSL_SATURATION_EXT"),
450            Self::HSL_COLOR_EXT => Some("HSL_COLOR_EXT"),
451            Self::HSL_LUMINOSITY_EXT => Some("HSL_LUMINOSITY_EXT"),
452            Self::PLUS_EXT => Some("PLUS_EXT"),
453            Self::PLUS_CLAMPED_EXT => Some("PLUS_CLAMPED_EXT"),
454            Self::PLUS_CLAMPED_ALPHA_EXT => Some("PLUS_CLAMPED_ALPHA_EXT"),
455            Self::PLUS_DARKER_EXT => Some("PLUS_DARKER_EXT"),
456            Self::MINUS_EXT => Some("MINUS_EXT"),
457            Self::MINUS_CLAMPED_EXT => Some("MINUS_CLAMPED_EXT"),
458            Self::CONTRAST_EXT => Some("CONTRAST_EXT"),
459            Self::INVERT_OVG_EXT => Some("INVERT_OVG_EXT"),
460            Self::RED_EXT => Some("RED_EXT"),
461            Self::GREEN_EXT => Some("GREEN_EXT"),
462            Self::BLUE_EXT => Some("BLUE_EXT"),
463            _ => None,
464        };
465        if let Some(x) = name {
466            f.write_str(x)
467        } else {
468            self.0.fmt(f)
469        }
470    }
471}
472impl fmt::Debug for BlendOverlapEXT {
473    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
474        let name = match *self {
475            Self::UNCORRELATED => Some("UNCORRELATED"),
476            Self::DISJOINT => Some("DISJOINT"),
477            Self::CONJOINT => Some("CONJOINT"),
478            _ => None,
479        };
480        if let Some(x) = name {
481            f.write_str(x)
482        } else {
483            self.0.fmt(f)
484        }
485    }
486}
487impl fmt::Debug for BlockMatchWindowCompareModeQCOM {
488    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
489        let name = match *self {
490            Self::MIN => Some("MIN"),
491            Self::MAX => Some("MAX"),
492            _ => None,
493        };
494        if let Some(x) = name {
495            f.write_str(x)
496        } else {
497            self.0.fmt(f)
498        }
499    }
500}
501impl fmt::Debug for BorderColor {
502    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
503        let name = match *self {
504            Self::FLOAT_TRANSPARENT_BLACK => Some("FLOAT_TRANSPARENT_BLACK"),
505            Self::INT_TRANSPARENT_BLACK => Some("INT_TRANSPARENT_BLACK"),
506            Self::FLOAT_OPAQUE_BLACK => Some("FLOAT_OPAQUE_BLACK"),
507            Self::INT_OPAQUE_BLACK => Some("INT_OPAQUE_BLACK"),
508            Self::FLOAT_OPAQUE_WHITE => Some("FLOAT_OPAQUE_WHITE"),
509            Self::INT_OPAQUE_WHITE => Some("INT_OPAQUE_WHITE"),
510            Self::FLOAT_CUSTOM_EXT => Some("FLOAT_CUSTOM_EXT"),
511            Self::INT_CUSTOM_EXT => Some("INT_CUSTOM_EXT"),
512            _ => None,
513        };
514        if let Some(x) = name {
515            f.write_str(x)
516        } else {
517            self.0.fmt(f)
518        }
519    }
520}
521impl fmt::Debug for BufferCreateFlags {
522    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
523        const KNOWN: &[(Flags, &str)] = &[
524            (BufferCreateFlags::SPARSE_BINDING.0, "SPARSE_BINDING"),
525            (BufferCreateFlags::SPARSE_RESIDENCY.0, "SPARSE_RESIDENCY"),
526            (BufferCreateFlags::SPARSE_ALIASED.0, "SPARSE_ALIASED"),
527            (
528                BufferCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
529                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
530            ),
531            (
532                BufferCreateFlags::VIDEO_PROFILE_INDEPENDENT_KHR.0,
533                "VIDEO_PROFILE_INDEPENDENT_KHR",
534            ),
535            (BufferCreateFlags::PROTECTED.0, "PROTECTED"),
536            (
537                BufferCreateFlags::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
538                "DEVICE_ADDRESS_CAPTURE_REPLAY",
539            ),
540        ];
541        debug_flags(f, KNOWN, self.0)
542    }
543}
544impl fmt::Debug for BufferUsageFlags {
545    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
546        const KNOWN: &[(Flags, &str)] = &[
547            (BufferUsageFlags::TRANSFER_SRC.0, "TRANSFER_SRC"),
548            (BufferUsageFlags::TRANSFER_DST.0, "TRANSFER_DST"),
549            (
550                BufferUsageFlags::UNIFORM_TEXEL_BUFFER.0,
551                "UNIFORM_TEXEL_BUFFER",
552            ),
553            (
554                BufferUsageFlags::STORAGE_TEXEL_BUFFER.0,
555                "STORAGE_TEXEL_BUFFER",
556            ),
557            (BufferUsageFlags::UNIFORM_BUFFER.0, "UNIFORM_BUFFER"),
558            (BufferUsageFlags::STORAGE_BUFFER.0, "STORAGE_BUFFER"),
559            (BufferUsageFlags::INDEX_BUFFER.0, "INDEX_BUFFER"),
560            (BufferUsageFlags::VERTEX_BUFFER.0, "VERTEX_BUFFER"),
561            (BufferUsageFlags::INDIRECT_BUFFER.0, "INDIRECT_BUFFER"),
562            (
563                BufferUsageFlags::VIDEO_DECODE_SRC_KHR.0,
564                "VIDEO_DECODE_SRC_KHR",
565            ),
566            (
567                BufferUsageFlags::VIDEO_DECODE_DST_KHR.0,
568                "VIDEO_DECODE_DST_KHR",
569            ),
570            (
571                BufferUsageFlags::TRANSFORM_FEEDBACK_BUFFER_EXT.0,
572                "TRANSFORM_FEEDBACK_BUFFER_EXT",
573            ),
574            (
575                BufferUsageFlags::TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT.0,
576                "TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT",
577            ),
578            (
579                BufferUsageFlags::CONDITIONAL_RENDERING_EXT.0,
580                "CONDITIONAL_RENDERING_EXT",
581            ),
582            (
583                BufferUsageFlags::EXECUTION_GRAPH_SCRATCH_AMDX.0,
584                "EXECUTION_GRAPH_SCRATCH_AMDX",
585            ),
586            (
587                BufferUsageFlags::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR.0,
588                "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR",
589            ),
590            (
591                BufferUsageFlags::ACCELERATION_STRUCTURE_STORAGE_KHR.0,
592                "ACCELERATION_STRUCTURE_STORAGE_KHR",
593            ),
594            (
595                BufferUsageFlags::SHADER_BINDING_TABLE_KHR.0,
596                "SHADER_BINDING_TABLE_KHR",
597            ),
598            (
599                BufferUsageFlags::VIDEO_ENCODE_DST_KHR.0,
600                "VIDEO_ENCODE_DST_KHR",
601            ),
602            (
603                BufferUsageFlags::VIDEO_ENCODE_SRC_KHR.0,
604                "VIDEO_ENCODE_SRC_KHR",
605            ),
606            (
607                BufferUsageFlags::SAMPLER_DESCRIPTOR_BUFFER_EXT.0,
608                "SAMPLER_DESCRIPTOR_BUFFER_EXT",
609            ),
610            (
611                BufferUsageFlags::RESOURCE_DESCRIPTOR_BUFFER_EXT.0,
612                "RESOURCE_DESCRIPTOR_BUFFER_EXT",
613            ),
614            (
615                BufferUsageFlags::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT.0,
616                "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT",
617            ),
618            (
619                BufferUsageFlags::MICROMAP_BUILD_INPUT_READ_ONLY_EXT.0,
620                "MICROMAP_BUILD_INPUT_READ_ONLY_EXT",
621            ),
622            (
623                BufferUsageFlags::MICROMAP_STORAGE_EXT.0,
624                "MICROMAP_STORAGE_EXT",
625            ),
626            (
627                BufferUsageFlags::SHADER_DEVICE_ADDRESS.0,
628                "SHADER_DEVICE_ADDRESS",
629            ),
630        ];
631        debug_flags(f, KNOWN, self.0)
632    }
633}
634impl fmt::Debug for BufferUsageFlags2KHR {
635    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
636        const KNOWN: &[(Flags64, &str)] = &[
637            (BufferUsageFlags2KHR::TRANSFER_SRC.0, "TRANSFER_SRC"),
638            (BufferUsageFlags2KHR::TRANSFER_DST.0, "TRANSFER_DST"),
639            (
640                BufferUsageFlags2KHR::UNIFORM_TEXEL_BUFFER.0,
641                "UNIFORM_TEXEL_BUFFER",
642            ),
643            (
644                BufferUsageFlags2KHR::STORAGE_TEXEL_BUFFER.0,
645                "STORAGE_TEXEL_BUFFER",
646            ),
647            (BufferUsageFlags2KHR::UNIFORM_BUFFER.0, "UNIFORM_BUFFER"),
648            (BufferUsageFlags2KHR::STORAGE_BUFFER.0, "STORAGE_BUFFER"),
649            (BufferUsageFlags2KHR::INDEX_BUFFER.0, "INDEX_BUFFER"),
650            (BufferUsageFlags2KHR::VERTEX_BUFFER.0, "VERTEX_BUFFER"),
651            (BufferUsageFlags2KHR::INDIRECT_BUFFER.0, "INDIRECT_BUFFER"),
652            (
653                BufferUsageFlags2KHR::EXECUTION_GRAPH_SCRATCH_AMDX.0,
654                "EXECUTION_GRAPH_SCRATCH_AMDX",
655            ),
656            (
657                BufferUsageFlags2KHR::CONDITIONAL_RENDERING_EXT.0,
658                "CONDITIONAL_RENDERING_EXT",
659            ),
660            (
661                BufferUsageFlags2KHR::SHADER_BINDING_TABLE.0,
662                "SHADER_BINDING_TABLE",
663            ),
664            (
665                BufferUsageFlags2KHR::TRANSFORM_FEEDBACK_BUFFER_EXT.0,
666                "TRANSFORM_FEEDBACK_BUFFER_EXT",
667            ),
668            (
669                BufferUsageFlags2KHR::TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT.0,
670                "TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT",
671            ),
672            (BufferUsageFlags2KHR::VIDEO_DECODE_SRC.0, "VIDEO_DECODE_SRC"),
673            (BufferUsageFlags2KHR::VIDEO_DECODE_DST.0, "VIDEO_DECODE_DST"),
674            (BufferUsageFlags2KHR::VIDEO_ENCODE_DST.0, "VIDEO_ENCODE_DST"),
675            (BufferUsageFlags2KHR::VIDEO_ENCODE_SRC.0, "VIDEO_ENCODE_SRC"),
676            (
677                BufferUsageFlags2KHR::SHADER_DEVICE_ADDRESS.0,
678                "SHADER_DEVICE_ADDRESS",
679            ),
680            (
681                BufferUsageFlags2KHR::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY.0,
682                "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY",
683            ),
684            (
685                BufferUsageFlags2KHR::ACCELERATION_STRUCTURE_STORAGE.0,
686                "ACCELERATION_STRUCTURE_STORAGE",
687            ),
688            (
689                BufferUsageFlags2KHR::SAMPLER_DESCRIPTOR_BUFFER_EXT.0,
690                "SAMPLER_DESCRIPTOR_BUFFER_EXT",
691            ),
692            (
693                BufferUsageFlags2KHR::RESOURCE_DESCRIPTOR_BUFFER_EXT.0,
694                "RESOURCE_DESCRIPTOR_BUFFER_EXT",
695            ),
696            (
697                BufferUsageFlags2KHR::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT.0,
698                "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT",
699            ),
700            (
701                BufferUsageFlags2KHR::MICROMAP_BUILD_INPUT_READ_ONLY_EXT.0,
702                "MICROMAP_BUILD_INPUT_READ_ONLY_EXT",
703            ),
704            (
705                BufferUsageFlags2KHR::MICROMAP_STORAGE_EXT.0,
706                "MICROMAP_STORAGE_EXT",
707            ),
708        ];
709        debug_flags(f, KNOWN, self.0)
710    }
711}
712impl fmt::Debug for BufferViewCreateFlags {
713    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
714        const KNOWN: &[(Flags, &str)] = &[];
715        debug_flags(f, KNOWN, self.0)
716    }
717}
718impl fmt::Debug for BuildAccelerationStructureFlagsKHR {
719    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
720        const KNOWN: &[(Flags, &str)] = &[
721            (
722                BuildAccelerationStructureFlagsKHR::ALLOW_UPDATE.0,
723                "ALLOW_UPDATE",
724            ),
725            (
726                BuildAccelerationStructureFlagsKHR::ALLOW_COMPACTION.0,
727                "ALLOW_COMPACTION",
728            ),
729            (
730                BuildAccelerationStructureFlagsKHR::PREFER_FAST_TRACE.0,
731                "PREFER_FAST_TRACE",
732            ),
733            (
734                BuildAccelerationStructureFlagsKHR::PREFER_FAST_BUILD.0,
735                "PREFER_FAST_BUILD",
736            ),
737            (
738                BuildAccelerationStructureFlagsKHR::LOW_MEMORY.0,
739                "LOW_MEMORY",
740            ),
741            (BuildAccelerationStructureFlagsKHR::MOTION_NV.0, "MOTION_NV"),
742            (
743                BuildAccelerationStructureFlagsKHR::ALLOW_OPACITY_MICROMAP_UPDATE_EXT.0,
744                "ALLOW_OPACITY_MICROMAP_UPDATE_EXT",
745            ),
746            (
747                BuildAccelerationStructureFlagsKHR::ALLOW_DISABLE_OPACITY_MICROMAPS_EXT.0,
748                "ALLOW_DISABLE_OPACITY_MICROMAPS_EXT",
749            ),
750            (
751                BuildAccelerationStructureFlagsKHR::ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT.0,
752                "ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT",
753            ),
754            (
755                BuildAccelerationStructureFlagsKHR::ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV.0,
756                "ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV",
757            ),
758            (
759                BuildAccelerationStructureFlagsKHR::ALLOW_DATA_ACCESS.0,
760                "ALLOW_DATA_ACCESS",
761            ),
762        ];
763        debug_flags(f, KNOWN, self.0)
764    }
765}
766impl fmt::Debug for BuildAccelerationStructureModeKHR {
767    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
768        let name = match *self {
769            Self::BUILD => Some("BUILD"),
770            Self::UPDATE => Some("UPDATE"),
771            _ => None,
772        };
773        if let Some(x) = name {
774            f.write_str(x)
775        } else {
776            self.0.fmt(f)
777        }
778    }
779}
780impl fmt::Debug for BuildMicromapFlagsEXT {
781    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
782        const KNOWN: &[(Flags, &str)] = &[
783            (
784                BuildMicromapFlagsEXT::PREFER_FAST_TRACE.0,
785                "PREFER_FAST_TRACE",
786            ),
787            (
788                BuildMicromapFlagsEXT::PREFER_FAST_BUILD.0,
789                "PREFER_FAST_BUILD",
790            ),
791            (
792                BuildMicromapFlagsEXT::ALLOW_COMPACTION.0,
793                "ALLOW_COMPACTION",
794            ),
795        ];
796        debug_flags(f, KNOWN, self.0)
797    }
798}
799impl fmt::Debug for BuildMicromapModeEXT {
800    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
801        let name = match *self {
802            Self::BUILD => Some("BUILD"),
803            _ => None,
804        };
805        if let Some(x) = name {
806            f.write_str(x)
807        } else {
808            self.0.fmt(f)
809        }
810    }
811}
812impl fmt::Debug for ChromaLocation {
813    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
814        let name = match *self {
815            Self::COSITED_EVEN => Some("COSITED_EVEN"),
816            Self::MIDPOINT => Some("MIDPOINT"),
817            _ => None,
818        };
819        if let Some(x) = name {
820            f.write_str(x)
821        } else {
822            self.0.fmt(f)
823        }
824    }
825}
826impl fmt::Debug for CoarseSampleOrderTypeNV {
827    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
828        let name = match *self {
829            Self::DEFAULT => Some("DEFAULT"),
830            Self::CUSTOM => Some("CUSTOM"),
831            Self::PIXEL_MAJOR => Some("PIXEL_MAJOR"),
832            Self::SAMPLE_MAJOR => Some("SAMPLE_MAJOR"),
833            _ => None,
834        };
835        if let Some(x) = name {
836            f.write_str(x)
837        } else {
838            self.0.fmt(f)
839        }
840    }
841}
842impl fmt::Debug for ColorComponentFlags {
843    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
844        const KNOWN: &[(Flags, &str)] = &[
845            (ColorComponentFlags::R.0, "R"),
846            (ColorComponentFlags::G.0, "G"),
847            (ColorComponentFlags::B.0, "B"),
848            (ColorComponentFlags::A.0, "A"),
849        ];
850        debug_flags(f, KNOWN, self.0)
851    }
852}
853impl fmt::Debug for ColorSpaceKHR {
854    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
855        let name = match *self {
856            Self::SRGB_NONLINEAR => Some("SRGB_NONLINEAR"),
857            Self::DISPLAY_P3_NONLINEAR_EXT => Some("DISPLAY_P3_NONLINEAR_EXT"),
858            Self::EXTENDED_SRGB_LINEAR_EXT => Some("EXTENDED_SRGB_LINEAR_EXT"),
859            Self::DISPLAY_P3_LINEAR_EXT => Some("DISPLAY_P3_LINEAR_EXT"),
860            Self::DCI_P3_NONLINEAR_EXT => Some("DCI_P3_NONLINEAR_EXT"),
861            Self::BT709_LINEAR_EXT => Some("BT709_LINEAR_EXT"),
862            Self::BT709_NONLINEAR_EXT => Some("BT709_NONLINEAR_EXT"),
863            Self::BT2020_LINEAR_EXT => Some("BT2020_LINEAR_EXT"),
864            Self::HDR10_ST2084_EXT => Some("HDR10_ST2084_EXT"),
865            Self::DOLBYVISION_EXT => Some("DOLBYVISION_EXT"),
866            Self::HDR10_HLG_EXT => Some("HDR10_HLG_EXT"),
867            Self::ADOBERGB_LINEAR_EXT => Some("ADOBERGB_LINEAR_EXT"),
868            Self::ADOBERGB_NONLINEAR_EXT => Some("ADOBERGB_NONLINEAR_EXT"),
869            Self::PASS_THROUGH_EXT => Some("PASS_THROUGH_EXT"),
870            Self::EXTENDED_SRGB_NONLINEAR_EXT => Some("EXTENDED_SRGB_NONLINEAR_EXT"),
871            Self::DISPLAY_NATIVE_AMD => Some("DISPLAY_NATIVE_AMD"),
872            _ => None,
873        };
874        if let Some(x) = name {
875            f.write_str(x)
876        } else {
877            self.0.fmt(f)
878        }
879    }
880}
881impl fmt::Debug for CommandBufferLevel {
882    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
883        let name = match *self {
884            Self::PRIMARY => Some("PRIMARY"),
885            Self::SECONDARY => Some("SECONDARY"),
886            _ => None,
887        };
888        if let Some(x) = name {
889            f.write_str(x)
890        } else {
891            self.0.fmt(f)
892        }
893    }
894}
895impl fmt::Debug for CommandBufferResetFlags {
896    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
897        const KNOWN: &[(Flags, &str)] = &[(
898            CommandBufferResetFlags::RELEASE_RESOURCES.0,
899            "RELEASE_RESOURCES",
900        )];
901        debug_flags(f, KNOWN, self.0)
902    }
903}
904impl fmt::Debug for CommandBufferUsageFlags {
905    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
906        const KNOWN: &[(Flags, &str)] = &[
907            (
908                CommandBufferUsageFlags::ONE_TIME_SUBMIT.0,
909                "ONE_TIME_SUBMIT",
910            ),
911            (
912                CommandBufferUsageFlags::RENDER_PASS_CONTINUE.0,
913                "RENDER_PASS_CONTINUE",
914            ),
915            (
916                CommandBufferUsageFlags::SIMULTANEOUS_USE.0,
917                "SIMULTANEOUS_USE",
918            ),
919        ];
920        debug_flags(f, KNOWN, self.0)
921    }
922}
923impl fmt::Debug for CommandPoolCreateFlags {
924    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
925        const KNOWN: &[(Flags, &str)] = &[
926            (CommandPoolCreateFlags::TRANSIENT.0, "TRANSIENT"),
927            (
928                CommandPoolCreateFlags::RESET_COMMAND_BUFFER.0,
929                "RESET_COMMAND_BUFFER",
930            ),
931            (CommandPoolCreateFlags::PROTECTED.0, "PROTECTED"),
932        ];
933        debug_flags(f, KNOWN, self.0)
934    }
935}
936impl fmt::Debug for CommandPoolResetFlags {
937    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
938        const KNOWN: &[(Flags, &str)] = &[(
939            CommandPoolResetFlags::RELEASE_RESOURCES.0,
940            "RELEASE_RESOURCES",
941        )];
942        debug_flags(f, KNOWN, self.0)
943    }
944}
945impl fmt::Debug for CommandPoolTrimFlags {
946    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
947        const KNOWN: &[(Flags, &str)] = &[];
948        debug_flags(f, KNOWN, self.0)
949    }
950}
951impl fmt::Debug for CompareOp {
952    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
953        let name = match *self {
954            Self::NEVER => Some("NEVER"),
955            Self::LESS => Some("LESS"),
956            Self::EQUAL => Some("EQUAL"),
957            Self::LESS_OR_EQUAL => Some("LESS_OR_EQUAL"),
958            Self::GREATER => Some("GREATER"),
959            Self::NOT_EQUAL => Some("NOT_EQUAL"),
960            Self::GREATER_OR_EQUAL => Some("GREATER_OR_EQUAL"),
961            Self::ALWAYS => Some("ALWAYS"),
962            _ => None,
963        };
964        if let Some(x) = name {
965            f.write_str(x)
966        } else {
967            self.0.fmt(f)
968        }
969    }
970}
971impl fmt::Debug for ComponentSwizzle {
972    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
973        let name = match *self {
974            Self::IDENTITY => Some("IDENTITY"),
975            Self::ZERO => Some("ZERO"),
976            Self::ONE => Some("ONE"),
977            Self::R => Some("R"),
978            Self::G => Some("G"),
979            Self::B => Some("B"),
980            Self::A => Some("A"),
981            _ => None,
982        };
983        if let Some(x) = name {
984            f.write_str(x)
985        } else {
986            self.0.fmt(f)
987        }
988    }
989}
990impl fmt::Debug for ComponentTypeKHR {
991    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
992        let name = match *self {
993            Self::FLOAT16 => Some("FLOAT16"),
994            Self::FLOAT32 => Some("FLOAT32"),
995            Self::FLOAT64 => Some("FLOAT64"),
996            Self::SINT8 => Some("SINT8"),
997            Self::SINT16 => Some("SINT16"),
998            Self::SINT32 => Some("SINT32"),
999            Self::SINT64 => Some("SINT64"),
1000            Self::UINT8 => Some("UINT8"),
1001            Self::UINT16 => Some("UINT16"),
1002            Self::UINT32 => Some("UINT32"),
1003            Self::UINT64 => Some("UINT64"),
1004            _ => None,
1005        };
1006        if let Some(x) = name {
1007            f.write_str(x)
1008        } else {
1009            self.0.fmt(f)
1010        }
1011    }
1012}
1013impl fmt::Debug for CompositeAlphaFlagsKHR {
1014    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1015        const KNOWN: &[(Flags, &str)] = &[
1016            (CompositeAlphaFlagsKHR::OPAQUE.0, "OPAQUE"),
1017            (CompositeAlphaFlagsKHR::PRE_MULTIPLIED.0, "PRE_MULTIPLIED"),
1018            (CompositeAlphaFlagsKHR::POST_MULTIPLIED.0, "POST_MULTIPLIED"),
1019            (CompositeAlphaFlagsKHR::INHERIT.0, "INHERIT"),
1020        ];
1021        debug_flags(f, KNOWN, self.0)
1022    }
1023}
1024impl fmt::Debug for ConditionalRenderingFlagsEXT {
1025    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1026        const KNOWN: &[(Flags, &str)] = &[(ConditionalRenderingFlagsEXT::INVERTED.0, "INVERTED")];
1027        debug_flags(f, KNOWN, self.0)
1028    }
1029}
1030impl fmt::Debug for ConservativeRasterizationModeEXT {
1031    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1032        let name = match *self {
1033            Self::DISABLED => Some("DISABLED"),
1034            Self::OVERESTIMATE => Some("OVERESTIMATE"),
1035            Self::UNDERESTIMATE => Some("UNDERESTIMATE"),
1036            _ => None,
1037        };
1038        if let Some(x) = name {
1039            f.write_str(x)
1040        } else {
1041            self.0.fmt(f)
1042        }
1043    }
1044}
1045impl fmt::Debug for CopyAccelerationStructureModeKHR {
1046    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1047        let name = match *self {
1048            Self::CLONE => Some("CLONE"),
1049            Self::COMPACT => Some("COMPACT"),
1050            Self::SERIALIZE => Some("SERIALIZE"),
1051            Self::DESERIALIZE => Some("DESERIALIZE"),
1052            _ => None,
1053        };
1054        if let Some(x) = name {
1055            f.write_str(x)
1056        } else {
1057            self.0.fmt(f)
1058        }
1059    }
1060}
1061impl fmt::Debug for CopyMicromapModeEXT {
1062    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1063        let name = match *self {
1064            Self::CLONE => Some("CLONE"),
1065            Self::SERIALIZE => Some("SERIALIZE"),
1066            Self::DESERIALIZE => Some("DESERIALIZE"),
1067            Self::COMPACT => Some("COMPACT"),
1068            _ => None,
1069        };
1070        if let Some(x) = name {
1071            f.write_str(x)
1072        } else {
1073            self.0.fmt(f)
1074        }
1075    }
1076}
1077impl fmt::Debug for CoverageModulationModeNV {
1078    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1079        let name = match *self {
1080            Self::NONE => Some("NONE"),
1081            Self::RGB => Some("RGB"),
1082            Self::ALPHA => Some("ALPHA"),
1083            Self::RGBA => Some("RGBA"),
1084            _ => None,
1085        };
1086        if let Some(x) = name {
1087            f.write_str(x)
1088        } else {
1089            self.0.fmt(f)
1090        }
1091    }
1092}
1093impl fmt::Debug for CoverageReductionModeNV {
1094    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1095        let name = match *self {
1096            Self::MERGE => Some("MERGE"),
1097            Self::TRUNCATE => Some("TRUNCATE"),
1098            _ => None,
1099        };
1100        if let Some(x) = name {
1101            f.write_str(x)
1102        } else {
1103            self.0.fmt(f)
1104        }
1105    }
1106}
1107impl fmt::Debug for CubicFilterWeightsQCOM {
1108    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1109        let name = match *self {
1110            Self::CATMULL_ROM => Some("CATMULL_ROM"),
1111            Self::ZERO_TANGENT_CARDINAL => Some("ZERO_TANGENT_CARDINAL"),
1112            Self::B_SPLINE => Some("B_SPLINE"),
1113            Self::MITCHELL_NETRAVALI => Some("MITCHELL_NETRAVALI"),
1114            _ => None,
1115        };
1116        if let Some(x) = name {
1117            f.write_str(x)
1118        } else {
1119            self.0.fmt(f)
1120        }
1121    }
1122}
1123impl fmt::Debug for CullModeFlags {
1124    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1125        const KNOWN: &[(Flags, &str)] = &[
1126            (CullModeFlags::NONE.0, "NONE"),
1127            (CullModeFlags::FRONT.0, "FRONT"),
1128            (CullModeFlags::BACK.0, "BACK"),
1129            (CullModeFlags::FRONT_AND_BACK.0, "FRONT_AND_BACK"),
1130        ];
1131        debug_flags(f, KNOWN, self.0)
1132    }
1133}
1134impl fmt::Debug for DebugReportFlagsEXT {
1135    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1136        const KNOWN: &[(Flags, &str)] = &[
1137            (DebugReportFlagsEXT::INFORMATION.0, "INFORMATION"),
1138            (DebugReportFlagsEXT::WARNING.0, "WARNING"),
1139            (
1140                DebugReportFlagsEXT::PERFORMANCE_WARNING.0,
1141                "PERFORMANCE_WARNING",
1142            ),
1143            (DebugReportFlagsEXT::ERROR.0, "ERROR"),
1144            (DebugReportFlagsEXT::DEBUG.0, "DEBUG"),
1145        ];
1146        debug_flags(f, KNOWN, self.0)
1147    }
1148}
1149impl fmt::Debug for DebugReportObjectTypeEXT {
1150    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1151        let name = match *self {
1152            Self::UNKNOWN => Some("UNKNOWN"),
1153            Self::INSTANCE => Some("INSTANCE"),
1154            Self::PHYSICAL_DEVICE => Some("PHYSICAL_DEVICE"),
1155            Self::DEVICE => Some("DEVICE"),
1156            Self::QUEUE => Some("QUEUE"),
1157            Self::SEMAPHORE => Some("SEMAPHORE"),
1158            Self::COMMAND_BUFFER => Some("COMMAND_BUFFER"),
1159            Self::FENCE => Some("FENCE"),
1160            Self::DEVICE_MEMORY => Some("DEVICE_MEMORY"),
1161            Self::BUFFER => Some("BUFFER"),
1162            Self::IMAGE => Some("IMAGE"),
1163            Self::EVENT => Some("EVENT"),
1164            Self::QUERY_POOL => Some("QUERY_POOL"),
1165            Self::BUFFER_VIEW => Some("BUFFER_VIEW"),
1166            Self::IMAGE_VIEW => Some("IMAGE_VIEW"),
1167            Self::SHADER_MODULE => Some("SHADER_MODULE"),
1168            Self::PIPELINE_CACHE => Some("PIPELINE_CACHE"),
1169            Self::PIPELINE_LAYOUT => Some("PIPELINE_LAYOUT"),
1170            Self::RENDER_PASS => Some("RENDER_PASS"),
1171            Self::PIPELINE => Some("PIPELINE"),
1172            Self::DESCRIPTOR_SET_LAYOUT => Some("DESCRIPTOR_SET_LAYOUT"),
1173            Self::SAMPLER => Some("SAMPLER"),
1174            Self::DESCRIPTOR_POOL => Some("DESCRIPTOR_POOL"),
1175            Self::DESCRIPTOR_SET => Some("DESCRIPTOR_SET"),
1176            Self::FRAMEBUFFER => Some("FRAMEBUFFER"),
1177            Self::COMMAND_POOL => Some("COMMAND_POOL"),
1178            Self::SURFACE_KHR => Some("SURFACE_KHR"),
1179            Self::SWAPCHAIN_KHR => Some("SWAPCHAIN_KHR"),
1180            Self::DEBUG_REPORT_CALLBACK_EXT => Some("DEBUG_REPORT_CALLBACK_EXT"),
1181            Self::DISPLAY_KHR => Some("DISPLAY_KHR"),
1182            Self::DISPLAY_MODE_KHR => Some("DISPLAY_MODE_KHR"),
1183            Self::VALIDATION_CACHE_EXT => Some("VALIDATION_CACHE_EXT"),
1184            Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"),
1185            Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"),
1186            Self::CU_MODULE_NVX => Some("CU_MODULE_NVX"),
1187            Self::CU_FUNCTION_NVX => Some("CU_FUNCTION_NVX"),
1188            Self::ACCELERATION_STRUCTURE_KHR => Some("ACCELERATION_STRUCTURE_KHR"),
1189            Self::ACCELERATION_STRUCTURE_NV => Some("ACCELERATION_STRUCTURE_NV"),
1190            Self::CUDA_MODULE_NV => Some("CUDA_MODULE_NV"),
1191            Self::CUDA_FUNCTION_NV => Some("CUDA_FUNCTION_NV"),
1192            Self::BUFFER_COLLECTION_FUCHSIA => Some("BUFFER_COLLECTION_FUCHSIA"),
1193            _ => None,
1194        };
1195        if let Some(x) = name {
1196            f.write_str(x)
1197        } else {
1198            self.0.fmt(f)
1199        }
1200    }
1201}
1202impl fmt::Debug for DebugUtilsMessageSeverityFlagsEXT {
1203    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1204        const KNOWN: &[(Flags, &str)] = &[
1205            (DebugUtilsMessageSeverityFlagsEXT::VERBOSE.0, "VERBOSE"),
1206            (DebugUtilsMessageSeverityFlagsEXT::INFO.0, "INFO"),
1207            (DebugUtilsMessageSeverityFlagsEXT::WARNING.0, "WARNING"),
1208            (DebugUtilsMessageSeverityFlagsEXT::ERROR.0, "ERROR"),
1209        ];
1210        debug_flags(f, KNOWN, self.0)
1211    }
1212}
1213impl fmt::Debug for DebugUtilsMessageTypeFlagsEXT {
1214    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1215        const KNOWN: &[(Flags, &str)] = &[
1216            (DebugUtilsMessageTypeFlagsEXT::GENERAL.0, "GENERAL"),
1217            (DebugUtilsMessageTypeFlagsEXT::VALIDATION.0, "VALIDATION"),
1218            (DebugUtilsMessageTypeFlagsEXT::PERFORMANCE.0, "PERFORMANCE"),
1219            (
1220                DebugUtilsMessageTypeFlagsEXT::DEVICE_ADDRESS_BINDING.0,
1221                "DEVICE_ADDRESS_BINDING",
1222            ),
1223        ];
1224        debug_flags(f, KNOWN, self.0)
1225    }
1226}
1227impl fmt::Debug for DebugUtilsMessengerCallbackDataFlagsEXT {
1228    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1229        const KNOWN: &[(Flags, &str)] = &[];
1230        debug_flags(f, KNOWN, self.0)
1231    }
1232}
1233impl fmt::Debug for DebugUtilsMessengerCreateFlagsEXT {
1234    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1235        const KNOWN: &[(Flags, &str)] = &[];
1236        debug_flags(f, KNOWN, self.0)
1237    }
1238}
1239impl fmt::Debug for DependencyFlags {
1240    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1241        const KNOWN: &[(Flags, &str)] = &[
1242            (DependencyFlags::BY_REGION.0, "BY_REGION"),
1243            (DependencyFlags::FEEDBACK_LOOP_EXT.0, "FEEDBACK_LOOP_EXT"),
1244            (DependencyFlags::DEVICE_GROUP.0, "DEVICE_GROUP"),
1245            (DependencyFlags::VIEW_LOCAL.0, "VIEW_LOCAL"),
1246        ];
1247        debug_flags(f, KNOWN, self.0)
1248    }
1249}
1250impl fmt::Debug for DepthBiasRepresentationEXT {
1251    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1252        let name = match *self {
1253            Self::LEAST_REPRESENTABLE_VALUE_FORMAT => Some("LEAST_REPRESENTABLE_VALUE_FORMAT"),
1254            Self::LEAST_REPRESENTABLE_VALUE_FORCE_UNORM => {
1255                Some("LEAST_REPRESENTABLE_VALUE_FORCE_UNORM")
1256            }
1257            Self::FLOAT => Some("FLOAT"),
1258            _ => None,
1259        };
1260        if let Some(x) = name {
1261            f.write_str(x)
1262        } else {
1263            self.0.fmt(f)
1264        }
1265    }
1266}
1267impl fmt::Debug for DescriptorBindingFlags {
1268    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1269        const KNOWN: &[(Flags, &str)] = &[
1270            (
1271                DescriptorBindingFlags::UPDATE_AFTER_BIND.0,
1272                "UPDATE_AFTER_BIND",
1273            ),
1274            (
1275                DescriptorBindingFlags::UPDATE_UNUSED_WHILE_PENDING.0,
1276                "UPDATE_UNUSED_WHILE_PENDING",
1277            ),
1278            (DescriptorBindingFlags::PARTIALLY_BOUND.0, "PARTIALLY_BOUND"),
1279            (
1280                DescriptorBindingFlags::VARIABLE_DESCRIPTOR_COUNT.0,
1281                "VARIABLE_DESCRIPTOR_COUNT",
1282            ),
1283        ];
1284        debug_flags(f, KNOWN, self.0)
1285    }
1286}
1287impl fmt::Debug for DescriptorPoolCreateFlags {
1288    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1289        const KNOWN: &[(Flags, &str)] = &[
1290            (
1291                DescriptorPoolCreateFlags::FREE_DESCRIPTOR_SET.0,
1292                "FREE_DESCRIPTOR_SET",
1293            ),
1294            (DescriptorPoolCreateFlags::HOST_ONLY_EXT.0, "HOST_ONLY_EXT"),
1295            (
1296                DescriptorPoolCreateFlags::ALLOW_OVERALLOCATION_SETS_NV.0,
1297                "ALLOW_OVERALLOCATION_SETS_NV",
1298            ),
1299            (
1300                DescriptorPoolCreateFlags::ALLOW_OVERALLOCATION_POOLS_NV.0,
1301                "ALLOW_OVERALLOCATION_POOLS_NV",
1302            ),
1303            (
1304                DescriptorPoolCreateFlags::UPDATE_AFTER_BIND.0,
1305                "UPDATE_AFTER_BIND",
1306            ),
1307        ];
1308        debug_flags(f, KNOWN, self.0)
1309    }
1310}
1311impl fmt::Debug for DescriptorPoolResetFlags {
1312    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1313        const KNOWN: &[(Flags, &str)] = &[];
1314        debug_flags(f, KNOWN, self.0)
1315    }
1316}
1317impl fmt::Debug for DescriptorSetLayoutCreateFlags {
1318    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1319        const KNOWN: &[(Flags, &str)] = &[
1320            (
1321                DescriptorSetLayoutCreateFlags::PUSH_DESCRIPTOR_KHR.0,
1322                "PUSH_DESCRIPTOR_KHR",
1323            ),
1324            (
1325                DescriptorSetLayoutCreateFlags::DESCRIPTOR_BUFFER_EXT.0,
1326                "DESCRIPTOR_BUFFER_EXT",
1327            ),
1328            (
1329                DescriptorSetLayoutCreateFlags::EMBEDDED_IMMUTABLE_SAMPLERS_EXT.0,
1330                "EMBEDDED_IMMUTABLE_SAMPLERS_EXT",
1331            ),
1332            (
1333                DescriptorSetLayoutCreateFlags::INDIRECT_BINDABLE_NV.0,
1334                "INDIRECT_BINDABLE_NV",
1335            ),
1336            (
1337                DescriptorSetLayoutCreateFlags::HOST_ONLY_POOL_EXT.0,
1338                "HOST_ONLY_POOL_EXT",
1339            ),
1340            (
1341                DescriptorSetLayoutCreateFlags::PER_STAGE_NV.0,
1342                "PER_STAGE_NV",
1343            ),
1344            (
1345                DescriptorSetLayoutCreateFlags::UPDATE_AFTER_BIND_POOL.0,
1346                "UPDATE_AFTER_BIND_POOL",
1347            ),
1348        ];
1349        debug_flags(f, KNOWN, self.0)
1350    }
1351}
1352impl fmt::Debug for DescriptorType {
1353    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1354        let name = match *self {
1355            Self::SAMPLER => Some("SAMPLER"),
1356            Self::COMBINED_IMAGE_SAMPLER => Some("COMBINED_IMAGE_SAMPLER"),
1357            Self::SAMPLED_IMAGE => Some("SAMPLED_IMAGE"),
1358            Self::STORAGE_IMAGE => Some("STORAGE_IMAGE"),
1359            Self::UNIFORM_TEXEL_BUFFER => Some("UNIFORM_TEXEL_BUFFER"),
1360            Self::STORAGE_TEXEL_BUFFER => Some("STORAGE_TEXEL_BUFFER"),
1361            Self::UNIFORM_BUFFER => Some("UNIFORM_BUFFER"),
1362            Self::STORAGE_BUFFER => Some("STORAGE_BUFFER"),
1363            Self::UNIFORM_BUFFER_DYNAMIC => Some("UNIFORM_BUFFER_DYNAMIC"),
1364            Self::STORAGE_BUFFER_DYNAMIC => Some("STORAGE_BUFFER_DYNAMIC"),
1365            Self::INPUT_ATTACHMENT => Some("INPUT_ATTACHMENT"),
1366            Self::ACCELERATION_STRUCTURE_KHR => Some("ACCELERATION_STRUCTURE_KHR"),
1367            Self::ACCELERATION_STRUCTURE_NV => Some("ACCELERATION_STRUCTURE_NV"),
1368            Self::SAMPLE_WEIGHT_IMAGE_QCOM => Some("SAMPLE_WEIGHT_IMAGE_QCOM"),
1369            Self::BLOCK_MATCH_IMAGE_QCOM => Some("BLOCK_MATCH_IMAGE_QCOM"),
1370            Self::MUTABLE_EXT => Some("MUTABLE_EXT"),
1371            Self::INLINE_UNIFORM_BLOCK => Some("INLINE_UNIFORM_BLOCK"),
1372            _ => None,
1373        };
1374        if let Some(x) = name {
1375            f.write_str(x)
1376        } else {
1377            self.0.fmt(f)
1378        }
1379    }
1380}
1381impl fmt::Debug for DescriptorUpdateTemplateCreateFlags {
1382    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1383        const KNOWN: &[(Flags, &str)] = &[];
1384        debug_flags(f, KNOWN, self.0)
1385    }
1386}
1387impl fmt::Debug for DescriptorUpdateTemplateType {
1388    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1389        let name = match *self {
1390            Self::DESCRIPTOR_SET => Some("DESCRIPTOR_SET"),
1391            Self::PUSH_DESCRIPTORS_KHR => Some("PUSH_DESCRIPTORS_KHR"),
1392            _ => None,
1393        };
1394        if let Some(x) = name {
1395            f.write_str(x)
1396        } else {
1397            self.0.fmt(f)
1398        }
1399    }
1400}
1401impl fmt::Debug for DeviceAddressBindingFlagsEXT {
1402    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1403        const KNOWN: &[(Flags, &str)] = &[(
1404            DeviceAddressBindingFlagsEXT::INTERNAL_OBJECT.0,
1405            "INTERNAL_OBJECT",
1406        )];
1407        debug_flags(f, KNOWN, self.0)
1408    }
1409}
1410impl fmt::Debug for DeviceAddressBindingTypeEXT {
1411    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1412        let name = match *self {
1413            Self::BIND => Some("BIND"),
1414            Self::UNBIND => Some("UNBIND"),
1415            _ => None,
1416        };
1417        if let Some(x) = name {
1418            f.write_str(x)
1419        } else {
1420            self.0.fmt(f)
1421        }
1422    }
1423}
1424impl fmt::Debug for DeviceCreateFlags {
1425    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1426        const KNOWN: &[(Flags, &str)] = &[];
1427        debug_flags(f, KNOWN, self.0)
1428    }
1429}
1430impl fmt::Debug for DeviceDiagnosticsConfigFlagsNV {
1431    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1432        const KNOWN: &[(Flags, &str)] = &[
1433            (
1434                DeviceDiagnosticsConfigFlagsNV::ENABLE_SHADER_DEBUG_INFO.0,
1435                "ENABLE_SHADER_DEBUG_INFO",
1436            ),
1437            (
1438                DeviceDiagnosticsConfigFlagsNV::ENABLE_RESOURCE_TRACKING.0,
1439                "ENABLE_RESOURCE_TRACKING",
1440            ),
1441            (
1442                DeviceDiagnosticsConfigFlagsNV::ENABLE_AUTOMATIC_CHECKPOINTS.0,
1443                "ENABLE_AUTOMATIC_CHECKPOINTS",
1444            ),
1445            (
1446                DeviceDiagnosticsConfigFlagsNV::ENABLE_SHADER_ERROR_REPORTING.0,
1447                "ENABLE_SHADER_ERROR_REPORTING",
1448            ),
1449        ];
1450        debug_flags(f, KNOWN, self.0)
1451    }
1452}
1453impl fmt::Debug for DeviceEventTypeEXT {
1454    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1455        let name = match *self {
1456            Self::DISPLAY_HOTPLUG => Some("DISPLAY_HOTPLUG"),
1457            _ => None,
1458        };
1459        if let Some(x) = name {
1460            f.write_str(x)
1461        } else {
1462            self.0.fmt(f)
1463        }
1464    }
1465}
1466impl fmt::Debug for DeviceFaultAddressTypeEXT {
1467    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1468        let name = match *self {
1469            Self::NONE => Some("NONE"),
1470            Self::READ_INVALID => Some("READ_INVALID"),
1471            Self::WRITE_INVALID => Some("WRITE_INVALID"),
1472            Self::EXECUTE_INVALID => Some("EXECUTE_INVALID"),
1473            Self::INSTRUCTION_POINTER_UNKNOWN => Some("INSTRUCTION_POINTER_UNKNOWN"),
1474            Self::INSTRUCTION_POINTER_INVALID => Some("INSTRUCTION_POINTER_INVALID"),
1475            Self::INSTRUCTION_POINTER_FAULT => Some("INSTRUCTION_POINTER_FAULT"),
1476            _ => None,
1477        };
1478        if let Some(x) = name {
1479            f.write_str(x)
1480        } else {
1481            self.0.fmt(f)
1482        }
1483    }
1484}
1485impl fmt::Debug for DeviceFaultVendorBinaryHeaderVersionEXT {
1486    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1487        let name = match *self {
1488            Self::ONE => Some("ONE"),
1489            _ => None,
1490        };
1491        if let Some(x) = name {
1492            f.write_str(x)
1493        } else {
1494            self.0.fmt(f)
1495        }
1496    }
1497}
1498impl fmt::Debug for DeviceGroupPresentModeFlagsKHR {
1499    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1500        const KNOWN: &[(Flags, &str)] = &[
1501            (DeviceGroupPresentModeFlagsKHR::LOCAL.0, "LOCAL"),
1502            (DeviceGroupPresentModeFlagsKHR::REMOTE.0, "REMOTE"),
1503            (DeviceGroupPresentModeFlagsKHR::SUM.0, "SUM"),
1504            (
1505                DeviceGroupPresentModeFlagsKHR::LOCAL_MULTI_DEVICE.0,
1506                "LOCAL_MULTI_DEVICE",
1507            ),
1508        ];
1509        debug_flags(f, KNOWN, self.0)
1510    }
1511}
1512impl fmt::Debug for DeviceMemoryReportEventTypeEXT {
1513    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1514        let name = match *self {
1515            Self::ALLOCATE => Some("ALLOCATE"),
1516            Self::FREE => Some("FREE"),
1517            Self::IMPORT => Some("IMPORT"),
1518            Self::UNIMPORT => Some("UNIMPORT"),
1519            Self::ALLOCATION_FAILED => Some("ALLOCATION_FAILED"),
1520            _ => None,
1521        };
1522        if let Some(x) = name {
1523            f.write_str(x)
1524        } else {
1525            self.0.fmt(f)
1526        }
1527    }
1528}
1529impl fmt::Debug for DeviceMemoryReportFlagsEXT {
1530    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1531        const KNOWN: &[(Flags, &str)] = &[];
1532        debug_flags(f, KNOWN, self.0)
1533    }
1534}
1535impl fmt::Debug for DeviceQueueCreateFlags {
1536    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1537        const KNOWN: &[(Flags, &str)] = &[(DeviceQueueCreateFlags::PROTECTED.0, "PROTECTED")];
1538        debug_flags(f, KNOWN, self.0)
1539    }
1540}
1541impl fmt::Debug for DirectDriverLoadingFlagsLUNARG {
1542    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1543        const KNOWN: &[(Flags, &str)] = &[];
1544        debug_flags(f, KNOWN, self.0)
1545    }
1546}
1547impl fmt::Debug for DirectDriverLoadingModeLUNARG {
1548    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1549        let name = match *self {
1550            Self::EXCLUSIVE => Some("EXCLUSIVE"),
1551            Self::INCLUSIVE => Some("INCLUSIVE"),
1552            _ => None,
1553        };
1554        if let Some(x) = name {
1555            f.write_str(x)
1556        } else {
1557            self.0.fmt(f)
1558        }
1559    }
1560}
1561impl fmt::Debug for DirectFBSurfaceCreateFlagsEXT {
1562    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1563        const KNOWN: &[(Flags, &str)] = &[];
1564        debug_flags(f, KNOWN, self.0)
1565    }
1566}
1567impl fmt::Debug for DiscardRectangleModeEXT {
1568    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1569        let name = match *self {
1570            Self::INCLUSIVE => Some("INCLUSIVE"),
1571            Self::EXCLUSIVE => Some("EXCLUSIVE"),
1572            _ => None,
1573        };
1574        if let Some(x) = name {
1575            f.write_str(x)
1576        } else {
1577            self.0.fmt(f)
1578        }
1579    }
1580}
1581impl fmt::Debug for DisplacementMicromapFormatNV {
1582    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1583        let name = match *self {
1584            Self::TYPE_64_TRIANGLES_64_BYTES => Some("TYPE_64_TRIANGLES_64_BYTES"),
1585            Self::TYPE_256_TRIANGLES_128_BYTES => Some("TYPE_256_TRIANGLES_128_BYTES"),
1586            Self::TYPE_1024_TRIANGLES_128_BYTES => Some("TYPE_1024_TRIANGLES_128_BYTES"),
1587            _ => None,
1588        };
1589        if let Some(x) = name {
1590            f.write_str(x)
1591        } else {
1592            self.0.fmt(f)
1593        }
1594    }
1595}
1596impl fmt::Debug for DisplayEventTypeEXT {
1597    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1598        let name = match *self {
1599            Self::FIRST_PIXEL_OUT => Some("FIRST_PIXEL_OUT"),
1600            _ => None,
1601        };
1602        if let Some(x) = name {
1603            f.write_str(x)
1604        } else {
1605            self.0.fmt(f)
1606        }
1607    }
1608}
1609impl fmt::Debug for DisplayModeCreateFlagsKHR {
1610    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1611        const KNOWN: &[(Flags, &str)] = &[];
1612        debug_flags(f, KNOWN, self.0)
1613    }
1614}
1615impl fmt::Debug for DisplayPlaneAlphaFlagsKHR {
1616    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1617        const KNOWN: &[(Flags, &str)] = &[
1618            (DisplayPlaneAlphaFlagsKHR::OPAQUE.0, "OPAQUE"),
1619            (DisplayPlaneAlphaFlagsKHR::GLOBAL.0, "GLOBAL"),
1620            (DisplayPlaneAlphaFlagsKHR::PER_PIXEL.0, "PER_PIXEL"),
1621            (
1622                DisplayPlaneAlphaFlagsKHR::PER_PIXEL_PREMULTIPLIED.0,
1623                "PER_PIXEL_PREMULTIPLIED",
1624            ),
1625        ];
1626        debug_flags(f, KNOWN, self.0)
1627    }
1628}
1629impl fmt::Debug for DisplayPowerStateEXT {
1630    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1631        let name = match *self {
1632            Self::OFF => Some("OFF"),
1633            Self::SUSPEND => Some("SUSPEND"),
1634            Self::ON => Some("ON"),
1635            _ => None,
1636        };
1637        if let Some(x) = name {
1638            f.write_str(x)
1639        } else {
1640            self.0.fmt(f)
1641        }
1642    }
1643}
1644impl fmt::Debug for DisplaySurfaceCreateFlagsKHR {
1645    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1646        const KNOWN: &[(Flags, &str)] = &[];
1647        debug_flags(f, KNOWN, self.0)
1648    }
1649}
1650impl fmt::Debug for DriverId {
1651    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1652        let name = match *self {
1653            Self::AMD_PROPRIETARY => Some("AMD_PROPRIETARY"),
1654            Self::AMD_OPEN_SOURCE => Some("AMD_OPEN_SOURCE"),
1655            Self::MESA_RADV => Some("MESA_RADV"),
1656            Self::NVIDIA_PROPRIETARY => Some("NVIDIA_PROPRIETARY"),
1657            Self::INTEL_PROPRIETARY_WINDOWS => Some("INTEL_PROPRIETARY_WINDOWS"),
1658            Self::INTEL_OPEN_SOURCE_MESA => Some("INTEL_OPEN_SOURCE_MESA"),
1659            Self::IMAGINATION_PROPRIETARY => Some("IMAGINATION_PROPRIETARY"),
1660            Self::QUALCOMM_PROPRIETARY => Some("QUALCOMM_PROPRIETARY"),
1661            Self::ARM_PROPRIETARY => Some("ARM_PROPRIETARY"),
1662            Self::GOOGLE_SWIFTSHADER => Some("GOOGLE_SWIFTSHADER"),
1663            Self::GGP_PROPRIETARY => Some("GGP_PROPRIETARY"),
1664            Self::BROADCOM_PROPRIETARY => Some("BROADCOM_PROPRIETARY"),
1665            Self::MESA_LLVMPIPE => Some("MESA_LLVMPIPE"),
1666            Self::MOLTENVK => Some("MOLTENVK"),
1667            Self::COREAVI_PROPRIETARY => Some("COREAVI_PROPRIETARY"),
1668            Self::JUICE_PROPRIETARY => Some("JUICE_PROPRIETARY"),
1669            Self::VERISILICON_PROPRIETARY => Some("VERISILICON_PROPRIETARY"),
1670            Self::MESA_TURNIP => Some("MESA_TURNIP"),
1671            Self::MESA_V3DV => Some("MESA_V3DV"),
1672            Self::MESA_PANVK => Some("MESA_PANVK"),
1673            Self::SAMSUNG_PROPRIETARY => Some("SAMSUNG_PROPRIETARY"),
1674            Self::MESA_VENUS => Some("MESA_VENUS"),
1675            Self::MESA_DOZEN => Some("MESA_DOZEN"),
1676            Self::MESA_NVK => Some("MESA_NVK"),
1677            Self::IMAGINATION_OPEN_SOURCE_MESA => Some("IMAGINATION_OPEN_SOURCE_MESA"),
1678            Self::MESA_AGXV => Some("MESA_AGXV"),
1679            _ => None,
1680        };
1681        if let Some(x) = name {
1682            f.write_str(x)
1683        } else {
1684            self.0.fmt(f)
1685        }
1686    }
1687}
1688impl fmt::Debug for DynamicState {
1689    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1690        let name = match *self {
1691            Self::VIEWPORT => Some("VIEWPORT"),
1692            Self::SCISSOR => Some("SCISSOR"),
1693            Self::LINE_WIDTH => Some("LINE_WIDTH"),
1694            Self::DEPTH_BIAS => Some("DEPTH_BIAS"),
1695            Self::BLEND_CONSTANTS => Some("BLEND_CONSTANTS"),
1696            Self::DEPTH_BOUNDS => Some("DEPTH_BOUNDS"),
1697            Self::STENCIL_COMPARE_MASK => Some("STENCIL_COMPARE_MASK"),
1698            Self::STENCIL_WRITE_MASK => Some("STENCIL_WRITE_MASK"),
1699            Self::STENCIL_REFERENCE => Some("STENCIL_REFERENCE"),
1700            Self::VIEWPORT_W_SCALING_NV => Some("VIEWPORT_W_SCALING_NV"),
1701            Self::DISCARD_RECTANGLE_EXT => Some("DISCARD_RECTANGLE_EXT"),
1702            Self::DISCARD_RECTANGLE_ENABLE_EXT => Some("DISCARD_RECTANGLE_ENABLE_EXT"),
1703            Self::DISCARD_RECTANGLE_MODE_EXT => Some("DISCARD_RECTANGLE_MODE_EXT"),
1704            Self::SAMPLE_LOCATIONS_EXT => Some("SAMPLE_LOCATIONS_EXT"),
1705            Self::RAY_TRACING_PIPELINE_STACK_SIZE_KHR => {
1706                Some("RAY_TRACING_PIPELINE_STACK_SIZE_KHR")
1707            }
1708            Self::VIEWPORT_SHADING_RATE_PALETTE_NV => Some("VIEWPORT_SHADING_RATE_PALETTE_NV"),
1709            Self::VIEWPORT_COARSE_SAMPLE_ORDER_NV => Some("VIEWPORT_COARSE_SAMPLE_ORDER_NV"),
1710            Self::EXCLUSIVE_SCISSOR_ENABLE_NV => Some("EXCLUSIVE_SCISSOR_ENABLE_NV"),
1711            Self::EXCLUSIVE_SCISSOR_NV => Some("EXCLUSIVE_SCISSOR_NV"),
1712            Self::FRAGMENT_SHADING_RATE_KHR => Some("FRAGMENT_SHADING_RATE_KHR"),
1713            Self::VERTEX_INPUT_EXT => Some("VERTEX_INPUT_EXT"),
1714            Self::PATCH_CONTROL_POINTS_EXT => Some("PATCH_CONTROL_POINTS_EXT"),
1715            Self::LOGIC_OP_EXT => Some("LOGIC_OP_EXT"),
1716            Self::COLOR_WRITE_ENABLE_EXT => Some("COLOR_WRITE_ENABLE_EXT"),
1717            Self::DEPTH_CLAMP_ENABLE_EXT => Some("DEPTH_CLAMP_ENABLE_EXT"),
1718            Self::POLYGON_MODE_EXT => Some("POLYGON_MODE_EXT"),
1719            Self::RASTERIZATION_SAMPLES_EXT => Some("RASTERIZATION_SAMPLES_EXT"),
1720            Self::SAMPLE_MASK_EXT => Some("SAMPLE_MASK_EXT"),
1721            Self::ALPHA_TO_COVERAGE_ENABLE_EXT => Some("ALPHA_TO_COVERAGE_ENABLE_EXT"),
1722            Self::ALPHA_TO_ONE_ENABLE_EXT => Some("ALPHA_TO_ONE_ENABLE_EXT"),
1723            Self::LOGIC_OP_ENABLE_EXT => Some("LOGIC_OP_ENABLE_EXT"),
1724            Self::COLOR_BLEND_ENABLE_EXT => Some("COLOR_BLEND_ENABLE_EXT"),
1725            Self::COLOR_BLEND_EQUATION_EXT => Some("COLOR_BLEND_EQUATION_EXT"),
1726            Self::COLOR_WRITE_MASK_EXT => Some("COLOR_WRITE_MASK_EXT"),
1727            Self::TESSELLATION_DOMAIN_ORIGIN_EXT => Some("TESSELLATION_DOMAIN_ORIGIN_EXT"),
1728            Self::RASTERIZATION_STREAM_EXT => Some("RASTERIZATION_STREAM_EXT"),
1729            Self::CONSERVATIVE_RASTERIZATION_MODE_EXT => {
1730                Some("CONSERVATIVE_RASTERIZATION_MODE_EXT")
1731            }
1732            Self::EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT => {
1733                Some("EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT")
1734            }
1735            Self::DEPTH_CLIP_ENABLE_EXT => Some("DEPTH_CLIP_ENABLE_EXT"),
1736            Self::SAMPLE_LOCATIONS_ENABLE_EXT => Some("SAMPLE_LOCATIONS_ENABLE_EXT"),
1737            Self::COLOR_BLEND_ADVANCED_EXT => Some("COLOR_BLEND_ADVANCED_EXT"),
1738            Self::PROVOKING_VERTEX_MODE_EXT => Some("PROVOKING_VERTEX_MODE_EXT"),
1739            Self::LINE_RASTERIZATION_MODE_EXT => Some("LINE_RASTERIZATION_MODE_EXT"),
1740            Self::LINE_STIPPLE_ENABLE_EXT => Some("LINE_STIPPLE_ENABLE_EXT"),
1741            Self::DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT => Some("DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT"),
1742            Self::VIEWPORT_W_SCALING_ENABLE_NV => Some("VIEWPORT_W_SCALING_ENABLE_NV"),
1743            Self::VIEWPORT_SWIZZLE_NV => Some("VIEWPORT_SWIZZLE_NV"),
1744            Self::COVERAGE_TO_COLOR_ENABLE_NV => Some("COVERAGE_TO_COLOR_ENABLE_NV"),
1745            Self::COVERAGE_TO_COLOR_LOCATION_NV => Some("COVERAGE_TO_COLOR_LOCATION_NV"),
1746            Self::COVERAGE_MODULATION_MODE_NV => Some("COVERAGE_MODULATION_MODE_NV"),
1747            Self::COVERAGE_MODULATION_TABLE_ENABLE_NV => {
1748                Some("COVERAGE_MODULATION_TABLE_ENABLE_NV")
1749            }
1750            Self::COVERAGE_MODULATION_TABLE_NV => Some("COVERAGE_MODULATION_TABLE_NV"),
1751            Self::SHADING_RATE_IMAGE_ENABLE_NV => Some("SHADING_RATE_IMAGE_ENABLE_NV"),
1752            Self::REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV => {
1753                Some("REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV")
1754            }
1755            Self::COVERAGE_REDUCTION_MODE_NV => Some("COVERAGE_REDUCTION_MODE_NV"),
1756            Self::ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT => {
1757                Some("ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT")
1758            }
1759            Self::LINE_STIPPLE_KHR => Some("LINE_STIPPLE_KHR"),
1760            Self::CULL_MODE => Some("CULL_MODE"),
1761            Self::FRONT_FACE => Some("FRONT_FACE"),
1762            Self::PRIMITIVE_TOPOLOGY => Some("PRIMITIVE_TOPOLOGY"),
1763            Self::VIEWPORT_WITH_COUNT => Some("VIEWPORT_WITH_COUNT"),
1764            Self::SCISSOR_WITH_COUNT => Some("SCISSOR_WITH_COUNT"),
1765            Self::VERTEX_INPUT_BINDING_STRIDE => Some("VERTEX_INPUT_BINDING_STRIDE"),
1766            Self::DEPTH_TEST_ENABLE => Some("DEPTH_TEST_ENABLE"),
1767            Self::DEPTH_WRITE_ENABLE => Some("DEPTH_WRITE_ENABLE"),
1768            Self::DEPTH_COMPARE_OP => Some("DEPTH_COMPARE_OP"),
1769            Self::DEPTH_BOUNDS_TEST_ENABLE => Some("DEPTH_BOUNDS_TEST_ENABLE"),
1770            Self::STENCIL_TEST_ENABLE => Some("STENCIL_TEST_ENABLE"),
1771            Self::STENCIL_OP => Some("STENCIL_OP"),
1772            Self::RASTERIZER_DISCARD_ENABLE => Some("RASTERIZER_DISCARD_ENABLE"),
1773            Self::DEPTH_BIAS_ENABLE => Some("DEPTH_BIAS_ENABLE"),
1774            Self::PRIMITIVE_RESTART_ENABLE => Some("PRIMITIVE_RESTART_ENABLE"),
1775            _ => None,
1776        };
1777        if let Some(x) = name {
1778            f.write_str(x)
1779        } else {
1780            self.0.fmt(f)
1781        }
1782    }
1783}
1784impl fmt::Debug for EventCreateFlags {
1785    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1786        const KNOWN: &[(Flags, &str)] = &[(EventCreateFlags::DEVICE_ONLY.0, "DEVICE_ONLY")];
1787        debug_flags(f, KNOWN, self.0)
1788    }
1789}
1790impl fmt::Debug for ExportMetalObjectTypeFlagsEXT {
1791    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1792        const KNOWN: &[(Flags, &str)] = &[
1793            (
1794                ExportMetalObjectTypeFlagsEXT::METAL_DEVICE.0,
1795                "METAL_DEVICE",
1796            ),
1797            (
1798                ExportMetalObjectTypeFlagsEXT::METAL_COMMAND_QUEUE.0,
1799                "METAL_COMMAND_QUEUE",
1800            ),
1801            (
1802                ExportMetalObjectTypeFlagsEXT::METAL_BUFFER.0,
1803                "METAL_BUFFER",
1804            ),
1805            (
1806                ExportMetalObjectTypeFlagsEXT::METAL_TEXTURE.0,
1807                "METAL_TEXTURE",
1808            ),
1809            (
1810                ExportMetalObjectTypeFlagsEXT::METAL_IOSURFACE.0,
1811                "METAL_IOSURFACE",
1812            ),
1813            (
1814                ExportMetalObjectTypeFlagsEXT::METAL_SHARED_EVENT.0,
1815                "METAL_SHARED_EVENT",
1816            ),
1817        ];
1818        debug_flags(f, KNOWN, self.0)
1819    }
1820}
1821impl fmt::Debug for ExternalFenceFeatureFlags {
1822    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1823        const KNOWN: &[(Flags, &str)] = &[
1824            (ExternalFenceFeatureFlags::EXPORTABLE.0, "EXPORTABLE"),
1825            (ExternalFenceFeatureFlags::IMPORTABLE.0, "IMPORTABLE"),
1826        ];
1827        debug_flags(f, KNOWN, self.0)
1828    }
1829}
1830impl fmt::Debug for ExternalFenceHandleTypeFlags {
1831    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1832        const KNOWN: &[(Flags, &str)] = &[
1833            (ExternalFenceHandleTypeFlags::OPAQUE_FD.0, "OPAQUE_FD"),
1834            (ExternalFenceHandleTypeFlags::OPAQUE_WIN32.0, "OPAQUE_WIN32"),
1835            (
1836                ExternalFenceHandleTypeFlags::OPAQUE_WIN32_KMT.0,
1837                "OPAQUE_WIN32_KMT",
1838            ),
1839            (ExternalFenceHandleTypeFlags::SYNC_FD.0, "SYNC_FD"),
1840        ];
1841        debug_flags(f, KNOWN, self.0)
1842    }
1843}
1844impl fmt::Debug for ExternalMemoryFeatureFlags {
1845    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1846        const KNOWN: &[(Flags, &str)] = &[
1847            (
1848                ExternalMemoryFeatureFlags::DEDICATED_ONLY.0,
1849                "DEDICATED_ONLY",
1850            ),
1851            (ExternalMemoryFeatureFlags::EXPORTABLE.0, "EXPORTABLE"),
1852            (ExternalMemoryFeatureFlags::IMPORTABLE.0, "IMPORTABLE"),
1853        ];
1854        debug_flags(f, KNOWN, self.0)
1855    }
1856}
1857impl fmt::Debug for ExternalMemoryFeatureFlagsNV {
1858    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1859        const KNOWN: &[(Flags, &str)] = &[
1860            (
1861                ExternalMemoryFeatureFlagsNV::DEDICATED_ONLY.0,
1862                "DEDICATED_ONLY",
1863            ),
1864            (ExternalMemoryFeatureFlagsNV::EXPORTABLE.0, "EXPORTABLE"),
1865            (ExternalMemoryFeatureFlagsNV::IMPORTABLE.0, "IMPORTABLE"),
1866        ];
1867        debug_flags(f, KNOWN, self.0)
1868    }
1869}
1870impl fmt::Debug for ExternalMemoryHandleTypeFlags {
1871    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1872        const KNOWN: &[(Flags, &str)] = &[
1873            (ExternalMemoryHandleTypeFlags::OPAQUE_FD.0, "OPAQUE_FD"),
1874            (
1875                ExternalMemoryHandleTypeFlags::OPAQUE_WIN32.0,
1876                "OPAQUE_WIN32",
1877            ),
1878            (
1879                ExternalMemoryHandleTypeFlags::OPAQUE_WIN32_KMT.0,
1880                "OPAQUE_WIN32_KMT",
1881            ),
1882            (
1883                ExternalMemoryHandleTypeFlags::D3D11_TEXTURE.0,
1884                "D3D11_TEXTURE",
1885            ),
1886            (
1887                ExternalMemoryHandleTypeFlags::D3D11_TEXTURE_KMT.0,
1888                "D3D11_TEXTURE_KMT",
1889            ),
1890            (ExternalMemoryHandleTypeFlags::D3D12_HEAP.0, "D3D12_HEAP"),
1891            (
1892                ExternalMemoryHandleTypeFlags::D3D12_RESOURCE.0,
1893                "D3D12_RESOURCE",
1894            ),
1895            (ExternalMemoryHandleTypeFlags::DMA_BUF_EXT.0, "DMA_BUF_EXT"),
1896            (
1897                ExternalMemoryHandleTypeFlags::ANDROID_HARDWARE_BUFFER_ANDROID.0,
1898                "ANDROID_HARDWARE_BUFFER_ANDROID",
1899            ),
1900            (
1901                ExternalMemoryHandleTypeFlags::HOST_ALLOCATION_EXT.0,
1902                "HOST_ALLOCATION_EXT",
1903            ),
1904            (
1905                ExternalMemoryHandleTypeFlags::HOST_MAPPED_FOREIGN_MEMORY_EXT.0,
1906                "HOST_MAPPED_FOREIGN_MEMORY_EXT",
1907            ),
1908            (
1909                ExternalMemoryHandleTypeFlags::ZIRCON_VMO_FUCHSIA.0,
1910                "ZIRCON_VMO_FUCHSIA",
1911            ),
1912            (
1913                ExternalMemoryHandleTypeFlags::RDMA_ADDRESS_NV.0,
1914                "RDMA_ADDRESS_NV",
1915            ),
1916            (
1917                ExternalMemoryHandleTypeFlags::SCREEN_BUFFER_QNX.0,
1918                "SCREEN_BUFFER_QNX",
1919            ),
1920        ];
1921        debug_flags(f, KNOWN, self.0)
1922    }
1923}
1924impl fmt::Debug for ExternalMemoryHandleTypeFlagsNV {
1925    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1926        const KNOWN: &[(Flags, &str)] = &[
1927            (
1928                ExternalMemoryHandleTypeFlagsNV::OPAQUE_WIN32.0,
1929                "OPAQUE_WIN32",
1930            ),
1931            (
1932                ExternalMemoryHandleTypeFlagsNV::OPAQUE_WIN32_KMT.0,
1933                "OPAQUE_WIN32_KMT",
1934            ),
1935            (
1936                ExternalMemoryHandleTypeFlagsNV::D3D11_IMAGE.0,
1937                "D3D11_IMAGE",
1938            ),
1939            (
1940                ExternalMemoryHandleTypeFlagsNV::D3D11_IMAGE_KMT.0,
1941                "D3D11_IMAGE_KMT",
1942            ),
1943        ];
1944        debug_flags(f, KNOWN, self.0)
1945    }
1946}
1947impl fmt::Debug for ExternalSemaphoreFeatureFlags {
1948    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1949        const KNOWN: &[(Flags, &str)] = &[
1950            (ExternalSemaphoreFeatureFlags::EXPORTABLE.0, "EXPORTABLE"),
1951            (ExternalSemaphoreFeatureFlags::IMPORTABLE.0, "IMPORTABLE"),
1952        ];
1953        debug_flags(f, KNOWN, self.0)
1954    }
1955}
1956impl fmt::Debug for ExternalSemaphoreHandleTypeFlags {
1957    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1958        const KNOWN: &[(Flags, &str)] = &[
1959            (ExternalSemaphoreHandleTypeFlags::OPAQUE_FD.0, "OPAQUE_FD"),
1960            (
1961                ExternalSemaphoreHandleTypeFlags::OPAQUE_WIN32.0,
1962                "OPAQUE_WIN32",
1963            ),
1964            (
1965                ExternalSemaphoreHandleTypeFlags::OPAQUE_WIN32_KMT.0,
1966                "OPAQUE_WIN32_KMT",
1967            ),
1968            (
1969                ExternalSemaphoreHandleTypeFlags::D3D12_FENCE.0,
1970                "D3D12_FENCE",
1971            ),
1972            (ExternalSemaphoreHandleTypeFlags::SYNC_FD.0, "SYNC_FD"),
1973            (
1974                ExternalSemaphoreHandleTypeFlags::ZIRCON_EVENT_FUCHSIA.0,
1975                "ZIRCON_EVENT_FUCHSIA",
1976            ),
1977        ];
1978        debug_flags(f, KNOWN, self.0)
1979    }
1980}
1981impl fmt::Debug for FenceCreateFlags {
1982    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1983        const KNOWN: &[(Flags, &str)] = &[(FenceCreateFlags::SIGNALED.0, "SIGNALED")];
1984        debug_flags(f, KNOWN, self.0)
1985    }
1986}
1987impl fmt::Debug for FenceImportFlags {
1988    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1989        const KNOWN: &[(Flags, &str)] = &[(FenceImportFlags::TEMPORARY.0, "TEMPORARY")];
1990        debug_flags(f, KNOWN, self.0)
1991    }
1992}
1993impl fmt::Debug for Filter {
1994    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1995        let name = match *self {
1996            Self::NEAREST => Some("NEAREST"),
1997            Self::LINEAR => Some("LINEAR"),
1998            Self::CUBIC_EXT => Some("CUBIC_EXT"),
1999            _ => None,
2000        };
2001        if let Some(x) = name {
2002            f.write_str(x)
2003        } else {
2004            self.0.fmt(f)
2005        }
2006    }
2007}
2008impl fmt::Debug for Format {
2009    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2010        let name = match *self {
2011            Self::UNDEFINED => Some("UNDEFINED"),
2012            Self::R4G4_UNORM_PACK8 => Some("R4G4_UNORM_PACK8"),
2013            Self::R4G4B4A4_UNORM_PACK16 => Some("R4G4B4A4_UNORM_PACK16"),
2014            Self::B4G4R4A4_UNORM_PACK16 => Some("B4G4R4A4_UNORM_PACK16"),
2015            Self::R5G6B5_UNORM_PACK16 => Some("R5G6B5_UNORM_PACK16"),
2016            Self::B5G6R5_UNORM_PACK16 => Some("B5G6R5_UNORM_PACK16"),
2017            Self::R5G5B5A1_UNORM_PACK16 => Some("R5G5B5A1_UNORM_PACK16"),
2018            Self::B5G5R5A1_UNORM_PACK16 => Some("B5G5R5A1_UNORM_PACK16"),
2019            Self::A1R5G5B5_UNORM_PACK16 => Some("A1R5G5B5_UNORM_PACK16"),
2020            Self::R8_UNORM => Some("R8_UNORM"),
2021            Self::R8_SNORM => Some("R8_SNORM"),
2022            Self::R8_USCALED => Some("R8_USCALED"),
2023            Self::R8_SSCALED => Some("R8_SSCALED"),
2024            Self::R8_UINT => Some("R8_UINT"),
2025            Self::R8_SINT => Some("R8_SINT"),
2026            Self::R8_SRGB => Some("R8_SRGB"),
2027            Self::R8G8_UNORM => Some("R8G8_UNORM"),
2028            Self::R8G8_SNORM => Some("R8G8_SNORM"),
2029            Self::R8G8_USCALED => Some("R8G8_USCALED"),
2030            Self::R8G8_SSCALED => Some("R8G8_SSCALED"),
2031            Self::R8G8_UINT => Some("R8G8_UINT"),
2032            Self::R8G8_SINT => Some("R8G8_SINT"),
2033            Self::R8G8_SRGB => Some("R8G8_SRGB"),
2034            Self::R8G8B8_UNORM => Some("R8G8B8_UNORM"),
2035            Self::R8G8B8_SNORM => Some("R8G8B8_SNORM"),
2036            Self::R8G8B8_USCALED => Some("R8G8B8_USCALED"),
2037            Self::R8G8B8_SSCALED => Some("R8G8B8_SSCALED"),
2038            Self::R8G8B8_UINT => Some("R8G8B8_UINT"),
2039            Self::R8G8B8_SINT => Some("R8G8B8_SINT"),
2040            Self::R8G8B8_SRGB => Some("R8G8B8_SRGB"),
2041            Self::B8G8R8_UNORM => Some("B8G8R8_UNORM"),
2042            Self::B8G8R8_SNORM => Some("B8G8R8_SNORM"),
2043            Self::B8G8R8_USCALED => Some("B8G8R8_USCALED"),
2044            Self::B8G8R8_SSCALED => Some("B8G8R8_SSCALED"),
2045            Self::B8G8R8_UINT => Some("B8G8R8_UINT"),
2046            Self::B8G8R8_SINT => Some("B8G8R8_SINT"),
2047            Self::B8G8R8_SRGB => Some("B8G8R8_SRGB"),
2048            Self::R8G8B8A8_UNORM => Some("R8G8B8A8_UNORM"),
2049            Self::R8G8B8A8_SNORM => Some("R8G8B8A8_SNORM"),
2050            Self::R8G8B8A8_USCALED => Some("R8G8B8A8_USCALED"),
2051            Self::R8G8B8A8_SSCALED => Some("R8G8B8A8_SSCALED"),
2052            Self::R8G8B8A8_UINT => Some("R8G8B8A8_UINT"),
2053            Self::R8G8B8A8_SINT => Some("R8G8B8A8_SINT"),
2054            Self::R8G8B8A8_SRGB => Some("R8G8B8A8_SRGB"),
2055            Self::B8G8R8A8_UNORM => Some("B8G8R8A8_UNORM"),
2056            Self::B8G8R8A8_SNORM => Some("B8G8R8A8_SNORM"),
2057            Self::B8G8R8A8_USCALED => Some("B8G8R8A8_USCALED"),
2058            Self::B8G8R8A8_SSCALED => Some("B8G8R8A8_SSCALED"),
2059            Self::B8G8R8A8_UINT => Some("B8G8R8A8_UINT"),
2060            Self::B8G8R8A8_SINT => Some("B8G8R8A8_SINT"),
2061            Self::B8G8R8A8_SRGB => Some("B8G8R8A8_SRGB"),
2062            Self::A8B8G8R8_UNORM_PACK32 => Some("A8B8G8R8_UNORM_PACK32"),
2063            Self::A8B8G8R8_SNORM_PACK32 => Some("A8B8G8R8_SNORM_PACK32"),
2064            Self::A8B8G8R8_USCALED_PACK32 => Some("A8B8G8R8_USCALED_PACK32"),
2065            Self::A8B8G8R8_SSCALED_PACK32 => Some("A8B8G8R8_SSCALED_PACK32"),
2066            Self::A8B8G8R8_UINT_PACK32 => Some("A8B8G8R8_UINT_PACK32"),
2067            Self::A8B8G8R8_SINT_PACK32 => Some("A8B8G8R8_SINT_PACK32"),
2068            Self::A8B8G8R8_SRGB_PACK32 => Some("A8B8G8R8_SRGB_PACK32"),
2069            Self::A2R10G10B10_UNORM_PACK32 => Some("A2R10G10B10_UNORM_PACK32"),
2070            Self::A2R10G10B10_SNORM_PACK32 => Some("A2R10G10B10_SNORM_PACK32"),
2071            Self::A2R10G10B10_USCALED_PACK32 => Some("A2R10G10B10_USCALED_PACK32"),
2072            Self::A2R10G10B10_SSCALED_PACK32 => Some("A2R10G10B10_SSCALED_PACK32"),
2073            Self::A2R10G10B10_UINT_PACK32 => Some("A2R10G10B10_UINT_PACK32"),
2074            Self::A2R10G10B10_SINT_PACK32 => Some("A2R10G10B10_SINT_PACK32"),
2075            Self::A2B10G10R10_UNORM_PACK32 => Some("A2B10G10R10_UNORM_PACK32"),
2076            Self::A2B10G10R10_SNORM_PACK32 => Some("A2B10G10R10_SNORM_PACK32"),
2077            Self::A2B10G10R10_USCALED_PACK32 => Some("A2B10G10R10_USCALED_PACK32"),
2078            Self::A2B10G10R10_SSCALED_PACK32 => Some("A2B10G10R10_SSCALED_PACK32"),
2079            Self::A2B10G10R10_UINT_PACK32 => Some("A2B10G10R10_UINT_PACK32"),
2080            Self::A2B10G10R10_SINT_PACK32 => Some("A2B10G10R10_SINT_PACK32"),
2081            Self::R16_UNORM => Some("R16_UNORM"),
2082            Self::R16_SNORM => Some("R16_SNORM"),
2083            Self::R16_USCALED => Some("R16_USCALED"),
2084            Self::R16_SSCALED => Some("R16_SSCALED"),
2085            Self::R16_UINT => Some("R16_UINT"),
2086            Self::R16_SINT => Some("R16_SINT"),
2087            Self::R16_SFLOAT => Some("R16_SFLOAT"),
2088            Self::R16G16_UNORM => Some("R16G16_UNORM"),
2089            Self::R16G16_SNORM => Some("R16G16_SNORM"),
2090            Self::R16G16_USCALED => Some("R16G16_USCALED"),
2091            Self::R16G16_SSCALED => Some("R16G16_SSCALED"),
2092            Self::R16G16_UINT => Some("R16G16_UINT"),
2093            Self::R16G16_SINT => Some("R16G16_SINT"),
2094            Self::R16G16_SFLOAT => Some("R16G16_SFLOAT"),
2095            Self::R16G16B16_UNORM => Some("R16G16B16_UNORM"),
2096            Self::R16G16B16_SNORM => Some("R16G16B16_SNORM"),
2097            Self::R16G16B16_USCALED => Some("R16G16B16_USCALED"),
2098            Self::R16G16B16_SSCALED => Some("R16G16B16_SSCALED"),
2099            Self::R16G16B16_UINT => Some("R16G16B16_UINT"),
2100            Self::R16G16B16_SINT => Some("R16G16B16_SINT"),
2101            Self::R16G16B16_SFLOAT => Some("R16G16B16_SFLOAT"),
2102            Self::R16G16B16A16_UNORM => Some("R16G16B16A16_UNORM"),
2103            Self::R16G16B16A16_SNORM => Some("R16G16B16A16_SNORM"),
2104            Self::R16G16B16A16_USCALED => Some("R16G16B16A16_USCALED"),
2105            Self::R16G16B16A16_SSCALED => Some("R16G16B16A16_SSCALED"),
2106            Self::R16G16B16A16_UINT => Some("R16G16B16A16_UINT"),
2107            Self::R16G16B16A16_SINT => Some("R16G16B16A16_SINT"),
2108            Self::R16G16B16A16_SFLOAT => Some("R16G16B16A16_SFLOAT"),
2109            Self::R32_UINT => Some("R32_UINT"),
2110            Self::R32_SINT => Some("R32_SINT"),
2111            Self::R32_SFLOAT => Some("R32_SFLOAT"),
2112            Self::R32G32_UINT => Some("R32G32_UINT"),
2113            Self::R32G32_SINT => Some("R32G32_SINT"),
2114            Self::R32G32_SFLOAT => Some("R32G32_SFLOAT"),
2115            Self::R32G32B32_UINT => Some("R32G32B32_UINT"),
2116            Self::R32G32B32_SINT => Some("R32G32B32_SINT"),
2117            Self::R32G32B32_SFLOAT => Some("R32G32B32_SFLOAT"),
2118            Self::R32G32B32A32_UINT => Some("R32G32B32A32_UINT"),
2119            Self::R32G32B32A32_SINT => Some("R32G32B32A32_SINT"),
2120            Self::R32G32B32A32_SFLOAT => Some("R32G32B32A32_SFLOAT"),
2121            Self::R64_UINT => Some("R64_UINT"),
2122            Self::R64_SINT => Some("R64_SINT"),
2123            Self::R64_SFLOAT => Some("R64_SFLOAT"),
2124            Self::R64G64_UINT => Some("R64G64_UINT"),
2125            Self::R64G64_SINT => Some("R64G64_SINT"),
2126            Self::R64G64_SFLOAT => Some("R64G64_SFLOAT"),
2127            Self::R64G64B64_UINT => Some("R64G64B64_UINT"),
2128            Self::R64G64B64_SINT => Some("R64G64B64_SINT"),
2129            Self::R64G64B64_SFLOAT => Some("R64G64B64_SFLOAT"),
2130            Self::R64G64B64A64_UINT => Some("R64G64B64A64_UINT"),
2131            Self::R64G64B64A64_SINT => Some("R64G64B64A64_SINT"),
2132            Self::R64G64B64A64_SFLOAT => Some("R64G64B64A64_SFLOAT"),
2133            Self::B10G11R11_UFLOAT_PACK32 => Some("B10G11R11_UFLOAT_PACK32"),
2134            Self::E5B9G9R9_UFLOAT_PACK32 => Some("E5B9G9R9_UFLOAT_PACK32"),
2135            Self::D16_UNORM => Some("D16_UNORM"),
2136            Self::X8_D24_UNORM_PACK32 => Some("X8_D24_UNORM_PACK32"),
2137            Self::D32_SFLOAT => Some("D32_SFLOAT"),
2138            Self::S8_UINT => Some("S8_UINT"),
2139            Self::D16_UNORM_S8_UINT => Some("D16_UNORM_S8_UINT"),
2140            Self::D24_UNORM_S8_UINT => Some("D24_UNORM_S8_UINT"),
2141            Self::D32_SFLOAT_S8_UINT => Some("D32_SFLOAT_S8_UINT"),
2142            Self::BC1_RGB_UNORM_BLOCK => Some("BC1_RGB_UNORM_BLOCK"),
2143            Self::BC1_RGB_SRGB_BLOCK => Some("BC1_RGB_SRGB_BLOCK"),
2144            Self::BC1_RGBA_UNORM_BLOCK => Some("BC1_RGBA_UNORM_BLOCK"),
2145            Self::BC1_RGBA_SRGB_BLOCK => Some("BC1_RGBA_SRGB_BLOCK"),
2146            Self::BC2_UNORM_BLOCK => Some("BC2_UNORM_BLOCK"),
2147            Self::BC2_SRGB_BLOCK => Some("BC2_SRGB_BLOCK"),
2148            Self::BC3_UNORM_BLOCK => Some("BC3_UNORM_BLOCK"),
2149            Self::BC3_SRGB_BLOCK => Some("BC3_SRGB_BLOCK"),
2150            Self::BC4_UNORM_BLOCK => Some("BC4_UNORM_BLOCK"),
2151            Self::BC4_SNORM_BLOCK => Some("BC4_SNORM_BLOCK"),
2152            Self::BC5_UNORM_BLOCK => Some("BC5_UNORM_BLOCK"),
2153            Self::BC5_SNORM_BLOCK => Some("BC5_SNORM_BLOCK"),
2154            Self::BC6H_UFLOAT_BLOCK => Some("BC6H_UFLOAT_BLOCK"),
2155            Self::BC6H_SFLOAT_BLOCK => Some("BC6H_SFLOAT_BLOCK"),
2156            Self::BC7_UNORM_BLOCK => Some("BC7_UNORM_BLOCK"),
2157            Self::BC7_SRGB_BLOCK => Some("BC7_SRGB_BLOCK"),
2158            Self::ETC2_R8G8B8_UNORM_BLOCK => Some("ETC2_R8G8B8_UNORM_BLOCK"),
2159            Self::ETC2_R8G8B8_SRGB_BLOCK => Some("ETC2_R8G8B8_SRGB_BLOCK"),
2160            Self::ETC2_R8G8B8A1_UNORM_BLOCK => Some("ETC2_R8G8B8A1_UNORM_BLOCK"),
2161            Self::ETC2_R8G8B8A1_SRGB_BLOCK => Some("ETC2_R8G8B8A1_SRGB_BLOCK"),
2162            Self::ETC2_R8G8B8A8_UNORM_BLOCK => Some("ETC2_R8G8B8A8_UNORM_BLOCK"),
2163            Self::ETC2_R8G8B8A8_SRGB_BLOCK => Some("ETC2_R8G8B8A8_SRGB_BLOCK"),
2164            Self::EAC_R11_UNORM_BLOCK => Some("EAC_R11_UNORM_BLOCK"),
2165            Self::EAC_R11_SNORM_BLOCK => Some("EAC_R11_SNORM_BLOCK"),
2166            Self::EAC_R11G11_UNORM_BLOCK => Some("EAC_R11G11_UNORM_BLOCK"),
2167            Self::EAC_R11G11_SNORM_BLOCK => Some("EAC_R11G11_SNORM_BLOCK"),
2168            Self::ASTC_4X4_UNORM_BLOCK => Some("ASTC_4X4_UNORM_BLOCK"),
2169            Self::ASTC_4X4_SRGB_BLOCK => Some("ASTC_4X4_SRGB_BLOCK"),
2170            Self::ASTC_5X4_UNORM_BLOCK => Some("ASTC_5X4_UNORM_BLOCK"),
2171            Self::ASTC_5X4_SRGB_BLOCK => Some("ASTC_5X4_SRGB_BLOCK"),
2172            Self::ASTC_5X5_UNORM_BLOCK => Some("ASTC_5X5_UNORM_BLOCK"),
2173            Self::ASTC_5X5_SRGB_BLOCK => Some("ASTC_5X5_SRGB_BLOCK"),
2174            Self::ASTC_6X5_UNORM_BLOCK => Some("ASTC_6X5_UNORM_BLOCK"),
2175            Self::ASTC_6X5_SRGB_BLOCK => Some("ASTC_6X5_SRGB_BLOCK"),
2176            Self::ASTC_6X6_UNORM_BLOCK => Some("ASTC_6X6_UNORM_BLOCK"),
2177            Self::ASTC_6X6_SRGB_BLOCK => Some("ASTC_6X6_SRGB_BLOCK"),
2178            Self::ASTC_8X5_UNORM_BLOCK => Some("ASTC_8X5_UNORM_BLOCK"),
2179            Self::ASTC_8X5_SRGB_BLOCK => Some("ASTC_8X5_SRGB_BLOCK"),
2180            Self::ASTC_8X6_UNORM_BLOCK => Some("ASTC_8X6_UNORM_BLOCK"),
2181            Self::ASTC_8X6_SRGB_BLOCK => Some("ASTC_8X6_SRGB_BLOCK"),
2182            Self::ASTC_8X8_UNORM_BLOCK => Some("ASTC_8X8_UNORM_BLOCK"),
2183            Self::ASTC_8X8_SRGB_BLOCK => Some("ASTC_8X8_SRGB_BLOCK"),
2184            Self::ASTC_10X5_UNORM_BLOCK => Some("ASTC_10X5_UNORM_BLOCK"),
2185            Self::ASTC_10X5_SRGB_BLOCK => Some("ASTC_10X5_SRGB_BLOCK"),
2186            Self::ASTC_10X6_UNORM_BLOCK => Some("ASTC_10X6_UNORM_BLOCK"),
2187            Self::ASTC_10X6_SRGB_BLOCK => Some("ASTC_10X6_SRGB_BLOCK"),
2188            Self::ASTC_10X8_UNORM_BLOCK => Some("ASTC_10X8_UNORM_BLOCK"),
2189            Self::ASTC_10X8_SRGB_BLOCK => Some("ASTC_10X8_SRGB_BLOCK"),
2190            Self::ASTC_10X10_UNORM_BLOCK => Some("ASTC_10X10_UNORM_BLOCK"),
2191            Self::ASTC_10X10_SRGB_BLOCK => Some("ASTC_10X10_SRGB_BLOCK"),
2192            Self::ASTC_12X10_UNORM_BLOCK => Some("ASTC_12X10_UNORM_BLOCK"),
2193            Self::ASTC_12X10_SRGB_BLOCK => Some("ASTC_12X10_SRGB_BLOCK"),
2194            Self::ASTC_12X12_UNORM_BLOCK => Some("ASTC_12X12_UNORM_BLOCK"),
2195            Self::ASTC_12X12_SRGB_BLOCK => Some("ASTC_12X12_SRGB_BLOCK"),
2196            Self::PVRTC1_2BPP_UNORM_BLOCK_IMG => Some("PVRTC1_2BPP_UNORM_BLOCK_IMG"),
2197            Self::PVRTC1_4BPP_UNORM_BLOCK_IMG => Some("PVRTC1_4BPP_UNORM_BLOCK_IMG"),
2198            Self::PVRTC2_2BPP_UNORM_BLOCK_IMG => Some("PVRTC2_2BPP_UNORM_BLOCK_IMG"),
2199            Self::PVRTC2_4BPP_UNORM_BLOCK_IMG => Some("PVRTC2_4BPP_UNORM_BLOCK_IMG"),
2200            Self::PVRTC1_2BPP_SRGB_BLOCK_IMG => Some("PVRTC1_2BPP_SRGB_BLOCK_IMG"),
2201            Self::PVRTC1_4BPP_SRGB_BLOCK_IMG => Some("PVRTC1_4BPP_SRGB_BLOCK_IMG"),
2202            Self::PVRTC2_2BPP_SRGB_BLOCK_IMG => Some("PVRTC2_2BPP_SRGB_BLOCK_IMG"),
2203            Self::PVRTC2_4BPP_SRGB_BLOCK_IMG => Some("PVRTC2_4BPP_SRGB_BLOCK_IMG"),
2204            Self::R16G16_S10_5_NV => Some("R16G16_S10_5_NV"),
2205            Self::A1B5G5R5_UNORM_PACK16_KHR => Some("A1B5G5R5_UNORM_PACK16_KHR"),
2206            Self::A8_UNORM_KHR => Some("A8_UNORM_KHR"),
2207            Self::G8B8G8R8_422_UNORM => Some("G8B8G8R8_422_UNORM"),
2208            Self::B8G8R8G8_422_UNORM => Some("B8G8R8G8_422_UNORM"),
2209            Self::G8_B8_R8_3PLANE_420_UNORM => Some("G8_B8_R8_3PLANE_420_UNORM"),
2210            Self::G8_B8R8_2PLANE_420_UNORM => Some("G8_B8R8_2PLANE_420_UNORM"),
2211            Self::G8_B8_R8_3PLANE_422_UNORM => Some("G8_B8_R8_3PLANE_422_UNORM"),
2212            Self::G8_B8R8_2PLANE_422_UNORM => Some("G8_B8R8_2PLANE_422_UNORM"),
2213            Self::G8_B8_R8_3PLANE_444_UNORM => Some("G8_B8_R8_3PLANE_444_UNORM"),
2214            Self::R10X6_UNORM_PACK16 => Some("R10X6_UNORM_PACK16"),
2215            Self::R10X6G10X6_UNORM_2PACK16 => Some("R10X6G10X6_UNORM_2PACK16"),
2216            Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => Some("R10X6G10X6B10X6A10X6_UNORM_4PACK16"),
2217            Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => {
2218                Some("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16")
2219            }
2220            Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => {
2221                Some("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16")
2222            }
2223            Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
2224                Some("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16")
2225            }
2226            Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
2227                Some("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16")
2228            }
2229            Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
2230                Some("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16")
2231            }
2232            Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
2233                Some("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16")
2234            }
2235            Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
2236                Some("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16")
2237            }
2238            Self::R12X4_UNORM_PACK16 => Some("R12X4_UNORM_PACK16"),
2239            Self::R12X4G12X4_UNORM_2PACK16 => Some("R12X4G12X4_UNORM_2PACK16"),
2240            Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => Some("R12X4G12X4B12X4A12X4_UNORM_4PACK16"),
2241            Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => {
2242                Some("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16")
2243            }
2244            Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => {
2245                Some("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16")
2246            }
2247            Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
2248                Some("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16")
2249            }
2250            Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
2251                Some("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16")
2252            }
2253            Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
2254                Some("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16")
2255            }
2256            Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
2257                Some("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16")
2258            }
2259            Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
2260                Some("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16")
2261            }
2262            Self::G16B16G16R16_422_UNORM => Some("G16B16G16R16_422_UNORM"),
2263            Self::B16G16R16G16_422_UNORM => Some("B16G16R16G16_422_UNORM"),
2264            Self::G16_B16_R16_3PLANE_420_UNORM => Some("G16_B16_R16_3PLANE_420_UNORM"),
2265            Self::G16_B16R16_2PLANE_420_UNORM => Some("G16_B16R16_2PLANE_420_UNORM"),
2266            Self::G16_B16_R16_3PLANE_422_UNORM => Some("G16_B16_R16_3PLANE_422_UNORM"),
2267            Self::G16_B16R16_2PLANE_422_UNORM => Some("G16_B16R16_2PLANE_422_UNORM"),
2268            Self::G16_B16_R16_3PLANE_444_UNORM => Some("G16_B16_R16_3PLANE_444_UNORM"),
2269            Self::G8_B8R8_2PLANE_444_UNORM => Some("G8_B8R8_2PLANE_444_UNORM"),
2270            Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
2271                Some("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16")
2272            }
2273            Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
2274                Some("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16")
2275            }
2276            Self::G16_B16R16_2PLANE_444_UNORM => Some("G16_B16R16_2PLANE_444_UNORM"),
2277            Self::A4R4G4B4_UNORM_PACK16 => Some("A4R4G4B4_UNORM_PACK16"),
2278            Self::A4B4G4R4_UNORM_PACK16 => Some("A4B4G4R4_UNORM_PACK16"),
2279            Self::ASTC_4X4_SFLOAT_BLOCK => Some("ASTC_4X4_SFLOAT_BLOCK"),
2280            Self::ASTC_5X4_SFLOAT_BLOCK => Some("ASTC_5X4_SFLOAT_BLOCK"),
2281            Self::ASTC_5X5_SFLOAT_BLOCK => Some("ASTC_5X5_SFLOAT_BLOCK"),
2282            Self::ASTC_6X5_SFLOAT_BLOCK => Some("ASTC_6X5_SFLOAT_BLOCK"),
2283            Self::ASTC_6X6_SFLOAT_BLOCK => Some("ASTC_6X6_SFLOAT_BLOCK"),
2284            Self::ASTC_8X5_SFLOAT_BLOCK => Some("ASTC_8X5_SFLOAT_BLOCK"),
2285            Self::ASTC_8X6_SFLOAT_BLOCK => Some("ASTC_8X6_SFLOAT_BLOCK"),
2286            Self::ASTC_8X8_SFLOAT_BLOCK => Some("ASTC_8X8_SFLOAT_BLOCK"),
2287            Self::ASTC_10X5_SFLOAT_BLOCK => Some("ASTC_10X5_SFLOAT_BLOCK"),
2288            Self::ASTC_10X6_SFLOAT_BLOCK => Some("ASTC_10X6_SFLOAT_BLOCK"),
2289            Self::ASTC_10X8_SFLOAT_BLOCK => Some("ASTC_10X8_SFLOAT_BLOCK"),
2290            Self::ASTC_10X10_SFLOAT_BLOCK => Some("ASTC_10X10_SFLOAT_BLOCK"),
2291            Self::ASTC_12X10_SFLOAT_BLOCK => Some("ASTC_12X10_SFLOAT_BLOCK"),
2292            Self::ASTC_12X12_SFLOAT_BLOCK => Some("ASTC_12X12_SFLOAT_BLOCK"),
2293            _ => None,
2294        };
2295        if let Some(x) = name {
2296            f.write_str(x)
2297        } else {
2298            self.0.fmt(f)
2299        }
2300    }
2301}
2302impl fmt::Debug for FormatFeatureFlags {
2303    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2304        const KNOWN : & [(Flags , & str)] = & [(FormatFeatureFlags :: SAMPLED_IMAGE . 0 , "SAMPLED_IMAGE") , (FormatFeatureFlags :: STORAGE_IMAGE . 0 , "STORAGE_IMAGE") , (FormatFeatureFlags :: STORAGE_IMAGE_ATOMIC . 0 , "STORAGE_IMAGE_ATOMIC") , (FormatFeatureFlags :: UNIFORM_TEXEL_BUFFER . 0 , "UNIFORM_TEXEL_BUFFER") , (FormatFeatureFlags :: STORAGE_TEXEL_BUFFER . 0 , "STORAGE_TEXEL_BUFFER") , (FormatFeatureFlags :: STORAGE_TEXEL_BUFFER_ATOMIC . 0 , "STORAGE_TEXEL_BUFFER_ATOMIC") , (FormatFeatureFlags :: VERTEX_BUFFER . 0 , "VERTEX_BUFFER") , (FormatFeatureFlags :: COLOR_ATTACHMENT . 0 , "COLOR_ATTACHMENT") , (FormatFeatureFlags :: COLOR_ATTACHMENT_BLEND . 0 , "COLOR_ATTACHMENT_BLEND") , (FormatFeatureFlags :: DEPTH_STENCIL_ATTACHMENT . 0 , "DEPTH_STENCIL_ATTACHMENT") , (FormatFeatureFlags :: BLIT_SRC . 0 , "BLIT_SRC") , (FormatFeatureFlags :: BLIT_DST . 0 , "BLIT_DST") , (FormatFeatureFlags :: SAMPLED_IMAGE_FILTER_LINEAR . 0 , "SAMPLED_IMAGE_FILTER_LINEAR") , (FormatFeatureFlags :: VIDEO_DECODE_OUTPUT_KHR . 0 , "VIDEO_DECODE_OUTPUT_KHR") , (FormatFeatureFlags :: VIDEO_DECODE_DPB_KHR . 0 , "VIDEO_DECODE_DPB_KHR") , (FormatFeatureFlags :: ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR . 0 , "ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR") , (FormatFeatureFlags :: SAMPLED_IMAGE_FILTER_CUBIC_EXT . 0 , "SAMPLED_IMAGE_FILTER_CUBIC_EXT") , (FormatFeatureFlags :: FRAGMENT_DENSITY_MAP_EXT . 0 , "FRAGMENT_DENSITY_MAP_EXT") , (FormatFeatureFlags :: FRAGMENT_SHADING_RATE_ATTACHMENT_KHR . 0 , "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR") , (FormatFeatureFlags :: VIDEO_ENCODE_INPUT_KHR . 0 , "VIDEO_ENCODE_INPUT_KHR") , (FormatFeatureFlags :: VIDEO_ENCODE_DPB_KHR . 0 , "VIDEO_ENCODE_DPB_KHR") , (FormatFeatureFlags :: TRANSFER_SRC . 0 , "TRANSFER_SRC") , (FormatFeatureFlags :: TRANSFER_DST . 0 , "TRANSFER_DST") , (FormatFeatureFlags :: MIDPOINT_CHROMA_SAMPLES . 0 , "MIDPOINT_CHROMA_SAMPLES") , (FormatFeatureFlags :: SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER") , (FormatFeatureFlags :: SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER") , (FormatFeatureFlags :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT") , (FormatFeatureFlags :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE") , (FormatFeatureFlags :: DISJOINT . 0 , "DISJOINT") , (FormatFeatureFlags :: COSITED_CHROMA_SAMPLES . 0 , "COSITED_CHROMA_SAMPLES") , (FormatFeatureFlags :: SAMPLED_IMAGE_FILTER_MINMAX . 0 , "SAMPLED_IMAGE_FILTER_MINMAX")] ;
2305        debug_flags(f, KNOWN, self.0)
2306    }
2307}
2308impl fmt::Debug for FormatFeatureFlags2 {
2309    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2310        const KNOWN : & [(Flags64 , & str)] = & [(FormatFeatureFlags2 :: SAMPLED_IMAGE . 0 , "SAMPLED_IMAGE") , (FormatFeatureFlags2 :: STORAGE_IMAGE . 0 , "STORAGE_IMAGE") , (FormatFeatureFlags2 :: STORAGE_IMAGE_ATOMIC . 0 , "STORAGE_IMAGE_ATOMIC") , (FormatFeatureFlags2 :: UNIFORM_TEXEL_BUFFER . 0 , "UNIFORM_TEXEL_BUFFER") , (FormatFeatureFlags2 :: STORAGE_TEXEL_BUFFER . 0 , "STORAGE_TEXEL_BUFFER") , (FormatFeatureFlags2 :: STORAGE_TEXEL_BUFFER_ATOMIC . 0 , "STORAGE_TEXEL_BUFFER_ATOMIC") , (FormatFeatureFlags2 :: VERTEX_BUFFER . 0 , "VERTEX_BUFFER") , (FormatFeatureFlags2 :: COLOR_ATTACHMENT . 0 , "COLOR_ATTACHMENT") , (FormatFeatureFlags2 :: COLOR_ATTACHMENT_BLEND . 0 , "COLOR_ATTACHMENT_BLEND") , (FormatFeatureFlags2 :: DEPTH_STENCIL_ATTACHMENT . 0 , "DEPTH_STENCIL_ATTACHMENT") , (FormatFeatureFlags2 :: BLIT_SRC . 0 , "BLIT_SRC") , (FormatFeatureFlags2 :: BLIT_DST . 0 , "BLIT_DST") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_LINEAR . 0 , "SAMPLED_IMAGE_FILTER_LINEAR") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_CUBIC . 0 , "SAMPLED_IMAGE_FILTER_CUBIC") , (FormatFeatureFlags2 :: TRANSFER_SRC . 0 , "TRANSFER_SRC") , (FormatFeatureFlags2 :: TRANSFER_DST . 0 , "TRANSFER_DST") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_MINMAX . 0 , "SAMPLED_IMAGE_FILTER_MINMAX") , (FormatFeatureFlags2 :: MIDPOINT_CHROMA_SAMPLES . 0 , "MIDPOINT_CHROMA_SAMPLES") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE . 0 , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE") , (FormatFeatureFlags2 :: DISJOINT . 0 , "DISJOINT") , (FormatFeatureFlags2 :: COSITED_CHROMA_SAMPLES . 0 , "COSITED_CHROMA_SAMPLES") , (FormatFeatureFlags2 :: STORAGE_READ_WITHOUT_FORMAT . 0 , "STORAGE_READ_WITHOUT_FORMAT") , (FormatFeatureFlags2 :: STORAGE_WRITE_WITHOUT_FORMAT . 0 , "STORAGE_WRITE_WITHOUT_FORMAT") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_DEPTH_COMPARISON . 0 , "SAMPLED_IMAGE_DEPTH_COMPARISON") , (FormatFeatureFlags2 :: VIDEO_DECODE_OUTPUT_KHR . 0 , "VIDEO_DECODE_OUTPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_DECODE_DPB_KHR . 0 , "VIDEO_DECODE_DPB_KHR") , (FormatFeatureFlags2 :: ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR . 0 , "ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR") , (FormatFeatureFlags2 :: FRAGMENT_DENSITY_MAP_EXT . 0 , "FRAGMENT_DENSITY_MAP_EXT") , (FormatFeatureFlags2 :: FRAGMENT_SHADING_RATE_ATTACHMENT_KHR . 0 , "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR") , (FormatFeatureFlags2 :: HOST_IMAGE_TRANSFER_EXT . 0 , "HOST_IMAGE_TRANSFER_EXT") , (FormatFeatureFlags2 :: VIDEO_ENCODE_INPUT_KHR . 0 , "VIDEO_ENCODE_INPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_DPB_KHR . 0 , "VIDEO_ENCODE_DPB_KHR") , (FormatFeatureFlags2 :: LINEAR_COLOR_ATTACHMENT_NV . 0 , "LINEAR_COLOR_ATTACHMENT_NV") , (FormatFeatureFlags2 :: WEIGHT_IMAGE_QCOM . 0 , "WEIGHT_IMAGE_QCOM") , (FormatFeatureFlags2 :: WEIGHT_SAMPLED_IMAGE_QCOM . 0 , "WEIGHT_SAMPLED_IMAGE_QCOM") , (FormatFeatureFlags2 :: BLOCK_MATCHING_QCOM . 0 , "BLOCK_MATCHING_QCOM") , (FormatFeatureFlags2 :: BOX_FILTER_SAMPLED_QCOM . 0 , "BOX_FILTER_SAMPLED_QCOM") , (FormatFeatureFlags2 :: OPTICAL_FLOW_IMAGE_NV . 0 , "OPTICAL_FLOW_IMAGE_NV") , (FormatFeatureFlags2 :: OPTICAL_FLOW_VECTOR_NV . 0 , "OPTICAL_FLOW_VECTOR_NV") , (FormatFeatureFlags2 :: OPTICAL_FLOW_COST_NV . 0 , "OPTICAL_FLOW_COST_NV")] ;
2311        debug_flags(f, KNOWN, self.0)
2312    }
2313}
2314impl fmt::Debug for FragmentShadingRateCombinerOpKHR {
2315    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2316        let name = match *self {
2317            Self::KEEP => Some("KEEP"),
2318            Self::REPLACE => Some("REPLACE"),
2319            Self::MIN => Some("MIN"),
2320            Self::MAX => Some("MAX"),
2321            Self::MUL => Some("MUL"),
2322            _ => None,
2323        };
2324        if let Some(x) = name {
2325            f.write_str(x)
2326        } else {
2327            self.0.fmt(f)
2328        }
2329    }
2330}
2331impl fmt::Debug for FragmentShadingRateNV {
2332    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2333        let name = match *self {
2334            Self::TYPE_1_INVOCATION_PER_PIXEL => Some("TYPE_1_INVOCATION_PER_PIXEL"),
2335            Self::TYPE_1_INVOCATION_PER_1X2_PIXELS => Some("TYPE_1_INVOCATION_PER_1X2_PIXELS"),
2336            Self::TYPE_1_INVOCATION_PER_2X1_PIXELS => Some("TYPE_1_INVOCATION_PER_2X1_PIXELS"),
2337            Self::TYPE_1_INVOCATION_PER_2X2_PIXELS => Some("TYPE_1_INVOCATION_PER_2X2_PIXELS"),
2338            Self::TYPE_1_INVOCATION_PER_2X4_PIXELS => Some("TYPE_1_INVOCATION_PER_2X4_PIXELS"),
2339            Self::TYPE_1_INVOCATION_PER_4X2_PIXELS => Some("TYPE_1_INVOCATION_PER_4X2_PIXELS"),
2340            Self::TYPE_1_INVOCATION_PER_4X4_PIXELS => Some("TYPE_1_INVOCATION_PER_4X4_PIXELS"),
2341            Self::TYPE_2_INVOCATIONS_PER_PIXEL => Some("TYPE_2_INVOCATIONS_PER_PIXEL"),
2342            Self::TYPE_4_INVOCATIONS_PER_PIXEL => Some("TYPE_4_INVOCATIONS_PER_PIXEL"),
2343            Self::TYPE_8_INVOCATIONS_PER_PIXEL => Some("TYPE_8_INVOCATIONS_PER_PIXEL"),
2344            Self::TYPE_16_INVOCATIONS_PER_PIXEL => Some("TYPE_16_INVOCATIONS_PER_PIXEL"),
2345            Self::NO_INVOCATIONS => Some("NO_INVOCATIONS"),
2346            _ => None,
2347        };
2348        if let Some(x) = name {
2349            f.write_str(x)
2350        } else {
2351            self.0.fmt(f)
2352        }
2353    }
2354}
2355impl fmt::Debug for FragmentShadingRateTypeNV {
2356    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2357        let name = match *self {
2358            Self::FRAGMENT_SIZE => Some("FRAGMENT_SIZE"),
2359            Self::ENUMS => Some("ENUMS"),
2360            _ => None,
2361        };
2362        if let Some(x) = name {
2363            f.write_str(x)
2364        } else {
2365            self.0.fmt(f)
2366        }
2367    }
2368}
2369impl fmt::Debug for FrameBoundaryFlagsEXT {
2370    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2371        const KNOWN: &[(Flags, &str)] = &[(FrameBoundaryFlagsEXT::FRAME_END.0, "FRAME_END")];
2372        debug_flags(f, KNOWN, self.0)
2373    }
2374}
2375impl fmt::Debug for FramebufferCreateFlags {
2376    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2377        const KNOWN: &[(Flags, &str)] = &[(FramebufferCreateFlags::IMAGELESS.0, "IMAGELESS")];
2378        debug_flags(f, KNOWN, self.0)
2379    }
2380}
2381impl fmt::Debug for FrontFace {
2382    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2383        let name = match *self {
2384            Self::COUNTER_CLOCKWISE => Some("COUNTER_CLOCKWISE"),
2385            Self::CLOCKWISE => Some("CLOCKWISE"),
2386            _ => None,
2387        };
2388        if let Some(x) = name {
2389            f.write_str(x)
2390        } else {
2391            self.0.fmt(f)
2392        }
2393    }
2394}
2395impl fmt::Debug for FullScreenExclusiveEXT {
2396    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2397        let name = match *self {
2398            Self::DEFAULT => Some("DEFAULT"),
2399            Self::ALLOWED => Some("ALLOWED"),
2400            Self::DISALLOWED => Some("DISALLOWED"),
2401            Self::APPLICATION_CONTROLLED => Some("APPLICATION_CONTROLLED"),
2402            _ => None,
2403        };
2404        if let Some(x) = name {
2405            f.write_str(x)
2406        } else {
2407            self.0.fmt(f)
2408        }
2409    }
2410}
2411impl fmt::Debug for GeometryFlagsKHR {
2412    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2413        const KNOWN: &[(Flags, &str)] = &[
2414            (GeometryFlagsKHR::OPAQUE.0, "OPAQUE"),
2415            (
2416                GeometryFlagsKHR::NO_DUPLICATE_ANY_HIT_INVOCATION.0,
2417                "NO_DUPLICATE_ANY_HIT_INVOCATION",
2418            ),
2419        ];
2420        debug_flags(f, KNOWN, self.0)
2421    }
2422}
2423impl fmt::Debug for GeometryInstanceFlagsKHR {
2424    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2425        const KNOWN: &[(Flags, &str)] = &[
2426            (
2427                GeometryInstanceFlagsKHR::TRIANGLE_FACING_CULL_DISABLE.0,
2428                "TRIANGLE_FACING_CULL_DISABLE",
2429            ),
2430            (
2431                GeometryInstanceFlagsKHR::TRIANGLE_FLIP_FACING.0,
2432                "TRIANGLE_FLIP_FACING",
2433            ),
2434            (GeometryInstanceFlagsKHR::FORCE_OPAQUE.0, "FORCE_OPAQUE"),
2435            (
2436                GeometryInstanceFlagsKHR::FORCE_NO_OPAQUE.0,
2437                "FORCE_NO_OPAQUE",
2438            ),
2439            (
2440                GeometryInstanceFlagsKHR::FORCE_OPACITY_MICROMAP_2_STATE_EXT.0,
2441                "FORCE_OPACITY_MICROMAP_2_STATE_EXT",
2442            ),
2443            (
2444                GeometryInstanceFlagsKHR::DISABLE_OPACITY_MICROMAPS_EXT.0,
2445                "DISABLE_OPACITY_MICROMAPS_EXT",
2446            ),
2447        ];
2448        debug_flags(f, KNOWN, self.0)
2449    }
2450}
2451impl fmt::Debug for GeometryTypeKHR {
2452    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2453        let name = match *self {
2454            Self::TRIANGLES => Some("TRIANGLES"),
2455            Self::AABBS => Some("AABBS"),
2456            Self::INSTANCES => Some("INSTANCES"),
2457            _ => None,
2458        };
2459        if let Some(x) = name {
2460            f.write_str(x)
2461        } else {
2462            self.0.fmt(f)
2463        }
2464    }
2465}
2466impl fmt::Debug for GraphicsPipelineLibraryFlagsEXT {
2467    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2468        const KNOWN: &[(Flags, &str)] = &[
2469            (
2470                GraphicsPipelineLibraryFlagsEXT::VERTEX_INPUT_INTERFACE.0,
2471                "VERTEX_INPUT_INTERFACE",
2472            ),
2473            (
2474                GraphicsPipelineLibraryFlagsEXT::PRE_RASTERIZATION_SHADERS.0,
2475                "PRE_RASTERIZATION_SHADERS",
2476            ),
2477            (
2478                GraphicsPipelineLibraryFlagsEXT::FRAGMENT_SHADER.0,
2479                "FRAGMENT_SHADER",
2480            ),
2481            (
2482                GraphicsPipelineLibraryFlagsEXT::FRAGMENT_OUTPUT_INTERFACE.0,
2483                "FRAGMENT_OUTPUT_INTERFACE",
2484            ),
2485        ];
2486        debug_flags(f, KNOWN, self.0)
2487    }
2488}
2489impl fmt::Debug for HeadlessSurfaceCreateFlagsEXT {
2490    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2491        const KNOWN: &[(Flags, &str)] = &[];
2492        debug_flags(f, KNOWN, self.0)
2493    }
2494}
2495impl fmt::Debug for HostImageCopyFlagsEXT {
2496    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2497        const KNOWN: &[(Flags, &str)] = &[(HostImageCopyFlagsEXT::MEMCPY.0, "MEMCPY")];
2498        debug_flags(f, KNOWN, self.0)
2499    }
2500}
2501impl fmt::Debug for IOSSurfaceCreateFlagsMVK {
2502    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2503        const KNOWN: &[(Flags, &str)] = &[];
2504        debug_flags(f, KNOWN, self.0)
2505    }
2506}
2507impl fmt::Debug for ImageAspectFlags {
2508    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2509        const KNOWN: &[(Flags, &str)] = &[
2510            (ImageAspectFlags::COLOR.0, "COLOR"),
2511            (ImageAspectFlags::DEPTH.0, "DEPTH"),
2512            (ImageAspectFlags::STENCIL.0, "STENCIL"),
2513            (ImageAspectFlags::METADATA.0, "METADATA"),
2514            (ImageAspectFlags::MEMORY_PLANE_0_EXT.0, "MEMORY_PLANE_0_EXT"),
2515            (ImageAspectFlags::MEMORY_PLANE_1_EXT.0, "MEMORY_PLANE_1_EXT"),
2516            (ImageAspectFlags::MEMORY_PLANE_2_EXT.0, "MEMORY_PLANE_2_EXT"),
2517            (ImageAspectFlags::MEMORY_PLANE_3_EXT.0, "MEMORY_PLANE_3_EXT"),
2518            (ImageAspectFlags::PLANE_0.0, "PLANE_0"),
2519            (ImageAspectFlags::PLANE_1.0, "PLANE_1"),
2520            (ImageAspectFlags::PLANE_2.0, "PLANE_2"),
2521            (ImageAspectFlags::NONE.0, "NONE"),
2522        ];
2523        debug_flags(f, KNOWN, self.0)
2524    }
2525}
2526impl fmt::Debug for ImageCompressionFixedRateFlagsEXT {
2527    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2528        const KNOWN: &[(Flags, &str)] = &[
2529            (ImageCompressionFixedRateFlagsEXT::NONE.0, "NONE"),
2530            (ImageCompressionFixedRateFlagsEXT::TYPE_1BPC.0, "TYPE_1BPC"),
2531            (ImageCompressionFixedRateFlagsEXT::TYPE_2BPC.0, "TYPE_2BPC"),
2532            (ImageCompressionFixedRateFlagsEXT::TYPE_3BPC.0, "TYPE_3BPC"),
2533            (ImageCompressionFixedRateFlagsEXT::TYPE_4BPC.0, "TYPE_4BPC"),
2534            (ImageCompressionFixedRateFlagsEXT::TYPE_5BPC.0, "TYPE_5BPC"),
2535            (ImageCompressionFixedRateFlagsEXT::TYPE_6BPC.0, "TYPE_6BPC"),
2536            (ImageCompressionFixedRateFlagsEXT::TYPE_7BPC.0, "TYPE_7BPC"),
2537            (ImageCompressionFixedRateFlagsEXT::TYPE_8BPC.0, "TYPE_8BPC"),
2538            (ImageCompressionFixedRateFlagsEXT::TYPE_9BPC.0, "TYPE_9BPC"),
2539            (
2540                ImageCompressionFixedRateFlagsEXT::TYPE_10BPC.0,
2541                "TYPE_10BPC",
2542            ),
2543            (
2544                ImageCompressionFixedRateFlagsEXT::TYPE_11BPC.0,
2545                "TYPE_11BPC",
2546            ),
2547            (
2548                ImageCompressionFixedRateFlagsEXT::TYPE_12BPC.0,
2549                "TYPE_12BPC",
2550            ),
2551            (
2552                ImageCompressionFixedRateFlagsEXT::TYPE_13BPC.0,
2553                "TYPE_13BPC",
2554            ),
2555            (
2556                ImageCompressionFixedRateFlagsEXT::TYPE_14BPC.0,
2557                "TYPE_14BPC",
2558            ),
2559            (
2560                ImageCompressionFixedRateFlagsEXT::TYPE_15BPC.0,
2561                "TYPE_15BPC",
2562            ),
2563            (
2564                ImageCompressionFixedRateFlagsEXT::TYPE_16BPC.0,
2565                "TYPE_16BPC",
2566            ),
2567            (
2568                ImageCompressionFixedRateFlagsEXT::TYPE_17BPC.0,
2569                "TYPE_17BPC",
2570            ),
2571            (
2572                ImageCompressionFixedRateFlagsEXT::TYPE_18BPC.0,
2573                "TYPE_18BPC",
2574            ),
2575            (
2576                ImageCompressionFixedRateFlagsEXT::TYPE_19BPC.0,
2577                "TYPE_19BPC",
2578            ),
2579            (
2580                ImageCompressionFixedRateFlagsEXT::TYPE_20BPC.0,
2581                "TYPE_20BPC",
2582            ),
2583            (
2584                ImageCompressionFixedRateFlagsEXT::TYPE_21BPC.0,
2585                "TYPE_21BPC",
2586            ),
2587            (
2588                ImageCompressionFixedRateFlagsEXT::TYPE_22BPC.0,
2589                "TYPE_22BPC",
2590            ),
2591            (
2592                ImageCompressionFixedRateFlagsEXT::TYPE_23BPC.0,
2593                "TYPE_23BPC",
2594            ),
2595            (
2596                ImageCompressionFixedRateFlagsEXT::TYPE_24BPC.0,
2597                "TYPE_24BPC",
2598            ),
2599        ];
2600        debug_flags(f, KNOWN, self.0)
2601    }
2602}
2603impl fmt::Debug for ImageCompressionFlagsEXT {
2604    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2605        const KNOWN: &[(Flags, &str)] = &[
2606            (ImageCompressionFlagsEXT::DEFAULT.0, "DEFAULT"),
2607            (
2608                ImageCompressionFlagsEXT::FIXED_RATE_DEFAULT.0,
2609                "FIXED_RATE_DEFAULT",
2610            ),
2611            (
2612                ImageCompressionFlagsEXT::FIXED_RATE_EXPLICIT.0,
2613                "FIXED_RATE_EXPLICIT",
2614            ),
2615            (ImageCompressionFlagsEXT::DISABLED.0, "DISABLED"),
2616        ];
2617        debug_flags(f, KNOWN, self.0)
2618    }
2619}
2620impl fmt::Debug for ImageConstraintsInfoFlagsFUCHSIA {
2621    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2622        const KNOWN: &[(Flags, &str)] = &[
2623            (
2624                ImageConstraintsInfoFlagsFUCHSIA::CPU_READ_RARELY.0,
2625                "CPU_READ_RARELY",
2626            ),
2627            (
2628                ImageConstraintsInfoFlagsFUCHSIA::CPU_READ_OFTEN.0,
2629                "CPU_READ_OFTEN",
2630            ),
2631            (
2632                ImageConstraintsInfoFlagsFUCHSIA::CPU_WRITE_RARELY.0,
2633                "CPU_WRITE_RARELY",
2634            ),
2635            (
2636                ImageConstraintsInfoFlagsFUCHSIA::CPU_WRITE_OFTEN.0,
2637                "CPU_WRITE_OFTEN",
2638            ),
2639            (
2640                ImageConstraintsInfoFlagsFUCHSIA::PROTECTED_OPTIONAL.0,
2641                "PROTECTED_OPTIONAL",
2642            ),
2643        ];
2644        debug_flags(f, KNOWN, self.0)
2645    }
2646}
2647impl fmt::Debug for ImageCreateFlags {
2648    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2649        const KNOWN: &[(Flags, &str)] = &[
2650            (ImageCreateFlags::SPARSE_BINDING.0, "SPARSE_BINDING"),
2651            (ImageCreateFlags::SPARSE_RESIDENCY.0, "SPARSE_RESIDENCY"),
2652            (ImageCreateFlags::SPARSE_ALIASED.0, "SPARSE_ALIASED"),
2653            (ImageCreateFlags::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"),
2654            (ImageCreateFlags::CUBE_COMPATIBLE.0, "CUBE_COMPATIBLE"),
2655            (ImageCreateFlags::CORNER_SAMPLED_NV.0, "CORNER_SAMPLED_NV"),
2656            (
2657                ImageCreateFlags::SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT.0,
2658                "SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT",
2659            ),
2660            (ImageCreateFlags::SUBSAMPLED_EXT.0, "SUBSAMPLED_EXT"),
2661            (
2662                ImageCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
2663                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
2664            ),
2665            (
2666                ImageCreateFlags::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT.0,
2667                "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT",
2668            ),
2669            (
2670                ImageCreateFlags::TYPE_2D_VIEW_COMPATIBLE_EXT.0,
2671                "TYPE_2D_VIEW_COMPATIBLE_EXT",
2672            ),
2673            (
2674                ImageCreateFlags::FRAGMENT_DENSITY_MAP_OFFSET_QCOM.0,
2675                "FRAGMENT_DENSITY_MAP_OFFSET_QCOM",
2676            ),
2677            (
2678                ImageCreateFlags::VIDEO_PROFILE_INDEPENDENT_KHR.0,
2679                "VIDEO_PROFILE_INDEPENDENT_KHR",
2680            ),
2681            (ImageCreateFlags::ALIAS.0, "ALIAS"),
2682            (
2683                ImageCreateFlags::SPLIT_INSTANCE_BIND_REGIONS.0,
2684                "SPLIT_INSTANCE_BIND_REGIONS",
2685            ),
2686            (
2687                ImageCreateFlags::TYPE_2D_ARRAY_COMPATIBLE.0,
2688                "TYPE_2D_ARRAY_COMPATIBLE",
2689            ),
2690            (
2691                ImageCreateFlags::BLOCK_TEXEL_VIEW_COMPATIBLE.0,
2692                "BLOCK_TEXEL_VIEW_COMPATIBLE",
2693            ),
2694            (ImageCreateFlags::EXTENDED_USAGE.0, "EXTENDED_USAGE"),
2695            (ImageCreateFlags::PROTECTED.0, "PROTECTED"),
2696            (ImageCreateFlags::DISJOINT.0, "DISJOINT"),
2697        ];
2698        debug_flags(f, KNOWN, self.0)
2699    }
2700}
2701impl fmt::Debug for ImageFormatConstraintsFlagsFUCHSIA {
2702    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2703        const KNOWN: &[(Flags, &str)] = &[];
2704        debug_flags(f, KNOWN, self.0)
2705    }
2706}
2707impl fmt::Debug for ImageLayout {
2708    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2709        let name = match *self {
2710            Self::UNDEFINED => Some("UNDEFINED"),
2711            Self::GENERAL => Some("GENERAL"),
2712            Self::COLOR_ATTACHMENT_OPTIMAL => Some("COLOR_ATTACHMENT_OPTIMAL"),
2713            Self::DEPTH_STENCIL_ATTACHMENT_OPTIMAL => Some("DEPTH_STENCIL_ATTACHMENT_OPTIMAL"),
2714            Self::DEPTH_STENCIL_READ_ONLY_OPTIMAL => Some("DEPTH_STENCIL_READ_ONLY_OPTIMAL"),
2715            Self::SHADER_READ_ONLY_OPTIMAL => Some("SHADER_READ_ONLY_OPTIMAL"),
2716            Self::TRANSFER_SRC_OPTIMAL => Some("TRANSFER_SRC_OPTIMAL"),
2717            Self::TRANSFER_DST_OPTIMAL => Some("TRANSFER_DST_OPTIMAL"),
2718            Self::PREINITIALIZED => Some("PREINITIALIZED"),
2719            Self::PRESENT_SRC_KHR => Some("PRESENT_SRC_KHR"),
2720            Self::VIDEO_DECODE_DST_KHR => Some("VIDEO_DECODE_DST_KHR"),
2721            Self::VIDEO_DECODE_SRC_KHR => Some("VIDEO_DECODE_SRC_KHR"),
2722            Self::VIDEO_DECODE_DPB_KHR => Some("VIDEO_DECODE_DPB_KHR"),
2723            Self::SHARED_PRESENT_KHR => Some("SHARED_PRESENT_KHR"),
2724            Self::FRAGMENT_DENSITY_MAP_OPTIMAL_EXT => Some("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT"),
2725            Self::FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR => {
2726                Some("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR")
2727            }
2728            Self::RENDERING_LOCAL_READ_KHR => Some("RENDERING_LOCAL_READ_KHR"),
2729            Self::VIDEO_ENCODE_DST_KHR => Some("VIDEO_ENCODE_DST_KHR"),
2730            Self::VIDEO_ENCODE_SRC_KHR => Some("VIDEO_ENCODE_SRC_KHR"),
2731            Self::VIDEO_ENCODE_DPB_KHR => Some("VIDEO_ENCODE_DPB_KHR"),
2732            Self::ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT => {
2733                Some("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT")
2734            }
2735            Self::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL => {
2736                Some("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL")
2737            }
2738            Self::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL => {
2739                Some("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL")
2740            }
2741            Self::DEPTH_ATTACHMENT_OPTIMAL => Some("DEPTH_ATTACHMENT_OPTIMAL"),
2742            Self::DEPTH_READ_ONLY_OPTIMAL => Some("DEPTH_READ_ONLY_OPTIMAL"),
2743            Self::STENCIL_ATTACHMENT_OPTIMAL => Some("STENCIL_ATTACHMENT_OPTIMAL"),
2744            Self::STENCIL_READ_ONLY_OPTIMAL => Some("STENCIL_READ_ONLY_OPTIMAL"),
2745            Self::READ_ONLY_OPTIMAL => Some("READ_ONLY_OPTIMAL"),
2746            Self::ATTACHMENT_OPTIMAL => Some("ATTACHMENT_OPTIMAL"),
2747            _ => None,
2748        };
2749        if let Some(x) = name {
2750            f.write_str(x)
2751        } else {
2752            self.0.fmt(f)
2753        }
2754    }
2755}
2756impl fmt::Debug for ImagePipeSurfaceCreateFlagsFUCHSIA {
2757    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2758        const KNOWN: &[(Flags, &str)] = &[];
2759        debug_flags(f, KNOWN, self.0)
2760    }
2761}
2762impl fmt::Debug for ImageTiling {
2763    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2764        let name = match *self {
2765            Self::OPTIMAL => Some("OPTIMAL"),
2766            Self::LINEAR => Some("LINEAR"),
2767            Self::DRM_FORMAT_MODIFIER_EXT => Some("DRM_FORMAT_MODIFIER_EXT"),
2768            _ => None,
2769        };
2770        if let Some(x) = name {
2771            f.write_str(x)
2772        } else {
2773            self.0.fmt(f)
2774        }
2775    }
2776}
2777impl fmt::Debug for ImageType {
2778    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2779        let name = match *self {
2780            Self::TYPE_1D => Some("TYPE_1D"),
2781            Self::TYPE_2D => Some("TYPE_2D"),
2782            Self::TYPE_3D => Some("TYPE_3D"),
2783            _ => None,
2784        };
2785        if let Some(x) = name {
2786            f.write_str(x)
2787        } else {
2788            self.0.fmt(f)
2789        }
2790    }
2791}
2792impl fmt::Debug for ImageUsageFlags {
2793    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2794        const KNOWN: &[(Flags, &str)] = &[
2795            (ImageUsageFlags::TRANSFER_SRC.0, "TRANSFER_SRC"),
2796            (ImageUsageFlags::TRANSFER_DST.0, "TRANSFER_DST"),
2797            (ImageUsageFlags::SAMPLED.0, "SAMPLED"),
2798            (ImageUsageFlags::STORAGE.0, "STORAGE"),
2799            (ImageUsageFlags::COLOR_ATTACHMENT.0, "COLOR_ATTACHMENT"),
2800            (
2801                ImageUsageFlags::DEPTH_STENCIL_ATTACHMENT.0,
2802                "DEPTH_STENCIL_ATTACHMENT",
2803            ),
2804            (
2805                ImageUsageFlags::TRANSIENT_ATTACHMENT.0,
2806                "TRANSIENT_ATTACHMENT",
2807            ),
2808            (ImageUsageFlags::INPUT_ATTACHMENT.0, "INPUT_ATTACHMENT"),
2809            (
2810                ImageUsageFlags::VIDEO_DECODE_DST_KHR.0,
2811                "VIDEO_DECODE_DST_KHR",
2812            ),
2813            (
2814                ImageUsageFlags::VIDEO_DECODE_SRC_KHR.0,
2815                "VIDEO_DECODE_SRC_KHR",
2816            ),
2817            (
2818                ImageUsageFlags::VIDEO_DECODE_DPB_KHR.0,
2819                "VIDEO_DECODE_DPB_KHR",
2820            ),
2821            (
2822                ImageUsageFlags::FRAGMENT_DENSITY_MAP_EXT.0,
2823                "FRAGMENT_DENSITY_MAP_EXT",
2824            ),
2825            (
2826                ImageUsageFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
2827                "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
2828            ),
2829            (ImageUsageFlags::HOST_TRANSFER_EXT.0, "HOST_TRANSFER_EXT"),
2830            (
2831                ImageUsageFlags::VIDEO_ENCODE_DST_KHR.0,
2832                "VIDEO_ENCODE_DST_KHR",
2833            ),
2834            (
2835                ImageUsageFlags::VIDEO_ENCODE_SRC_KHR.0,
2836                "VIDEO_ENCODE_SRC_KHR",
2837            ),
2838            (
2839                ImageUsageFlags::VIDEO_ENCODE_DPB_KHR.0,
2840                "VIDEO_ENCODE_DPB_KHR",
2841            ),
2842            (
2843                ImageUsageFlags::ATTACHMENT_FEEDBACK_LOOP_EXT.0,
2844                "ATTACHMENT_FEEDBACK_LOOP_EXT",
2845            ),
2846            (
2847                ImageUsageFlags::INVOCATION_MASK_HUAWEI.0,
2848                "INVOCATION_MASK_HUAWEI",
2849            ),
2850            (ImageUsageFlags::SAMPLE_WEIGHT_QCOM.0, "SAMPLE_WEIGHT_QCOM"),
2851            (
2852                ImageUsageFlags::SAMPLE_BLOCK_MATCH_QCOM.0,
2853                "SAMPLE_BLOCK_MATCH_QCOM",
2854            ),
2855        ];
2856        debug_flags(f, KNOWN, self.0)
2857    }
2858}
2859impl fmt::Debug for ImageViewCreateFlags {
2860    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2861        const KNOWN: &[(Flags, &str)] = &[
2862            (
2863                ImageViewCreateFlags::FRAGMENT_DENSITY_MAP_DYNAMIC_EXT.0,
2864                "FRAGMENT_DENSITY_MAP_DYNAMIC_EXT",
2865            ),
2866            (
2867                ImageViewCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
2868                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
2869            ),
2870            (
2871                ImageViewCreateFlags::FRAGMENT_DENSITY_MAP_DEFERRED_EXT.0,
2872                "FRAGMENT_DENSITY_MAP_DEFERRED_EXT",
2873            ),
2874        ];
2875        debug_flags(f, KNOWN, self.0)
2876    }
2877}
2878impl fmt::Debug for ImageViewType {
2879    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2880        let name = match *self {
2881            Self::TYPE_1D => Some("TYPE_1D"),
2882            Self::TYPE_2D => Some("TYPE_2D"),
2883            Self::TYPE_3D => Some("TYPE_3D"),
2884            Self::CUBE => Some("CUBE"),
2885            Self::TYPE_1D_ARRAY => Some("TYPE_1D_ARRAY"),
2886            Self::TYPE_2D_ARRAY => Some("TYPE_2D_ARRAY"),
2887            Self::CUBE_ARRAY => Some("CUBE_ARRAY"),
2888            _ => None,
2889        };
2890        if let Some(x) = name {
2891            f.write_str(x)
2892        } else {
2893            self.0.fmt(f)
2894        }
2895    }
2896}
2897impl fmt::Debug for IndexType {
2898    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2899        let name = match *self {
2900            Self::UINT16 => Some("UINT16"),
2901            Self::UINT32 => Some("UINT32"),
2902            Self::NONE_KHR => Some("NONE_KHR"),
2903            Self::UINT8_KHR => Some("UINT8_KHR"),
2904            _ => None,
2905        };
2906        if let Some(x) = name {
2907            f.write_str(x)
2908        } else {
2909            self.0.fmt(f)
2910        }
2911    }
2912}
2913impl fmt::Debug for IndirectCommandsLayoutUsageFlagsNV {
2914    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2915        const KNOWN: &[(Flags, &str)] = &[
2916            (
2917                IndirectCommandsLayoutUsageFlagsNV::EXPLICIT_PREPROCESS.0,
2918                "EXPLICIT_PREPROCESS",
2919            ),
2920            (
2921                IndirectCommandsLayoutUsageFlagsNV::INDEXED_SEQUENCES.0,
2922                "INDEXED_SEQUENCES",
2923            ),
2924            (
2925                IndirectCommandsLayoutUsageFlagsNV::UNORDERED_SEQUENCES.0,
2926                "UNORDERED_SEQUENCES",
2927            ),
2928        ];
2929        debug_flags(f, KNOWN, self.0)
2930    }
2931}
2932impl fmt::Debug for IndirectCommandsTokenTypeNV {
2933    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2934        let name = match *self {
2935            Self::SHADER_GROUP => Some("SHADER_GROUP"),
2936            Self::STATE_FLAGS => Some("STATE_FLAGS"),
2937            Self::INDEX_BUFFER => Some("INDEX_BUFFER"),
2938            Self::VERTEX_BUFFER => Some("VERTEX_BUFFER"),
2939            Self::PUSH_CONSTANT => Some("PUSH_CONSTANT"),
2940            Self::DRAW_INDEXED => Some("DRAW_INDEXED"),
2941            Self::DRAW => Some("DRAW"),
2942            Self::DRAW_TASKS => Some("DRAW_TASKS"),
2943            Self::DRAW_MESH_TASKS => Some("DRAW_MESH_TASKS"),
2944            Self::PIPELINE => Some("PIPELINE"),
2945            Self::DISPATCH => Some("DISPATCH"),
2946            _ => None,
2947        };
2948        if let Some(x) = name {
2949            f.write_str(x)
2950        } else {
2951            self.0.fmt(f)
2952        }
2953    }
2954}
2955impl fmt::Debug for IndirectStateFlagsNV {
2956    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2957        const KNOWN: &[(Flags, &str)] =
2958            &[(IndirectStateFlagsNV::FLAG_FRONTFACE.0, "FLAG_FRONTFACE")];
2959        debug_flags(f, KNOWN, self.0)
2960    }
2961}
2962impl fmt::Debug for InstanceCreateFlags {
2963    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2964        const KNOWN: &[(Flags, &str)] = &[(
2965            InstanceCreateFlags::ENUMERATE_PORTABILITY_KHR.0,
2966            "ENUMERATE_PORTABILITY_KHR",
2967        )];
2968        debug_flags(f, KNOWN, self.0)
2969    }
2970}
2971impl fmt::Debug for InternalAllocationType {
2972    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2973        let name = match *self {
2974            Self::EXECUTABLE => Some("EXECUTABLE"),
2975            _ => None,
2976        };
2977        if let Some(x) = name {
2978            f.write_str(x)
2979        } else {
2980            self.0.fmt(f)
2981        }
2982    }
2983}
2984impl fmt::Debug for LatencyMarkerNV {
2985    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2986        let name = match *self {
2987            Self::SIMULATION_START => Some("SIMULATION_START"),
2988            Self::SIMULATION_END => Some("SIMULATION_END"),
2989            Self::RENDERSUBMIT_START => Some("RENDERSUBMIT_START"),
2990            Self::RENDERSUBMIT_END => Some("RENDERSUBMIT_END"),
2991            Self::PRESENT_START => Some("PRESENT_START"),
2992            Self::PRESENT_END => Some("PRESENT_END"),
2993            Self::INPUT_SAMPLE => Some("INPUT_SAMPLE"),
2994            Self::TRIGGER_FLASH => Some("TRIGGER_FLASH"),
2995            Self::OUT_OF_BAND_RENDERSUBMIT_START => Some("OUT_OF_BAND_RENDERSUBMIT_START"),
2996            Self::OUT_OF_BAND_RENDERSUBMIT_END => Some("OUT_OF_BAND_RENDERSUBMIT_END"),
2997            Self::OUT_OF_BAND_PRESENT_START => Some("OUT_OF_BAND_PRESENT_START"),
2998            Self::OUT_OF_BAND_PRESENT_END => Some("OUT_OF_BAND_PRESENT_END"),
2999            _ => None,
3000        };
3001        if let Some(x) = name {
3002            f.write_str(x)
3003        } else {
3004            self.0.fmt(f)
3005        }
3006    }
3007}
3008impl fmt::Debug for LayerSettingTypeEXT {
3009    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3010        let name = match *self {
3011            Self::BOOL32 => Some("BOOL32"),
3012            Self::INT32 => Some("INT32"),
3013            Self::INT64 => Some("INT64"),
3014            Self::UINT32 => Some("UINT32"),
3015            Self::UINT64 => Some("UINT64"),
3016            Self::FLOAT32 => Some("FLOAT32"),
3017            Self::FLOAT64 => Some("FLOAT64"),
3018            Self::STRING => Some("STRING"),
3019            _ => None,
3020        };
3021        if let Some(x) = name {
3022            f.write_str(x)
3023        } else {
3024            self.0.fmt(f)
3025        }
3026    }
3027}
3028impl fmt::Debug for LayeredDriverUnderlyingApiMSFT {
3029    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3030        let name = match *self {
3031            Self::NONE => Some("NONE"),
3032            Self::D3D12 => Some("D3D12"),
3033            _ => None,
3034        };
3035        if let Some(x) = name {
3036            f.write_str(x)
3037        } else {
3038            self.0.fmt(f)
3039        }
3040    }
3041}
3042impl fmt::Debug for LineRasterizationModeKHR {
3043    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3044        let name = match *self {
3045            Self::DEFAULT => Some("DEFAULT"),
3046            Self::RECTANGULAR => Some("RECTANGULAR"),
3047            Self::BRESENHAM => Some("BRESENHAM"),
3048            Self::RECTANGULAR_SMOOTH => Some("RECTANGULAR_SMOOTH"),
3049            _ => None,
3050        };
3051        if let Some(x) = name {
3052            f.write_str(x)
3053        } else {
3054            self.0.fmt(f)
3055        }
3056    }
3057}
3058impl fmt::Debug for LogicOp {
3059    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3060        let name = match *self {
3061            Self::CLEAR => Some("CLEAR"),
3062            Self::AND => Some("AND"),
3063            Self::AND_REVERSE => Some("AND_REVERSE"),
3064            Self::COPY => Some("COPY"),
3065            Self::AND_INVERTED => Some("AND_INVERTED"),
3066            Self::NO_OP => Some("NO_OP"),
3067            Self::XOR => Some("XOR"),
3068            Self::OR => Some("OR"),
3069            Self::NOR => Some("NOR"),
3070            Self::EQUIVALENT => Some("EQUIVALENT"),
3071            Self::INVERT => Some("INVERT"),
3072            Self::OR_REVERSE => Some("OR_REVERSE"),
3073            Self::COPY_INVERTED => Some("COPY_INVERTED"),
3074            Self::OR_INVERTED => Some("OR_INVERTED"),
3075            Self::NAND => Some("NAND"),
3076            Self::SET => Some("SET"),
3077            _ => None,
3078        };
3079        if let Some(x) = name {
3080            f.write_str(x)
3081        } else {
3082            self.0.fmt(f)
3083        }
3084    }
3085}
3086impl fmt::Debug for MacOSSurfaceCreateFlagsMVK {
3087    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3088        const KNOWN: &[(Flags, &str)] = &[];
3089        debug_flags(f, KNOWN, self.0)
3090    }
3091}
3092impl fmt::Debug for MemoryAllocateFlags {
3093    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3094        const KNOWN: &[(Flags, &str)] = &[
3095            (MemoryAllocateFlags::DEVICE_MASK.0, "DEVICE_MASK"),
3096            (MemoryAllocateFlags::DEVICE_ADDRESS.0, "DEVICE_ADDRESS"),
3097            (
3098                MemoryAllocateFlags::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
3099                "DEVICE_ADDRESS_CAPTURE_REPLAY",
3100            ),
3101        ];
3102        debug_flags(f, KNOWN, self.0)
3103    }
3104}
3105impl fmt::Debug for MemoryDecompressionMethodFlagsNV {
3106    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3107        const KNOWN: &[(Flags64, &str)] = &[(
3108            MemoryDecompressionMethodFlagsNV::GDEFLATE_1_0.0,
3109            "GDEFLATE_1_0",
3110        )];
3111        debug_flags(f, KNOWN, self.0)
3112    }
3113}
3114impl fmt::Debug for MemoryHeapFlags {
3115    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3116        const KNOWN: &[(Flags, &str)] = &[
3117            (MemoryHeapFlags::DEVICE_LOCAL.0, "DEVICE_LOCAL"),
3118            (MemoryHeapFlags::MULTI_INSTANCE.0, "MULTI_INSTANCE"),
3119        ];
3120        debug_flags(f, KNOWN, self.0)
3121    }
3122}
3123impl fmt::Debug for MemoryMapFlags {
3124    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3125        const KNOWN: &[(Flags, &str)] = &[(MemoryMapFlags::PLACED_EXT.0, "PLACED_EXT")];
3126        debug_flags(f, KNOWN, self.0)
3127    }
3128}
3129impl fmt::Debug for MemoryOverallocationBehaviorAMD {
3130    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3131        let name = match *self {
3132            Self::DEFAULT => Some("DEFAULT"),
3133            Self::ALLOWED => Some("ALLOWED"),
3134            Self::DISALLOWED => Some("DISALLOWED"),
3135            _ => None,
3136        };
3137        if let Some(x) = name {
3138            f.write_str(x)
3139        } else {
3140            self.0.fmt(f)
3141        }
3142    }
3143}
3144impl fmt::Debug for MemoryPropertyFlags {
3145    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3146        const KNOWN: &[(Flags, &str)] = &[
3147            (MemoryPropertyFlags::DEVICE_LOCAL.0, "DEVICE_LOCAL"),
3148            (MemoryPropertyFlags::HOST_VISIBLE.0, "HOST_VISIBLE"),
3149            (MemoryPropertyFlags::HOST_COHERENT.0, "HOST_COHERENT"),
3150            (MemoryPropertyFlags::HOST_CACHED.0, "HOST_CACHED"),
3151            (MemoryPropertyFlags::LAZILY_ALLOCATED.0, "LAZILY_ALLOCATED"),
3152            (
3153                MemoryPropertyFlags::DEVICE_COHERENT_AMD.0,
3154                "DEVICE_COHERENT_AMD",
3155            ),
3156            (
3157                MemoryPropertyFlags::DEVICE_UNCACHED_AMD.0,
3158                "DEVICE_UNCACHED_AMD",
3159            ),
3160            (MemoryPropertyFlags::RDMA_CAPABLE_NV.0, "RDMA_CAPABLE_NV"),
3161            (MemoryPropertyFlags::PROTECTED.0, "PROTECTED"),
3162        ];
3163        debug_flags(f, KNOWN, self.0)
3164    }
3165}
3166impl fmt::Debug for MemoryUnmapFlagsKHR {
3167    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3168        const KNOWN: &[(Flags, &str)] = &[(MemoryUnmapFlagsKHR::RESERVE_EXT.0, "RESERVE_EXT")];
3169        debug_flags(f, KNOWN, self.0)
3170    }
3171}
3172impl fmt::Debug for MetalSurfaceCreateFlagsEXT {
3173    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3174        const KNOWN: &[(Flags, &str)] = &[];
3175        debug_flags(f, KNOWN, self.0)
3176    }
3177}
3178impl fmt::Debug for MicromapCreateFlagsEXT {
3179    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3180        const KNOWN: &[(Flags, &str)] = &[(
3181            MicromapCreateFlagsEXT::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
3182            "DEVICE_ADDRESS_CAPTURE_REPLAY",
3183        )];
3184        debug_flags(f, KNOWN, self.0)
3185    }
3186}
3187impl fmt::Debug for MicromapTypeEXT {
3188    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3189        let name = match *self {
3190            Self::OPACITY_MICROMAP => Some("OPACITY_MICROMAP"),
3191            Self::DISPLACEMENT_MICROMAP_NV => Some("DISPLACEMENT_MICROMAP_NV"),
3192            _ => None,
3193        };
3194        if let Some(x) = name {
3195            f.write_str(x)
3196        } else {
3197            self.0.fmt(f)
3198        }
3199    }
3200}
3201impl fmt::Debug for OpacityMicromapFormatEXT {
3202    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3203        let name = match *self {
3204            Self::TYPE_2_STATE => Some("TYPE_2_STATE"),
3205            Self::TYPE_4_STATE => Some("TYPE_4_STATE"),
3206            _ => None,
3207        };
3208        if let Some(x) = name {
3209            f.write_str(x)
3210        } else {
3211            self.0.fmt(f)
3212        }
3213    }
3214}
3215impl fmt::Debug for OpacityMicromapSpecialIndexEXT {
3216    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3217        let name = match *self {
3218            Self::FULLY_TRANSPARENT => Some("FULLY_TRANSPARENT"),
3219            Self::FULLY_OPAQUE => Some("FULLY_OPAQUE"),
3220            Self::FULLY_UNKNOWN_TRANSPARENT => Some("FULLY_UNKNOWN_TRANSPARENT"),
3221            Self::FULLY_UNKNOWN_OPAQUE => Some("FULLY_UNKNOWN_OPAQUE"),
3222            _ => None,
3223        };
3224        if let Some(x) = name {
3225            f.write_str(x)
3226        } else {
3227            self.0.fmt(f)
3228        }
3229    }
3230}
3231impl fmt::Debug for OpticalFlowExecuteFlagsNV {
3232    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3233        const KNOWN: &[(Flags, &str)] = &[(
3234            OpticalFlowExecuteFlagsNV::DISABLE_TEMPORAL_HINTS.0,
3235            "DISABLE_TEMPORAL_HINTS",
3236        )];
3237        debug_flags(f, KNOWN, self.0)
3238    }
3239}
3240impl fmt::Debug for OpticalFlowGridSizeFlagsNV {
3241    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3242        const KNOWN: &[(Flags, &str)] = &[
3243            (OpticalFlowGridSizeFlagsNV::UNKNOWN.0, "UNKNOWN"),
3244            (OpticalFlowGridSizeFlagsNV::TYPE_1X1.0, "TYPE_1X1"),
3245            (OpticalFlowGridSizeFlagsNV::TYPE_2X2.0, "TYPE_2X2"),
3246            (OpticalFlowGridSizeFlagsNV::TYPE_4X4.0, "TYPE_4X4"),
3247            (OpticalFlowGridSizeFlagsNV::TYPE_8X8.0, "TYPE_8X8"),
3248        ];
3249        debug_flags(f, KNOWN, self.0)
3250    }
3251}
3252impl fmt::Debug for OpticalFlowPerformanceLevelNV {
3253    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3254        let name = match *self {
3255            Self::UNKNOWN => Some("UNKNOWN"),
3256            Self::SLOW => Some("SLOW"),
3257            Self::MEDIUM => Some("MEDIUM"),
3258            Self::FAST => Some("FAST"),
3259            _ => None,
3260        };
3261        if let Some(x) = name {
3262            f.write_str(x)
3263        } else {
3264            self.0.fmt(f)
3265        }
3266    }
3267}
3268impl fmt::Debug for OpticalFlowSessionBindingPointNV {
3269    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3270        let name = match *self {
3271            Self::UNKNOWN => Some("UNKNOWN"),
3272            Self::INPUT => Some("INPUT"),
3273            Self::REFERENCE => Some("REFERENCE"),
3274            Self::HINT => Some("HINT"),
3275            Self::FLOW_VECTOR => Some("FLOW_VECTOR"),
3276            Self::BACKWARD_FLOW_VECTOR => Some("BACKWARD_FLOW_VECTOR"),
3277            Self::COST => Some("COST"),
3278            Self::BACKWARD_COST => Some("BACKWARD_COST"),
3279            Self::GLOBAL_FLOW => Some("GLOBAL_FLOW"),
3280            _ => None,
3281        };
3282        if let Some(x) = name {
3283            f.write_str(x)
3284        } else {
3285            self.0.fmt(f)
3286        }
3287    }
3288}
3289impl fmt::Debug for OpticalFlowSessionCreateFlagsNV {
3290    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3291        const KNOWN: &[(Flags, &str)] = &[
3292            (
3293                OpticalFlowSessionCreateFlagsNV::ENABLE_HINT.0,
3294                "ENABLE_HINT",
3295            ),
3296            (
3297                OpticalFlowSessionCreateFlagsNV::ENABLE_COST.0,
3298                "ENABLE_COST",
3299            ),
3300            (
3301                OpticalFlowSessionCreateFlagsNV::ENABLE_GLOBAL_FLOW.0,
3302                "ENABLE_GLOBAL_FLOW",
3303            ),
3304            (
3305                OpticalFlowSessionCreateFlagsNV::ALLOW_REGIONS.0,
3306                "ALLOW_REGIONS",
3307            ),
3308            (
3309                OpticalFlowSessionCreateFlagsNV::BOTH_DIRECTIONS.0,
3310                "BOTH_DIRECTIONS",
3311            ),
3312        ];
3313        debug_flags(f, KNOWN, self.0)
3314    }
3315}
3316impl fmt::Debug for OpticalFlowUsageFlagsNV {
3317    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3318        const KNOWN: &[(Flags, &str)] = &[
3319            (OpticalFlowUsageFlagsNV::UNKNOWN.0, "UNKNOWN"),
3320            (OpticalFlowUsageFlagsNV::INPUT.0, "INPUT"),
3321            (OpticalFlowUsageFlagsNV::OUTPUT.0, "OUTPUT"),
3322            (OpticalFlowUsageFlagsNV::HINT.0, "HINT"),
3323            (OpticalFlowUsageFlagsNV::COST.0, "COST"),
3324            (OpticalFlowUsageFlagsNV::GLOBAL_FLOW.0, "GLOBAL_FLOW"),
3325        ];
3326        debug_flags(f, KNOWN, self.0)
3327    }
3328}
3329impl fmt::Debug for OutOfBandQueueTypeNV {
3330    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3331        let name = match *self {
3332            Self::RENDER => Some("RENDER"),
3333            Self::PRESENT => Some("PRESENT"),
3334            _ => None,
3335        };
3336        if let Some(x) = name {
3337            f.write_str(x)
3338        } else {
3339            self.0.fmt(f)
3340        }
3341    }
3342}
3343impl fmt::Debug for PeerMemoryFeatureFlags {
3344    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3345        const KNOWN: &[(Flags, &str)] = &[
3346            (PeerMemoryFeatureFlags::COPY_SRC.0, "COPY_SRC"),
3347            (PeerMemoryFeatureFlags::COPY_DST.0, "COPY_DST"),
3348            (PeerMemoryFeatureFlags::GENERIC_SRC.0, "GENERIC_SRC"),
3349            (PeerMemoryFeatureFlags::GENERIC_DST.0, "GENERIC_DST"),
3350        ];
3351        debug_flags(f, KNOWN, self.0)
3352    }
3353}
3354impl fmt::Debug for PerformanceConfigurationTypeINTEL {
3355    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3356        let name = match *self {
3357            Self::COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED => {
3358                Some("COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED")
3359            }
3360            _ => None,
3361        };
3362        if let Some(x) = name {
3363            f.write_str(x)
3364        } else {
3365            self.0.fmt(f)
3366        }
3367    }
3368}
3369impl fmt::Debug for PerformanceCounterDescriptionFlagsKHR {
3370    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3371        const KNOWN: &[(Flags, &str)] = &[
3372            (
3373                PerformanceCounterDescriptionFlagsKHR::PERFORMANCE_IMPACTING.0,
3374                "PERFORMANCE_IMPACTING",
3375            ),
3376            (
3377                PerformanceCounterDescriptionFlagsKHR::CONCURRENTLY_IMPACTED.0,
3378                "CONCURRENTLY_IMPACTED",
3379            ),
3380        ];
3381        debug_flags(f, KNOWN, self.0)
3382    }
3383}
3384impl fmt::Debug for PerformanceCounterScopeKHR {
3385    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3386        let name = match *self {
3387            Self::COMMAND_BUFFER => Some("COMMAND_BUFFER"),
3388            Self::RENDER_PASS => Some("RENDER_PASS"),
3389            Self::COMMAND => Some("COMMAND"),
3390            _ => None,
3391        };
3392        if let Some(x) = name {
3393            f.write_str(x)
3394        } else {
3395            self.0.fmt(f)
3396        }
3397    }
3398}
3399impl fmt::Debug for PerformanceCounterStorageKHR {
3400    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3401        let name = match *self {
3402            Self::INT32 => Some("INT32"),
3403            Self::INT64 => Some("INT64"),
3404            Self::UINT32 => Some("UINT32"),
3405            Self::UINT64 => Some("UINT64"),
3406            Self::FLOAT32 => Some("FLOAT32"),
3407            Self::FLOAT64 => Some("FLOAT64"),
3408            _ => None,
3409        };
3410        if let Some(x) = name {
3411            f.write_str(x)
3412        } else {
3413            self.0.fmt(f)
3414        }
3415    }
3416}
3417impl fmt::Debug for PerformanceCounterUnitKHR {
3418    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3419        let name = match *self {
3420            Self::GENERIC => Some("GENERIC"),
3421            Self::PERCENTAGE => Some("PERCENTAGE"),
3422            Self::NANOSECONDS => Some("NANOSECONDS"),
3423            Self::BYTES => Some("BYTES"),
3424            Self::BYTES_PER_SECOND => Some("BYTES_PER_SECOND"),
3425            Self::KELVIN => Some("KELVIN"),
3426            Self::WATTS => Some("WATTS"),
3427            Self::VOLTS => Some("VOLTS"),
3428            Self::AMPS => Some("AMPS"),
3429            Self::HERTZ => Some("HERTZ"),
3430            Self::CYCLES => Some("CYCLES"),
3431            _ => None,
3432        };
3433        if let Some(x) = name {
3434            f.write_str(x)
3435        } else {
3436            self.0.fmt(f)
3437        }
3438    }
3439}
3440impl fmt::Debug for PerformanceOverrideTypeINTEL {
3441    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3442        let name = match *self {
3443            Self::NULL_HARDWARE => Some("NULL_HARDWARE"),
3444            Self::FLUSH_GPU_CACHES => Some("FLUSH_GPU_CACHES"),
3445            _ => None,
3446        };
3447        if let Some(x) = name {
3448            f.write_str(x)
3449        } else {
3450            self.0.fmt(f)
3451        }
3452    }
3453}
3454impl fmt::Debug for PerformanceParameterTypeINTEL {
3455    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3456        let name = match *self {
3457            Self::HW_COUNTERS_SUPPORTED => Some("HW_COUNTERS_SUPPORTED"),
3458            Self::STREAM_MARKER_VALIDS => Some("STREAM_MARKER_VALIDS"),
3459            _ => None,
3460        };
3461        if let Some(x) = name {
3462            f.write_str(x)
3463        } else {
3464            self.0.fmt(f)
3465        }
3466    }
3467}
3468impl fmt::Debug for PerformanceValueTypeINTEL {
3469    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3470        let name = match *self {
3471            Self::UINT32 => Some("UINT32"),
3472            Self::UINT64 => Some("UINT64"),
3473            Self::FLOAT => Some("FLOAT"),
3474            Self::BOOL => Some("BOOL"),
3475            Self::STRING => Some("STRING"),
3476            _ => None,
3477        };
3478        if let Some(x) = name {
3479            f.write_str(x)
3480        } else {
3481            self.0.fmt(f)
3482        }
3483    }
3484}
3485impl fmt::Debug for PhysicalDeviceSchedulingControlsFlagsARM {
3486    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3487        const KNOWN: &[(Flags64, &str)] = &[(
3488            PhysicalDeviceSchedulingControlsFlagsARM::SHADER_CORE_COUNT.0,
3489            "SHADER_CORE_COUNT",
3490        )];
3491        debug_flags(f, KNOWN, self.0)
3492    }
3493}
3494impl fmt::Debug for PhysicalDeviceType {
3495    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3496        let name = match *self {
3497            Self::OTHER => Some("OTHER"),
3498            Self::INTEGRATED_GPU => Some("INTEGRATED_GPU"),
3499            Self::DISCRETE_GPU => Some("DISCRETE_GPU"),
3500            Self::VIRTUAL_GPU => Some("VIRTUAL_GPU"),
3501            Self::CPU => Some("CPU"),
3502            _ => None,
3503        };
3504        if let Some(x) = name {
3505            f.write_str(x)
3506        } else {
3507            self.0.fmt(f)
3508        }
3509    }
3510}
3511impl fmt::Debug for PipelineBindPoint {
3512    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3513        let name = match *self {
3514            Self::GRAPHICS => Some("GRAPHICS"),
3515            Self::COMPUTE => Some("COMPUTE"),
3516            Self::EXECUTION_GRAPH_AMDX => Some("EXECUTION_GRAPH_AMDX"),
3517            Self::RAY_TRACING_KHR => Some("RAY_TRACING_KHR"),
3518            Self::SUBPASS_SHADING_HUAWEI => Some("SUBPASS_SHADING_HUAWEI"),
3519            _ => None,
3520        };
3521        if let Some(x) = name {
3522            f.write_str(x)
3523        } else {
3524            self.0.fmt(f)
3525        }
3526    }
3527}
3528impl fmt::Debug for PipelineCacheCreateFlags {
3529    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3530        const KNOWN: &[(Flags, &str)] = &[(
3531            PipelineCacheCreateFlags::EXTERNALLY_SYNCHRONIZED.0,
3532            "EXTERNALLY_SYNCHRONIZED",
3533        )];
3534        debug_flags(f, KNOWN, self.0)
3535    }
3536}
3537impl fmt::Debug for PipelineCacheHeaderVersion {
3538    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3539        let name = match *self {
3540            Self::ONE => Some("ONE"),
3541            _ => None,
3542        };
3543        if let Some(x) = name {
3544            f.write_str(x)
3545        } else {
3546            self.0.fmt(f)
3547        }
3548    }
3549}
3550impl fmt::Debug for PipelineColorBlendStateCreateFlags {
3551    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3552        const KNOWN: &[(Flags, &str)] = &[(
3553            PipelineColorBlendStateCreateFlags::RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT.0,
3554            "RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT",
3555        )];
3556        debug_flags(f, KNOWN, self.0)
3557    }
3558}
3559impl fmt::Debug for PipelineCompilerControlFlagsAMD {
3560    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3561        const KNOWN: &[(Flags, &str)] = &[];
3562        debug_flags(f, KNOWN, self.0)
3563    }
3564}
3565impl fmt::Debug for PipelineCoverageModulationStateCreateFlagsNV {
3566    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3567        const KNOWN: &[(Flags, &str)] = &[];
3568        debug_flags(f, KNOWN, self.0)
3569    }
3570}
3571impl fmt::Debug for PipelineCoverageReductionStateCreateFlagsNV {
3572    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3573        const KNOWN: &[(Flags, &str)] = &[];
3574        debug_flags(f, KNOWN, self.0)
3575    }
3576}
3577impl fmt::Debug for PipelineCoverageToColorStateCreateFlagsNV {
3578    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3579        const KNOWN: &[(Flags, &str)] = &[];
3580        debug_flags(f, KNOWN, self.0)
3581    }
3582}
3583impl fmt::Debug for PipelineCreateFlags {
3584    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3585        const KNOWN: &[(Flags, &str)] = &[
3586            (
3587                PipelineCreateFlags::DISABLE_OPTIMIZATION.0,
3588                "DISABLE_OPTIMIZATION",
3589            ),
3590            (
3591                PipelineCreateFlags::ALLOW_DERIVATIVES.0,
3592                "ALLOW_DERIVATIVES",
3593            ),
3594            (PipelineCreateFlags::DERIVATIVE.0, "DERIVATIVE"),
3595            (
3596                PipelineCreateFlags::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
3597                "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
3598            ),
3599            (
3600                PipelineCreateFlags::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0,
3601                "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT",
3602            ),
3603            (
3604                PipelineCreateFlags::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR.0,
3605                "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR",
3606            ),
3607            (
3608                PipelineCreateFlags::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR.0,
3609                "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR",
3610            ),
3611            (
3612                PipelineCreateFlags::RAY_TRACING_NO_NULL_MISS_SHADERS_KHR.0,
3613                "RAY_TRACING_NO_NULL_MISS_SHADERS_KHR",
3614            ),
3615            (
3616                PipelineCreateFlags::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR.0,
3617                "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR",
3618            ),
3619            (
3620                PipelineCreateFlags::RAY_TRACING_SKIP_TRIANGLES_KHR.0,
3621                "RAY_TRACING_SKIP_TRIANGLES_KHR",
3622            ),
3623            (
3624                PipelineCreateFlags::RAY_TRACING_SKIP_AABBS_KHR.0,
3625                "RAY_TRACING_SKIP_AABBS_KHR",
3626            ),
3627            (
3628                PipelineCreateFlags::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR.0,
3629                "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR",
3630            ),
3631            (PipelineCreateFlags::DEFER_COMPILE_NV.0, "DEFER_COMPILE_NV"),
3632            (
3633                PipelineCreateFlags::CAPTURE_STATISTICS_KHR.0,
3634                "CAPTURE_STATISTICS_KHR",
3635            ),
3636            (
3637                PipelineCreateFlags::CAPTURE_INTERNAL_REPRESENTATIONS_KHR.0,
3638                "CAPTURE_INTERNAL_REPRESENTATIONS_KHR",
3639            ),
3640            (
3641                PipelineCreateFlags::INDIRECT_BINDABLE_NV.0,
3642                "INDIRECT_BINDABLE_NV",
3643            ),
3644            (PipelineCreateFlags::LIBRARY_KHR.0, "LIBRARY_KHR"),
3645            (
3646                PipelineCreateFlags::DESCRIPTOR_BUFFER_EXT.0,
3647                "DESCRIPTOR_BUFFER_EXT",
3648            ),
3649            (
3650                PipelineCreateFlags::RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT.0,
3651                "RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT",
3652            ),
3653            (
3654                PipelineCreateFlags::LINK_TIME_OPTIMIZATION_EXT.0,
3655                "LINK_TIME_OPTIMIZATION_EXT",
3656            ),
3657            (
3658                PipelineCreateFlags::RAY_TRACING_ALLOW_MOTION_NV.0,
3659                "RAY_TRACING_ALLOW_MOTION_NV",
3660            ),
3661            (
3662                PipelineCreateFlags::COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
3663                "COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT",
3664            ),
3665            (
3666                PipelineCreateFlags::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
3667                "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT",
3668            ),
3669            (
3670                PipelineCreateFlags::RAY_TRACING_OPACITY_MICROMAP_EXT.0,
3671                "RAY_TRACING_OPACITY_MICROMAP_EXT",
3672            ),
3673            (
3674                PipelineCreateFlags::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0,
3675                "RAY_TRACING_DISPLACEMENT_MICROMAP_NV",
3676            ),
3677            (
3678                PipelineCreateFlags::NO_PROTECTED_ACCESS_EXT.0,
3679                "NO_PROTECTED_ACCESS_EXT",
3680            ),
3681            (
3682                PipelineCreateFlags::PROTECTED_ACCESS_ONLY_EXT.0,
3683                "PROTECTED_ACCESS_ONLY_EXT",
3684            ),
3685            (
3686                PipelineCreateFlags::VIEW_INDEX_FROM_DEVICE_INDEX.0,
3687                "VIEW_INDEX_FROM_DEVICE_INDEX",
3688            ),
3689            (PipelineCreateFlags::DISPATCH_BASE.0, "DISPATCH_BASE"),
3690            (
3691                PipelineCreateFlags::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0,
3692                "FAIL_ON_PIPELINE_COMPILE_REQUIRED",
3693            ),
3694            (
3695                PipelineCreateFlags::EARLY_RETURN_ON_FAILURE.0,
3696                "EARLY_RETURN_ON_FAILURE",
3697            ),
3698        ];
3699        debug_flags(f, KNOWN, self.0)
3700    }
3701}
3702impl fmt::Debug for PipelineCreateFlags2KHR {
3703    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3704        const KNOWN: &[(Flags64, &str)] = &[
3705            (
3706                PipelineCreateFlags2KHR::DISABLE_OPTIMIZATION.0,
3707                "DISABLE_OPTIMIZATION",
3708            ),
3709            (
3710                PipelineCreateFlags2KHR::ALLOW_DERIVATIVES.0,
3711                "ALLOW_DERIVATIVES",
3712            ),
3713            (PipelineCreateFlags2KHR::DERIVATIVE.0, "DERIVATIVE"),
3714            (
3715                PipelineCreateFlags2KHR::VIEW_INDEX_FROM_DEVICE_INDEX.0,
3716                "VIEW_INDEX_FROM_DEVICE_INDEX",
3717            ),
3718            (PipelineCreateFlags2KHR::DISPATCH_BASE.0, "DISPATCH_BASE"),
3719            (
3720                PipelineCreateFlags2KHR::DEFER_COMPILE_NV.0,
3721                "DEFER_COMPILE_NV",
3722            ),
3723            (
3724                PipelineCreateFlags2KHR::CAPTURE_STATISTICS.0,
3725                "CAPTURE_STATISTICS",
3726            ),
3727            (
3728                PipelineCreateFlags2KHR::CAPTURE_INTERNAL_REPRESENTATIONS.0,
3729                "CAPTURE_INTERNAL_REPRESENTATIONS",
3730            ),
3731            (
3732                PipelineCreateFlags2KHR::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0,
3733                "FAIL_ON_PIPELINE_COMPILE_REQUIRED",
3734            ),
3735            (
3736                PipelineCreateFlags2KHR::EARLY_RETURN_ON_FAILURE.0,
3737                "EARLY_RETURN_ON_FAILURE",
3738            ),
3739            (
3740                PipelineCreateFlags2KHR::LINK_TIME_OPTIMIZATION_EXT.0,
3741                "LINK_TIME_OPTIMIZATION_EXT",
3742            ),
3743            (
3744                PipelineCreateFlags2KHR::RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT.0,
3745                "RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT",
3746            ),
3747            (PipelineCreateFlags2KHR::LIBRARY.0, "LIBRARY"),
3748            (
3749                PipelineCreateFlags2KHR::RAY_TRACING_SKIP_TRIANGLES.0,
3750                "RAY_TRACING_SKIP_TRIANGLES",
3751            ),
3752            (
3753                PipelineCreateFlags2KHR::RAY_TRACING_SKIP_AABBS.0,
3754                "RAY_TRACING_SKIP_AABBS",
3755            ),
3756            (
3757                PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS.0,
3758                "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS",
3759            ),
3760            (
3761                PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS.0,
3762                "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS",
3763            ),
3764            (
3765                PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_MISS_SHADERS.0,
3766                "RAY_TRACING_NO_NULL_MISS_SHADERS",
3767            ),
3768            (
3769                PipelineCreateFlags2KHR::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS.0,
3770                "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS",
3771            ),
3772            (
3773                PipelineCreateFlags2KHR::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY.0,
3774                "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY",
3775            ),
3776            (
3777                PipelineCreateFlags2KHR::INDIRECT_BINDABLE_NV.0,
3778                "INDIRECT_BINDABLE_NV",
3779            ),
3780            (
3781                PipelineCreateFlags2KHR::RAY_TRACING_ALLOW_MOTION_NV.0,
3782                "RAY_TRACING_ALLOW_MOTION_NV",
3783            ),
3784            (
3785                PipelineCreateFlags2KHR::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT.0,
3786                "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT",
3787            ),
3788            (
3789                PipelineCreateFlags2KHR::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0,
3790                "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT",
3791            ),
3792            (
3793                PipelineCreateFlags2KHR::RAY_TRACING_OPACITY_MICROMAP_EXT.0,
3794                "RAY_TRACING_OPACITY_MICROMAP_EXT",
3795            ),
3796            (
3797                PipelineCreateFlags2KHR::COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
3798                "COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT",
3799            ),
3800            (
3801                PipelineCreateFlags2KHR::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
3802                "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT",
3803            ),
3804            (
3805                PipelineCreateFlags2KHR::NO_PROTECTED_ACCESS_EXT.0,
3806                "NO_PROTECTED_ACCESS_EXT",
3807            ),
3808            (
3809                PipelineCreateFlags2KHR::PROTECTED_ACCESS_ONLY_EXT.0,
3810                "PROTECTED_ACCESS_ONLY_EXT",
3811            ),
3812            (
3813                PipelineCreateFlags2KHR::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0,
3814                "RAY_TRACING_DISPLACEMENT_MICROMAP_NV",
3815            ),
3816            (
3817                PipelineCreateFlags2KHR::DESCRIPTOR_BUFFER_EXT.0,
3818                "DESCRIPTOR_BUFFER_EXT",
3819            ),
3820        ];
3821        debug_flags(f, KNOWN, self.0)
3822    }
3823}
3824impl fmt::Debug for PipelineCreationFeedbackFlags {
3825    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3826        const KNOWN: &[(Flags, &str)] = &[
3827            (PipelineCreationFeedbackFlags::VALID.0, "VALID"),
3828            (
3829                PipelineCreationFeedbackFlags::APPLICATION_PIPELINE_CACHE_HIT.0,
3830                "APPLICATION_PIPELINE_CACHE_HIT",
3831            ),
3832            (
3833                PipelineCreationFeedbackFlags::BASE_PIPELINE_ACCELERATION.0,
3834                "BASE_PIPELINE_ACCELERATION",
3835            ),
3836        ];
3837        debug_flags(f, KNOWN, self.0)
3838    }
3839}
3840impl fmt::Debug for PipelineDepthStencilStateCreateFlags {
3841    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3842        const KNOWN : & [(Flags , & str)] = & [(PipelineDepthStencilStateCreateFlags :: RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT . 0 , "RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT") , (PipelineDepthStencilStateCreateFlags :: RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT . 0 , "RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT")] ;
3843        debug_flags(f, KNOWN, self.0)
3844    }
3845}
3846impl fmt::Debug for PipelineDiscardRectangleStateCreateFlagsEXT {
3847    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3848        const KNOWN: &[(Flags, &str)] = &[];
3849        debug_flags(f, KNOWN, self.0)
3850    }
3851}
3852impl fmt::Debug for PipelineDynamicStateCreateFlags {
3853    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3854        const KNOWN: &[(Flags, &str)] = &[];
3855        debug_flags(f, KNOWN, self.0)
3856    }
3857}
3858impl fmt::Debug for PipelineExecutableStatisticFormatKHR {
3859    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3860        let name = match *self {
3861            Self::BOOL32 => Some("BOOL32"),
3862            Self::INT64 => Some("INT64"),
3863            Self::UINT64 => Some("UINT64"),
3864            Self::FLOAT64 => Some("FLOAT64"),
3865            _ => None,
3866        };
3867        if let Some(x) = name {
3868            f.write_str(x)
3869        } else {
3870            self.0.fmt(f)
3871        }
3872    }
3873}
3874impl fmt::Debug for PipelineInputAssemblyStateCreateFlags {
3875    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3876        const KNOWN: &[(Flags, &str)] = &[];
3877        debug_flags(f, KNOWN, self.0)
3878    }
3879}
3880impl fmt::Debug for PipelineLayoutCreateFlags {
3881    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3882        const KNOWN: &[(Flags, &str)] = &[(
3883            PipelineLayoutCreateFlags::INDEPENDENT_SETS_EXT.0,
3884            "INDEPENDENT_SETS_EXT",
3885        )];
3886        debug_flags(f, KNOWN, self.0)
3887    }
3888}
3889impl fmt::Debug for PipelineMultisampleStateCreateFlags {
3890    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3891        const KNOWN: &[(Flags, &str)] = &[];
3892        debug_flags(f, KNOWN, self.0)
3893    }
3894}
3895impl fmt::Debug for PipelineRasterizationConservativeStateCreateFlagsEXT {
3896    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3897        const KNOWN: &[(Flags, &str)] = &[];
3898        debug_flags(f, KNOWN, self.0)
3899    }
3900}
3901impl fmt::Debug for PipelineRasterizationDepthClipStateCreateFlagsEXT {
3902    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3903        const KNOWN: &[(Flags, &str)] = &[];
3904        debug_flags(f, KNOWN, self.0)
3905    }
3906}
3907impl fmt::Debug for PipelineRasterizationStateCreateFlags {
3908    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3909        const KNOWN: &[(Flags, &str)] = &[];
3910        debug_flags(f, KNOWN, self.0)
3911    }
3912}
3913impl fmt::Debug for PipelineRasterizationStateStreamCreateFlagsEXT {
3914    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3915        const KNOWN: &[(Flags, &str)] = &[];
3916        debug_flags(f, KNOWN, self.0)
3917    }
3918}
3919impl fmt::Debug for PipelineRobustnessBufferBehaviorEXT {
3920    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3921        let name = match *self {
3922            Self::DEVICE_DEFAULT => Some("DEVICE_DEFAULT"),
3923            Self::DISABLED => Some("DISABLED"),
3924            Self::ROBUST_BUFFER_ACCESS => Some("ROBUST_BUFFER_ACCESS"),
3925            Self::ROBUST_BUFFER_ACCESS_2 => Some("ROBUST_BUFFER_ACCESS_2"),
3926            _ => None,
3927        };
3928        if let Some(x) = name {
3929            f.write_str(x)
3930        } else {
3931            self.0.fmt(f)
3932        }
3933    }
3934}
3935impl fmt::Debug for PipelineRobustnessImageBehaviorEXT {
3936    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3937        let name = match *self {
3938            Self::DEVICE_DEFAULT => Some("DEVICE_DEFAULT"),
3939            Self::DISABLED => Some("DISABLED"),
3940            Self::ROBUST_IMAGE_ACCESS => Some("ROBUST_IMAGE_ACCESS"),
3941            Self::ROBUST_IMAGE_ACCESS_2 => Some("ROBUST_IMAGE_ACCESS_2"),
3942            _ => None,
3943        };
3944        if let Some(x) = name {
3945            f.write_str(x)
3946        } else {
3947            self.0.fmt(f)
3948        }
3949    }
3950}
3951impl fmt::Debug for PipelineShaderStageCreateFlags {
3952    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3953        const KNOWN: &[(Flags, &str)] = &[
3954            (
3955                PipelineShaderStageCreateFlags::ALLOW_VARYING_SUBGROUP_SIZE.0,
3956                "ALLOW_VARYING_SUBGROUP_SIZE",
3957            ),
3958            (
3959                PipelineShaderStageCreateFlags::REQUIRE_FULL_SUBGROUPS.0,
3960                "REQUIRE_FULL_SUBGROUPS",
3961            ),
3962        ];
3963        debug_flags(f, KNOWN, self.0)
3964    }
3965}
3966impl fmt::Debug for PipelineStageFlags {
3967    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3968        const KNOWN: &[(Flags, &str)] = &[
3969            (PipelineStageFlags::TOP_OF_PIPE.0, "TOP_OF_PIPE"),
3970            (PipelineStageFlags::DRAW_INDIRECT.0, "DRAW_INDIRECT"),
3971            (PipelineStageFlags::VERTEX_INPUT.0, "VERTEX_INPUT"),
3972            (PipelineStageFlags::VERTEX_SHADER.0, "VERTEX_SHADER"),
3973            (
3974                PipelineStageFlags::TESSELLATION_CONTROL_SHADER.0,
3975                "TESSELLATION_CONTROL_SHADER",
3976            ),
3977            (
3978                PipelineStageFlags::TESSELLATION_EVALUATION_SHADER.0,
3979                "TESSELLATION_EVALUATION_SHADER",
3980            ),
3981            (PipelineStageFlags::GEOMETRY_SHADER.0, "GEOMETRY_SHADER"),
3982            (PipelineStageFlags::FRAGMENT_SHADER.0, "FRAGMENT_SHADER"),
3983            (
3984                PipelineStageFlags::EARLY_FRAGMENT_TESTS.0,
3985                "EARLY_FRAGMENT_TESTS",
3986            ),
3987            (
3988                PipelineStageFlags::LATE_FRAGMENT_TESTS.0,
3989                "LATE_FRAGMENT_TESTS",
3990            ),
3991            (
3992                PipelineStageFlags::COLOR_ATTACHMENT_OUTPUT.0,
3993                "COLOR_ATTACHMENT_OUTPUT",
3994            ),
3995            (PipelineStageFlags::COMPUTE_SHADER.0, "COMPUTE_SHADER"),
3996            (PipelineStageFlags::TRANSFER.0, "TRANSFER"),
3997            (PipelineStageFlags::BOTTOM_OF_PIPE.0, "BOTTOM_OF_PIPE"),
3998            (PipelineStageFlags::HOST.0, "HOST"),
3999            (PipelineStageFlags::ALL_GRAPHICS.0, "ALL_GRAPHICS"),
4000            (PipelineStageFlags::ALL_COMMANDS.0, "ALL_COMMANDS"),
4001            (
4002                PipelineStageFlags::TRANSFORM_FEEDBACK_EXT.0,
4003                "TRANSFORM_FEEDBACK_EXT",
4004            ),
4005            (
4006                PipelineStageFlags::CONDITIONAL_RENDERING_EXT.0,
4007                "CONDITIONAL_RENDERING_EXT",
4008            ),
4009            (
4010                PipelineStageFlags::ACCELERATION_STRUCTURE_BUILD_KHR.0,
4011                "ACCELERATION_STRUCTURE_BUILD_KHR",
4012            ),
4013            (
4014                PipelineStageFlags::RAY_TRACING_SHADER_KHR.0,
4015                "RAY_TRACING_SHADER_KHR",
4016            ),
4017            (
4018                PipelineStageFlags::FRAGMENT_DENSITY_PROCESS_EXT.0,
4019                "FRAGMENT_DENSITY_PROCESS_EXT",
4020            ),
4021            (
4022                PipelineStageFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
4023                "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
4024            ),
4025            (
4026                PipelineStageFlags::COMMAND_PREPROCESS_NV.0,
4027                "COMMAND_PREPROCESS_NV",
4028            ),
4029            (PipelineStageFlags::TASK_SHADER_EXT.0, "TASK_SHADER_EXT"),
4030            (PipelineStageFlags::MESH_SHADER_EXT.0, "MESH_SHADER_EXT"),
4031            (PipelineStageFlags::NONE.0, "NONE"),
4032        ];
4033        debug_flags(f, KNOWN, self.0)
4034    }
4035}
4036impl fmt::Debug for PipelineStageFlags2 {
4037    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4038        const KNOWN: &[(Flags64, &str)] = &[
4039            (PipelineStageFlags2::NONE.0, "NONE"),
4040            (PipelineStageFlags2::TOP_OF_PIPE.0, "TOP_OF_PIPE"),
4041            (PipelineStageFlags2::DRAW_INDIRECT.0, "DRAW_INDIRECT"),
4042            (PipelineStageFlags2::VERTEX_INPUT.0, "VERTEX_INPUT"),
4043            (PipelineStageFlags2::VERTEX_SHADER.0, "VERTEX_SHADER"),
4044            (
4045                PipelineStageFlags2::TESSELLATION_CONTROL_SHADER.0,
4046                "TESSELLATION_CONTROL_SHADER",
4047            ),
4048            (
4049                PipelineStageFlags2::TESSELLATION_EVALUATION_SHADER.0,
4050                "TESSELLATION_EVALUATION_SHADER",
4051            ),
4052            (PipelineStageFlags2::GEOMETRY_SHADER.0, "GEOMETRY_SHADER"),
4053            (PipelineStageFlags2::FRAGMENT_SHADER.0, "FRAGMENT_SHADER"),
4054            (
4055                PipelineStageFlags2::EARLY_FRAGMENT_TESTS.0,
4056                "EARLY_FRAGMENT_TESTS",
4057            ),
4058            (
4059                PipelineStageFlags2::LATE_FRAGMENT_TESTS.0,
4060                "LATE_FRAGMENT_TESTS",
4061            ),
4062            (
4063                PipelineStageFlags2::COLOR_ATTACHMENT_OUTPUT.0,
4064                "COLOR_ATTACHMENT_OUTPUT",
4065            ),
4066            (PipelineStageFlags2::COMPUTE_SHADER.0, "COMPUTE_SHADER"),
4067            (PipelineStageFlags2::ALL_TRANSFER.0, "ALL_TRANSFER"),
4068            (PipelineStageFlags2::BOTTOM_OF_PIPE.0, "BOTTOM_OF_PIPE"),
4069            (PipelineStageFlags2::HOST.0, "HOST"),
4070            (PipelineStageFlags2::ALL_GRAPHICS.0, "ALL_GRAPHICS"),
4071            (PipelineStageFlags2::ALL_COMMANDS.0, "ALL_COMMANDS"),
4072            (PipelineStageFlags2::COPY.0, "COPY"),
4073            (PipelineStageFlags2::RESOLVE.0, "RESOLVE"),
4074            (PipelineStageFlags2::BLIT.0, "BLIT"),
4075            (PipelineStageFlags2::CLEAR.0, "CLEAR"),
4076            (PipelineStageFlags2::INDEX_INPUT.0, "INDEX_INPUT"),
4077            (
4078                PipelineStageFlags2::VERTEX_ATTRIBUTE_INPUT.0,
4079                "VERTEX_ATTRIBUTE_INPUT",
4080            ),
4081            (
4082                PipelineStageFlags2::PRE_RASTERIZATION_SHADERS.0,
4083                "PRE_RASTERIZATION_SHADERS",
4084            ),
4085            (PipelineStageFlags2::VIDEO_DECODE_KHR.0, "VIDEO_DECODE_KHR"),
4086            (PipelineStageFlags2::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"),
4087            (
4088                PipelineStageFlags2::TRANSFORM_FEEDBACK_EXT.0,
4089                "TRANSFORM_FEEDBACK_EXT",
4090            ),
4091            (
4092                PipelineStageFlags2::CONDITIONAL_RENDERING_EXT.0,
4093                "CONDITIONAL_RENDERING_EXT",
4094            ),
4095            (
4096                PipelineStageFlags2::COMMAND_PREPROCESS_NV.0,
4097                "COMMAND_PREPROCESS_NV",
4098            ),
4099            (
4100                PipelineStageFlags2::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
4101                "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
4102            ),
4103            (
4104                PipelineStageFlags2::ACCELERATION_STRUCTURE_BUILD_KHR.0,
4105                "ACCELERATION_STRUCTURE_BUILD_KHR",
4106            ),
4107            (
4108                PipelineStageFlags2::RAY_TRACING_SHADER_KHR.0,
4109                "RAY_TRACING_SHADER_KHR",
4110            ),
4111            (
4112                PipelineStageFlags2::FRAGMENT_DENSITY_PROCESS_EXT.0,
4113                "FRAGMENT_DENSITY_PROCESS_EXT",
4114            ),
4115            (PipelineStageFlags2::TASK_SHADER_EXT.0, "TASK_SHADER_EXT"),
4116            (PipelineStageFlags2::MESH_SHADER_EXT.0, "MESH_SHADER_EXT"),
4117            (
4118                PipelineStageFlags2::SUBPASS_SHADER_HUAWEI.0,
4119                "SUBPASS_SHADER_HUAWEI",
4120            ),
4121            (
4122                PipelineStageFlags2::INVOCATION_MASK_HUAWEI.0,
4123                "INVOCATION_MASK_HUAWEI",
4124            ),
4125            (
4126                PipelineStageFlags2::ACCELERATION_STRUCTURE_COPY_KHR.0,
4127                "ACCELERATION_STRUCTURE_COPY_KHR",
4128            ),
4129            (
4130                PipelineStageFlags2::MICROMAP_BUILD_EXT.0,
4131                "MICROMAP_BUILD_EXT",
4132            ),
4133            (
4134                PipelineStageFlags2::CLUSTER_CULLING_SHADER_HUAWEI.0,
4135                "CLUSTER_CULLING_SHADER_HUAWEI",
4136            ),
4137            (PipelineStageFlags2::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"),
4138        ];
4139        debug_flags(f, KNOWN, self.0)
4140    }
4141}
4142impl fmt::Debug for PipelineTessellationStateCreateFlags {
4143    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4144        const KNOWN: &[(Flags, &str)] = &[];
4145        debug_flags(f, KNOWN, self.0)
4146    }
4147}
4148impl fmt::Debug for PipelineVertexInputStateCreateFlags {
4149    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4150        const KNOWN: &[(Flags, &str)] = &[];
4151        debug_flags(f, KNOWN, self.0)
4152    }
4153}
4154impl fmt::Debug for PipelineViewportStateCreateFlags {
4155    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4156        const KNOWN: &[(Flags, &str)] = &[];
4157        debug_flags(f, KNOWN, self.0)
4158    }
4159}
4160impl fmt::Debug for PipelineViewportSwizzleStateCreateFlagsNV {
4161    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4162        const KNOWN: &[(Flags, &str)] = &[];
4163        debug_flags(f, KNOWN, self.0)
4164    }
4165}
4166impl fmt::Debug for PointClippingBehavior {
4167    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4168        let name = match *self {
4169            Self::ALL_CLIP_PLANES => Some("ALL_CLIP_PLANES"),
4170            Self::USER_CLIP_PLANES_ONLY => Some("USER_CLIP_PLANES_ONLY"),
4171            _ => None,
4172        };
4173        if let Some(x) = name {
4174            f.write_str(x)
4175        } else {
4176            self.0.fmt(f)
4177        }
4178    }
4179}
4180impl fmt::Debug for PolygonMode {
4181    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4182        let name = match *self {
4183            Self::FILL => Some("FILL"),
4184            Self::LINE => Some("LINE"),
4185            Self::POINT => Some("POINT"),
4186            Self::FILL_RECTANGLE_NV => Some("FILL_RECTANGLE_NV"),
4187            _ => None,
4188        };
4189        if let Some(x) = name {
4190            f.write_str(x)
4191        } else {
4192            self.0.fmt(f)
4193        }
4194    }
4195}
4196impl fmt::Debug for PresentGravityFlagsEXT {
4197    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4198        const KNOWN: &[(Flags, &str)] = &[
4199            (PresentGravityFlagsEXT::MIN.0, "MIN"),
4200            (PresentGravityFlagsEXT::MAX.0, "MAX"),
4201            (PresentGravityFlagsEXT::CENTERED.0, "CENTERED"),
4202        ];
4203        debug_flags(f, KNOWN, self.0)
4204    }
4205}
4206impl fmt::Debug for PresentModeKHR {
4207    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4208        let name = match *self {
4209            Self::IMMEDIATE => Some("IMMEDIATE"),
4210            Self::MAILBOX => Some("MAILBOX"),
4211            Self::FIFO => Some("FIFO"),
4212            Self::FIFO_RELAXED => Some("FIFO_RELAXED"),
4213            Self::SHARED_DEMAND_REFRESH => Some("SHARED_DEMAND_REFRESH"),
4214            Self::SHARED_CONTINUOUS_REFRESH => Some("SHARED_CONTINUOUS_REFRESH"),
4215            _ => None,
4216        };
4217        if let Some(x) = name {
4218            f.write_str(x)
4219        } else {
4220            self.0.fmt(f)
4221        }
4222    }
4223}
4224impl fmt::Debug for PresentScalingFlagsEXT {
4225    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4226        const KNOWN: &[(Flags, &str)] = &[
4227            (PresentScalingFlagsEXT::ONE_TO_ONE.0, "ONE_TO_ONE"),
4228            (
4229                PresentScalingFlagsEXT::ASPECT_RATIO_STRETCH.0,
4230                "ASPECT_RATIO_STRETCH",
4231            ),
4232            (PresentScalingFlagsEXT::STRETCH.0, "STRETCH"),
4233        ];
4234        debug_flags(f, KNOWN, self.0)
4235    }
4236}
4237impl fmt::Debug for PrimitiveTopology {
4238    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4239        let name = match *self {
4240            Self::POINT_LIST => Some("POINT_LIST"),
4241            Self::LINE_LIST => Some("LINE_LIST"),
4242            Self::LINE_STRIP => Some("LINE_STRIP"),
4243            Self::TRIANGLE_LIST => Some("TRIANGLE_LIST"),
4244            Self::TRIANGLE_STRIP => Some("TRIANGLE_STRIP"),
4245            Self::TRIANGLE_FAN => Some("TRIANGLE_FAN"),
4246            Self::LINE_LIST_WITH_ADJACENCY => Some("LINE_LIST_WITH_ADJACENCY"),
4247            Self::LINE_STRIP_WITH_ADJACENCY => Some("LINE_STRIP_WITH_ADJACENCY"),
4248            Self::TRIANGLE_LIST_WITH_ADJACENCY => Some("TRIANGLE_LIST_WITH_ADJACENCY"),
4249            Self::TRIANGLE_STRIP_WITH_ADJACENCY => Some("TRIANGLE_STRIP_WITH_ADJACENCY"),
4250            Self::PATCH_LIST => Some("PATCH_LIST"),
4251            _ => None,
4252        };
4253        if let Some(x) = name {
4254            f.write_str(x)
4255        } else {
4256            self.0.fmt(f)
4257        }
4258    }
4259}
4260impl fmt::Debug for PrivateDataSlotCreateFlags {
4261    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4262        const KNOWN: &[(Flags, &str)] = &[];
4263        debug_flags(f, KNOWN, self.0)
4264    }
4265}
4266impl fmt::Debug for ProvokingVertexModeEXT {
4267    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4268        let name = match *self {
4269            Self::FIRST_VERTEX => Some("FIRST_VERTEX"),
4270            Self::LAST_VERTEX => Some("LAST_VERTEX"),
4271            _ => None,
4272        };
4273        if let Some(x) = name {
4274            f.write_str(x)
4275        } else {
4276            self.0.fmt(f)
4277        }
4278    }
4279}
4280impl fmt::Debug for QueryControlFlags {
4281    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4282        const KNOWN: &[(Flags, &str)] = &[(QueryControlFlags::PRECISE.0, "PRECISE")];
4283        debug_flags(f, KNOWN, self.0)
4284    }
4285}
4286impl fmt::Debug for QueryPipelineStatisticFlags {
4287    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4288        const KNOWN: &[(Flags, &str)] = &[
4289            (
4290                QueryPipelineStatisticFlags::INPUT_ASSEMBLY_VERTICES.0,
4291                "INPUT_ASSEMBLY_VERTICES",
4292            ),
4293            (
4294                QueryPipelineStatisticFlags::INPUT_ASSEMBLY_PRIMITIVES.0,
4295                "INPUT_ASSEMBLY_PRIMITIVES",
4296            ),
4297            (
4298                QueryPipelineStatisticFlags::VERTEX_SHADER_INVOCATIONS.0,
4299                "VERTEX_SHADER_INVOCATIONS",
4300            ),
4301            (
4302                QueryPipelineStatisticFlags::GEOMETRY_SHADER_INVOCATIONS.0,
4303                "GEOMETRY_SHADER_INVOCATIONS",
4304            ),
4305            (
4306                QueryPipelineStatisticFlags::GEOMETRY_SHADER_PRIMITIVES.0,
4307                "GEOMETRY_SHADER_PRIMITIVES",
4308            ),
4309            (
4310                QueryPipelineStatisticFlags::CLIPPING_INVOCATIONS.0,
4311                "CLIPPING_INVOCATIONS",
4312            ),
4313            (
4314                QueryPipelineStatisticFlags::CLIPPING_PRIMITIVES.0,
4315                "CLIPPING_PRIMITIVES",
4316            ),
4317            (
4318                QueryPipelineStatisticFlags::FRAGMENT_SHADER_INVOCATIONS.0,
4319                "FRAGMENT_SHADER_INVOCATIONS",
4320            ),
4321            (
4322                QueryPipelineStatisticFlags::TESSELLATION_CONTROL_SHADER_PATCHES.0,
4323                "TESSELLATION_CONTROL_SHADER_PATCHES",
4324            ),
4325            (
4326                QueryPipelineStatisticFlags::TESSELLATION_EVALUATION_SHADER_INVOCATIONS.0,
4327                "TESSELLATION_EVALUATION_SHADER_INVOCATIONS",
4328            ),
4329            (
4330                QueryPipelineStatisticFlags::COMPUTE_SHADER_INVOCATIONS.0,
4331                "COMPUTE_SHADER_INVOCATIONS",
4332            ),
4333            (
4334                QueryPipelineStatisticFlags::TASK_SHADER_INVOCATIONS_EXT.0,
4335                "TASK_SHADER_INVOCATIONS_EXT",
4336            ),
4337            (
4338                QueryPipelineStatisticFlags::MESH_SHADER_INVOCATIONS_EXT.0,
4339                "MESH_SHADER_INVOCATIONS_EXT",
4340            ),
4341            (
4342                QueryPipelineStatisticFlags::CLUSTER_CULLING_SHADER_INVOCATIONS_HUAWEI.0,
4343                "CLUSTER_CULLING_SHADER_INVOCATIONS_HUAWEI",
4344            ),
4345        ];
4346        debug_flags(f, KNOWN, self.0)
4347    }
4348}
4349impl fmt::Debug for QueryPoolCreateFlags {
4350    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4351        const KNOWN: &[(Flags, &str)] = &[];
4352        debug_flags(f, KNOWN, self.0)
4353    }
4354}
4355impl fmt::Debug for QueryPoolSamplingModeINTEL {
4356    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4357        let name = match *self {
4358            Self::MANUAL => Some("MANUAL"),
4359            _ => None,
4360        };
4361        if let Some(x) = name {
4362            f.write_str(x)
4363        } else {
4364            self.0.fmt(f)
4365        }
4366    }
4367}
4368impl fmt::Debug for QueryResultFlags {
4369    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4370        const KNOWN: &[(Flags, &str)] = &[
4371            (QueryResultFlags::TYPE_64.0, "TYPE_64"),
4372            (QueryResultFlags::WAIT.0, "WAIT"),
4373            (QueryResultFlags::WITH_AVAILABILITY.0, "WITH_AVAILABILITY"),
4374            (QueryResultFlags::PARTIAL.0, "PARTIAL"),
4375            (QueryResultFlags::WITH_STATUS_KHR.0, "WITH_STATUS_KHR"),
4376        ];
4377        debug_flags(f, KNOWN, self.0)
4378    }
4379}
4380impl fmt::Debug for QueryResultStatusKHR {
4381    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4382        let name = match *self {
4383            Self::ERROR => Some("ERROR"),
4384            Self::NOT_READY => Some("NOT_READY"),
4385            Self::COMPLETE => Some("COMPLETE"),
4386            Self::INSUFFICIENTSTREAM_BUFFER_RANGE => Some("INSUFFICIENTSTREAM_BUFFER_RANGE"),
4387            _ => None,
4388        };
4389        if let Some(x) = name {
4390            f.write_str(x)
4391        } else {
4392            self.0.fmt(f)
4393        }
4394    }
4395}
4396impl fmt::Debug for QueryType {
4397    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4398        let name = match *self {
4399            Self::OCCLUSION => Some("OCCLUSION"),
4400            Self::PIPELINE_STATISTICS => Some("PIPELINE_STATISTICS"),
4401            Self::TIMESTAMP => Some("TIMESTAMP"),
4402            Self::RESULT_STATUS_ONLY_KHR => Some("RESULT_STATUS_ONLY_KHR"),
4403            Self::TRANSFORM_FEEDBACK_STREAM_EXT => Some("TRANSFORM_FEEDBACK_STREAM_EXT"),
4404            Self::PERFORMANCE_QUERY_KHR => Some("PERFORMANCE_QUERY_KHR"),
4405            Self::ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR => {
4406                Some("ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR")
4407            }
4408            Self::ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR => {
4409                Some("ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR")
4410            }
4411            Self::ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV => {
4412                Some("ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV")
4413            }
4414            Self::PERFORMANCE_QUERY_INTEL => Some("PERFORMANCE_QUERY_INTEL"),
4415            Self::VIDEO_ENCODE_FEEDBACK_KHR => Some("VIDEO_ENCODE_FEEDBACK_KHR"),
4416            Self::MESH_PRIMITIVES_GENERATED_EXT => Some("MESH_PRIMITIVES_GENERATED_EXT"),
4417            Self::PRIMITIVES_GENERATED_EXT => Some("PRIMITIVES_GENERATED_EXT"),
4418            Self::ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR => {
4419                Some("ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR")
4420            }
4421            Self::ACCELERATION_STRUCTURE_SIZE_KHR => Some("ACCELERATION_STRUCTURE_SIZE_KHR"),
4422            Self::MICROMAP_SERIALIZATION_SIZE_EXT => Some("MICROMAP_SERIALIZATION_SIZE_EXT"),
4423            Self::MICROMAP_COMPACTED_SIZE_EXT => Some("MICROMAP_COMPACTED_SIZE_EXT"),
4424            _ => None,
4425        };
4426        if let Some(x) = name {
4427            f.write_str(x)
4428        } else {
4429            self.0.fmt(f)
4430        }
4431    }
4432}
4433impl fmt::Debug for QueueFlags {
4434    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4435        const KNOWN: &[(Flags, &str)] = &[
4436            (QueueFlags::GRAPHICS.0, "GRAPHICS"),
4437            (QueueFlags::COMPUTE.0, "COMPUTE"),
4438            (QueueFlags::TRANSFER.0, "TRANSFER"),
4439            (QueueFlags::SPARSE_BINDING.0, "SPARSE_BINDING"),
4440            (QueueFlags::VIDEO_DECODE_KHR.0, "VIDEO_DECODE_KHR"),
4441            (QueueFlags::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"),
4442            (QueueFlags::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"),
4443            (QueueFlags::PROTECTED.0, "PROTECTED"),
4444        ];
4445        debug_flags(f, KNOWN, self.0)
4446    }
4447}
4448impl fmt::Debug for QueueGlobalPriorityKHR {
4449    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4450        let name = match *self {
4451            Self::LOW => Some("LOW"),
4452            Self::MEDIUM => Some("MEDIUM"),
4453            Self::HIGH => Some("HIGH"),
4454            Self::REALTIME => Some("REALTIME"),
4455            _ => None,
4456        };
4457        if let Some(x) = name {
4458            f.write_str(x)
4459        } else {
4460            self.0.fmt(f)
4461        }
4462    }
4463}
4464impl fmt::Debug for RasterizationOrderAMD {
4465    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4466        let name = match *self {
4467            Self::STRICT => Some("STRICT"),
4468            Self::RELAXED => Some("RELAXED"),
4469            _ => None,
4470        };
4471        if let Some(x) = name {
4472            f.write_str(x)
4473        } else {
4474            self.0.fmt(f)
4475        }
4476    }
4477}
4478impl fmt::Debug for RayTracingInvocationReorderModeNV {
4479    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4480        let name = match *self {
4481            Self::NONE => Some("NONE"),
4482            Self::REORDER => Some("REORDER"),
4483            _ => None,
4484        };
4485        if let Some(x) = name {
4486            f.write_str(x)
4487        } else {
4488            self.0.fmt(f)
4489        }
4490    }
4491}
4492impl fmt::Debug for RayTracingShaderGroupTypeKHR {
4493    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4494        let name = match *self {
4495            Self::GENERAL => Some("GENERAL"),
4496            Self::TRIANGLES_HIT_GROUP => Some("TRIANGLES_HIT_GROUP"),
4497            Self::PROCEDURAL_HIT_GROUP => Some("PROCEDURAL_HIT_GROUP"),
4498            _ => None,
4499        };
4500        if let Some(x) = name {
4501            f.write_str(x)
4502        } else {
4503            self.0.fmt(f)
4504        }
4505    }
4506}
4507impl fmt::Debug for RenderPassCreateFlags {
4508    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4509        const KNOWN: &[(Flags, &str)] =
4510            &[(RenderPassCreateFlags::TRANSFORM_QCOM.0, "TRANSFORM_QCOM")];
4511        debug_flags(f, KNOWN, self.0)
4512    }
4513}
4514impl fmt::Debug for RenderingFlags {
4515    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4516        const KNOWN: &[(Flags, &str)] = &[
4517            (
4518                RenderingFlags::CONTENTS_SECONDARY_COMMAND_BUFFERS.0,
4519                "CONTENTS_SECONDARY_COMMAND_BUFFERS",
4520            ),
4521            (RenderingFlags::SUSPENDING.0, "SUSPENDING"),
4522            (RenderingFlags::RESUMING.0, "RESUMING"),
4523            (RenderingFlags::CONTENTS_INLINE_EXT.0, "CONTENTS_INLINE_EXT"),
4524            (
4525                RenderingFlags::ENABLE_LEGACY_DITHERING_EXT.0,
4526                "ENABLE_LEGACY_DITHERING_EXT",
4527            ),
4528        ];
4529        debug_flags(f, KNOWN, self.0)
4530    }
4531}
4532impl fmt::Debug for ResolveModeFlags {
4533    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4534        const KNOWN: &[(Flags, &str)] = &[
4535            (ResolveModeFlags::NONE.0, "NONE"),
4536            (ResolveModeFlags::SAMPLE_ZERO.0, "SAMPLE_ZERO"),
4537            (ResolveModeFlags::AVERAGE.0, "AVERAGE"),
4538            (ResolveModeFlags::MIN.0, "MIN"),
4539            (ResolveModeFlags::MAX.0, "MAX"),
4540            (
4541                ResolveModeFlags::EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID.0,
4542                "EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID",
4543            ),
4544        ];
4545        debug_flags(f, KNOWN, self.0)
4546    }
4547}
4548impl fmt::Debug for SampleCountFlags {
4549    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4550        const KNOWN: &[(Flags, &str)] = &[
4551            (SampleCountFlags::TYPE_1.0, "TYPE_1"),
4552            (SampleCountFlags::TYPE_2.0, "TYPE_2"),
4553            (SampleCountFlags::TYPE_4.0, "TYPE_4"),
4554            (SampleCountFlags::TYPE_8.0, "TYPE_8"),
4555            (SampleCountFlags::TYPE_16.0, "TYPE_16"),
4556            (SampleCountFlags::TYPE_32.0, "TYPE_32"),
4557            (SampleCountFlags::TYPE_64.0, "TYPE_64"),
4558        ];
4559        debug_flags(f, KNOWN, self.0)
4560    }
4561}
4562impl fmt::Debug for SamplerAddressMode {
4563    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4564        let name = match *self {
4565            Self::REPEAT => Some("REPEAT"),
4566            Self::MIRRORED_REPEAT => Some("MIRRORED_REPEAT"),
4567            Self::CLAMP_TO_EDGE => Some("CLAMP_TO_EDGE"),
4568            Self::CLAMP_TO_BORDER => Some("CLAMP_TO_BORDER"),
4569            Self::MIRROR_CLAMP_TO_EDGE => Some("MIRROR_CLAMP_TO_EDGE"),
4570            _ => None,
4571        };
4572        if let Some(x) = name {
4573            f.write_str(x)
4574        } else {
4575            self.0.fmt(f)
4576        }
4577    }
4578}
4579impl fmt::Debug for SamplerCreateFlags {
4580    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4581        const KNOWN: &[(Flags, &str)] = &[
4582            (SamplerCreateFlags::SUBSAMPLED_EXT.0, "SUBSAMPLED_EXT"),
4583            (
4584                SamplerCreateFlags::SUBSAMPLED_COARSE_RECONSTRUCTION_EXT.0,
4585                "SUBSAMPLED_COARSE_RECONSTRUCTION_EXT",
4586            ),
4587            (
4588                SamplerCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
4589                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
4590            ),
4591            (
4592                SamplerCreateFlags::NON_SEAMLESS_CUBE_MAP_EXT.0,
4593                "NON_SEAMLESS_CUBE_MAP_EXT",
4594            ),
4595            (
4596                SamplerCreateFlags::IMAGE_PROCESSING_QCOM.0,
4597                "IMAGE_PROCESSING_QCOM",
4598            ),
4599        ];
4600        debug_flags(f, KNOWN, self.0)
4601    }
4602}
4603impl fmt::Debug for SamplerMipmapMode {
4604    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4605        let name = match *self {
4606            Self::NEAREST => Some("NEAREST"),
4607            Self::LINEAR => Some("LINEAR"),
4608            _ => None,
4609        };
4610        if let Some(x) = name {
4611            f.write_str(x)
4612        } else {
4613            self.0.fmt(f)
4614        }
4615    }
4616}
4617impl fmt::Debug for SamplerReductionMode {
4618    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4619        let name = match *self {
4620            Self::WEIGHTED_AVERAGE => Some("WEIGHTED_AVERAGE"),
4621            Self::MIN => Some("MIN"),
4622            Self::MAX => Some("MAX"),
4623            Self::WEIGHTED_AVERAGE_RANGECLAMP_QCOM => Some("WEIGHTED_AVERAGE_RANGECLAMP_QCOM"),
4624            _ => None,
4625        };
4626        if let Some(x) = name {
4627            f.write_str(x)
4628        } else {
4629            self.0.fmt(f)
4630        }
4631    }
4632}
4633impl fmt::Debug for SamplerYcbcrModelConversion {
4634    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4635        let name = match *self {
4636            Self::RGB_IDENTITY => Some("RGB_IDENTITY"),
4637            Self::YCBCR_IDENTITY => Some("YCBCR_IDENTITY"),
4638            Self::YCBCR_709 => Some("YCBCR_709"),
4639            Self::YCBCR_601 => Some("YCBCR_601"),
4640            Self::YCBCR_2020 => Some("YCBCR_2020"),
4641            _ => None,
4642        };
4643        if let Some(x) = name {
4644            f.write_str(x)
4645        } else {
4646            self.0.fmt(f)
4647        }
4648    }
4649}
4650impl fmt::Debug for SamplerYcbcrRange {
4651    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4652        let name = match *self {
4653            Self::ITU_FULL => Some("ITU_FULL"),
4654            Self::ITU_NARROW => Some("ITU_NARROW"),
4655            _ => None,
4656        };
4657        if let Some(x) = name {
4658            f.write_str(x)
4659        } else {
4660            self.0.fmt(f)
4661        }
4662    }
4663}
4664impl fmt::Debug for ScopeKHR {
4665    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4666        let name = match *self {
4667            Self::DEVICE => Some("DEVICE"),
4668            Self::WORKGROUP => Some("WORKGROUP"),
4669            Self::SUBGROUP => Some("SUBGROUP"),
4670            Self::QUEUE_FAMILY => Some("QUEUE_FAMILY"),
4671            _ => None,
4672        };
4673        if let Some(x) = name {
4674            f.write_str(x)
4675        } else {
4676            self.0.fmt(f)
4677        }
4678    }
4679}
4680impl fmt::Debug for ScreenSurfaceCreateFlagsQNX {
4681    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4682        const KNOWN: &[(Flags, &str)] = &[];
4683        debug_flags(f, KNOWN, self.0)
4684    }
4685}
4686impl fmt::Debug for SemaphoreCreateFlags {
4687    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4688        const KNOWN: &[(Flags, &str)] = &[];
4689        debug_flags(f, KNOWN, self.0)
4690    }
4691}
4692impl fmt::Debug for SemaphoreImportFlags {
4693    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4694        const KNOWN: &[(Flags, &str)] = &[(SemaphoreImportFlags::TEMPORARY.0, "TEMPORARY")];
4695        debug_flags(f, KNOWN, self.0)
4696    }
4697}
4698impl fmt::Debug for SemaphoreType {
4699    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4700        let name = match *self {
4701            Self::BINARY => Some("BINARY"),
4702            Self::TIMELINE => Some("TIMELINE"),
4703            _ => None,
4704        };
4705        if let Some(x) = name {
4706            f.write_str(x)
4707        } else {
4708            self.0.fmt(f)
4709        }
4710    }
4711}
4712impl fmt::Debug for SemaphoreWaitFlags {
4713    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4714        const KNOWN: &[(Flags, &str)] = &[(SemaphoreWaitFlags::ANY.0, "ANY")];
4715        debug_flags(f, KNOWN, self.0)
4716    }
4717}
4718impl fmt::Debug for ShaderCodeTypeEXT {
4719    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4720        let name = match *self {
4721            Self::BINARY => Some("BINARY"),
4722            Self::SPIRV => Some("SPIRV"),
4723            _ => None,
4724        };
4725        if let Some(x) = name {
4726            f.write_str(x)
4727        } else {
4728            self.0.fmt(f)
4729        }
4730    }
4731}
4732impl fmt::Debug for ShaderCorePropertiesFlagsAMD {
4733    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4734        const KNOWN: &[(Flags, &str)] = &[];
4735        debug_flags(f, KNOWN, self.0)
4736    }
4737}
4738impl fmt::Debug for ShaderCreateFlagsEXT {
4739    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4740        const KNOWN: &[(Flags, &str)] = &[
4741            (ShaderCreateFlagsEXT::LINK_STAGE.0, "LINK_STAGE"),
4742            (
4743                ShaderCreateFlagsEXT::ALLOW_VARYING_SUBGROUP_SIZE.0,
4744                "ALLOW_VARYING_SUBGROUP_SIZE",
4745            ),
4746            (
4747                ShaderCreateFlagsEXT::REQUIRE_FULL_SUBGROUPS.0,
4748                "REQUIRE_FULL_SUBGROUPS",
4749            ),
4750            (ShaderCreateFlagsEXT::NO_TASK_SHADER.0, "NO_TASK_SHADER"),
4751            (ShaderCreateFlagsEXT::DISPATCH_BASE.0, "DISPATCH_BASE"),
4752            (
4753                ShaderCreateFlagsEXT::FRAGMENT_SHADING_RATE_ATTACHMENT.0,
4754                "FRAGMENT_SHADING_RATE_ATTACHMENT",
4755            ),
4756            (
4757                ShaderCreateFlagsEXT::FRAGMENT_DENSITY_MAP_ATTACHMENT.0,
4758                "FRAGMENT_DENSITY_MAP_ATTACHMENT",
4759            ),
4760        ];
4761        debug_flags(f, KNOWN, self.0)
4762    }
4763}
4764impl fmt::Debug for ShaderFloatControlsIndependence {
4765    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4766        let name = match *self {
4767            Self::TYPE_32_ONLY => Some("TYPE_32_ONLY"),
4768            Self::ALL => Some("ALL"),
4769            Self::NONE => Some("NONE"),
4770            _ => None,
4771        };
4772        if let Some(x) = name {
4773            f.write_str(x)
4774        } else {
4775            self.0.fmt(f)
4776        }
4777    }
4778}
4779impl fmt::Debug for ShaderGroupShaderKHR {
4780    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4781        let name = match *self {
4782            Self::GENERAL => Some("GENERAL"),
4783            Self::CLOSEST_HIT => Some("CLOSEST_HIT"),
4784            Self::ANY_HIT => Some("ANY_HIT"),
4785            Self::INTERSECTION => Some("INTERSECTION"),
4786            _ => None,
4787        };
4788        if let Some(x) = name {
4789            f.write_str(x)
4790        } else {
4791            self.0.fmt(f)
4792        }
4793    }
4794}
4795impl fmt::Debug for ShaderInfoTypeAMD {
4796    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4797        let name = match *self {
4798            Self::STATISTICS => Some("STATISTICS"),
4799            Self::BINARY => Some("BINARY"),
4800            Self::DISASSEMBLY => Some("DISASSEMBLY"),
4801            _ => None,
4802        };
4803        if let Some(x) = name {
4804            f.write_str(x)
4805        } else {
4806            self.0.fmt(f)
4807        }
4808    }
4809}
4810impl fmt::Debug for ShaderModuleCreateFlags {
4811    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4812        const KNOWN: &[(Flags, &str)] = &[];
4813        debug_flags(f, KNOWN, self.0)
4814    }
4815}
4816impl fmt::Debug for ShaderStageFlags {
4817    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4818        const KNOWN: &[(Flags, &str)] = &[
4819            (ShaderStageFlags::VERTEX.0, "VERTEX"),
4820            (
4821                ShaderStageFlags::TESSELLATION_CONTROL.0,
4822                "TESSELLATION_CONTROL",
4823            ),
4824            (
4825                ShaderStageFlags::TESSELLATION_EVALUATION.0,
4826                "TESSELLATION_EVALUATION",
4827            ),
4828            (ShaderStageFlags::GEOMETRY.0, "GEOMETRY"),
4829            (ShaderStageFlags::FRAGMENT.0, "FRAGMENT"),
4830            (ShaderStageFlags::COMPUTE.0, "COMPUTE"),
4831            (ShaderStageFlags::ALL_GRAPHICS.0, "ALL_GRAPHICS"),
4832            (ShaderStageFlags::ALL.0, "ALL"),
4833            (ShaderStageFlags::RAYGEN_KHR.0, "RAYGEN_KHR"),
4834            (ShaderStageFlags::ANY_HIT_KHR.0, "ANY_HIT_KHR"),
4835            (ShaderStageFlags::CLOSEST_HIT_KHR.0, "CLOSEST_HIT_KHR"),
4836            (ShaderStageFlags::MISS_KHR.0, "MISS_KHR"),
4837            (ShaderStageFlags::INTERSECTION_KHR.0, "INTERSECTION_KHR"),
4838            (ShaderStageFlags::CALLABLE_KHR.0, "CALLABLE_KHR"),
4839            (ShaderStageFlags::TASK_EXT.0, "TASK_EXT"),
4840            (ShaderStageFlags::MESH_EXT.0, "MESH_EXT"),
4841            (
4842                ShaderStageFlags::SUBPASS_SHADING_HUAWEI.0,
4843                "SUBPASS_SHADING_HUAWEI",
4844            ),
4845            (
4846                ShaderStageFlags::CLUSTER_CULLING_HUAWEI.0,
4847                "CLUSTER_CULLING_HUAWEI",
4848            ),
4849        ];
4850        debug_flags(f, KNOWN, self.0)
4851    }
4852}
4853impl fmt::Debug for ShadingRatePaletteEntryNV {
4854    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4855        let name = match *self {
4856            Self::NO_INVOCATIONS => Some("NO_INVOCATIONS"),
4857            Self::TYPE_16_INVOCATIONS_PER_PIXEL => Some("TYPE_16_INVOCATIONS_PER_PIXEL"),
4858            Self::TYPE_8_INVOCATIONS_PER_PIXEL => Some("TYPE_8_INVOCATIONS_PER_PIXEL"),
4859            Self::TYPE_4_INVOCATIONS_PER_PIXEL => Some("TYPE_4_INVOCATIONS_PER_PIXEL"),
4860            Self::TYPE_2_INVOCATIONS_PER_PIXEL => Some("TYPE_2_INVOCATIONS_PER_PIXEL"),
4861            Self::TYPE_1_INVOCATION_PER_PIXEL => Some("TYPE_1_INVOCATION_PER_PIXEL"),
4862            Self::TYPE_1_INVOCATION_PER_2X1_PIXELS => Some("TYPE_1_INVOCATION_PER_2X1_PIXELS"),
4863            Self::TYPE_1_INVOCATION_PER_1X2_PIXELS => Some("TYPE_1_INVOCATION_PER_1X2_PIXELS"),
4864            Self::TYPE_1_INVOCATION_PER_2X2_PIXELS => Some("TYPE_1_INVOCATION_PER_2X2_PIXELS"),
4865            Self::TYPE_1_INVOCATION_PER_4X2_PIXELS => Some("TYPE_1_INVOCATION_PER_4X2_PIXELS"),
4866            Self::TYPE_1_INVOCATION_PER_2X4_PIXELS => Some("TYPE_1_INVOCATION_PER_2X4_PIXELS"),
4867            Self::TYPE_1_INVOCATION_PER_4X4_PIXELS => Some("TYPE_1_INVOCATION_PER_4X4_PIXELS"),
4868            _ => None,
4869        };
4870        if let Some(x) = name {
4871            f.write_str(x)
4872        } else {
4873            self.0.fmt(f)
4874        }
4875    }
4876}
4877impl fmt::Debug for SharingMode {
4878    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4879        let name = match *self {
4880            Self::EXCLUSIVE => Some("EXCLUSIVE"),
4881            Self::CONCURRENT => Some("CONCURRENT"),
4882            _ => None,
4883        };
4884        if let Some(x) = name {
4885            f.write_str(x)
4886        } else {
4887            self.0.fmt(f)
4888        }
4889    }
4890}
4891impl fmt::Debug for SparseImageFormatFlags {
4892    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4893        const KNOWN: &[(Flags, &str)] = &[
4894            (SparseImageFormatFlags::SINGLE_MIPTAIL.0, "SINGLE_MIPTAIL"),
4895            (
4896                SparseImageFormatFlags::ALIGNED_MIP_SIZE.0,
4897                "ALIGNED_MIP_SIZE",
4898            ),
4899            (
4900                SparseImageFormatFlags::NONSTANDARD_BLOCK_SIZE.0,
4901                "NONSTANDARD_BLOCK_SIZE",
4902            ),
4903        ];
4904        debug_flags(f, KNOWN, self.0)
4905    }
4906}
4907impl fmt::Debug for SparseMemoryBindFlags {
4908    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4909        const KNOWN: &[(Flags, &str)] = &[(SparseMemoryBindFlags::METADATA.0, "METADATA")];
4910        debug_flags(f, KNOWN, self.0)
4911    }
4912}
4913impl fmt::Debug for StencilFaceFlags {
4914    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4915        const KNOWN: &[(Flags, &str)] = &[
4916            (StencilFaceFlags::FRONT.0, "FRONT"),
4917            (StencilFaceFlags::BACK.0, "BACK"),
4918            (StencilFaceFlags::FRONT_AND_BACK.0, "FRONT_AND_BACK"),
4919        ];
4920        debug_flags(f, KNOWN, self.0)
4921    }
4922}
4923impl fmt::Debug for StencilOp {
4924    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4925        let name = match *self {
4926            Self::KEEP => Some("KEEP"),
4927            Self::ZERO => Some("ZERO"),
4928            Self::REPLACE => Some("REPLACE"),
4929            Self::INCREMENT_AND_CLAMP => Some("INCREMENT_AND_CLAMP"),
4930            Self::DECREMENT_AND_CLAMP => Some("DECREMENT_AND_CLAMP"),
4931            Self::INVERT => Some("INVERT"),
4932            Self::INCREMENT_AND_WRAP => Some("INCREMENT_AND_WRAP"),
4933            Self::DECREMENT_AND_WRAP => Some("DECREMENT_AND_WRAP"),
4934            _ => None,
4935        };
4936        if let Some(x) = name {
4937            f.write_str(x)
4938        } else {
4939            self.0.fmt(f)
4940        }
4941    }
4942}
4943impl fmt::Debug for StreamDescriptorSurfaceCreateFlagsGGP {
4944    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4945        const KNOWN: &[(Flags, &str)] = &[];
4946        debug_flags(f, KNOWN, self.0)
4947    }
4948}
4949impl fmt::Debug for StructureType {
4950    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4951        let name = match *self {
4952            Self::APPLICATION_INFO => Some("APPLICATION_INFO"),
4953            Self::INSTANCE_CREATE_INFO => Some("INSTANCE_CREATE_INFO"),
4954            Self::DEVICE_QUEUE_CREATE_INFO => Some("DEVICE_QUEUE_CREATE_INFO"),
4955            Self::DEVICE_CREATE_INFO => Some("DEVICE_CREATE_INFO"),
4956            Self::SUBMIT_INFO => Some("SUBMIT_INFO"),
4957            Self::MEMORY_ALLOCATE_INFO => Some("MEMORY_ALLOCATE_INFO"),
4958            Self::MAPPED_MEMORY_RANGE => Some("MAPPED_MEMORY_RANGE"),
4959            Self::BIND_SPARSE_INFO => Some("BIND_SPARSE_INFO"),
4960            Self::FENCE_CREATE_INFO => Some("FENCE_CREATE_INFO"),
4961            Self::SEMAPHORE_CREATE_INFO => Some("SEMAPHORE_CREATE_INFO"),
4962            Self::EVENT_CREATE_INFO => Some("EVENT_CREATE_INFO"),
4963            Self::QUERY_POOL_CREATE_INFO => Some("QUERY_POOL_CREATE_INFO"),
4964            Self::BUFFER_CREATE_INFO => Some("BUFFER_CREATE_INFO"),
4965            Self::BUFFER_VIEW_CREATE_INFO => Some("BUFFER_VIEW_CREATE_INFO"),
4966            Self::IMAGE_CREATE_INFO => Some("IMAGE_CREATE_INFO"),
4967            Self::IMAGE_VIEW_CREATE_INFO => Some("IMAGE_VIEW_CREATE_INFO"),
4968            Self::SHADER_MODULE_CREATE_INFO => Some("SHADER_MODULE_CREATE_INFO"),
4969            Self::PIPELINE_CACHE_CREATE_INFO => Some("PIPELINE_CACHE_CREATE_INFO"),
4970            Self::PIPELINE_SHADER_STAGE_CREATE_INFO => Some("PIPELINE_SHADER_STAGE_CREATE_INFO"),
4971            Self::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO => {
4972                Some("PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO")
4973            }
4974            Self::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO => {
4975                Some("PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO")
4976            }
4977            Self::PIPELINE_TESSELLATION_STATE_CREATE_INFO => {
4978                Some("PIPELINE_TESSELLATION_STATE_CREATE_INFO")
4979            }
4980            Self::PIPELINE_VIEWPORT_STATE_CREATE_INFO => {
4981                Some("PIPELINE_VIEWPORT_STATE_CREATE_INFO")
4982            }
4983            Self::PIPELINE_RASTERIZATION_STATE_CREATE_INFO => {
4984                Some("PIPELINE_RASTERIZATION_STATE_CREATE_INFO")
4985            }
4986            Self::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO => {
4987                Some("PIPELINE_MULTISAMPLE_STATE_CREATE_INFO")
4988            }
4989            Self::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO => {
4990                Some("PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO")
4991            }
4992            Self::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO => {
4993                Some("PIPELINE_COLOR_BLEND_STATE_CREATE_INFO")
4994            }
4995            Self::PIPELINE_DYNAMIC_STATE_CREATE_INFO => Some("PIPELINE_DYNAMIC_STATE_CREATE_INFO"),
4996            Self::GRAPHICS_PIPELINE_CREATE_INFO => Some("GRAPHICS_PIPELINE_CREATE_INFO"),
4997            Self::COMPUTE_PIPELINE_CREATE_INFO => Some("COMPUTE_PIPELINE_CREATE_INFO"),
4998            Self::PIPELINE_LAYOUT_CREATE_INFO => Some("PIPELINE_LAYOUT_CREATE_INFO"),
4999            Self::SAMPLER_CREATE_INFO => Some("SAMPLER_CREATE_INFO"),
5000            Self::DESCRIPTOR_SET_LAYOUT_CREATE_INFO => Some("DESCRIPTOR_SET_LAYOUT_CREATE_INFO"),
5001            Self::DESCRIPTOR_POOL_CREATE_INFO => Some("DESCRIPTOR_POOL_CREATE_INFO"),
5002            Self::DESCRIPTOR_SET_ALLOCATE_INFO => Some("DESCRIPTOR_SET_ALLOCATE_INFO"),
5003            Self::WRITE_DESCRIPTOR_SET => Some("WRITE_DESCRIPTOR_SET"),
5004            Self::COPY_DESCRIPTOR_SET => Some("COPY_DESCRIPTOR_SET"),
5005            Self::FRAMEBUFFER_CREATE_INFO => Some("FRAMEBUFFER_CREATE_INFO"),
5006            Self::RENDER_PASS_CREATE_INFO => Some("RENDER_PASS_CREATE_INFO"),
5007            Self::COMMAND_POOL_CREATE_INFO => Some("COMMAND_POOL_CREATE_INFO"),
5008            Self::COMMAND_BUFFER_ALLOCATE_INFO => Some("COMMAND_BUFFER_ALLOCATE_INFO"),
5009            Self::COMMAND_BUFFER_INHERITANCE_INFO => Some("COMMAND_BUFFER_INHERITANCE_INFO"),
5010            Self::COMMAND_BUFFER_BEGIN_INFO => Some("COMMAND_BUFFER_BEGIN_INFO"),
5011            Self::RENDER_PASS_BEGIN_INFO => Some("RENDER_PASS_BEGIN_INFO"),
5012            Self::BUFFER_MEMORY_BARRIER => Some("BUFFER_MEMORY_BARRIER"),
5013            Self::IMAGE_MEMORY_BARRIER => Some("IMAGE_MEMORY_BARRIER"),
5014            Self::MEMORY_BARRIER => Some("MEMORY_BARRIER"),
5015            Self::LOADER_INSTANCE_CREATE_INFO => Some("LOADER_INSTANCE_CREATE_INFO"),
5016            Self::LOADER_DEVICE_CREATE_INFO => Some("LOADER_DEVICE_CREATE_INFO"),
5017            Self::SWAPCHAIN_CREATE_INFO_KHR => Some("SWAPCHAIN_CREATE_INFO_KHR"),
5018            Self::PRESENT_INFO_KHR => Some("PRESENT_INFO_KHR"),
5019            Self::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR => {
5020                Some("DEVICE_GROUP_PRESENT_CAPABILITIES_KHR")
5021            }
5022            Self::IMAGE_SWAPCHAIN_CREATE_INFO_KHR => Some("IMAGE_SWAPCHAIN_CREATE_INFO_KHR"),
5023            Self::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR => {
5024                Some("BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR")
5025            }
5026            Self::ACQUIRE_NEXT_IMAGE_INFO_KHR => Some("ACQUIRE_NEXT_IMAGE_INFO_KHR"),
5027            Self::DEVICE_GROUP_PRESENT_INFO_KHR => Some("DEVICE_GROUP_PRESENT_INFO_KHR"),
5028            Self::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR => {
5029                Some("DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR")
5030            }
5031            Self::DISPLAY_MODE_CREATE_INFO_KHR => Some("DISPLAY_MODE_CREATE_INFO_KHR"),
5032            Self::DISPLAY_SURFACE_CREATE_INFO_KHR => Some("DISPLAY_SURFACE_CREATE_INFO_KHR"),
5033            Self::DISPLAY_PRESENT_INFO_KHR => Some("DISPLAY_PRESENT_INFO_KHR"),
5034            Self::XLIB_SURFACE_CREATE_INFO_KHR => Some("XLIB_SURFACE_CREATE_INFO_KHR"),
5035            Self::XCB_SURFACE_CREATE_INFO_KHR => Some("XCB_SURFACE_CREATE_INFO_KHR"),
5036            Self::WAYLAND_SURFACE_CREATE_INFO_KHR => Some("WAYLAND_SURFACE_CREATE_INFO_KHR"),
5037            Self::ANDROID_SURFACE_CREATE_INFO_KHR => Some("ANDROID_SURFACE_CREATE_INFO_KHR"),
5038            Self::WIN32_SURFACE_CREATE_INFO_KHR => Some("WIN32_SURFACE_CREATE_INFO_KHR"),
5039            Self::NATIVE_BUFFER_ANDROID => Some("NATIVE_BUFFER_ANDROID"),
5040            Self::SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID => {
5041                Some("SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID")
5042            }
5043            Self::PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID => {
5044                Some("PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID")
5045            }
5046            Self::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT => {
5047                Some("DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT")
5048            }
5049            Self::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD => {
5050                Some("PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD")
5051            }
5052            Self::DEBUG_MARKER_OBJECT_NAME_INFO_EXT => Some("DEBUG_MARKER_OBJECT_NAME_INFO_EXT"),
5053            Self::DEBUG_MARKER_OBJECT_TAG_INFO_EXT => Some("DEBUG_MARKER_OBJECT_TAG_INFO_EXT"),
5054            Self::DEBUG_MARKER_MARKER_INFO_EXT => Some("DEBUG_MARKER_MARKER_INFO_EXT"),
5055            Self::VIDEO_PROFILE_INFO_KHR => Some("VIDEO_PROFILE_INFO_KHR"),
5056            Self::VIDEO_CAPABILITIES_KHR => Some("VIDEO_CAPABILITIES_KHR"),
5057            Self::VIDEO_PICTURE_RESOURCE_INFO_KHR => Some("VIDEO_PICTURE_RESOURCE_INFO_KHR"),
5058            Self::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR => {
5059                Some("VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR")
5060            }
5061            Self::BIND_VIDEO_SESSION_MEMORY_INFO_KHR => Some("BIND_VIDEO_SESSION_MEMORY_INFO_KHR"),
5062            Self::VIDEO_SESSION_CREATE_INFO_KHR => Some("VIDEO_SESSION_CREATE_INFO_KHR"),
5063            Self::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR => {
5064                Some("VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR")
5065            }
5066            Self::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR => {
5067                Some("VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR")
5068            }
5069            Self::VIDEO_BEGIN_CODING_INFO_KHR => Some("VIDEO_BEGIN_CODING_INFO_KHR"),
5070            Self::VIDEO_END_CODING_INFO_KHR => Some("VIDEO_END_CODING_INFO_KHR"),
5071            Self::VIDEO_CODING_CONTROL_INFO_KHR => Some("VIDEO_CODING_CONTROL_INFO_KHR"),
5072            Self::VIDEO_REFERENCE_SLOT_INFO_KHR => Some("VIDEO_REFERENCE_SLOT_INFO_KHR"),
5073            Self::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR => Some("QUEUE_FAMILY_VIDEO_PROPERTIES_KHR"),
5074            Self::VIDEO_PROFILE_LIST_INFO_KHR => Some("VIDEO_PROFILE_LIST_INFO_KHR"),
5075            Self::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR => {
5076                Some("PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR")
5077            }
5078            Self::VIDEO_FORMAT_PROPERTIES_KHR => Some("VIDEO_FORMAT_PROPERTIES_KHR"),
5079            Self::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR => {
5080                Some("QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR")
5081            }
5082            Self::VIDEO_DECODE_INFO_KHR => Some("VIDEO_DECODE_INFO_KHR"),
5083            Self::VIDEO_DECODE_CAPABILITIES_KHR => Some("VIDEO_DECODE_CAPABILITIES_KHR"),
5084            Self::VIDEO_DECODE_USAGE_INFO_KHR => Some("VIDEO_DECODE_USAGE_INFO_KHR"),
5085            Self::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV => {
5086                Some("DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV")
5087            }
5088            Self::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV => {
5089                Some("DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV")
5090            }
5091            Self::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV => {
5092                Some("DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV")
5093            }
5094            Self::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT => {
5095                Some("PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT")
5096            }
5097            Self::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT => {
5098                Some("PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT")
5099            }
5100            Self::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT => {
5101                Some("PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT")
5102            }
5103            Self::CU_MODULE_CREATE_INFO_NVX => Some("CU_MODULE_CREATE_INFO_NVX"),
5104            Self::CU_FUNCTION_CREATE_INFO_NVX => Some("CU_FUNCTION_CREATE_INFO_NVX"),
5105            Self::CU_LAUNCH_INFO_NVX => Some("CU_LAUNCH_INFO_NVX"),
5106            Self::IMAGE_VIEW_HANDLE_INFO_NVX => Some("IMAGE_VIEW_HANDLE_INFO_NVX"),
5107            Self::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX => Some("IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"),
5108            Self::VIDEO_ENCODE_H264_CAPABILITIES_KHR => Some("VIDEO_ENCODE_H264_CAPABILITIES_KHR"),
5109            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR => {
5110                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR")
5111            }
5112            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR => {
5113                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR")
5114            }
5115            Self::VIDEO_ENCODE_H264_PICTURE_INFO_KHR => Some("VIDEO_ENCODE_H264_PICTURE_INFO_KHR"),
5116            Self::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR => {
5117                Some("VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR")
5118            }
5119            Self::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR => {
5120                Some("VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR")
5121            }
5122            Self::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR => {
5123                Some("VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR")
5124            }
5125            Self::VIDEO_ENCODE_H264_PROFILE_INFO_KHR => Some("VIDEO_ENCODE_H264_PROFILE_INFO_KHR"),
5126            Self::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR => {
5127                Some("VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR")
5128            }
5129            Self::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR => {
5130                Some("VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR")
5131            }
5132            Self::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR => {
5133                Some("VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR")
5134            }
5135            Self::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR => {
5136                Some("VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR")
5137            }
5138            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR => {
5139                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR")
5140            }
5141            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR => {
5142                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR")
5143            }
5144            Self::VIDEO_ENCODE_H265_CAPABILITIES_KHR => Some("VIDEO_ENCODE_H265_CAPABILITIES_KHR"),
5145            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR => {
5146                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR")
5147            }
5148            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR => {
5149                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR")
5150            }
5151            Self::VIDEO_ENCODE_H265_PICTURE_INFO_KHR => Some("VIDEO_ENCODE_H265_PICTURE_INFO_KHR"),
5152            Self::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR => {
5153                Some("VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR")
5154            }
5155            Self::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR => {
5156                Some("VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR")
5157            }
5158            Self::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR => {
5159                Some("VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR")
5160            }
5161            Self::VIDEO_ENCODE_H265_PROFILE_INFO_KHR => Some("VIDEO_ENCODE_H265_PROFILE_INFO_KHR"),
5162            Self::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR => {
5163                Some("VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR")
5164            }
5165            Self::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR => {
5166                Some("VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR")
5167            }
5168            Self::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR => {
5169                Some("VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR")
5170            }
5171            Self::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR => {
5172                Some("VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR")
5173            }
5174            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR => {
5175                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR")
5176            }
5177            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR => {
5178                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR")
5179            }
5180            Self::VIDEO_DECODE_H264_CAPABILITIES_KHR => Some("VIDEO_DECODE_H264_CAPABILITIES_KHR"),
5181            Self::VIDEO_DECODE_H264_PICTURE_INFO_KHR => Some("VIDEO_DECODE_H264_PICTURE_INFO_KHR"),
5182            Self::VIDEO_DECODE_H264_PROFILE_INFO_KHR => Some("VIDEO_DECODE_H264_PROFILE_INFO_KHR"),
5183            Self::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR => {
5184                Some("VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR")
5185            }
5186            Self::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR => {
5187                Some("VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR")
5188            }
5189            Self::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR => {
5190                Some("VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR")
5191            }
5192            Self::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD => {
5193                Some("TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")
5194            }
5195            Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => {
5196                Some("RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")
5197            }
5198            Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT => {
5199                Some("RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT")
5200            }
5201            Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD => Some("ATTACHMENT_SAMPLE_COUNT_INFO_AMD"),
5202            Self::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX => {
5203                Some("MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX")
5204            }
5205            Self::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP => {
5206                Some("STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP")
5207            }
5208            Self::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV => {
5209                Some("PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV")
5210            }
5211            Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV => {
5212                Some("EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV")
5213            }
5214            Self::EXPORT_MEMORY_ALLOCATE_INFO_NV => Some("EXPORT_MEMORY_ALLOCATE_INFO_NV"),
5215            Self::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV => Some("IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"),
5216            Self::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV => Some("EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"),
5217            Self::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV => {
5218                Some("WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV")
5219            }
5220            Self::VALIDATION_FLAGS_EXT => Some("VALIDATION_FLAGS_EXT"),
5221            Self::VI_SURFACE_CREATE_INFO_NN => Some("VI_SURFACE_CREATE_INFO_NN"),
5222            Self::IMAGE_VIEW_ASTC_DECODE_MODE_EXT => Some("IMAGE_VIEW_ASTC_DECODE_MODE_EXT"),
5223            Self::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT => {
5224                Some("PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT")
5225            }
5226            Self::PIPELINE_ROBUSTNESS_CREATE_INFO_EXT => {
5227                Some("PIPELINE_ROBUSTNESS_CREATE_INFO_EXT")
5228            }
5229            Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT => {
5230                Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT")
5231            }
5232            Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT => {
5233                Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT")
5234            }
5235            Self::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR => {
5236                Some("IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR")
5237            }
5238            Self::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR => {
5239                Some("EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR")
5240            }
5241            Self::MEMORY_WIN32_HANDLE_PROPERTIES_KHR => Some("MEMORY_WIN32_HANDLE_PROPERTIES_KHR"),
5242            Self::MEMORY_GET_WIN32_HANDLE_INFO_KHR => Some("MEMORY_GET_WIN32_HANDLE_INFO_KHR"),
5243            Self::IMPORT_MEMORY_FD_INFO_KHR => Some("IMPORT_MEMORY_FD_INFO_KHR"),
5244            Self::MEMORY_FD_PROPERTIES_KHR => Some("MEMORY_FD_PROPERTIES_KHR"),
5245            Self::MEMORY_GET_FD_INFO_KHR => Some("MEMORY_GET_FD_INFO_KHR"),
5246            Self::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR => {
5247                Some("WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR")
5248            }
5249            Self::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR => {
5250                Some("IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR")
5251            }
5252            Self::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR => {
5253                Some("EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR")
5254            }
5255            Self::D3D12_FENCE_SUBMIT_INFO_KHR => Some("D3D12_FENCE_SUBMIT_INFO_KHR"),
5256            Self::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR => {
5257                Some("SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR")
5258            }
5259            Self::IMPORT_SEMAPHORE_FD_INFO_KHR => Some("IMPORT_SEMAPHORE_FD_INFO_KHR"),
5260            Self::SEMAPHORE_GET_FD_INFO_KHR => Some("SEMAPHORE_GET_FD_INFO_KHR"),
5261            Self::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR => {
5262                Some("PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR")
5263            }
5264            Self::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT => {
5265                Some("COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT")
5266            }
5267            Self::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT => {
5268                Some("PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT")
5269            }
5270            Self::CONDITIONAL_RENDERING_BEGIN_INFO_EXT => {
5271                Some("CONDITIONAL_RENDERING_BEGIN_INFO_EXT")
5272            }
5273            Self::PRESENT_REGIONS_KHR => Some("PRESENT_REGIONS_KHR"),
5274            Self::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV => {
5275                Some("PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV")
5276            }
5277            Self::SURFACE_CAPABILITIES_2_EXT => Some("SURFACE_CAPABILITIES_2_EXT"),
5278            Self::DISPLAY_POWER_INFO_EXT => Some("DISPLAY_POWER_INFO_EXT"),
5279            Self::DEVICE_EVENT_INFO_EXT => Some("DEVICE_EVENT_INFO_EXT"),
5280            Self::DISPLAY_EVENT_INFO_EXT => Some("DISPLAY_EVENT_INFO_EXT"),
5281            Self::SWAPCHAIN_COUNTER_CREATE_INFO_EXT => Some("SWAPCHAIN_COUNTER_CREATE_INFO_EXT"),
5282            Self::PRESENT_TIMES_INFO_GOOGLE => Some("PRESENT_TIMES_INFO_GOOGLE"),
5283            Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX => {
5284                Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX")
5285            }
5286            Self::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV => {
5287                Some("PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV")
5288            }
5289            Self::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT => {
5290                Some("PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT")
5291            }
5292            Self::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT => {
5293                Some("PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT")
5294            }
5295            Self::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT => {
5296                Some("PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT")
5297            }
5298            Self::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT => {
5299                Some("PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT")
5300            }
5301            Self::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT => {
5302                Some("PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT")
5303            }
5304            Self::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT => {
5305                Some("PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT")
5306            }
5307            Self::HDR_METADATA_EXT => Some("HDR_METADATA_EXT"),
5308            Self::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG => {
5309                Some("PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG")
5310            }
5311            Self::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR => {
5312                Some("SHARED_PRESENT_SURFACE_CAPABILITIES_KHR")
5313            }
5314            Self::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR => Some("IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"),
5315            Self::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR => Some("EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"),
5316            Self::FENCE_GET_WIN32_HANDLE_INFO_KHR => Some("FENCE_GET_WIN32_HANDLE_INFO_KHR"),
5317            Self::IMPORT_FENCE_FD_INFO_KHR => Some("IMPORT_FENCE_FD_INFO_KHR"),
5318            Self::FENCE_GET_FD_INFO_KHR => Some("FENCE_GET_FD_INFO_KHR"),
5319            Self::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR => {
5320                Some("PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR")
5321            }
5322            Self::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR => {
5323                Some("PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR")
5324            }
5325            Self::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR => {
5326                Some("QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR")
5327            }
5328            Self::PERFORMANCE_QUERY_SUBMIT_INFO_KHR => Some("PERFORMANCE_QUERY_SUBMIT_INFO_KHR"),
5329            Self::ACQUIRE_PROFILING_LOCK_INFO_KHR => Some("ACQUIRE_PROFILING_LOCK_INFO_KHR"),
5330            Self::PERFORMANCE_COUNTER_KHR => Some("PERFORMANCE_COUNTER_KHR"),
5331            Self::PERFORMANCE_COUNTER_DESCRIPTION_KHR => {
5332                Some("PERFORMANCE_COUNTER_DESCRIPTION_KHR")
5333            }
5334            Self::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR => Some("PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"),
5335            Self::SURFACE_CAPABILITIES_2_KHR => Some("SURFACE_CAPABILITIES_2_KHR"),
5336            Self::SURFACE_FORMAT_2_KHR => Some("SURFACE_FORMAT_2_KHR"),
5337            Self::DISPLAY_PROPERTIES_2_KHR => Some("DISPLAY_PROPERTIES_2_KHR"),
5338            Self::DISPLAY_PLANE_PROPERTIES_2_KHR => Some("DISPLAY_PLANE_PROPERTIES_2_KHR"),
5339            Self::DISPLAY_MODE_PROPERTIES_2_KHR => Some("DISPLAY_MODE_PROPERTIES_2_KHR"),
5340            Self::DISPLAY_PLANE_INFO_2_KHR => Some("DISPLAY_PLANE_INFO_2_KHR"),
5341            Self::DISPLAY_PLANE_CAPABILITIES_2_KHR => Some("DISPLAY_PLANE_CAPABILITIES_2_KHR"),
5342            Self::IOS_SURFACE_CREATE_INFO_MVK => Some("IOS_SURFACE_CREATE_INFO_MVK"),
5343            Self::MACOS_SURFACE_CREATE_INFO_MVK => Some("MACOS_SURFACE_CREATE_INFO_MVK"),
5344            Self::DEBUG_UTILS_OBJECT_NAME_INFO_EXT => Some("DEBUG_UTILS_OBJECT_NAME_INFO_EXT"),
5345            Self::DEBUG_UTILS_OBJECT_TAG_INFO_EXT => Some("DEBUG_UTILS_OBJECT_TAG_INFO_EXT"),
5346            Self::DEBUG_UTILS_LABEL_EXT => Some("DEBUG_UTILS_LABEL_EXT"),
5347            Self::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT => {
5348                Some("DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT")
5349            }
5350            Self::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT => {
5351                Some("DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT")
5352            }
5353            Self::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID => {
5354                Some("ANDROID_HARDWARE_BUFFER_USAGE_ANDROID")
5355            }
5356            Self::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID => {
5357                Some("ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID")
5358            }
5359            Self::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID => {
5360                Some("ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID")
5361            }
5362            Self::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID => {
5363                Some("IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID")
5364            }
5365            Self::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID => {
5366                Some("MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID")
5367            }
5368            Self::EXTERNAL_FORMAT_ANDROID => Some("EXTERNAL_FORMAT_ANDROID"),
5369            Self::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID => {
5370                Some("ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID")
5371            }
5372            Self::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX => {
5373                Some("PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX")
5374            }
5375            Self::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX => {
5376                Some("PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX")
5377            }
5378            Self::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX => {
5379                Some("EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX")
5380            }
5381            Self::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX => {
5382                Some("EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX")
5383            }
5384            Self::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX => {
5385                Some("PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX")
5386            }
5387            Self::SAMPLE_LOCATIONS_INFO_EXT => Some("SAMPLE_LOCATIONS_INFO_EXT"),
5388            Self::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT => {
5389                Some("RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT")
5390            }
5391            Self::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT => {
5392                Some("PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT")
5393            }
5394            Self::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT => {
5395                Some("PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT")
5396            }
5397            Self::MULTISAMPLE_PROPERTIES_EXT => Some("MULTISAMPLE_PROPERTIES_EXT"),
5398            Self::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT => {
5399                Some("PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT")
5400            }
5401            Self::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT => {
5402                Some("PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT")
5403            }
5404            Self::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT => {
5405                Some("PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT")
5406            }
5407            Self::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV => {
5408                Some("PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV")
5409            }
5410            Self::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR => {
5411                Some("WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR")
5412            }
5413            Self::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR => {
5414                Some("ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR")
5415            }
5416            Self::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR => {
5417                Some("ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR")
5418            }
5419            Self::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR => {
5420                Some("ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR")
5421            }
5422            Self::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR => {
5423                Some("ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR")
5424            }
5425            Self::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR => {
5426                Some("ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR")
5427            }
5428            Self::ACCELERATION_STRUCTURE_GEOMETRY_KHR => {
5429                Some("ACCELERATION_STRUCTURE_GEOMETRY_KHR")
5430            }
5431            Self::ACCELERATION_STRUCTURE_VERSION_INFO_KHR => {
5432                Some("ACCELERATION_STRUCTURE_VERSION_INFO_KHR")
5433            }
5434            Self::COPY_ACCELERATION_STRUCTURE_INFO_KHR => {
5435                Some("COPY_ACCELERATION_STRUCTURE_INFO_KHR")
5436            }
5437            Self::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR => {
5438                Some("COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR")
5439            }
5440            Self::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR => {
5441                Some("COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR")
5442            }
5443            Self::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR => {
5444                Some("PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR")
5445            }
5446            Self::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR => {
5447                Some("PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR")
5448            }
5449            Self::ACCELERATION_STRUCTURE_CREATE_INFO_KHR => {
5450                Some("ACCELERATION_STRUCTURE_CREATE_INFO_KHR")
5451            }
5452            Self::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR => {
5453                Some("ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR")
5454            }
5455            Self::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR => {
5456                Some("PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR")
5457            }
5458            Self::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR => {
5459                Some("PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR")
5460            }
5461            Self::RAY_TRACING_PIPELINE_CREATE_INFO_KHR => {
5462                Some("RAY_TRACING_PIPELINE_CREATE_INFO_KHR")
5463            }
5464            Self::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR => {
5465                Some("RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR")
5466            }
5467            Self::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR => {
5468                Some("RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR")
5469            }
5470            Self::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR => {
5471                Some("PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR")
5472            }
5473            Self::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV => {
5474                Some("PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV")
5475            }
5476            Self::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV => {
5477                Some("PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV")
5478            }
5479            Self::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV => {
5480                Some("PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV")
5481            }
5482            Self::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT => {
5483                Some("DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT")
5484            }
5485            Self::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT => {
5486                Some("PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT")
5487            }
5488            Self::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT => {
5489                Some("IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT")
5490            }
5491            Self::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT => {
5492                Some("IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT")
5493            }
5494            Self::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT => {
5495                Some("IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT")
5496            }
5497            Self::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT => {
5498                Some("DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT")
5499            }
5500            Self::VALIDATION_CACHE_CREATE_INFO_EXT => Some("VALIDATION_CACHE_CREATE_INFO_EXT"),
5501            Self::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT => {
5502                Some("SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT")
5503            }
5504            Self::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR => {
5505                Some("PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR")
5506            }
5507            Self::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR => {
5508                Some("PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR")
5509            }
5510            Self::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV => {
5511                Some("PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV")
5512            }
5513            Self::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV => {
5514                Some("PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV")
5515            }
5516            Self::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV => {
5517                Some("PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV")
5518            }
5519            Self::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV => {
5520                Some("PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV")
5521            }
5522            Self::RAY_TRACING_PIPELINE_CREATE_INFO_NV => {
5523                Some("RAY_TRACING_PIPELINE_CREATE_INFO_NV")
5524            }
5525            Self::ACCELERATION_STRUCTURE_CREATE_INFO_NV => {
5526                Some("ACCELERATION_STRUCTURE_CREATE_INFO_NV")
5527            }
5528            Self::GEOMETRY_NV => Some("GEOMETRY_NV"),
5529            Self::GEOMETRY_TRIANGLES_NV => Some("GEOMETRY_TRIANGLES_NV"),
5530            Self::GEOMETRY_AABB_NV => Some("GEOMETRY_AABB_NV"),
5531            Self::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV => {
5532                Some("BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV")
5533            }
5534            Self::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV => {
5535                Some("WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV")
5536            }
5537            Self::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV => {
5538                Some("ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV")
5539            }
5540            Self::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV => {
5541                Some("PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV")
5542            }
5543            Self::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV => {
5544                Some("RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV")
5545            }
5546            Self::ACCELERATION_STRUCTURE_INFO_NV => Some("ACCELERATION_STRUCTURE_INFO_NV"),
5547            Self::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV => {
5548                Some("PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV")
5549            }
5550            Self::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV => {
5551                Some("PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV")
5552            }
5553            Self::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT => {
5554                Some("PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT")
5555            }
5556            Self::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT => {
5557                Some("FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT")
5558            }
5559            Self::IMPORT_MEMORY_HOST_POINTER_INFO_EXT => {
5560                Some("IMPORT_MEMORY_HOST_POINTER_INFO_EXT")
5561            }
5562            Self::MEMORY_HOST_POINTER_PROPERTIES_EXT => Some("MEMORY_HOST_POINTER_PROPERTIES_EXT"),
5563            Self::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT => {
5564                Some("PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT")
5565            }
5566            Self::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR => {
5567                Some("PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR")
5568            }
5569            Self::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD => {
5570                Some("PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD")
5571            }
5572            Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD => {
5573                Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD")
5574            }
5575            Self::VIDEO_DECODE_H265_CAPABILITIES_KHR => Some("VIDEO_DECODE_H265_CAPABILITIES_KHR"),
5576            Self::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR => {
5577                Some("VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR")
5578            }
5579            Self::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR => {
5580                Some("VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR")
5581            }
5582            Self::VIDEO_DECODE_H265_PROFILE_INFO_KHR => Some("VIDEO_DECODE_H265_PROFILE_INFO_KHR"),
5583            Self::VIDEO_DECODE_H265_PICTURE_INFO_KHR => Some("VIDEO_DECODE_H265_PICTURE_INFO_KHR"),
5584            Self::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR => {
5585                Some("VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR")
5586            }
5587            Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR => {
5588                Some("DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR")
5589            }
5590            Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR => {
5591                Some("PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR")
5592            }
5593            Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR => {
5594                Some("QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR")
5595            }
5596            Self::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD => {
5597                Some("DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD")
5598            }
5599            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT => {
5600                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT")
5601            }
5602            Self::PRESENT_FRAME_TOKEN_GGP => Some("PRESENT_FRAME_TOKEN_GGP"),
5603            Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV => {
5604                Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV")
5605            }
5606            Self::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV => {
5607                Some("PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV")
5608            }
5609            Self::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV => {
5610                Some("PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV")
5611            }
5612            Self::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV => {
5613                Some("PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV")
5614            }
5615            Self::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV => {
5616                Some("PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV")
5617            }
5618            Self::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV => {
5619                Some("PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV")
5620            }
5621            Self::CHECKPOINT_DATA_NV => Some("CHECKPOINT_DATA_NV"),
5622            Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV => {
5623                Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV")
5624            }
5625            Self::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL => {
5626                Some("PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL")
5627            }
5628            Self::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL => {
5629                Some("QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL")
5630            }
5631            Self::INITIALIZE_PERFORMANCE_API_INFO_INTEL => {
5632                Some("INITIALIZE_PERFORMANCE_API_INFO_INTEL")
5633            }
5634            Self::PERFORMANCE_MARKER_INFO_INTEL => Some("PERFORMANCE_MARKER_INFO_INTEL"),
5635            Self::PERFORMANCE_STREAM_MARKER_INFO_INTEL => {
5636                Some("PERFORMANCE_STREAM_MARKER_INFO_INTEL")
5637            }
5638            Self::PERFORMANCE_OVERRIDE_INFO_INTEL => Some("PERFORMANCE_OVERRIDE_INFO_INTEL"),
5639            Self::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL => {
5640                Some("PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL")
5641            }
5642            Self::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT => {
5643                Some("PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT")
5644            }
5645            Self::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD => {
5646                Some("DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD")
5647            }
5648            Self::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD => {
5649                Some("SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD")
5650            }
5651            Self::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA => {
5652                Some("IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA")
5653            }
5654            Self::METAL_SURFACE_CREATE_INFO_EXT => Some("METAL_SURFACE_CREATE_INFO_EXT"),
5655            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT => {
5656                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT")
5657            }
5658            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT => {
5659                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT")
5660            }
5661            Self::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT => {
5662                Some("RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT")
5663            }
5664            Self::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => {
5665                Some("FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")
5666            }
5667            Self::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR => {
5668                Some("PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR")
5669            }
5670            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR => {
5671                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR")
5672            }
5673            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR => {
5674                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR")
5675            }
5676            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR => {
5677                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR")
5678            }
5679            Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD => {
5680                Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD")
5681            }
5682            Self::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD => {
5683                Some("PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD")
5684            }
5685            Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR => {
5686                Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR")
5687            }
5688            Self::RENDERING_ATTACHMENT_LOCATION_INFO_KHR => {
5689                Some("RENDERING_ATTACHMENT_LOCATION_INFO_KHR")
5690            }
5691            Self::RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR => {
5692                Some("RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR")
5693            }
5694            Self::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT => {
5695                Some("PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT")
5696            }
5697            Self::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR => {
5698                Some("PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR")
5699            }
5700            Self::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT => {
5701                Some("PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT")
5702            }
5703            Self::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT => {
5704                Some("PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT")
5705            }
5706            Self::MEMORY_PRIORITY_ALLOCATE_INFO_EXT => Some("MEMORY_PRIORITY_ALLOCATE_INFO_EXT"),
5707            Self::SURFACE_PROTECTED_CAPABILITIES_KHR => Some("SURFACE_PROTECTED_CAPABILITIES_KHR"),
5708            Self::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV => {
5709                Some("PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV")
5710            }
5711            Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT => {
5712                Some("PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT")
5713            }
5714            Self::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT => {
5715                Some("BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT")
5716            }
5717            Self::VALIDATION_FEATURES_EXT => Some("VALIDATION_FEATURES_EXT"),
5718            Self::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR => {
5719                Some("PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR")
5720            }
5721            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV => {
5722                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV")
5723            }
5724            Self::COOPERATIVE_MATRIX_PROPERTIES_NV => Some("COOPERATIVE_MATRIX_PROPERTIES_NV"),
5725            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV => {
5726                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV")
5727            }
5728            Self::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV => {
5729                Some("PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV")
5730            }
5731            Self::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV => {
5732                Some("PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV")
5733            }
5734            Self::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV => {
5735                Some("FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV")
5736            }
5737            Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT => {
5738                Some("PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT")
5739            }
5740            Self::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT => {
5741                Some("PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT")
5742            }
5743            Self::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT => {
5744                Some("PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT")
5745            }
5746            Self::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT => {
5747                Some("PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT")
5748            }
5749            Self::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT => {
5750                Some("PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT")
5751            }
5752            Self::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT => {
5753                Some("SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT")
5754            }
5755            Self::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT => {
5756                Some("SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT")
5757            }
5758            Self::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT => {
5759                Some("SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT")
5760            }
5761            Self::HEADLESS_SURFACE_CREATE_INFO_EXT => Some("HEADLESS_SURFACE_CREATE_INFO_EXT"),
5762            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT => {
5763                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT")
5764            }
5765            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT => {
5766                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT")
5767            }
5768            Self::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR => {
5769                Some("PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR")
5770            }
5771            Self::PIPELINE_INFO_KHR => Some("PIPELINE_INFO_KHR"),
5772            Self::PIPELINE_EXECUTABLE_PROPERTIES_KHR => Some("PIPELINE_EXECUTABLE_PROPERTIES_KHR"),
5773            Self::PIPELINE_EXECUTABLE_INFO_KHR => Some("PIPELINE_EXECUTABLE_INFO_KHR"),
5774            Self::PIPELINE_EXECUTABLE_STATISTIC_KHR => Some("PIPELINE_EXECUTABLE_STATISTIC_KHR"),
5775            Self::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR => {
5776                Some("PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR")
5777            }
5778            Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT => {
5779                Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT")
5780            }
5781            Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT => {
5782                Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT")
5783            }
5784            Self::MEMORY_TO_IMAGE_COPY_EXT => Some("MEMORY_TO_IMAGE_COPY_EXT"),
5785            Self::IMAGE_TO_MEMORY_COPY_EXT => Some("IMAGE_TO_MEMORY_COPY_EXT"),
5786            Self::COPY_IMAGE_TO_MEMORY_INFO_EXT => Some("COPY_IMAGE_TO_MEMORY_INFO_EXT"),
5787            Self::COPY_MEMORY_TO_IMAGE_INFO_EXT => Some("COPY_MEMORY_TO_IMAGE_INFO_EXT"),
5788            Self::HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT => {
5789                Some("HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT")
5790            }
5791            Self::COPY_IMAGE_TO_IMAGE_INFO_EXT => Some("COPY_IMAGE_TO_IMAGE_INFO_EXT"),
5792            Self::SUBRESOURCE_HOST_MEMCPY_SIZE_EXT => Some("SUBRESOURCE_HOST_MEMCPY_SIZE_EXT"),
5793            Self::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT => {
5794                Some("HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT")
5795            }
5796            Self::MEMORY_MAP_INFO_KHR => Some("MEMORY_MAP_INFO_KHR"),
5797            Self::MEMORY_UNMAP_INFO_KHR => Some("MEMORY_UNMAP_INFO_KHR"),
5798            Self::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT => {
5799                Some("PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT")
5800            }
5801            Self::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT => {
5802                Some("PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT")
5803            }
5804            Self::MEMORY_MAP_PLACED_INFO_EXT => Some("MEMORY_MAP_PLACED_INFO_EXT"),
5805            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT => {
5806                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT")
5807            }
5808            Self::SURFACE_PRESENT_MODE_EXT => Some("SURFACE_PRESENT_MODE_EXT"),
5809            Self::SURFACE_PRESENT_SCALING_CAPABILITIES_EXT => {
5810                Some("SURFACE_PRESENT_SCALING_CAPABILITIES_EXT")
5811            }
5812            Self::SURFACE_PRESENT_MODE_COMPATIBILITY_EXT => {
5813                Some("SURFACE_PRESENT_MODE_COMPATIBILITY_EXT")
5814            }
5815            Self::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT => {
5816                Some("PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT")
5817            }
5818            Self::SWAPCHAIN_PRESENT_FENCE_INFO_EXT => Some("SWAPCHAIN_PRESENT_FENCE_INFO_EXT"),
5819            Self::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT => {
5820                Some("SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT")
5821            }
5822            Self::SWAPCHAIN_PRESENT_MODE_INFO_EXT => Some("SWAPCHAIN_PRESENT_MODE_INFO_EXT"),
5823            Self::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT => {
5824                Some("SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT")
5825            }
5826            Self::RELEASE_SWAPCHAIN_IMAGES_INFO_EXT => Some("RELEASE_SWAPCHAIN_IMAGES_INFO_EXT"),
5827            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV => {
5828                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV")
5829            }
5830            Self::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV => {
5831                Some("GRAPHICS_SHADER_GROUP_CREATE_INFO_NV")
5832            }
5833            Self::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV => {
5834                Some("GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV")
5835            }
5836            Self::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV => Some("INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"),
5837            Self::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV => {
5838                Some("INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV")
5839            }
5840            Self::GENERATED_COMMANDS_INFO_NV => Some("GENERATED_COMMANDS_INFO_NV"),
5841            Self::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV => {
5842                Some("GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV")
5843            }
5844            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV => {
5845                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV")
5846            }
5847            Self::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV => {
5848                Some("PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV")
5849            }
5850            Self::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV => {
5851                Some("COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV")
5852            }
5853            Self::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT => {
5854                Some("PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT")
5855            }
5856            Self::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM => {
5857                Some("COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM")
5858            }
5859            Self::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM => {
5860                Some("RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM")
5861            }
5862            Self::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT => {
5863                Some("PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT")
5864            }
5865            Self::DEPTH_BIAS_INFO_EXT => Some("DEPTH_BIAS_INFO_EXT"),
5866            Self::DEPTH_BIAS_REPRESENTATION_INFO_EXT => Some("DEPTH_BIAS_REPRESENTATION_INFO_EXT"),
5867            Self::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT => {
5868                Some("PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT")
5869            }
5870            Self::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT => {
5871                Some("DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT")
5872            }
5873            Self::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT => {
5874                Some("DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT")
5875            }
5876            Self::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT => {
5877                Some("PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT")
5878            }
5879            Self::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT => {
5880                Some("PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT")
5881            }
5882            Self::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT => {
5883                Some("SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT")
5884            }
5885            Self::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT => {
5886                Some("PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT")
5887            }
5888            Self::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT => {
5889                Some("PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT")
5890            }
5891            Self::PIPELINE_LIBRARY_CREATE_INFO_KHR => Some("PIPELINE_LIBRARY_CREATE_INFO_KHR"),
5892            Self::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV => {
5893                Some("PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV")
5894            }
5895            Self::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV => {
5896                Some("SURFACE_CAPABILITIES_PRESENT_BARRIER_NV")
5897            }
5898            Self::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV => {
5899                Some("SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV")
5900            }
5901            Self::PRESENT_ID_KHR => Some("PRESENT_ID_KHR"),
5902            Self::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR => {
5903                Some("PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")
5904            }
5905            Self::VIDEO_ENCODE_INFO_KHR => Some("VIDEO_ENCODE_INFO_KHR"),
5906            Self::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR => Some("VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"),
5907            Self::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR => {
5908                Some("VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR")
5909            }
5910            Self::VIDEO_ENCODE_CAPABILITIES_KHR => Some("VIDEO_ENCODE_CAPABILITIES_KHR"),
5911            Self::VIDEO_ENCODE_USAGE_INFO_KHR => Some("VIDEO_ENCODE_USAGE_INFO_KHR"),
5912            Self::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR => {
5913                Some("QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR")
5914            }
5915            Self::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR => {
5916                Some("PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR")
5917            }
5918            Self::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR => {
5919                Some("VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR")
5920            }
5921            Self::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR => {
5922                Some("VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR")
5923            }
5924            Self::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR => {
5925                Some("VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR")
5926            }
5927            Self::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR => {
5928                Some("VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR")
5929            }
5930            Self::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV => {
5931                Some("PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV")
5932            }
5933            Self::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV => {
5934                Some("DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")
5935            }
5936            Self::CUDA_MODULE_CREATE_INFO_NV => Some("CUDA_MODULE_CREATE_INFO_NV"),
5937            Self::CUDA_FUNCTION_CREATE_INFO_NV => Some("CUDA_FUNCTION_CREATE_INFO_NV"),
5938            Self::CUDA_LAUNCH_INFO_NV => Some("CUDA_LAUNCH_INFO_NV"),
5939            Self::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV => {
5940                Some("PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV")
5941            }
5942            Self::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV => {
5943                Some("PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV")
5944            }
5945            Self::QUERY_LOW_LATENCY_SUPPORT_NV => Some("QUERY_LOW_LATENCY_SUPPORT_NV"),
5946            Self::EXPORT_METAL_OBJECT_CREATE_INFO_EXT => {
5947                Some("EXPORT_METAL_OBJECT_CREATE_INFO_EXT")
5948            }
5949            Self::EXPORT_METAL_OBJECTS_INFO_EXT => Some("EXPORT_METAL_OBJECTS_INFO_EXT"),
5950            Self::EXPORT_METAL_DEVICE_INFO_EXT => Some("EXPORT_METAL_DEVICE_INFO_EXT"),
5951            Self::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT => {
5952                Some("EXPORT_METAL_COMMAND_QUEUE_INFO_EXT")
5953            }
5954            Self::EXPORT_METAL_BUFFER_INFO_EXT => Some("EXPORT_METAL_BUFFER_INFO_EXT"),
5955            Self::IMPORT_METAL_BUFFER_INFO_EXT => Some("IMPORT_METAL_BUFFER_INFO_EXT"),
5956            Self::EXPORT_METAL_TEXTURE_INFO_EXT => Some("EXPORT_METAL_TEXTURE_INFO_EXT"),
5957            Self::IMPORT_METAL_TEXTURE_INFO_EXT => Some("IMPORT_METAL_TEXTURE_INFO_EXT"),
5958            Self::EXPORT_METAL_IO_SURFACE_INFO_EXT => Some("EXPORT_METAL_IO_SURFACE_INFO_EXT"),
5959            Self::IMPORT_METAL_IO_SURFACE_INFO_EXT => Some("IMPORT_METAL_IO_SURFACE_INFO_EXT"),
5960            Self::EXPORT_METAL_SHARED_EVENT_INFO_EXT => Some("EXPORT_METAL_SHARED_EVENT_INFO_EXT"),
5961            Self::IMPORT_METAL_SHARED_EVENT_INFO_EXT => Some("IMPORT_METAL_SHARED_EVENT_INFO_EXT"),
5962            Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV => {
5963                Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")
5964            }
5965            Self::CHECKPOINT_DATA_2_NV => Some("CHECKPOINT_DATA_2_NV"),
5966            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT => {
5967                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT")
5968            }
5969            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT => {
5970                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT")
5971            }
5972            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT => {
5973                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT")
5974            }
5975            Self::DESCRIPTOR_ADDRESS_INFO_EXT => Some("DESCRIPTOR_ADDRESS_INFO_EXT"),
5976            Self::DESCRIPTOR_GET_INFO_EXT => Some("DESCRIPTOR_GET_INFO_EXT"),
5977            Self::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
5978                Some("BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
5979            }
5980            Self::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
5981                Some("IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
5982            }
5983            Self::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
5984                Some("IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
5985            }
5986            Self::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
5987                Some("SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
5988            }
5989            Self::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT => {
5990                Some("OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT")
5991            }
5992            Self::DESCRIPTOR_BUFFER_BINDING_INFO_EXT => Some("DESCRIPTOR_BUFFER_BINDING_INFO_EXT"),
5993            Self::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT => {
5994                Some("DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT")
5995            }
5996            Self::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
5997                Some("ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
5998            }
5999            Self::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT => {
6000                Some("PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT")
6001            }
6002            Self::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT => {
6003                Some("PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT")
6004            }
6005            Self::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT => {
6006                Some("GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT")
6007            }
6008            Self::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD => {
6009                Some("PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD")
6010            }
6011            Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR => {
6012                Some("PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR")
6013            }
6014            Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR => {
6015                Some("PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR")
6016            }
6017            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR => {
6018                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR")
6019            }
6020            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV => {
6021                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV")
6022            }
6023            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV => {
6024                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV")
6025            }
6026            Self::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV => {
6027                Some("PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV")
6028            }
6029            Self::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV => {
6030                Some("ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV")
6031            }
6032            Self::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV => {
6033                Some("PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV")
6034            }
6035            Self::ACCELERATION_STRUCTURE_MOTION_INFO_NV => {
6036                Some("ACCELERATION_STRUCTURE_MOTION_INFO_NV")
6037            }
6038            Self::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT => {
6039                Some("PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT")
6040            }
6041            Self::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT => {
6042                Some("PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT")
6043            }
6044            Self::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT => {
6045                Some("PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT")
6046            }
6047            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT => {
6048                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT")
6049            }
6050            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT => {
6051                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT")
6052            }
6053            Self::COPY_COMMAND_TRANSFORM_INFO_QCOM => Some("COPY_COMMAND_TRANSFORM_INFO_QCOM"),
6054            Self::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR => {
6055                Some("PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR")
6056            }
6057            Self::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT => {
6058                Some("PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT")
6059            }
6060            Self::IMAGE_COMPRESSION_CONTROL_EXT => Some("IMAGE_COMPRESSION_CONTROL_EXT"),
6061            Self::IMAGE_COMPRESSION_PROPERTIES_EXT => Some("IMAGE_COMPRESSION_PROPERTIES_EXT"),
6062            Self::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT => {
6063                Some("PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT")
6064            }
6065            Self::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT => {
6066                Some("PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")
6067            }
6068            Self::PHYSICAL_DEVICE_FAULT_FEATURES_EXT => Some("PHYSICAL_DEVICE_FAULT_FEATURES_EXT"),
6069            Self::DEVICE_FAULT_COUNTS_EXT => Some("DEVICE_FAULT_COUNTS_EXT"),
6070            Self::DEVICE_FAULT_INFO_EXT => Some("DEVICE_FAULT_INFO_EXT"),
6071            Self::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT => {
6072                Some("PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")
6073            }
6074            Self::DIRECTFB_SURFACE_CREATE_INFO_EXT => Some("DIRECTFB_SURFACE_CREATE_INFO_EXT"),
6075            Self::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT => {
6076                Some("PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT")
6077            }
6078            Self::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT => {
6079                Some("VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")
6080            }
6081            Self::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT => {
6082                Some("VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")
6083            }
6084            Self::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT => Some("PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"),
6085            Self::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT => {
6086                Some("PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT")
6087            }
6088            Self::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT => {
6089                Some("DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT")
6090            }
6091            Self::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT => {
6092                Some("PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT")
6093            }
6094            Self::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT => {
6095                Some("PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT")
6096            }
6097            Self::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT => {
6098                Some("PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT")
6099            }
6100            Self::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA => {
6101                Some("IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")
6102            }
6103            Self::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA => {
6104                Some("MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")
6105            }
6106            Self::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA => {
6107                Some("MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")
6108            }
6109            Self::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA => {
6110                Some("IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")
6111            }
6112            Self::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA => {
6113                Some("SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")
6114            }
6115            Self::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA => {
6116                Some("BUFFER_COLLECTION_CREATE_INFO_FUCHSIA")
6117            }
6118            Self::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA => {
6119                Some("IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA")
6120            }
6121            Self::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA => {
6122                Some("BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA")
6123            }
6124            Self::BUFFER_COLLECTION_PROPERTIES_FUCHSIA => {
6125                Some("BUFFER_COLLECTION_PROPERTIES_FUCHSIA")
6126            }
6127            Self::BUFFER_CONSTRAINTS_INFO_FUCHSIA => Some("BUFFER_CONSTRAINTS_INFO_FUCHSIA"),
6128            Self::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA => {
6129                Some("BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA")
6130            }
6131            Self::IMAGE_CONSTRAINTS_INFO_FUCHSIA => Some("IMAGE_CONSTRAINTS_INFO_FUCHSIA"),
6132            Self::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA => {
6133                Some("IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA")
6134            }
6135            Self::SYSMEM_COLOR_SPACE_FUCHSIA => Some("SYSMEM_COLOR_SPACE_FUCHSIA"),
6136            Self::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA => {
6137                Some("BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA")
6138            }
6139            Self::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI => {
6140                Some("SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI")
6141            }
6142            Self::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI => {
6143                Some("PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI")
6144            }
6145            Self::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI => {
6146                Some("PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI")
6147            }
6148            Self::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI => {
6149                Some("PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI")
6150            }
6151            Self::MEMORY_GET_REMOTE_ADDRESS_INFO_NV => Some("MEMORY_GET_REMOTE_ADDRESS_INFO_NV"),
6152            Self::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV => {
6153                Some("PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV")
6154            }
6155            Self::PIPELINE_PROPERTIES_IDENTIFIER_EXT => Some("PIPELINE_PROPERTIES_IDENTIFIER_EXT"),
6156            Self::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT => {
6157                Some("PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT")
6158            }
6159            Self::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT => {
6160                Some("PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT")
6161            }
6162            Self::FRAME_BOUNDARY_EXT => Some("FRAME_BOUNDARY_EXT"),
6163            Self::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT => {
6164                Some("PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT")
6165            }
6166            Self::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT => {
6167                Some("SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT")
6168            }
6169            Self::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT => {
6170                Some("MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT")
6171            }
6172            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT => {
6173                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT")
6174            }
6175            Self::SCREEN_SURFACE_CREATE_INFO_QNX => Some("SCREEN_SURFACE_CREATE_INFO_QNX"),
6176            Self::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT => {
6177                Some("PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT")
6178            }
6179            Self::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT => {
6180                Some("PIPELINE_COLOR_WRITE_CREATE_INFO_EXT")
6181            }
6182            Self::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT => {
6183                Some("PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT")
6184            }
6185            Self::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR => {
6186                Some("PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR")
6187            }
6188            Self::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT => {
6189                Some("PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT")
6190            }
6191            Self::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT => Some("IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"),
6192            Self::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT => {
6193                Some("PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT")
6194            }
6195            Self::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT => {
6196                Some("PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT")
6197            }
6198            Self::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT => {
6199                Some("PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT")
6200            }
6201            Self::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT => {
6202                Some("PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT")
6203            }
6204            Self::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT => {
6205                Some("PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT")
6206            }
6207            Self::MICROMAP_BUILD_INFO_EXT => Some("MICROMAP_BUILD_INFO_EXT"),
6208            Self::MICROMAP_VERSION_INFO_EXT => Some("MICROMAP_VERSION_INFO_EXT"),
6209            Self::COPY_MICROMAP_INFO_EXT => Some("COPY_MICROMAP_INFO_EXT"),
6210            Self::COPY_MICROMAP_TO_MEMORY_INFO_EXT => Some("COPY_MICROMAP_TO_MEMORY_INFO_EXT"),
6211            Self::COPY_MEMORY_TO_MICROMAP_INFO_EXT => Some("COPY_MEMORY_TO_MICROMAP_INFO_EXT"),
6212            Self::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT => {
6213                Some("PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT")
6214            }
6215            Self::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT => {
6216                Some("PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT")
6217            }
6218            Self::MICROMAP_CREATE_INFO_EXT => Some("MICROMAP_CREATE_INFO_EXT"),
6219            Self::MICROMAP_BUILD_SIZES_INFO_EXT => Some("MICROMAP_BUILD_SIZES_INFO_EXT"),
6220            Self::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT => {
6221                Some("ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT")
6222            }
6223            Self::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV => {
6224                Some("PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV")
6225            }
6226            Self::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV => {
6227                Some("PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV")
6228            }
6229            Self::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV => {
6230                Some("ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV")
6231            }
6232            Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI => {
6233                Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI")
6234            }
6235            Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI => {
6236                Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI")
6237            }
6238            Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI => {
6239                Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI")
6240            }
6241            Self::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT => {
6242                Some("PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT")
6243            }
6244            Self::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT => {
6245                Some("SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT")
6246            }
6247            Self::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT => {
6248                Some("PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT")
6249            }
6250            Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM => {
6251                Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM")
6252            }
6253            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR => {
6254                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR")
6255            }
6256            Self::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM => {
6257                Some("DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM")
6258            }
6259            Self::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM => {
6260                Some("PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM")
6261            }
6262            Self::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM => {
6263                Some("PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM")
6264            }
6265            Self::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT => {
6266                Some("PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT")
6267            }
6268            Self::IMAGE_VIEW_SLICED_CREATE_INFO_EXT => Some("IMAGE_VIEW_SLICED_CREATE_INFO_EXT"),
6269            Self::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE => {
6270                Some("PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE")
6271            }
6272            Self::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE => {
6273                Some("DESCRIPTOR_SET_BINDING_REFERENCE_VALVE")
6274            }
6275            Self::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE => {
6276                Some("DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE")
6277            }
6278            Self::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT => {
6279                Some("PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT")
6280            }
6281            Self::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT => {
6282                Some("PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT")
6283            }
6284            Self::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM => {
6285                Some("PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM")
6286            }
6287            Self::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM => {
6288                Some("PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM")
6289            }
6290            Self::RENDER_PASS_STRIPE_BEGIN_INFO_ARM => Some("RENDER_PASS_STRIPE_BEGIN_INFO_ARM"),
6291            Self::RENDER_PASS_STRIPE_INFO_ARM => Some("RENDER_PASS_STRIPE_INFO_ARM"),
6292            Self::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM => Some("RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"),
6293            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM => {
6294                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM")
6295            }
6296            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM => {
6297                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM")
6298            }
6299            Self::SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM => {
6300                Some("SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM")
6301            }
6302            Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV => {
6303                Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV")
6304            }
6305            Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV => {
6306                Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV")
6307            }
6308            Self::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV => {
6309                Some("PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV")
6310            }
6311            Self::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV => {
6312                Some("PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV")
6313            }
6314            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV => {
6315                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV")
6316            }
6317            Self::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV => {
6318                Some("COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV")
6319            }
6320            Self::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV => {
6321                Some("PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV")
6322            }
6323            Self::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV => {
6324                Some("PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV")
6325            }
6326            Self::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR => {
6327                Some("PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR")
6328            }
6329            Self::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT => {
6330                Some("PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT")
6331            }
6332            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM => {
6333                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM")
6334            }
6335            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM => {
6336                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM")
6337            }
6338            Self::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM => {
6339                Some("IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM")
6340            }
6341            Self::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT => {
6342                Some("PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT")
6343            }
6344            Self::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT => {
6345                Some("PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT")
6346            }
6347            Self::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT => {
6348                Some("EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT")
6349            }
6350            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT => {
6351                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT")
6352            }
6353            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT => {
6354                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT")
6355            }
6356            Self::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT => {
6357                Some("PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT")
6358            }
6359            Self::RENDER_PASS_CREATION_CONTROL_EXT => Some("RENDER_PASS_CREATION_CONTROL_EXT"),
6360            Self::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT => {
6361                Some("RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT")
6362            }
6363            Self::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT => {
6364                Some("RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT")
6365            }
6366            Self::DIRECT_DRIVER_LOADING_INFO_LUNARG => Some("DIRECT_DRIVER_LOADING_INFO_LUNARG"),
6367            Self::DIRECT_DRIVER_LOADING_LIST_LUNARG => Some("DIRECT_DRIVER_LOADING_LIST_LUNARG"),
6368            Self::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT => {
6369                Some("PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT")
6370            }
6371            Self::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT => {
6372                Some("PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT")
6373            }
6374            Self::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT => {
6375                Some("PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT")
6376            }
6377            Self::SHADER_MODULE_IDENTIFIER_EXT => Some("SHADER_MODULE_IDENTIFIER_EXT"),
6378            Self::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT => {
6379                Some("PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT")
6380            }
6381            Self::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV => {
6382                Some("PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV")
6383            }
6384            Self::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV => {
6385                Some("PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV")
6386            }
6387            Self::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV => Some("OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"),
6388            Self::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV => {
6389                Some("OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV")
6390            }
6391            Self::OPTICAL_FLOW_SESSION_CREATE_INFO_NV => {
6392                Some("OPTICAL_FLOW_SESSION_CREATE_INFO_NV")
6393            }
6394            Self::OPTICAL_FLOW_EXECUTE_INFO_NV => Some("OPTICAL_FLOW_EXECUTE_INFO_NV"),
6395            Self::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV => {
6396                Some("OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV")
6397            }
6398            Self::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT => {
6399                Some("PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT")
6400            }
6401            Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT => {
6402                Some("PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT")
6403            }
6404            Self::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID => {
6405                Some("PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID")
6406            }
6407            Self::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID => {
6408                Some("PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID")
6409            }
6410            Self::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID => {
6411                Some("ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID")
6412            }
6413            Self::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR => {
6414                Some("PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR")
6415            }
6416            Self::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR => {
6417                Some("PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR")
6418            }
6419            Self::RENDERING_AREA_INFO_KHR => Some("RENDERING_AREA_INFO_KHR"),
6420            Self::DEVICE_IMAGE_SUBRESOURCE_INFO_KHR => Some("DEVICE_IMAGE_SUBRESOURCE_INFO_KHR"),
6421            Self::SUBRESOURCE_LAYOUT_2_KHR => Some("SUBRESOURCE_LAYOUT_2_KHR"),
6422            Self::IMAGE_SUBRESOURCE_2_KHR => Some("IMAGE_SUBRESOURCE_2_KHR"),
6423            Self::PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR => {
6424                Some("PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR")
6425            }
6426            Self::BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR => {
6427                Some("BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR")
6428            }
6429            Self::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR => {
6430                Some("PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR")
6431            }
6432            Self::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT => {
6433                Some("PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT")
6434            }
6435            Self::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT => {
6436                Some("PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT")
6437            }
6438            Self::SHADER_CREATE_INFO_EXT => Some("SHADER_CREATE_INFO_EXT"),
6439            Self::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM => {
6440                Some("PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM")
6441            }
6442            Self::TILE_PROPERTIES_QCOM => Some("TILE_PROPERTIES_QCOM"),
6443            Self::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC => {
6444                Some("PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC")
6445            }
6446            Self::AMIGO_PROFILING_SUBMIT_INFO_SEC => Some("AMIGO_PROFILING_SUBMIT_INFO_SEC"),
6447            Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM => {
6448                Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM")
6449            }
6450            Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV => {
6451                Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV")
6452            }
6453            Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV => {
6454                Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV")
6455            }
6456            Self::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV => {
6457                Some("PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV")
6458            }
6459            Self::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV => {
6460                Some("PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV")
6461            }
6462            Self::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT => {
6463                Some("PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT")
6464            }
6465            Self::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT => {
6466                Some("MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT")
6467            }
6468            Self::LAYER_SETTINGS_CREATE_INFO_EXT => Some("LAYER_SETTINGS_CREATE_INFO_EXT"),
6469            Self::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM => {
6470                Some("PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM")
6471            }
6472            Self::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM => {
6473                Some("PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM")
6474            }
6475            Self::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT => {
6476                Some("PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT")
6477            }
6478            Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT => {
6479                Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT")
6480            }
6481            Self::LATENCY_SLEEP_MODE_INFO_NV => Some("LATENCY_SLEEP_MODE_INFO_NV"),
6482            Self::LATENCY_SLEEP_INFO_NV => Some("LATENCY_SLEEP_INFO_NV"),
6483            Self::SET_LATENCY_MARKER_INFO_NV => Some("SET_LATENCY_MARKER_INFO_NV"),
6484            Self::GET_LATENCY_MARKER_INFO_NV => Some("GET_LATENCY_MARKER_INFO_NV"),
6485            Self::LATENCY_TIMINGS_FRAME_REPORT_NV => Some("LATENCY_TIMINGS_FRAME_REPORT_NV"),
6486            Self::LATENCY_SUBMISSION_PRESENT_ID_NV => Some("LATENCY_SUBMISSION_PRESENT_ID_NV"),
6487            Self::OUT_OF_BAND_QUEUE_TYPE_INFO_NV => Some("OUT_OF_BAND_QUEUE_TYPE_INFO_NV"),
6488            Self::SWAPCHAIN_LATENCY_CREATE_INFO_NV => Some("SWAPCHAIN_LATENCY_CREATE_INFO_NV"),
6489            Self::LATENCY_SURFACE_CAPABILITIES_NV => Some("LATENCY_SURFACE_CAPABILITIES_NV"),
6490            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR => {
6491                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR")
6492            }
6493            Self::COOPERATIVE_MATRIX_PROPERTIES_KHR => Some("COOPERATIVE_MATRIX_PROPERTIES_KHR"),
6494            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR => {
6495                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR")
6496            }
6497            Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM => {
6498                Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM")
6499            }
6500            Self::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM => {
6501                Some("MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM")
6502            }
6503            Self::VIDEO_DECODE_AV1_CAPABILITIES_KHR => Some("VIDEO_DECODE_AV1_CAPABILITIES_KHR"),
6504            Self::VIDEO_DECODE_AV1_PICTURE_INFO_KHR => Some("VIDEO_DECODE_AV1_PICTURE_INFO_KHR"),
6505            Self::VIDEO_DECODE_AV1_PROFILE_INFO_KHR => Some("VIDEO_DECODE_AV1_PROFILE_INFO_KHR"),
6506            Self::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR => {
6507                Some("VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR")
6508            }
6509            Self::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR => Some("VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR"),
6510            Self::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR => {
6511                Some("PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR")
6512            }
6513            Self::VIDEO_INLINE_QUERY_INFO_KHR => Some("VIDEO_INLINE_QUERY_INFO_KHR"),
6514            Self::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV => {
6515                Some("PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV")
6516            }
6517            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM => {
6518                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM")
6519            }
6520            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM => {
6521                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM")
6522            }
6523            Self::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM => {
6524                Some("SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM")
6525            }
6526            Self::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM => {
6527                Some("SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM")
6528            }
6529            Self::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM => {
6530                Some("PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM")
6531            }
6532            Self::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM => Some("BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM"),
6533            Self::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM => {
6534                Some("PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM")
6535            }
6536            Self::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM => {
6537                Some("SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM")
6538            }
6539            Self::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM => {
6540                Some("PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM")
6541            }
6542            Self::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT => {
6543                Some("PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT")
6544            }
6545            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR => {
6546                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR")
6547            }
6548            Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR => {
6549                Some("PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR")
6550            }
6551            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR => {
6552                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR")
6553            }
6554            Self::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR => {
6555                Some("PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR")
6556            }
6557            Self::SCREEN_BUFFER_PROPERTIES_QNX => Some("SCREEN_BUFFER_PROPERTIES_QNX"),
6558            Self::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX => {
6559                Some("SCREEN_BUFFER_FORMAT_PROPERTIES_QNX")
6560            }
6561            Self::IMPORT_SCREEN_BUFFER_INFO_QNX => Some("IMPORT_SCREEN_BUFFER_INFO_QNX"),
6562            Self::EXTERNAL_FORMAT_QNX => Some("EXTERNAL_FORMAT_QNX"),
6563            Self::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX => {
6564                Some("PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX")
6565            }
6566            Self::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT => {
6567                Some("PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT")
6568            }
6569            Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR => {
6570                Some("PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR")
6571            }
6572            Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR => {
6573                Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR")
6574            }
6575            Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR => {
6576                Some("PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR")
6577            }
6578            Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR => {
6579                Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR")
6580            }
6581            Self::CALIBRATED_TIMESTAMP_INFO_KHR => Some("CALIBRATED_TIMESTAMP_INFO_KHR"),
6582            Self::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR => {
6583                Some("PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR")
6584            }
6585            Self::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR => {
6586                Some("PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR")
6587            }
6588            Self::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR => {
6589                Some("PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR")
6590            }
6591            Self::BIND_MEMORY_STATUS_KHR => Some("BIND_MEMORY_STATUS_KHR"),
6592            Self::BIND_DESCRIPTOR_SETS_INFO_KHR => Some("BIND_DESCRIPTOR_SETS_INFO_KHR"),
6593            Self::PUSH_CONSTANTS_INFO_KHR => Some("PUSH_CONSTANTS_INFO_KHR"),
6594            Self::PUSH_DESCRIPTOR_SET_INFO_KHR => Some("PUSH_DESCRIPTOR_SET_INFO_KHR"),
6595            Self::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR => {
6596                Some("PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR")
6597            }
6598            Self::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT => {
6599                Some("SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT")
6600            }
6601            Self::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT => {
6602                Some("BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT")
6603            }
6604            Self::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV => {
6605                Some("PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV")
6606            }
6607            Self::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV => {
6608                Some("PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV")
6609            }
6610            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV => {
6611                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV")
6612            }
6613            Self::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV => {
6614                Some("PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV")
6615            }
6616            Self::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES => {
6617                Some("PHYSICAL_DEVICE_SUBGROUP_PROPERTIES")
6618            }
6619            Self::BIND_BUFFER_MEMORY_INFO => Some("BIND_BUFFER_MEMORY_INFO"),
6620            Self::BIND_IMAGE_MEMORY_INFO => Some("BIND_IMAGE_MEMORY_INFO"),
6621            Self::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES => {
6622                Some("PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES")
6623            }
6624            Self::MEMORY_DEDICATED_REQUIREMENTS => Some("MEMORY_DEDICATED_REQUIREMENTS"),
6625            Self::MEMORY_DEDICATED_ALLOCATE_INFO => Some("MEMORY_DEDICATED_ALLOCATE_INFO"),
6626            Self::MEMORY_ALLOCATE_FLAGS_INFO => Some("MEMORY_ALLOCATE_FLAGS_INFO"),
6627            Self::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO => {
6628                Some("DEVICE_GROUP_RENDER_PASS_BEGIN_INFO")
6629            }
6630            Self::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO => {
6631                Some("DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO")
6632            }
6633            Self::DEVICE_GROUP_SUBMIT_INFO => Some("DEVICE_GROUP_SUBMIT_INFO"),
6634            Self::DEVICE_GROUP_BIND_SPARSE_INFO => Some("DEVICE_GROUP_BIND_SPARSE_INFO"),
6635            Self::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO => {
6636                Some("BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO")
6637            }
6638            Self::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO => {
6639                Some("BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO")
6640            }
6641            Self::PHYSICAL_DEVICE_GROUP_PROPERTIES => Some("PHYSICAL_DEVICE_GROUP_PROPERTIES"),
6642            Self::DEVICE_GROUP_DEVICE_CREATE_INFO => Some("DEVICE_GROUP_DEVICE_CREATE_INFO"),
6643            Self::BUFFER_MEMORY_REQUIREMENTS_INFO_2 => Some("BUFFER_MEMORY_REQUIREMENTS_INFO_2"),
6644            Self::IMAGE_MEMORY_REQUIREMENTS_INFO_2 => Some("IMAGE_MEMORY_REQUIREMENTS_INFO_2"),
6645            Self::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 => {
6646                Some("IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2")
6647            }
6648            Self::MEMORY_REQUIREMENTS_2 => Some("MEMORY_REQUIREMENTS_2"),
6649            Self::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 => Some("SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"),
6650            Self::PHYSICAL_DEVICE_FEATURES_2 => Some("PHYSICAL_DEVICE_FEATURES_2"),
6651            Self::PHYSICAL_DEVICE_PROPERTIES_2 => Some("PHYSICAL_DEVICE_PROPERTIES_2"),
6652            Self::FORMAT_PROPERTIES_2 => Some("FORMAT_PROPERTIES_2"),
6653            Self::IMAGE_FORMAT_PROPERTIES_2 => Some("IMAGE_FORMAT_PROPERTIES_2"),
6654            Self::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 => {
6655                Some("PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2")
6656            }
6657            Self::QUEUE_FAMILY_PROPERTIES_2 => Some("QUEUE_FAMILY_PROPERTIES_2"),
6658            Self::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 => {
6659                Some("PHYSICAL_DEVICE_MEMORY_PROPERTIES_2")
6660            }
6661            Self::SPARSE_IMAGE_FORMAT_PROPERTIES_2 => Some("SPARSE_IMAGE_FORMAT_PROPERTIES_2"),
6662            Self::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 => {
6663                Some("PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2")
6664            }
6665            Self::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES => {
6666                Some("PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES")
6667            }
6668            Self::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO => {
6669                Some("RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO")
6670            }
6671            Self::IMAGE_VIEW_USAGE_CREATE_INFO => Some("IMAGE_VIEW_USAGE_CREATE_INFO"),
6672            Self::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO => {
6673                Some("PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO")
6674            }
6675            Self::RENDER_PASS_MULTIVIEW_CREATE_INFO => Some("RENDER_PASS_MULTIVIEW_CREATE_INFO"),
6676            Self::PHYSICAL_DEVICE_MULTIVIEW_FEATURES => Some("PHYSICAL_DEVICE_MULTIVIEW_FEATURES"),
6677            Self::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES => {
6678                Some("PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES")
6679            }
6680            Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES => {
6681                Some("PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES")
6682            }
6683            Self::PROTECTED_SUBMIT_INFO => Some("PROTECTED_SUBMIT_INFO"),
6684            Self::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES => {
6685                Some("PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES")
6686            }
6687            Self::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES => {
6688                Some("PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES")
6689            }
6690            Self::DEVICE_QUEUE_INFO_2 => Some("DEVICE_QUEUE_INFO_2"),
6691            Self::SAMPLER_YCBCR_CONVERSION_CREATE_INFO => {
6692                Some("SAMPLER_YCBCR_CONVERSION_CREATE_INFO")
6693            }
6694            Self::SAMPLER_YCBCR_CONVERSION_INFO => Some("SAMPLER_YCBCR_CONVERSION_INFO"),
6695            Self::BIND_IMAGE_PLANE_MEMORY_INFO => Some("BIND_IMAGE_PLANE_MEMORY_INFO"),
6696            Self::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO => {
6697                Some("IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO")
6698            }
6699            Self::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES => {
6700                Some("PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES")
6701            }
6702            Self::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES => {
6703                Some("SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES")
6704            }
6705            Self::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO => {
6706                Some("DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO")
6707            }
6708            Self::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO => {
6709                Some("PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO")
6710            }
6711            Self::EXTERNAL_IMAGE_FORMAT_PROPERTIES => Some("EXTERNAL_IMAGE_FORMAT_PROPERTIES"),
6712            Self::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO => {
6713                Some("PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO")
6714            }
6715            Self::EXTERNAL_BUFFER_PROPERTIES => Some("EXTERNAL_BUFFER_PROPERTIES"),
6716            Self::PHYSICAL_DEVICE_ID_PROPERTIES => Some("PHYSICAL_DEVICE_ID_PROPERTIES"),
6717            Self::EXTERNAL_MEMORY_BUFFER_CREATE_INFO => Some("EXTERNAL_MEMORY_BUFFER_CREATE_INFO"),
6718            Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO => Some("EXTERNAL_MEMORY_IMAGE_CREATE_INFO"),
6719            Self::EXPORT_MEMORY_ALLOCATE_INFO => Some("EXPORT_MEMORY_ALLOCATE_INFO"),
6720            Self::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO => {
6721                Some("PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO")
6722            }
6723            Self::EXTERNAL_FENCE_PROPERTIES => Some("EXTERNAL_FENCE_PROPERTIES"),
6724            Self::EXPORT_FENCE_CREATE_INFO => Some("EXPORT_FENCE_CREATE_INFO"),
6725            Self::EXPORT_SEMAPHORE_CREATE_INFO => Some("EXPORT_SEMAPHORE_CREATE_INFO"),
6726            Self::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO => {
6727                Some("PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO")
6728            }
6729            Self::EXTERNAL_SEMAPHORE_PROPERTIES => Some("EXTERNAL_SEMAPHORE_PROPERTIES"),
6730            Self::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES => {
6731                Some("PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES")
6732            }
6733            Self::DESCRIPTOR_SET_LAYOUT_SUPPORT => Some("DESCRIPTOR_SET_LAYOUT_SUPPORT"),
6734            Self::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES => {
6735                Some("PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES")
6736            }
6737            Self::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES => {
6738                Some("PHYSICAL_DEVICE_VULKAN_1_1_FEATURES")
6739            }
6740            Self::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES => {
6741                Some("PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES")
6742            }
6743            Self::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES => {
6744                Some("PHYSICAL_DEVICE_VULKAN_1_2_FEATURES")
6745            }
6746            Self::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES => {
6747                Some("PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES")
6748            }
6749            Self::IMAGE_FORMAT_LIST_CREATE_INFO => Some("IMAGE_FORMAT_LIST_CREATE_INFO"),
6750            Self::ATTACHMENT_DESCRIPTION_2 => Some("ATTACHMENT_DESCRIPTION_2"),
6751            Self::ATTACHMENT_REFERENCE_2 => Some("ATTACHMENT_REFERENCE_2"),
6752            Self::SUBPASS_DESCRIPTION_2 => Some("SUBPASS_DESCRIPTION_2"),
6753            Self::SUBPASS_DEPENDENCY_2 => Some("SUBPASS_DEPENDENCY_2"),
6754            Self::RENDER_PASS_CREATE_INFO_2 => Some("RENDER_PASS_CREATE_INFO_2"),
6755            Self::SUBPASS_BEGIN_INFO => Some("SUBPASS_BEGIN_INFO"),
6756            Self::SUBPASS_END_INFO => Some("SUBPASS_END_INFO"),
6757            Self::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES => {
6758                Some("PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES")
6759            }
6760            Self::PHYSICAL_DEVICE_DRIVER_PROPERTIES => Some("PHYSICAL_DEVICE_DRIVER_PROPERTIES"),
6761            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES => {
6762                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES")
6763            }
6764            Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES => {
6765                Some("PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES")
6766            }
6767            Self::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES => {
6768                Some("PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES")
6769            }
6770            Self::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO => {
6771                Some("DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO")
6772            }
6773            Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES => {
6774                Some("PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES")
6775            }
6776            Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES => {
6777                Some("PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES")
6778            }
6779            Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO => {
6780                Some("DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO")
6781            }
6782            Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT => {
6783                Some("DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT")
6784            }
6785            Self::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES => {
6786                Some("PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES")
6787            }
6788            Self::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE => {
6789                Some("SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE")
6790            }
6791            Self::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES => {
6792                Some("PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES")
6793            }
6794            Self::IMAGE_STENCIL_USAGE_CREATE_INFO => Some("IMAGE_STENCIL_USAGE_CREATE_INFO"),
6795            Self::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES => {
6796                Some("PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES")
6797            }
6798            Self::SAMPLER_REDUCTION_MODE_CREATE_INFO => Some("SAMPLER_REDUCTION_MODE_CREATE_INFO"),
6799            Self::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES => {
6800                Some("PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES")
6801            }
6802            Self::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES => {
6803                Some("PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES")
6804            }
6805            Self::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO => {
6806                Some("FRAMEBUFFER_ATTACHMENTS_CREATE_INFO")
6807            }
6808            Self::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO => Some("FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"),
6809            Self::RENDER_PASS_ATTACHMENT_BEGIN_INFO => Some("RENDER_PASS_ATTACHMENT_BEGIN_INFO"),
6810            Self::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES => {
6811                Some("PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES")
6812            }
6813            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES => {
6814                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES")
6815            }
6816            Self::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES => {
6817                Some("PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES")
6818            }
6819            Self::ATTACHMENT_REFERENCE_STENCIL_LAYOUT => {
6820                Some("ATTACHMENT_REFERENCE_STENCIL_LAYOUT")
6821            }
6822            Self::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT => {
6823                Some("ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT")
6824            }
6825            Self::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES => {
6826                Some("PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES")
6827            }
6828            Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES => {
6829                Some("PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES")
6830            }
6831            Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES => {
6832                Some("PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES")
6833            }
6834            Self::SEMAPHORE_TYPE_CREATE_INFO => Some("SEMAPHORE_TYPE_CREATE_INFO"),
6835            Self::TIMELINE_SEMAPHORE_SUBMIT_INFO => Some("TIMELINE_SEMAPHORE_SUBMIT_INFO"),
6836            Self::SEMAPHORE_WAIT_INFO => Some("SEMAPHORE_WAIT_INFO"),
6837            Self::SEMAPHORE_SIGNAL_INFO => Some("SEMAPHORE_SIGNAL_INFO"),
6838            Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES => {
6839                Some("PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES")
6840            }
6841            Self::BUFFER_DEVICE_ADDRESS_INFO => Some("BUFFER_DEVICE_ADDRESS_INFO"),
6842            Self::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO => {
6843                Some("BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO")
6844            }
6845            Self::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO => {
6846                Some("MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO")
6847            }
6848            Self::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO => {
6849                Some("DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO")
6850            }
6851            Self::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES => {
6852                Some("PHYSICAL_DEVICE_VULKAN_1_3_FEATURES")
6853            }
6854            Self::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES => {
6855                Some("PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES")
6856            }
6857            Self::PIPELINE_CREATION_FEEDBACK_CREATE_INFO => {
6858                Some("PIPELINE_CREATION_FEEDBACK_CREATE_INFO")
6859            }
6860            Self::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES => {
6861                Some("PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES")
6862            }
6863            Self::PHYSICAL_DEVICE_TOOL_PROPERTIES => Some("PHYSICAL_DEVICE_TOOL_PROPERTIES"),
6864            Self::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES => {
6865                Some("PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES")
6866            }
6867            Self::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES => {
6868                Some("PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES")
6869            }
6870            Self::DEVICE_PRIVATE_DATA_CREATE_INFO => Some("DEVICE_PRIVATE_DATA_CREATE_INFO"),
6871            Self::PRIVATE_DATA_SLOT_CREATE_INFO => Some("PRIVATE_DATA_SLOT_CREATE_INFO"),
6872            Self::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES => {
6873                Some("PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES")
6874            }
6875            Self::MEMORY_BARRIER_2 => Some("MEMORY_BARRIER_2"),
6876            Self::BUFFER_MEMORY_BARRIER_2 => Some("BUFFER_MEMORY_BARRIER_2"),
6877            Self::IMAGE_MEMORY_BARRIER_2 => Some("IMAGE_MEMORY_BARRIER_2"),
6878            Self::DEPENDENCY_INFO => Some("DEPENDENCY_INFO"),
6879            Self::SUBMIT_INFO_2 => Some("SUBMIT_INFO_2"),
6880            Self::SEMAPHORE_SUBMIT_INFO => Some("SEMAPHORE_SUBMIT_INFO"),
6881            Self::COMMAND_BUFFER_SUBMIT_INFO => Some("COMMAND_BUFFER_SUBMIT_INFO"),
6882            Self::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES => {
6883                Some("PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES")
6884            }
6885            Self::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES => {
6886                Some("PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES")
6887            }
6888            Self::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES => {
6889                Some("PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES")
6890            }
6891            Self::COPY_BUFFER_INFO_2 => Some("COPY_BUFFER_INFO_2"),
6892            Self::COPY_IMAGE_INFO_2 => Some("COPY_IMAGE_INFO_2"),
6893            Self::COPY_BUFFER_TO_IMAGE_INFO_2 => Some("COPY_BUFFER_TO_IMAGE_INFO_2"),
6894            Self::COPY_IMAGE_TO_BUFFER_INFO_2 => Some("COPY_IMAGE_TO_BUFFER_INFO_2"),
6895            Self::BLIT_IMAGE_INFO_2 => Some("BLIT_IMAGE_INFO_2"),
6896            Self::RESOLVE_IMAGE_INFO_2 => Some("RESOLVE_IMAGE_INFO_2"),
6897            Self::BUFFER_COPY_2 => Some("BUFFER_COPY_2"),
6898            Self::IMAGE_COPY_2 => Some("IMAGE_COPY_2"),
6899            Self::IMAGE_BLIT_2 => Some("IMAGE_BLIT_2"),
6900            Self::BUFFER_IMAGE_COPY_2 => Some("BUFFER_IMAGE_COPY_2"),
6901            Self::IMAGE_RESOLVE_2 => Some("IMAGE_RESOLVE_2"),
6902            Self::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES => {
6903                Some("PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES")
6904            }
6905            Self::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO => {
6906                Some("PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO")
6907            }
6908            Self::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES => {
6909                Some("PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES")
6910            }
6911            Self::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES => {
6912                Some("PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES")
6913            }
6914            Self::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES => {
6915                Some("PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES")
6916            }
6917            Self::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK => {
6918                Some("WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK")
6919            }
6920            Self::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO => {
6921                Some("DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO")
6922            }
6923            Self::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES => {
6924                Some("PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES")
6925            }
6926            Self::RENDERING_INFO => Some("RENDERING_INFO"),
6927            Self::RENDERING_ATTACHMENT_INFO => Some("RENDERING_ATTACHMENT_INFO"),
6928            Self::PIPELINE_RENDERING_CREATE_INFO => Some("PIPELINE_RENDERING_CREATE_INFO"),
6929            Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES => {
6930                Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES")
6931            }
6932            Self::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO => {
6933                Some("COMMAND_BUFFER_INHERITANCE_RENDERING_INFO")
6934            }
6935            Self::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES => {
6936                Some("PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES")
6937            }
6938            Self::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES => {
6939                Some("PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES")
6940            }
6941            Self::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES => {
6942                Some("PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES")
6943            }
6944            Self::FORMAT_PROPERTIES_3 => Some("FORMAT_PROPERTIES_3"),
6945            Self::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES => {
6946                Some("PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES")
6947            }
6948            Self::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES => {
6949                Some("PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES")
6950            }
6951            Self::DEVICE_BUFFER_MEMORY_REQUIREMENTS => Some("DEVICE_BUFFER_MEMORY_REQUIREMENTS"),
6952            Self::DEVICE_IMAGE_MEMORY_REQUIREMENTS => Some("DEVICE_IMAGE_MEMORY_REQUIREMENTS"),
6953            _ => None,
6954        };
6955        if let Some(x) = name {
6956            f.write_str(x)
6957        } else {
6958            self.0.fmt(f)
6959        }
6960    }
6961}
6962impl fmt::Debug for SubgroupFeatureFlags {
6963    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
6964        const KNOWN: &[(Flags, &str)] = &[
6965            (SubgroupFeatureFlags::BASIC.0, "BASIC"),
6966            (SubgroupFeatureFlags::VOTE.0, "VOTE"),
6967            (SubgroupFeatureFlags::ARITHMETIC.0, "ARITHMETIC"),
6968            (SubgroupFeatureFlags::BALLOT.0, "BALLOT"),
6969            (SubgroupFeatureFlags::SHUFFLE.0, "SHUFFLE"),
6970            (SubgroupFeatureFlags::SHUFFLE_RELATIVE.0, "SHUFFLE_RELATIVE"),
6971            (SubgroupFeatureFlags::CLUSTERED.0, "CLUSTERED"),
6972            (SubgroupFeatureFlags::QUAD.0, "QUAD"),
6973            (SubgroupFeatureFlags::PARTITIONED_NV.0, "PARTITIONED_NV"),
6974            (SubgroupFeatureFlags::ROTATE_KHR.0, "ROTATE_KHR"),
6975            (
6976                SubgroupFeatureFlags::ROTATE_CLUSTERED_KHR.0,
6977                "ROTATE_CLUSTERED_KHR",
6978            ),
6979        ];
6980        debug_flags(f, KNOWN, self.0)
6981    }
6982}
6983impl fmt::Debug for SubmitFlags {
6984    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
6985        const KNOWN: &[(Flags, &str)] = &[(SubmitFlags::PROTECTED.0, "PROTECTED")];
6986        debug_flags(f, KNOWN, self.0)
6987    }
6988}
6989impl fmt::Debug for SubpassContents {
6990    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
6991        let name = match *self {
6992            Self::INLINE => Some("INLINE"),
6993            Self::SECONDARY_COMMAND_BUFFERS => Some("SECONDARY_COMMAND_BUFFERS"),
6994            Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT => {
6995                Some("INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT")
6996            }
6997            _ => None,
6998        };
6999        if let Some(x) = name {
7000            f.write_str(x)
7001        } else {
7002            self.0.fmt(f)
7003        }
7004    }
7005}
7006impl fmt::Debug for SubpassDescriptionFlags {
7007    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7008        const KNOWN: &[(Flags, &str)] = &[
7009            (
7010                SubpassDescriptionFlags::PER_VIEW_ATTRIBUTES_NVX.0,
7011                "PER_VIEW_ATTRIBUTES_NVX",
7012            ),
7013            (
7014                SubpassDescriptionFlags::PER_VIEW_POSITION_X_ONLY_NVX.0,
7015                "PER_VIEW_POSITION_X_ONLY_NVX",
7016            ),
7017            (
7018                SubpassDescriptionFlags::FRAGMENT_REGION_QCOM.0,
7019                "FRAGMENT_REGION_QCOM",
7020            ),
7021            (
7022                SubpassDescriptionFlags::SHADER_RESOLVE_QCOM.0,
7023                "SHADER_RESOLVE_QCOM",
7024            ),
7025            (
7026                SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT.0,
7027                "RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT",
7028            ),
7029            (
7030                SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT.0,
7031                "RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT",
7032            ),
7033            (
7034                SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT.0,
7035                "RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT",
7036            ),
7037            (
7038                SubpassDescriptionFlags::ENABLE_LEGACY_DITHERING_EXT.0,
7039                "ENABLE_LEGACY_DITHERING_EXT",
7040            ),
7041        ];
7042        debug_flags(f, KNOWN, self.0)
7043    }
7044}
7045impl fmt::Debug for SubpassMergeStatusEXT {
7046    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7047        let name = match *self {
7048            Self::MERGED => Some("MERGED"),
7049            Self::DISALLOWED => Some("DISALLOWED"),
7050            Self::NOT_MERGED_SIDE_EFFECTS => Some("NOT_MERGED_SIDE_EFFECTS"),
7051            Self::NOT_MERGED_SAMPLES_MISMATCH => Some("NOT_MERGED_SAMPLES_MISMATCH"),
7052            Self::NOT_MERGED_VIEWS_MISMATCH => Some("NOT_MERGED_VIEWS_MISMATCH"),
7053            Self::NOT_MERGED_ALIASING => Some("NOT_MERGED_ALIASING"),
7054            Self::NOT_MERGED_DEPENDENCIES => Some("NOT_MERGED_DEPENDENCIES"),
7055            Self::NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT => {
7056                Some("NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT")
7057            }
7058            Self::NOT_MERGED_TOO_MANY_ATTACHMENTS => Some("NOT_MERGED_TOO_MANY_ATTACHMENTS"),
7059            Self::NOT_MERGED_INSUFFICIENT_STORAGE => Some("NOT_MERGED_INSUFFICIENT_STORAGE"),
7060            Self::NOT_MERGED_DEPTH_STENCIL_COUNT => Some("NOT_MERGED_DEPTH_STENCIL_COUNT"),
7061            Self::NOT_MERGED_RESOLVE_ATTACHMENT_REUSE => {
7062                Some("NOT_MERGED_RESOLVE_ATTACHMENT_REUSE")
7063            }
7064            Self::NOT_MERGED_SINGLE_SUBPASS => Some("NOT_MERGED_SINGLE_SUBPASS"),
7065            Self::NOT_MERGED_UNSPECIFIED => Some("NOT_MERGED_UNSPECIFIED"),
7066            _ => None,
7067        };
7068        if let Some(x) = name {
7069            f.write_str(x)
7070        } else {
7071            self.0.fmt(f)
7072        }
7073    }
7074}
7075impl fmt::Debug for SurfaceCounterFlagsEXT {
7076    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7077        const KNOWN: &[(Flags, &str)] = &[(SurfaceCounterFlagsEXT::VBLANK.0, "VBLANK")];
7078        debug_flags(f, KNOWN, self.0)
7079    }
7080}
7081impl fmt::Debug for SurfaceTransformFlagsKHR {
7082    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7083        const KNOWN: &[(Flags, &str)] = &[
7084            (SurfaceTransformFlagsKHR::IDENTITY.0, "IDENTITY"),
7085            (SurfaceTransformFlagsKHR::ROTATE_90.0, "ROTATE_90"),
7086            (SurfaceTransformFlagsKHR::ROTATE_180.0, "ROTATE_180"),
7087            (SurfaceTransformFlagsKHR::ROTATE_270.0, "ROTATE_270"),
7088            (
7089                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR.0,
7090                "HORIZONTAL_MIRROR",
7091            ),
7092            (
7093                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR_ROTATE_90.0,
7094                "HORIZONTAL_MIRROR_ROTATE_90",
7095            ),
7096            (
7097                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR_ROTATE_180.0,
7098                "HORIZONTAL_MIRROR_ROTATE_180",
7099            ),
7100            (
7101                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR_ROTATE_270.0,
7102                "HORIZONTAL_MIRROR_ROTATE_270",
7103            ),
7104            (SurfaceTransformFlagsKHR::INHERIT.0, "INHERIT"),
7105        ];
7106        debug_flags(f, KNOWN, self.0)
7107    }
7108}
7109impl fmt::Debug for SwapchainCreateFlagsKHR {
7110    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7111        const KNOWN: &[(Flags, &str)] = &[
7112            (
7113                SwapchainCreateFlagsKHR::SPLIT_INSTANCE_BIND_REGIONS.0,
7114                "SPLIT_INSTANCE_BIND_REGIONS",
7115            ),
7116            (SwapchainCreateFlagsKHR::PROTECTED.0, "PROTECTED"),
7117            (SwapchainCreateFlagsKHR::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"),
7118            (
7119                SwapchainCreateFlagsKHR::DEFERRED_MEMORY_ALLOCATION_EXT.0,
7120                "DEFERRED_MEMORY_ALLOCATION_EXT",
7121            ),
7122        ];
7123        debug_flags(f, KNOWN, self.0)
7124    }
7125}
7126impl fmt::Debug for SwapchainImageUsageFlagsANDROID {
7127    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7128        const KNOWN: &[(Flags, &str)] = &[(SwapchainImageUsageFlagsANDROID::SHARED.0, "SHARED")];
7129        debug_flags(f, KNOWN, self.0)
7130    }
7131}
7132impl fmt::Debug for SystemAllocationScope {
7133    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7134        let name = match *self {
7135            Self::COMMAND => Some("COMMAND"),
7136            Self::OBJECT => Some("OBJECT"),
7137            Self::CACHE => Some("CACHE"),
7138            Self::DEVICE => Some("DEVICE"),
7139            Self::INSTANCE => Some("INSTANCE"),
7140            _ => None,
7141        };
7142        if let Some(x) = name {
7143            f.write_str(x)
7144        } else {
7145            self.0.fmt(f)
7146        }
7147    }
7148}
7149impl fmt::Debug for TessellationDomainOrigin {
7150    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7151        let name = match *self {
7152            Self::UPPER_LEFT => Some("UPPER_LEFT"),
7153            Self::LOWER_LEFT => Some("LOWER_LEFT"),
7154            _ => None,
7155        };
7156        if let Some(x) = name {
7157            f.write_str(x)
7158        } else {
7159            self.0.fmt(f)
7160        }
7161    }
7162}
7163impl fmt::Debug for TimeDomainKHR {
7164    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7165        let name = match *self {
7166            Self::DEVICE => Some("DEVICE"),
7167            Self::CLOCK_MONOTONIC => Some("CLOCK_MONOTONIC"),
7168            Self::CLOCK_MONOTONIC_RAW => Some("CLOCK_MONOTONIC_RAW"),
7169            Self::QUERY_PERFORMANCE_COUNTER => Some("QUERY_PERFORMANCE_COUNTER"),
7170            _ => None,
7171        };
7172        if let Some(x) = name {
7173            f.write_str(x)
7174        } else {
7175            self.0.fmt(f)
7176        }
7177    }
7178}
7179impl fmt::Debug for ToolPurposeFlags {
7180    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7181        const KNOWN: &[(Flags, &str)] = &[
7182            (ToolPurposeFlags::VALIDATION.0, "VALIDATION"),
7183            (ToolPurposeFlags::PROFILING.0, "PROFILING"),
7184            (ToolPurposeFlags::TRACING.0, "TRACING"),
7185            (
7186                ToolPurposeFlags::ADDITIONAL_FEATURES.0,
7187                "ADDITIONAL_FEATURES",
7188            ),
7189            (ToolPurposeFlags::MODIFYING_FEATURES.0, "MODIFYING_FEATURES"),
7190            (
7191                ToolPurposeFlags::DEBUG_REPORTING_EXT.0,
7192                "DEBUG_REPORTING_EXT",
7193            ),
7194            (ToolPurposeFlags::DEBUG_MARKERS_EXT.0, "DEBUG_MARKERS_EXT"),
7195        ];
7196        debug_flags(f, KNOWN, self.0)
7197    }
7198}
7199impl fmt::Debug for ValidationCacheCreateFlagsEXT {
7200    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7201        const KNOWN: &[(Flags, &str)] = &[];
7202        debug_flags(f, KNOWN, self.0)
7203    }
7204}
7205impl fmt::Debug for ValidationCacheHeaderVersionEXT {
7206    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7207        let name = match *self {
7208            Self::ONE => Some("ONE"),
7209            _ => None,
7210        };
7211        if let Some(x) = name {
7212            f.write_str(x)
7213        } else {
7214            self.0.fmt(f)
7215        }
7216    }
7217}
7218impl fmt::Debug for ValidationCheckEXT {
7219    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7220        let name = match *self {
7221            Self::ALL => Some("ALL"),
7222            Self::SHADERS => Some("SHADERS"),
7223            _ => None,
7224        };
7225        if let Some(x) = name {
7226            f.write_str(x)
7227        } else {
7228            self.0.fmt(f)
7229        }
7230    }
7231}
7232impl fmt::Debug for ValidationFeatureDisableEXT {
7233    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7234        let name = match *self {
7235            Self::ALL => Some("ALL"),
7236            Self::SHADERS => Some("SHADERS"),
7237            Self::THREAD_SAFETY => Some("THREAD_SAFETY"),
7238            Self::API_PARAMETERS => Some("API_PARAMETERS"),
7239            Self::OBJECT_LIFETIMES => Some("OBJECT_LIFETIMES"),
7240            Self::CORE_CHECKS => Some("CORE_CHECKS"),
7241            Self::UNIQUE_HANDLES => Some("UNIQUE_HANDLES"),
7242            Self::SHADER_VALIDATION_CACHE => Some("SHADER_VALIDATION_CACHE"),
7243            _ => None,
7244        };
7245        if let Some(x) = name {
7246            f.write_str(x)
7247        } else {
7248            self.0.fmt(f)
7249        }
7250    }
7251}
7252impl fmt::Debug for ValidationFeatureEnableEXT {
7253    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7254        let name = match *self {
7255            Self::GPU_ASSISTED => Some("GPU_ASSISTED"),
7256            Self::GPU_ASSISTED_RESERVE_BINDING_SLOT => Some("GPU_ASSISTED_RESERVE_BINDING_SLOT"),
7257            Self::BEST_PRACTICES => Some("BEST_PRACTICES"),
7258            Self::DEBUG_PRINTF => Some("DEBUG_PRINTF"),
7259            Self::SYNCHRONIZATION_VALIDATION => Some("SYNCHRONIZATION_VALIDATION"),
7260            _ => None,
7261        };
7262        if let Some(x) = name {
7263            f.write_str(x)
7264        } else {
7265            self.0.fmt(f)
7266        }
7267    }
7268}
7269impl fmt::Debug for VendorId {
7270    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7271        let name = match *self {
7272            Self::VIV => Some("VIV"),
7273            Self::VSI => Some("VSI"),
7274            Self::KAZAN => Some("KAZAN"),
7275            Self::CODEPLAY => Some("CODEPLAY"),
7276            Self::MESA => Some("MESA"),
7277            Self::POCL => Some("POCL"),
7278            Self::MOBILEYE => Some("MOBILEYE"),
7279            _ => None,
7280        };
7281        if let Some(x) = name {
7282            f.write_str(x)
7283        } else {
7284            self.0.fmt(f)
7285        }
7286    }
7287}
7288impl fmt::Debug for VertexInputRate {
7289    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7290        let name = match *self {
7291            Self::VERTEX => Some("VERTEX"),
7292            Self::INSTANCE => Some("INSTANCE"),
7293            _ => None,
7294        };
7295        if let Some(x) = name {
7296            f.write_str(x)
7297        } else {
7298            self.0.fmt(f)
7299        }
7300    }
7301}
7302impl fmt::Debug for ViSurfaceCreateFlagsNN {
7303    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7304        const KNOWN: &[(Flags, &str)] = &[];
7305        debug_flags(f, KNOWN, self.0)
7306    }
7307}
7308impl fmt::Debug for VideoBeginCodingFlagsKHR {
7309    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7310        const KNOWN: &[(Flags, &str)] = &[];
7311        debug_flags(f, KNOWN, self.0)
7312    }
7313}
7314impl fmt::Debug for VideoCapabilityFlagsKHR {
7315    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7316        const KNOWN: &[(Flags, &str)] = &[
7317            (
7318                VideoCapabilityFlagsKHR::PROTECTED_CONTENT.0,
7319                "PROTECTED_CONTENT",
7320            ),
7321            (
7322                VideoCapabilityFlagsKHR::SEPARATE_REFERENCE_IMAGES.0,
7323                "SEPARATE_REFERENCE_IMAGES",
7324            ),
7325        ];
7326        debug_flags(f, KNOWN, self.0)
7327    }
7328}
7329impl fmt::Debug for VideoChromaSubsamplingFlagsKHR {
7330    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7331        const KNOWN: &[(Flags, &str)] = &[
7332            (VideoChromaSubsamplingFlagsKHR::INVALID.0, "INVALID"),
7333            (VideoChromaSubsamplingFlagsKHR::MONOCHROME.0, "MONOCHROME"),
7334            (VideoChromaSubsamplingFlagsKHR::TYPE_420.0, "TYPE_420"),
7335            (VideoChromaSubsamplingFlagsKHR::TYPE_422.0, "TYPE_422"),
7336            (VideoChromaSubsamplingFlagsKHR::TYPE_444.0, "TYPE_444"),
7337        ];
7338        debug_flags(f, KNOWN, self.0)
7339    }
7340}
7341impl fmt::Debug for VideoCodecOperationFlagsKHR {
7342    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7343        const KNOWN: &[(Flags, &str)] = &[
7344            (VideoCodecOperationFlagsKHR::NONE.0, "NONE"),
7345            (VideoCodecOperationFlagsKHR::ENCODE_H264.0, "ENCODE_H264"),
7346            (VideoCodecOperationFlagsKHR::ENCODE_H265.0, "ENCODE_H265"),
7347            (VideoCodecOperationFlagsKHR::DECODE_H264.0, "DECODE_H264"),
7348            (VideoCodecOperationFlagsKHR::DECODE_H265.0, "DECODE_H265"),
7349            (VideoCodecOperationFlagsKHR::DECODE_AV1.0, "DECODE_AV1"),
7350        ];
7351        debug_flags(f, KNOWN, self.0)
7352    }
7353}
7354impl fmt::Debug for VideoCodingControlFlagsKHR {
7355    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7356        const KNOWN: &[(Flags, &str)] = &[
7357            (VideoCodingControlFlagsKHR::RESET.0, "RESET"),
7358            (
7359                VideoCodingControlFlagsKHR::ENCODE_RATE_CONTROL.0,
7360                "ENCODE_RATE_CONTROL",
7361            ),
7362            (
7363                VideoCodingControlFlagsKHR::ENCODE_QUALITY_LEVEL.0,
7364                "ENCODE_QUALITY_LEVEL",
7365            ),
7366        ];
7367        debug_flags(f, KNOWN, self.0)
7368    }
7369}
7370impl fmt::Debug for VideoComponentBitDepthFlagsKHR {
7371    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7372        const KNOWN: &[(Flags, &str)] = &[
7373            (VideoComponentBitDepthFlagsKHR::INVALID.0, "INVALID"),
7374            (VideoComponentBitDepthFlagsKHR::TYPE_8.0, "TYPE_8"),
7375            (VideoComponentBitDepthFlagsKHR::TYPE_10.0, "TYPE_10"),
7376            (VideoComponentBitDepthFlagsKHR::TYPE_12.0, "TYPE_12"),
7377        ];
7378        debug_flags(f, KNOWN, self.0)
7379    }
7380}
7381impl fmt::Debug for VideoDecodeCapabilityFlagsKHR {
7382    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7383        const KNOWN: &[(Flags, &str)] = &[
7384            (
7385                VideoDecodeCapabilityFlagsKHR::DPB_AND_OUTPUT_COINCIDE.0,
7386                "DPB_AND_OUTPUT_COINCIDE",
7387            ),
7388            (
7389                VideoDecodeCapabilityFlagsKHR::DPB_AND_OUTPUT_DISTINCT.0,
7390                "DPB_AND_OUTPUT_DISTINCT",
7391            ),
7392        ];
7393        debug_flags(f, KNOWN, self.0)
7394    }
7395}
7396impl fmt::Debug for VideoDecodeFlagsKHR {
7397    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7398        const KNOWN: &[(Flags, &str)] = &[];
7399        debug_flags(f, KNOWN, self.0)
7400    }
7401}
7402impl fmt::Debug for VideoDecodeH264PictureLayoutFlagsKHR {
7403    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7404        const KNOWN: &[(Flags, &str)] = &[
7405            (
7406                VideoDecodeH264PictureLayoutFlagsKHR::PROGRESSIVE.0,
7407                "PROGRESSIVE",
7408            ),
7409            (
7410                VideoDecodeH264PictureLayoutFlagsKHR::INTERLACED_INTERLEAVED_LINES.0,
7411                "INTERLACED_INTERLEAVED_LINES",
7412            ),
7413            (
7414                VideoDecodeH264PictureLayoutFlagsKHR::INTERLACED_SEPARATE_PLANES.0,
7415                "INTERLACED_SEPARATE_PLANES",
7416            ),
7417        ];
7418        debug_flags(f, KNOWN, self.0)
7419    }
7420}
7421impl fmt::Debug for VideoDecodeUsageFlagsKHR {
7422    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7423        const KNOWN: &[(Flags, &str)] = &[
7424            (VideoDecodeUsageFlagsKHR::DEFAULT.0, "DEFAULT"),
7425            (VideoDecodeUsageFlagsKHR::TRANSCODING.0, "TRANSCODING"),
7426            (VideoDecodeUsageFlagsKHR::OFFLINE.0, "OFFLINE"),
7427            (VideoDecodeUsageFlagsKHR::STREAMING.0, "STREAMING"),
7428        ];
7429        debug_flags(f, KNOWN, self.0)
7430    }
7431}
7432impl fmt::Debug for VideoEncodeCapabilityFlagsKHR {
7433    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7434        const KNOWN: &[(Flags, &str)] = &[
7435            (
7436                VideoEncodeCapabilityFlagsKHR::PRECEDING_EXTERNALLY_ENCODED_BYTES.0,
7437                "PRECEDING_EXTERNALLY_ENCODED_BYTES",
7438            ),
7439            (
7440                VideoEncodeCapabilityFlagsKHR::INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION.0,
7441                "INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION",
7442            ),
7443        ];
7444        debug_flags(f, KNOWN, self.0)
7445    }
7446}
7447impl fmt::Debug for VideoEncodeContentFlagsKHR {
7448    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7449        const KNOWN: &[(Flags, &str)] = &[
7450            (VideoEncodeContentFlagsKHR::DEFAULT.0, "DEFAULT"),
7451            (VideoEncodeContentFlagsKHR::CAMERA.0, "CAMERA"),
7452            (VideoEncodeContentFlagsKHR::DESKTOP.0, "DESKTOP"),
7453            (VideoEncodeContentFlagsKHR::RENDERED.0, "RENDERED"),
7454        ];
7455        debug_flags(f, KNOWN, self.0)
7456    }
7457}
7458impl fmt::Debug for VideoEncodeFeedbackFlagsKHR {
7459    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7460        const KNOWN: &[(Flags, &str)] = &[
7461            (
7462                VideoEncodeFeedbackFlagsKHR::BITSTREAM_BUFFER_OFFSET.0,
7463                "BITSTREAM_BUFFER_OFFSET",
7464            ),
7465            (
7466                VideoEncodeFeedbackFlagsKHR::BITSTREAM_BYTES_WRITTEN.0,
7467                "BITSTREAM_BYTES_WRITTEN",
7468            ),
7469            (
7470                VideoEncodeFeedbackFlagsKHR::BITSTREAM_HAS_OVERRIDES.0,
7471                "BITSTREAM_HAS_OVERRIDES",
7472            ),
7473        ];
7474        debug_flags(f, KNOWN, self.0)
7475    }
7476}
7477impl fmt::Debug for VideoEncodeFlagsKHR {
7478    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7479        const KNOWN: &[(Flags, &str)] = &[];
7480        debug_flags(f, KNOWN, self.0)
7481    }
7482}
7483impl fmt::Debug for VideoEncodeH264CapabilityFlagsKHR {
7484    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7485        const KNOWN: &[(Flags, &str)] = &[
7486            (
7487                VideoEncodeH264CapabilityFlagsKHR::HRD_COMPLIANCE.0,
7488                "HRD_COMPLIANCE",
7489            ),
7490            (
7491                VideoEncodeH264CapabilityFlagsKHR::PREDICTION_WEIGHT_TABLE_GENERATED.0,
7492                "PREDICTION_WEIGHT_TABLE_GENERATED",
7493            ),
7494            (
7495                VideoEncodeH264CapabilityFlagsKHR::ROW_UNALIGNED_SLICE.0,
7496                "ROW_UNALIGNED_SLICE",
7497            ),
7498            (
7499                VideoEncodeH264CapabilityFlagsKHR::DIFFERENT_SLICE_TYPE.0,
7500                "DIFFERENT_SLICE_TYPE",
7501            ),
7502            (
7503                VideoEncodeH264CapabilityFlagsKHR::B_FRAME_IN_L0_LIST.0,
7504                "B_FRAME_IN_L0_LIST",
7505            ),
7506            (
7507                VideoEncodeH264CapabilityFlagsKHR::B_FRAME_IN_L1_LIST.0,
7508                "B_FRAME_IN_L1_LIST",
7509            ),
7510            (
7511                VideoEncodeH264CapabilityFlagsKHR::PER_PICTURE_TYPE_MIN_MAX_QP.0,
7512                "PER_PICTURE_TYPE_MIN_MAX_QP",
7513            ),
7514            (
7515                VideoEncodeH264CapabilityFlagsKHR::PER_SLICE_CONSTANT_QP.0,
7516                "PER_SLICE_CONSTANT_QP",
7517            ),
7518            (
7519                VideoEncodeH264CapabilityFlagsKHR::GENERATE_PREFIX_NALU.0,
7520                "GENERATE_PREFIX_NALU",
7521            ),
7522        ];
7523        debug_flags(f, KNOWN, self.0)
7524    }
7525}
7526impl fmt::Debug for VideoEncodeH264RateControlFlagsKHR {
7527    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7528        const KNOWN: &[(Flags, &str)] = &[
7529            (
7530                VideoEncodeH264RateControlFlagsKHR::ATTEMPT_HRD_COMPLIANCE.0,
7531                "ATTEMPT_HRD_COMPLIANCE",
7532            ),
7533            (
7534                VideoEncodeH264RateControlFlagsKHR::REGULAR_GOP.0,
7535                "REGULAR_GOP",
7536            ),
7537            (
7538                VideoEncodeH264RateControlFlagsKHR::REFERENCE_PATTERN_FLAT.0,
7539                "REFERENCE_PATTERN_FLAT",
7540            ),
7541            (
7542                VideoEncodeH264RateControlFlagsKHR::REFERENCE_PATTERN_DYADIC.0,
7543                "REFERENCE_PATTERN_DYADIC",
7544            ),
7545            (
7546                VideoEncodeH264RateControlFlagsKHR::TEMPORAL_LAYER_PATTERN_DYADIC.0,
7547                "TEMPORAL_LAYER_PATTERN_DYADIC",
7548            ),
7549        ];
7550        debug_flags(f, KNOWN, self.0)
7551    }
7552}
7553impl fmt::Debug for VideoEncodeH264StdFlagsKHR {
7554    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7555        const KNOWN: &[(Flags, &str)] = &[
7556            (
7557                VideoEncodeH264StdFlagsKHR::SEPARATE_COLOR_PLANE_FLAG_SET.0,
7558                "SEPARATE_COLOR_PLANE_FLAG_SET",
7559            ),
7560            (
7561                VideoEncodeH264StdFlagsKHR::QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET.0,
7562                "QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET",
7563            ),
7564            (
7565                VideoEncodeH264StdFlagsKHR::SCALING_MATRIX_PRESENT_FLAG_SET.0,
7566                "SCALING_MATRIX_PRESENT_FLAG_SET",
7567            ),
7568            (
7569                VideoEncodeH264StdFlagsKHR::CHROMA_QP_INDEX_OFFSET.0,
7570                "CHROMA_QP_INDEX_OFFSET",
7571            ),
7572            (
7573                VideoEncodeH264StdFlagsKHR::SECOND_CHROMA_QP_INDEX_OFFSET.0,
7574                "SECOND_CHROMA_QP_INDEX_OFFSET",
7575            ),
7576            (
7577                VideoEncodeH264StdFlagsKHR::PIC_INIT_QP_MINUS26.0,
7578                "PIC_INIT_QP_MINUS26",
7579            ),
7580            (
7581                VideoEncodeH264StdFlagsKHR::WEIGHTED_PRED_FLAG_SET.0,
7582                "WEIGHTED_PRED_FLAG_SET",
7583            ),
7584            (
7585                VideoEncodeH264StdFlagsKHR::WEIGHTED_BIPRED_IDC_EXPLICIT.0,
7586                "WEIGHTED_BIPRED_IDC_EXPLICIT",
7587            ),
7588            (
7589                VideoEncodeH264StdFlagsKHR::WEIGHTED_BIPRED_IDC_IMPLICIT.0,
7590                "WEIGHTED_BIPRED_IDC_IMPLICIT",
7591            ),
7592            (
7593                VideoEncodeH264StdFlagsKHR::TRANSFORM_8X8_MODE_FLAG_SET.0,
7594                "TRANSFORM_8X8_MODE_FLAG_SET",
7595            ),
7596            (
7597                VideoEncodeH264StdFlagsKHR::DIRECT_SPATIAL_MV_PRED_FLAG_UNSET.0,
7598                "DIRECT_SPATIAL_MV_PRED_FLAG_UNSET",
7599            ),
7600            (
7601                VideoEncodeH264StdFlagsKHR::ENTROPY_CODING_MODE_FLAG_UNSET.0,
7602                "ENTROPY_CODING_MODE_FLAG_UNSET",
7603            ),
7604            (
7605                VideoEncodeH264StdFlagsKHR::ENTROPY_CODING_MODE_FLAG_SET.0,
7606                "ENTROPY_CODING_MODE_FLAG_SET",
7607            ),
7608            (
7609                VideoEncodeH264StdFlagsKHR::DIRECT_8X8_INFERENCE_FLAG_UNSET.0,
7610                "DIRECT_8X8_INFERENCE_FLAG_UNSET",
7611            ),
7612            (
7613                VideoEncodeH264StdFlagsKHR::CONSTRAINED_INTRA_PRED_FLAG_SET.0,
7614                "CONSTRAINED_INTRA_PRED_FLAG_SET",
7615            ),
7616            (
7617                VideoEncodeH264StdFlagsKHR::DEBLOCKING_FILTER_DISABLED.0,
7618                "DEBLOCKING_FILTER_DISABLED",
7619            ),
7620            (
7621                VideoEncodeH264StdFlagsKHR::DEBLOCKING_FILTER_ENABLED.0,
7622                "DEBLOCKING_FILTER_ENABLED",
7623            ),
7624            (
7625                VideoEncodeH264StdFlagsKHR::DEBLOCKING_FILTER_PARTIAL.0,
7626                "DEBLOCKING_FILTER_PARTIAL",
7627            ),
7628            (
7629                VideoEncodeH264StdFlagsKHR::SLICE_QP_DELTA.0,
7630                "SLICE_QP_DELTA",
7631            ),
7632            (
7633                VideoEncodeH264StdFlagsKHR::DIFFERENT_SLICE_QP_DELTA.0,
7634                "DIFFERENT_SLICE_QP_DELTA",
7635            ),
7636        ];
7637        debug_flags(f, KNOWN, self.0)
7638    }
7639}
7640impl fmt::Debug for VideoEncodeH265CapabilityFlagsKHR {
7641    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7642        const KNOWN: &[(Flags, &str)] = &[
7643            (
7644                VideoEncodeH265CapabilityFlagsKHR::HRD_COMPLIANCE.0,
7645                "HRD_COMPLIANCE",
7646            ),
7647            (
7648                VideoEncodeH265CapabilityFlagsKHR::PREDICTION_WEIGHT_TABLE_GENERATED.0,
7649                "PREDICTION_WEIGHT_TABLE_GENERATED",
7650            ),
7651            (
7652                VideoEncodeH265CapabilityFlagsKHR::ROW_UNALIGNED_SLICE_SEGMENT.0,
7653                "ROW_UNALIGNED_SLICE_SEGMENT",
7654            ),
7655            (
7656                VideoEncodeH265CapabilityFlagsKHR::DIFFERENT_SLICE_SEGMENT_TYPE.0,
7657                "DIFFERENT_SLICE_SEGMENT_TYPE",
7658            ),
7659            (
7660                VideoEncodeH265CapabilityFlagsKHR::B_FRAME_IN_L0_LIST.0,
7661                "B_FRAME_IN_L0_LIST",
7662            ),
7663            (
7664                VideoEncodeH265CapabilityFlagsKHR::B_FRAME_IN_L1_LIST.0,
7665                "B_FRAME_IN_L1_LIST",
7666            ),
7667            (
7668                VideoEncodeH265CapabilityFlagsKHR::PER_PICTURE_TYPE_MIN_MAX_QP.0,
7669                "PER_PICTURE_TYPE_MIN_MAX_QP",
7670            ),
7671            (
7672                VideoEncodeH265CapabilityFlagsKHR::PER_SLICE_SEGMENT_CONSTANT_QP.0,
7673                "PER_SLICE_SEGMENT_CONSTANT_QP",
7674            ),
7675            (
7676                VideoEncodeH265CapabilityFlagsKHR::MULTIPLE_TILES_PER_SLICE_SEGMENT.0,
7677                "MULTIPLE_TILES_PER_SLICE_SEGMENT",
7678            ),
7679            (
7680                VideoEncodeH265CapabilityFlagsKHR::MULTIPLE_SLICE_SEGMENTS_PER_TILE.0,
7681                "MULTIPLE_SLICE_SEGMENTS_PER_TILE",
7682            ),
7683        ];
7684        debug_flags(f, KNOWN, self.0)
7685    }
7686}
7687impl fmt::Debug for VideoEncodeH265CtbSizeFlagsKHR {
7688    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7689        const KNOWN: &[(Flags, &str)] = &[
7690            (VideoEncodeH265CtbSizeFlagsKHR::TYPE_16.0, "TYPE_16"),
7691            (VideoEncodeH265CtbSizeFlagsKHR::TYPE_32.0, "TYPE_32"),
7692            (VideoEncodeH265CtbSizeFlagsKHR::TYPE_64.0, "TYPE_64"),
7693        ];
7694        debug_flags(f, KNOWN, self.0)
7695    }
7696}
7697impl fmt::Debug for VideoEncodeH265RateControlFlagsKHR {
7698    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7699        const KNOWN: &[(Flags, &str)] = &[
7700            (
7701                VideoEncodeH265RateControlFlagsKHR::ATTEMPT_HRD_COMPLIANCE.0,
7702                "ATTEMPT_HRD_COMPLIANCE",
7703            ),
7704            (
7705                VideoEncodeH265RateControlFlagsKHR::REGULAR_GOP.0,
7706                "REGULAR_GOP",
7707            ),
7708            (
7709                VideoEncodeH265RateControlFlagsKHR::REFERENCE_PATTERN_FLAT.0,
7710                "REFERENCE_PATTERN_FLAT",
7711            ),
7712            (
7713                VideoEncodeH265RateControlFlagsKHR::REFERENCE_PATTERN_DYADIC.0,
7714                "REFERENCE_PATTERN_DYADIC",
7715            ),
7716            (
7717                VideoEncodeH265RateControlFlagsKHR::TEMPORAL_SUB_LAYER_PATTERN_DYADIC.0,
7718                "TEMPORAL_SUB_LAYER_PATTERN_DYADIC",
7719            ),
7720        ];
7721        debug_flags(f, KNOWN, self.0)
7722    }
7723}
7724impl fmt::Debug for VideoEncodeH265StdFlagsKHR {
7725    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7726        const KNOWN: &[(Flags, &str)] = &[
7727            (
7728                VideoEncodeH265StdFlagsKHR::SEPARATE_COLOR_PLANE_FLAG_SET.0,
7729                "SEPARATE_COLOR_PLANE_FLAG_SET",
7730            ),
7731            (
7732                VideoEncodeH265StdFlagsKHR::SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET.0,
7733                "SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET",
7734            ),
7735            (
7736                VideoEncodeH265StdFlagsKHR::SCALING_LIST_DATA_PRESENT_FLAG_SET.0,
7737                "SCALING_LIST_DATA_PRESENT_FLAG_SET",
7738            ),
7739            (
7740                VideoEncodeH265StdFlagsKHR::PCM_ENABLED_FLAG_SET.0,
7741                "PCM_ENABLED_FLAG_SET",
7742            ),
7743            (
7744                VideoEncodeH265StdFlagsKHR::SPS_TEMPORAL_MVP_ENABLED_FLAG_SET.0,
7745                "SPS_TEMPORAL_MVP_ENABLED_FLAG_SET",
7746            ),
7747            (
7748                VideoEncodeH265StdFlagsKHR::INIT_QP_MINUS26.0,
7749                "INIT_QP_MINUS26",
7750            ),
7751            (
7752                VideoEncodeH265StdFlagsKHR::WEIGHTED_PRED_FLAG_SET.0,
7753                "WEIGHTED_PRED_FLAG_SET",
7754            ),
7755            (
7756                VideoEncodeH265StdFlagsKHR::WEIGHTED_BIPRED_FLAG_SET.0,
7757                "WEIGHTED_BIPRED_FLAG_SET",
7758            ),
7759            (
7760                VideoEncodeH265StdFlagsKHR::LOG2_PARALLEL_MERGE_LEVEL_MINUS2.0,
7761                "LOG2_PARALLEL_MERGE_LEVEL_MINUS2",
7762            ),
7763            (
7764                VideoEncodeH265StdFlagsKHR::SIGN_DATA_HIDING_ENABLED_FLAG_SET.0,
7765                "SIGN_DATA_HIDING_ENABLED_FLAG_SET",
7766            ),
7767            (
7768                VideoEncodeH265StdFlagsKHR::TRANSFORM_SKIP_ENABLED_FLAG_SET.0,
7769                "TRANSFORM_SKIP_ENABLED_FLAG_SET",
7770            ),
7771            (
7772                VideoEncodeH265StdFlagsKHR::TRANSFORM_SKIP_ENABLED_FLAG_UNSET.0,
7773                "TRANSFORM_SKIP_ENABLED_FLAG_UNSET",
7774            ),
7775            (
7776                VideoEncodeH265StdFlagsKHR::PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET.0,
7777                "PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET",
7778            ),
7779            (
7780                VideoEncodeH265StdFlagsKHR::TRANSQUANT_BYPASS_ENABLED_FLAG_SET.0,
7781                "TRANSQUANT_BYPASS_ENABLED_FLAG_SET",
7782            ),
7783            (
7784                VideoEncodeH265StdFlagsKHR::CONSTRAINED_INTRA_PRED_FLAG_SET.0,
7785                "CONSTRAINED_INTRA_PRED_FLAG_SET",
7786            ),
7787            (
7788                VideoEncodeH265StdFlagsKHR::ENTROPY_CODING_SYNC_ENABLED_FLAG_SET.0,
7789                "ENTROPY_CODING_SYNC_ENABLED_FLAG_SET",
7790            ),
7791            (
7792                VideoEncodeH265StdFlagsKHR::DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET.0,
7793                "DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET",
7794            ),
7795            (
7796                VideoEncodeH265StdFlagsKHR::DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET.0,
7797                "DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET",
7798            ),
7799            (
7800                VideoEncodeH265StdFlagsKHR::DEPENDENT_SLICE_SEGMENT_FLAG_SET.0,
7801                "DEPENDENT_SLICE_SEGMENT_FLAG_SET",
7802            ),
7803            (
7804                VideoEncodeH265StdFlagsKHR::SLICE_QP_DELTA.0,
7805                "SLICE_QP_DELTA",
7806            ),
7807            (
7808                VideoEncodeH265StdFlagsKHR::DIFFERENT_SLICE_QP_DELTA.0,
7809                "DIFFERENT_SLICE_QP_DELTA",
7810            ),
7811        ];
7812        debug_flags(f, KNOWN, self.0)
7813    }
7814}
7815impl fmt::Debug for VideoEncodeH265TransformBlockSizeFlagsKHR {
7816    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7817        const KNOWN: &[(Flags, &str)] = &[
7818            (
7819                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_4.0,
7820                "TYPE_4",
7821            ),
7822            (
7823                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_8.0,
7824                "TYPE_8",
7825            ),
7826            (
7827                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_16.0,
7828                "TYPE_16",
7829            ),
7830            (
7831                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_32.0,
7832                "TYPE_32",
7833            ),
7834        ];
7835        debug_flags(f, KNOWN, self.0)
7836    }
7837}
7838impl fmt::Debug for VideoEncodeRateControlFlagsKHR {
7839    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7840        const KNOWN: &[(Flags, &str)] = &[];
7841        debug_flags(f, KNOWN, self.0)
7842    }
7843}
7844impl fmt::Debug for VideoEncodeRateControlModeFlagsKHR {
7845    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7846        const KNOWN: &[(Flags, &str)] = &[
7847            (VideoEncodeRateControlModeFlagsKHR::DEFAULT.0, "DEFAULT"),
7848            (VideoEncodeRateControlModeFlagsKHR::DISABLED.0, "DISABLED"),
7849            (VideoEncodeRateControlModeFlagsKHR::CBR.0, "CBR"),
7850            (VideoEncodeRateControlModeFlagsKHR::VBR.0, "VBR"),
7851        ];
7852        debug_flags(f, KNOWN, self.0)
7853    }
7854}
7855impl fmt::Debug for VideoEncodeTuningModeKHR {
7856    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7857        let name = match *self {
7858            Self::DEFAULT => Some("DEFAULT"),
7859            Self::HIGH_QUALITY => Some("HIGH_QUALITY"),
7860            Self::LOW_LATENCY => Some("LOW_LATENCY"),
7861            Self::ULTRA_LOW_LATENCY => Some("ULTRA_LOW_LATENCY"),
7862            Self::LOSSLESS => Some("LOSSLESS"),
7863            _ => None,
7864        };
7865        if let Some(x) = name {
7866            f.write_str(x)
7867        } else {
7868            self.0.fmt(f)
7869        }
7870    }
7871}
7872impl fmt::Debug for VideoEncodeUsageFlagsKHR {
7873    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7874        const KNOWN: &[(Flags, &str)] = &[
7875            (VideoEncodeUsageFlagsKHR::DEFAULT.0, "DEFAULT"),
7876            (VideoEncodeUsageFlagsKHR::TRANSCODING.0, "TRANSCODING"),
7877            (VideoEncodeUsageFlagsKHR::STREAMING.0, "STREAMING"),
7878            (VideoEncodeUsageFlagsKHR::RECORDING.0, "RECORDING"),
7879            (VideoEncodeUsageFlagsKHR::CONFERENCING.0, "CONFERENCING"),
7880        ];
7881        debug_flags(f, KNOWN, self.0)
7882    }
7883}
7884impl fmt::Debug for VideoEndCodingFlagsKHR {
7885    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7886        const KNOWN: &[(Flags, &str)] = &[];
7887        debug_flags(f, KNOWN, self.0)
7888    }
7889}
7890impl fmt::Debug for VideoSessionCreateFlagsKHR {
7891    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7892        const KNOWN: &[(Flags, &str)] = &[
7893            (
7894                VideoSessionCreateFlagsKHR::PROTECTED_CONTENT.0,
7895                "PROTECTED_CONTENT",
7896            ),
7897            (
7898                VideoSessionCreateFlagsKHR::ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS.0,
7899                "ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS",
7900            ),
7901            (
7902                VideoSessionCreateFlagsKHR::INLINE_QUERIES.0,
7903                "INLINE_QUERIES",
7904            ),
7905        ];
7906        debug_flags(f, KNOWN, self.0)
7907    }
7908}
7909impl fmt::Debug for VideoSessionParametersCreateFlagsKHR {
7910    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7911        const KNOWN: &[(Flags, &str)] = &[];
7912        debug_flags(f, KNOWN, self.0)
7913    }
7914}
7915impl fmt::Debug for ViewportCoordinateSwizzleNV {
7916    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7917        let name = match *self {
7918            Self::POSITIVE_X => Some("POSITIVE_X"),
7919            Self::NEGATIVE_X => Some("NEGATIVE_X"),
7920            Self::POSITIVE_Y => Some("POSITIVE_Y"),
7921            Self::NEGATIVE_Y => Some("NEGATIVE_Y"),
7922            Self::POSITIVE_Z => Some("POSITIVE_Z"),
7923            Self::NEGATIVE_Z => Some("NEGATIVE_Z"),
7924            Self::POSITIVE_W => Some("POSITIVE_W"),
7925            Self::NEGATIVE_W => Some("NEGATIVE_W"),
7926            _ => None,
7927        };
7928        if let Some(x) = name {
7929            f.write_str(x)
7930        } else {
7931            self.0.fmt(f)
7932        }
7933    }
7934}
7935impl fmt::Debug for WaylandSurfaceCreateFlagsKHR {
7936    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7937        const KNOWN: &[(Flags, &str)] = &[];
7938        debug_flags(f, KNOWN, self.0)
7939    }
7940}
7941impl fmt::Debug for Win32SurfaceCreateFlagsKHR {
7942    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7943        const KNOWN: &[(Flags, &str)] = &[];
7944        debug_flags(f, KNOWN, self.0)
7945    }
7946}
7947impl fmt::Debug for XcbSurfaceCreateFlagsKHR {
7948    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7949        const KNOWN: &[(Flags, &str)] = &[];
7950        debug_flags(f, KNOWN, self.0)
7951    }
7952}
7953impl fmt::Debug for XlibSurfaceCreateFlagsKHR {
7954    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7955        const KNOWN: &[(Flags, &str)] = &[];
7956        debug_flags(f, KNOWN, self.0)
7957    }
7958}