Skip to main content

jay_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_EXT.0,
190                "COMMAND_PREPROCESS_READ_EXT",
191            ),
192            (
193                AccessFlags::COMMAND_PREPROCESS_WRITE_EXT.0,
194                "COMMAND_PREPROCESS_WRITE_EXT",
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::SAMPLER_HEAP_READ_EXT.0,
256                "SAMPLER_HEAP_READ_EXT",
257            ),
258            (
259                AccessFlags2::RESOURCE_HEAP_READ_EXT.0,
260                "RESOURCE_HEAP_READ_EXT",
261            ),
262            (
263                AccessFlags2::VIDEO_ENCODE_READ_KHR.0,
264                "VIDEO_ENCODE_READ_KHR",
265            ),
266            (
267                AccessFlags2::VIDEO_ENCODE_WRITE_KHR.0,
268                "VIDEO_ENCODE_WRITE_KHR",
269            ),
270            (
271                AccessFlags2::SHADER_TILE_ATTACHMENT_READ_QCOM.0,
272                "SHADER_TILE_ATTACHMENT_READ_QCOM",
273            ),
274            (
275                AccessFlags2::SHADER_TILE_ATTACHMENT_WRITE_QCOM.0,
276                "SHADER_TILE_ATTACHMENT_WRITE_QCOM",
277            ),
278            (
279                AccessFlags2::TRANSFORM_FEEDBACK_WRITE_EXT.0,
280                "TRANSFORM_FEEDBACK_WRITE_EXT",
281            ),
282            (
283                AccessFlags2::TRANSFORM_FEEDBACK_COUNTER_READ_EXT.0,
284                "TRANSFORM_FEEDBACK_COUNTER_READ_EXT",
285            ),
286            (
287                AccessFlags2::TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT.0,
288                "TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT",
289            ),
290            (
291                AccessFlags2::CONDITIONAL_RENDERING_READ_EXT.0,
292                "CONDITIONAL_RENDERING_READ_EXT",
293            ),
294            (
295                AccessFlags2::COMMAND_PREPROCESS_READ_EXT.0,
296                "COMMAND_PREPROCESS_READ_EXT",
297            ),
298            (
299                AccessFlags2::COMMAND_PREPROCESS_WRITE_EXT.0,
300                "COMMAND_PREPROCESS_WRITE_EXT",
301            ),
302            (
303                AccessFlags2::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR.0,
304                "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR",
305            ),
306            (
307                AccessFlags2::ACCELERATION_STRUCTURE_READ_KHR.0,
308                "ACCELERATION_STRUCTURE_READ_KHR",
309            ),
310            (
311                AccessFlags2::ACCELERATION_STRUCTURE_WRITE_KHR.0,
312                "ACCELERATION_STRUCTURE_WRITE_KHR",
313            ),
314            (
315                AccessFlags2::FRAGMENT_DENSITY_MAP_READ_EXT.0,
316                "FRAGMENT_DENSITY_MAP_READ_EXT",
317            ),
318            (
319                AccessFlags2::COLOR_ATTACHMENT_READ_NONCOHERENT_EXT.0,
320                "COLOR_ATTACHMENT_READ_NONCOHERENT_EXT",
321            ),
322            (
323                AccessFlags2::DESCRIPTOR_BUFFER_READ_EXT.0,
324                "DESCRIPTOR_BUFFER_READ_EXT",
325            ),
326            (
327                AccessFlags2::INVOCATION_MASK_READ_HUAWEI.0,
328                "INVOCATION_MASK_READ_HUAWEI",
329            ),
330            (
331                AccessFlags2::SHADER_BINDING_TABLE_READ_KHR.0,
332                "SHADER_BINDING_TABLE_READ_KHR",
333            ),
334            (AccessFlags2::MICROMAP_READ_EXT.0, "MICROMAP_READ_EXT"),
335            (AccessFlags2::MICROMAP_WRITE_EXT.0, "MICROMAP_WRITE_EXT"),
336            (AccessFlags2::OPTICAL_FLOW_READ_NV.0, "OPTICAL_FLOW_READ_NV"),
337            (
338                AccessFlags2::OPTICAL_FLOW_WRITE_NV.0,
339                "OPTICAL_FLOW_WRITE_NV",
340            ),
341            (AccessFlags2::DATA_GRAPH_READ_ARM.0, "DATA_GRAPH_READ_ARM"),
342            (AccessFlags2::DATA_GRAPH_WRITE_ARM.0, "DATA_GRAPH_WRITE_ARM"),
343            (
344                AccessFlags2::MEMORY_DECOMPRESSION_READ_EXT.0,
345                "MEMORY_DECOMPRESSION_READ_EXT",
346            ),
347            (
348                AccessFlags2::MEMORY_DECOMPRESSION_WRITE_EXT.0,
349                "MEMORY_DECOMPRESSION_WRITE_EXT",
350            ),
351        ];
352        debug_flags(f, KNOWN, self.0)
353    }
354}
355impl fmt::Debug for AccessFlags3KHR {
356    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
357        const KNOWN: &[(Flags64, &str)] = &[(AccessFlags3KHR::NONE.0, "NONE")];
358        debug_flags(f, KNOWN, self.0)
359    }
360}
361impl fmt::Debug for AcquireProfilingLockFlagsKHR {
362    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
363        const KNOWN: &[(Flags, &str)] = &[];
364        debug_flags(f, KNOWN, self.0)
365    }
366}
367impl fmt::Debug for AddressCopyFlagsKHR {
368    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
369        const KNOWN: &[(Flags, &str)] = &[
370            (AddressCopyFlagsKHR::DEVICE_LOCAL.0, "DEVICE_LOCAL"),
371            (AddressCopyFlagsKHR::SPARSE.0, "SPARSE"),
372            (AddressCopyFlagsKHR::PROTECTED.0, "PROTECTED"),
373        ];
374        debug_flags(f, KNOWN, self.0)
375    }
376}
377impl fmt::Debug for AndroidSurfaceCreateFlagsKHR {
378    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
379        const KNOWN: &[(Flags, &str)] = &[];
380        debug_flags(f, KNOWN, self.0)
381    }
382}
383impl fmt::Debug for AntiLagModeAMD {
384    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
385        let name = match *self {
386            Self::DRIVER_CONTROL => Some("DRIVER_CONTROL"),
387            Self::ON => Some("ON"),
388            Self::OFF => Some("OFF"),
389            _ => None,
390        };
391        if let Some(x) = name {
392            f.write_str(x)
393        } else {
394            self.0.fmt(f)
395        }
396    }
397}
398impl fmt::Debug for AntiLagStageAMD {
399    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
400        let name = match *self {
401            Self::INPUT => Some("INPUT"),
402            Self::PRESENT => Some("PRESENT"),
403            _ => None,
404        };
405        if let Some(x) = name {
406            f.write_str(x)
407        } else {
408            self.0.fmt(f)
409        }
410    }
411}
412impl fmt::Debug for AttachmentDescriptionFlags {
413    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
414        const KNOWN: &[(Flags, &str)] = &[
415            (AttachmentDescriptionFlags::MAY_ALIAS.0, "MAY_ALIAS"),
416            (
417                AttachmentDescriptionFlags::RESOLVE_SKIP_TRANSFER_FUNCTION_KHR.0,
418                "RESOLVE_SKIP_TRANSFER_FUNCTION_KHR",
419            ),
420            (
421                AttachmentDescriptionFlags::RESOLVE_ENABLE_TRANSFER_FUNCTION_KHR.0,
422                "RESOLVE_ENABLE_TRANSFER_FUNCTION_KHR",
423            ),
424        ];
425        debug_flags(f, KNOWN, self.0)
426    }
427}
428impl fmt::Debug for AttachmentLoadOp {
429    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
430        let name = match *self {
431            Self::LOAD => Some("LOAD"),
432            Self::CLEAR => Some("CLEAR"),
433            Self::DONT_CARE => Some("DONT_CARE"),
434            Self::NONE => Some("NONE"),
435            _ => None,
436        };
437        if let Some(x) = name {
438            f.write_str(x)
439        } else {
440            self.0.fmt(f)
441        }
442    }
443}
444impl fmt::Debug for AttachmentStoreOp {
445    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
446        let name = match *self {
447            Self::STORE => Some("STORE"),
448            Self::DONT_CARE => Some("DONT_CARE"),
449            Self::NONE => Some("NONE"),
450            _ => None,
451        };
452        if let Some(x) = name {
453            f.write_str(x)
454        } else {
455            self.0.fmt(f)
456        }
457    }
458}
459impl fmt::Debug for BlendFactor {
460    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
461        let name = match *self {
462            Self::ZERO => Some("ZERO"),
463            Self::ONE => Some("ONE"),
464            Self::SRC_COLOR => Some("SRC_COLOR"),
465            Self::ONE_MINUS_SRC_COLOR => Some("ONE_MINUS_SRC_COLOR"),
466            Self::DST_COLOR => Some("DST_COLOR"),
467            Self::ONE_MINUS_DST_COLOR => Some("ONE_MINUS_DST_COLOR"),
468            Self::SRC_ALPHA => Some("SRC_ALPHA"),
469            Self::ONE_MINUS_SRC_ALPHA => Some("ONE_MINUS_SRC_ALPHA"),
470            Self::DST_ALPHA => Some("DST_ALPHA"),
471            Self::ONE_MINUS_DST_ALPHA => Some("ONE_MINUS_DST_ALPHA"),
472            Self::CONSTANT_COLOR => Some("CONSTANT_COLOR"),
473            Self::ONE_MINUS_CONSTANT_COLOR => Some("ONE_MINUS_CONSTANT_COLOR"),
474            Self::CONSTANT_ALPHA => Some("CONSTANT_ALPHA"),
475            Self::ONE_MINUS_CONSTANT_ALPHA => Some("ONE_MINUS_CONSTANT_ALPHA"),
476            Self::SRC_ALPHA_SATURATE => Some("SRC_ALPHA_SATURATE"),
477            Self::SRC1_COLOR => Some("SRC1_COLOR"),
478            Self::ONE_MINUS_SRC1_COLOR => Some("ONE_MINUS_SRC1_COLOR"),
479            Self::SRC1_ALPHA => Some("SRC1_ALPHA"),
480            Self::ONE_MINUS_SRC1_ALPHA => Some("ONE_MINUS_SRC1_ALPHA"),
481            _ => None,
482        };
483        if let Some(x) = name {
484            f.write_str(x)
485        } else {
486            self.0.fmt(f)
487        }
488    }
489}
490impl fmt::Debug for BlendOp {
491    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
492        let name = match *self {
493            Self::ADD => Some("ADD"),
494            Self::SUBTRACT => Some("SUBTRACT"),
495            Self::REVERSE_SUBTRACT => Some("REVERSE_SUBTRACT"),
496            Self::MIN => Some("MIN"),
497            Self::MAX => Some("MAX"),
498            Self::ZERO_EXT => Some("ZERO_EXT"),
499            Self::SRC_EXT => Some("SRC_EXT"),
500            Self::DST_EXT => Some("DST_EXT"),
501            Self::SRC_OVER_EXT => Some("SRC_OVER_EXT"),
502            Self::DST_OVER_EXT => Some("DST_OVER_EXT"),
503            Self::SRC_IN_EXT => Some("SRC_IN_EXT"),
504            Self::DST_IN_EXT => Some("DST_IN_EXT"),
505            Self::SRC_OUT_EXT => Some("SRC_OUT_EXT"),
506            Self::DST_OUT_EXT => Some("DST_OUT_EXT"),
507            Self::SRC_ATOP_EXT => Some("SRC_ATOP_EXT"),
508            Self::DST_ATOP_EXT => Some("DST_ATOP_EXT"),
509            Self::XOR_EXT => Some("XOR_EXT"),
510            Self::MULTIPLY_EXT => Some("MULTIPLY_EXT"),
511            Self::SCREEN_EXT => Some("SCREEN_EXT"),
512            Self::OVERLAY_EXT => Some("OVERLAY_EXT"),
513            Self::DARKEN_EXT => Some("DARKEN_EXT"),
514            Self::LIGHTEN_EXT => Some("LIGHTEN_EXT"),
515            Self::COLORDODGE_EXT => Some("COLORDODGE_EXT"),
516            Self::COLORBURN_EXT => Some("COLORBURN_EXT"),
517            Self::HARDLIGHT_EXT => Some("HARDLIGHT_EXT"),
518            Self::SOFTLIGHT_EXT => Some("SOFTLIGHT_EXT"),
519            Self::DIFFERENCE_EXT => Some("DIFFERENCE_EXT"),
520            Self::EXCLUSION_EXT => Some("EXCLUSION_EXT"),
521            Self::INVERT_EXT => Some("INVERT_EXT"),
522            Self::INVERT_RGB_EXT => Some("INVERT_RGB_EXT"),
523            Self::LINEARDODGE_EXT => Some("LINEARDODGE_EXT"),
524            Self::LINEARBURN_EXT => Some("LINEARBURN_EXT"),
525            Self::VIVIDLIGHT_EXT => Some("VIVIDLIGHT_EXT"),
526            Self::LINEARLIGHT_EXT => Some("LINEARLIGHT_EXT"),
527            Self::PINLIGHT_EXT => Some("PINLIGHT_EXT"),
528            Self::HARDMIX_EXT => Some("HARDMIX_EXT"),
529            Self::HSL_HUE_EXT => Some("HSL_HUE_EXT"),
530            Self::HSL_SATURATION_EXT => Some("HSL_SATURATION_EXT"),
531            Self::HSL_COLOR_EXT => Some("HSL_COLOR_EXT"),
532            Self::HSL_LUMINOSITY_EXT => Some("HSL_LUMINOSITY_EXT"),
533            Self::PLUS_EXT => Some("PLUS_EXT"),
534            Self::PLUS_CLAMPED_EXT => Some("PLUS_CLAMPED_EXT"),
535            Self::PLUS_CLAMPED_ALPHA_EXT => Some("PLUS_CLAMPED_ALPHA_EXT"),
536            Self::PLUS_DARKER_EXT => Some("PLUS_DARKER_EXT"),
537            Self::MINUS_EXT => Some("MINUS_EXT"),
538            Self::MINUS_CLAMPED_EXT => Some("MINUS_CLAMPED_EXT"),
539            Self::CONTRAST_EXT => Some("CONTRAST_EXT"),
540            Self::INVERT_OVG_EXT => Some("INVERT_OVG_EXT"),
541            Self::RED_EXT => Some("RED_EXT"),
542            Self::GREEN_EXT => Some("GREEN_EXT"),
543            Self::BLUE_EXT => Some("BLUE_EXT"),
544            _ => None,
545        };
546        if let Some(x) = name {
547            f.write_str(x)
548        } else {
549            self.0.fmt(f)
550        }
551    }
552}
553impl fmt::Debug for BlendOverlapEXT {
554    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
555        let name = match *self {
556            Self::UNCORRELATED => Some("UNCORRELATED"),
557            Self::DISJOINT => Some("DISJOINT"),
558            Self::CONJOINT => Some("CONJOINT"),
559            _ => None,
560        };
561        if let Some(x) = name {
562            f.write_str(x)
563        } else {
564            self.0.fmt(f)
565        }
566    }
567}
568impl fmt::Debug for BlockMatchWindowCompareModeQCOM {
569    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
570        let name = match *self {
571            Self::MIN => Some("MIN"),
572            Self::MAX => Some("MAX"),
573            _ => None,
574        };
575        if let Some(x) = name {
576            f.write_str(x)
577        } else {
578            self.0.fmt(f)
579        }
580    }
581}
582impl fmt::Debug for BorderColor {
583    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
584        let name = match *self {
585            Self::FLOAT_TRANSPARENT_BLACK => Some("FLOAT_TRANSPARENT_BLACK"),
586            Self::INT_TRANSPARENT_BLACK => Some("INT_TRANSPARENT_BLACK"),
587            Self::FLOAT_OPAQUE_BLACK => Some("FLOAT_OPAQUE_BLACK"),
588            Self::INT_OPAQUE_BLACK => Some("INT_OPAQUE_BLACK"),
589            Self::FLOAT_OPAQUE_WHITE => Some("FLOAT_OPAQUE_WHITE"),
590            Self::INT_OPAQUE_WHITE => Some("INT_OPAQUE_WHITE"),
591            Self::FLOAT_CUSTOM_EXT => Some("FLOAT_CUSTOM_EXT"),
592            Self::INT_CUSTOM_EXT => Some("INT_CUSTOM_EXT"),
593            _ => None,
594        };
595        if let Some(x) = name {
596            f.write_str(x)
597        } else {
598            self.0.fmt(f)
599        }
600    }
601}
602impl fmt::Debug for BufferCreateFlags {
603    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
604        const KNOWN: &[(Flags, &str)] = &[
605            (BufferCreateFlags::SPARSE_BINDING.0, "SPARSE_BINDING"),
606            (BufferCreateFlags::SPARSE_RESIDENCY.0, "SPARSE_RESIDENCY"),
607            (BufferCreateFlags::SPARSE_ALIASED.0, "SPARSE_ALIASED"),
608            (
609                BufferCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
610                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
611            ),
612            (
613                BufferCreateFlags::VIDEO_PROFILE_INDEPENDENT_KHR.0,
614                "VIDEO_PROFILE_INDEPENDENT_KHR",
615            ),
616            (BufferCreateFlags::PROTECTED.0, "PROTECTED"),
617            (
618                BufferCreateFlags::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
619                "DEVICE_ADDRESS_CAPTURE_REPLAY",
620            ),
621        ];
622        debug_flags(f, KNOWN, self.0)
623    }
624}
625impl fmt::Debug for BufferUsageFlags {
626    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
627        const KNOWN: &[(Flags, &str)] = &[
628            (BufferUsageFlags::TRANSFER_SRC.0, "TRANSFER_SRC"),
629            (BufferUsageFlags::TRANSFER_DST.0, "TRANSFER_DST"),
630            (
631                BufferUsageFlags::UNIFORM_TEXEL_BUFFER.0,
632                "UNIFORM_TEXEL_BUFFER",
633            ),
634            (
635                BufferUsageFlags::STORAGE_TEXEL_BUFFER.0,
636                "STORAGE_TEXEL_BUFFER",
637            ),
638            (BufferUsageFlags::UNIFORM_BUFFER.0, "UNIFORM_BUFFER"),
639            (BufferUsageFlags::STORAGE_BUFFER.0, "STORAGE_BUFFER"),
640            (BufferUsageFlags::INDEX_BUFFER.0, "INDEX_BUFFER"),
641            (BufferUsageFlags::VERTEX_BUFFER.0, "VERTEX_BUFFER"),
642            (BufferUsageFlags::INDIRECT_BUFFER.0, "INDIRECT_BUFFER"),
643            (
644                BufferUsageFlags::VIDEO_DECODE_SRC_KHR.0,
645                "VIDEO_DECODE_SRC_KHR",
646            ),
647            (
648                BufferUsageFlags::VIDEO_DECODE_DST_KHR.0,
649                "VIDEO_DECODE_DST_KHR",
650            ),
651            (
652                BufferUsageFlags::TRANSFORM_FEEDBACK_BUFFER_EXT.0,
653                "TRANSFORM_FEEDBACK_BUFFER_EXT",
654            ),
655            (
656                BufferUsageFlags::TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT.0,
657                "TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT",
658            ),
659            (
660                BufferUsageFlags::CONDITIONAL_RENDERING_EXT.0,
661                "CONDITIONAL_RENDERING_EXT",
662            ),
663            (
664                BufferUsageFlags::EXECUTION_GRAPH_SCRATCH_AMDX.0,
665                "EXECUTION_GRAPH_SCRATCH_AMDX",
666            ),
667            (
668                BufferUsageFlags::DESCRIPTOR_HEAP_EXT.0,
669                "DESCRIPTOR_HEAP_EXT",
670            ),
671            (
672                BufferUsageFlags::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR.0,
673                "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR",
674            ),
675            (
676                BufferUsageFlags::ACCELERATION_STRUCTURE_STORAGE_KHR.0,
677                "ACCELERATION_STRUCTURE_STORAGE_KHR",
678            ),
679            (
680                BufferUsageFlags::SHADER_BINDING_TABLE_KHR.0,
681                "SHADER_BINDING_TABLE_KHR",
682            ),
683            (
684                BufferUsageFlags::VIDEO_ENCODE_DST_KHR.0,
685                "VIDEO_ENCODE_DST_KHR",
686            ),
687            (
688                BufferUsageFlags::VIDEO_ENCODE_SRC_KHR.0,
689                "VIDEO_ENCODE_SRC_KHR",
690            ),
691            (
692                BufferUsageFlags::SAMPLER_DESCRIPTOR_BUFFER_EXT.0,
693                "SAMPLER_DESCRIPTOR_BUFFER_EXT",
694            ),
695            (
696                BufferUsageFlags::RESOURCE_DESCRIPTOR_BUFFER_EXT.0,
697                "RESOURCE_DESCRIPTOR_BUFFER_EXT",
698            ),
699            (
700                BufferUsageFlags::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT.0,
701                "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT",
702            ),
703            (
704                BufferUsageFlags::MICROMAP_BUILD_INPUT_READ_ONLY_EXT.0,
705                "MICROMAP_BUILD_INPUT_READ_ONLY_EXT",
706            ),
707            (
708                BufferUsageFlags::MICROMAP_STORAGE_EXT.0,
709                "MICROMAP_STORAGE_EXT",
710            ),
711            (BufferUsageFlags::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"),
712            (
713                BufferUsageFlags::SHADER_DEVICE_ADDRESS.0,
714                "SHADER_DEVICE_ADDRESS",
715            ),
716        ];
717        debug_flags(f, KNOWN, self.0)
718    }
719}
720impl fmt::Debug for BufferUsageFlags2 {
721    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
722        const KNOWN: &[(Flags64, &str)] = &[
723            (BufferUsageFlags2::TRANSFER_SRC.0, "TRANSFER_SRC"),
724            (BufferUsageFlags2::TRANSFER_DST.0, "TRANSFER_DST"),
725            (
726                BufferUsageFlags2::UNIFORM_TEXEL_BUFFER.0,
727                "UNIFORM_TEXEL_BUFFER",
728            ),
729            (
730                BufferUsageFlags2::STORAGE_TEXEL_BUFFER.0,
731                "STORAGE_TEXEL_BUFFER",
732            ),
733            (BufferUsageFlags2::UNIFORM_BUFFER.0, "UNIFORM_BUFFER"),
734            (BufferUsageFlags2::STORAGE_BUFFER.0, "STORAGE_BUFFER"),
735            (BufferUsageFlags2::INDEX_BUFFER.0, "INDEX_BUFFER"),
736            (BufferUsageFlags2::VERTEX_BUFFER.0, "VERTEX_BUFFER"),
737            (BufferUsageFlags2::INDIRECT_BUFFER.0, "INDIRECT_BUFFER"),
738            (
739                BufferUsageFlags2::EXECUTION_GRAPH_SCRATCH_AMDX.0,
740                "EXECUTION_GRAPH_SCRATCH_AMDX",
741            ),
742            (
743                BufferUsageFlags2::DESCRIPTOR_HEAP_EXT.0,
744                "DESCRIPTOR_HEAP_EXT",
745            ),
746            (
747                BufferUsageFlags2::CONDITIONAL_RENDERING_EXT.0,
748                "CONDITIONAL_RENDERING_EXT",
749            ),
750            (
751                BufferUsageFlags2::SHADER_BINDING_TABLE_KHR.0,
752                "SHADER_BINDING_TABLE_KHR",
753            ),
754            (
755                BufferUsageFlags2::TRANSFORM_FEEDBACK_BUFFER_EXT.0,
756                "TRANSFORM_FEEDBACK_BUFFER_EXT",
757            ),
758            (
759                BufferUsageFlags2::TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT.0,
760                "TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT",
761            ),
762            (
763                BufferUsageFlags2::VIDEO_DECODE_SRC_KHR.0,
764                "VIDEO_DECODE_SRC_KHR",
765            ),
766            (
767                BufferUsageFlags2::VIDEO_DECODE_DST_KHR.0,
768                "VIDEO_DECODE_DST_KHR",
769            ),
770            (
771                BufferUsageFlags2::VIDEO_ENCODE_DST_KHR.0,
772                "VIDEO_ENCODE_DST_KHR",
773            ),
774            (
775                BufferUsageFlags2::VIDEO_ENCODE_SRC_KHR.0,
776                "VIDEO_ENCODE_SRC_KHR",
777            ),
778            (
779                BufferUsageFlags2::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR.0,
780                "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR",
781            ),
782            (
783                BufferUsageFlags2::ACCELERATION_STRUCTURE_STORAGE_KHR.0,
784                "ACCELERATION_STRUCTURE_STORAGE_KHR",
785            ),
786            (
787                BufferUsageFlags2::SAMPLER_DESCRIPTOR_BUFFER_EXT.0,
788                "SAMPLER_DESCRIPTOR_BUFFER_EXT",
789            ),
790            (
791                BufferUsageFlags2::RESOURCE_DESCRIPTOR_BUFFER_EXT.0,
792                "RESOURCE_DESCRIPTOR_BUFFER_EXT",
793            ),
794            (
795                BufferUsageFlags2::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT.0,
796                "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_EXT",
797            ),
798            (
799                BufferUsageFlags2::MICROMAP_BUILD_INPUT_READ_ONLY_EXT.0,
800                "MICROMAP_BUILD_INPUT_READ_ONLY_EXT",
801            ),
802            (
803                BufferUsageFlags2::MICROMAP_STORAGE_EXT.0,
804                "MICROMAP_STORAGE_EXT",
805            ),
806            (
807                BufferUsageFlags2::COMPRESSED_DATA_DGF1_AMDX.0,
808                "COMPRESSED_DATA_DGF1_AMDX",
809            ),
810            (
811                BufferUsageFlags2::DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM.0,
812                "DATA_GRAPH_FOREIGN_DESCRIPTOR_ARM",
813            ),
814            (BufferUsageFlags2::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"),
815            (
816                BufferUsageFlags2::MEMORY_DECOMPRESSION_EXT.0,
817                "MEMORY_DECOMPRESSION_EXT",
818            ),
819            (
820                BufferUsageFlags2::PREPROCESS_BUFFER_EXT.0,
821                "PREPROCESS_BUFFER_EXT",
822            ),
823            (
824                BufferUsageFlags2::SHADER_DEVICE_ADDRESS.0,
825                "SHADER_DEVICE_ADDRESS",
826            ),
827        ];
828        debug_flags(f, KNOWN, self.0)
829    }
830}
831impl fmt::Debug for BufferViewCreateFlags {
832    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
833        const KNOWN: &[(Flags, &str)] = &[];
834        debug_flags(f, KNOWN, self.0)
835    }
836}
837impl fmt::Debug for BuildAccelerationStructureFlagsKHR {
838    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
839        const KNOWN: &[(Flags, &str)] = &[
840            (
841                BuildAccelerationStructureFlagsKHR::ALLOW_UPDATE.0,
842                "ALLOW_UPDATE",
843            ),
844            (
845                BuildAccelerationStructureFlagsKHR::ALLOW_COMPACTION.0,
846                "ALLOW_COMPACTION",
847            ),
848            (
849                BuildAccelerationStructureFlagsKHR::PREFER_FAST_TRACE.0,
850                "PREFER_FAST_TRACE",
851            ),
852            (
853                BuildAccelerationStructureFlagsKHR::PREFER_FAST_BUILD.0,
854                "PREFER_FAST_BUILD",
855            ),
856            (
857                BuildAccelerationStructureFlagsKHR::LOW_MEMORY.0,
858                "LOW_MEMORY",
859            ),
860            (BuildAccelerationStructureFlagsKHR::MOTION_NV.0, "MOTION_NV"),
861            (
862                BuildAccelerationStructureFlagsKHR::ALLOW_OPACITY_MICROMAP_UPDATE_EXT.0,
863                "ALLOW_OPACITY_MICROMAP_UPDATE_EXT",
864            ),
865            (
866                BuildAccelerationStructureFlagsKHR::ALLOW_DISABLE_OPACITY_MICROMAPS_EXT.0,
867                "ALLOW_DISABLE_OPACITY_MICROMAPS_EXT",
868            ),
869            (
870                BuildAccelerationStructureFlagsKHR::ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT.0,
871                "ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT",
872            ),
873            (
874                BuildAccelerationStructureFlagsKHR::ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV.0,
875                "ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV",
876            ),
877            (
878                BuildAccelerationStructureFlagsKHR::ALLOW_DATA_ACCESS.0,
879                "ALLOW_DATA_ACCESS",
880            ),
881            (
882                BuildAccelerationStructureFlagsKHR::ALLOW_CLUSTER_OPACITY_MICROMAPS_NV.0,
883                "ALLOW_CLUSTER_OPACITY_MICROMAPS_NV",
884            ),
885        ];
886        debug_flags(f, KNOWN, self.0)
887    }
888}
889impl fmt::Debug for BuildAccelerationStructureModeKHR {
890    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
891        let name = match *self {
892            Self::BUILD => Some("BUILD"),
893            Self::UPDATE => Some("UPDATE"),
894            _ => None,
895        };
896        if let Some(x) = name {
897            f.write_str(x)
898        } else {
899            self.0.fmt(f)
900        }
901    }
902}
903impl fmt::Debug for BuildMicromapFlagsEXT {
904    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
905        const KNOWN: &[(Flags, &str)] = &[
906            (
907                BuildMicromapFlagsEXT::PREFER_FAST_TRACE.0,
908                "PREFER_FAST_TRACE",
909            ),
910            (
911                BuildMicromapFlagsEXT::PREFER_FAST_BUILD.0,
912                "PREFER_FAST_BUILD",
913            ),
914            (
915                BuildMicromapFlagsEXT::ALLOW_COMPACTION.0,
916                "ALLOW_COMPACTION",
917            ),
918        ];
919        debug_flags(f, KNOWN, self.0)
920    }
921}
922impl fmt::Debug for BuildMicromapModeEXT {
923    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
924        let name = match *self {
925            Self::BUILD => Some("BUILD"),
926            _ => None,
927        };
928        if let Some(x) = name {
929            f.write_str(x)
930        } else {
931            self.0.fmt(f)
932        }
933    }
934}
935impl fmt::Debug for ChromaLocation {
936    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
937        let name = match *self {
938            Self::COSITED_EVEN => Some("COSITED_EVEN"),
939            Self::MIDPOINT => Some("MIDPOINT"),
940            _ => None,
941        };
942        if let Some(x) = name {
943            f.write_str(x)
944        } else {
945            self.0.fmt(f)
946        }
947    }
948}
949impl fmt::Debug for ClusterAccelerationStructureAddressResolutionFlagsNV {
950    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
951        const KNOWN: &[(Flags, &str)] = &[
952            (
953                ClusterAccelerationStructureAddressResolutionFlagsNV::NONE.0,
954                "NONE",
955            ),
956            (
957                ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_DST_IMPLICIT_DATA
958                    .0,
959                "INDIRECTED_DST_IMPLICIT_DATA",
960            ),
961            (
962                ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_SCRATCH_DATA.0,
963                "INDIRECTED_SCRATCH_DATA",
964            ),
965            (
966                ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_DST_ADDRESS_ARRAY
967                    .0,
968                "INDIRECTED_DST_ADDRESS_ARRAY",
969            ),
970            (
971                ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_DST_SIZES_ARRAY.0,
972                "INDIRECTED_DST_SIZES_ARRAY",
973            ),
974            (
975                ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_SRC_INFOS_ARRAY.0,
976                "INDIRECTED_SRC_INFOS_ARRAY",
977            ),
978            (
979                ClusterAccelerationStructureAddressResolutionFlagsNV::INDIRECTED_SRC_INFOS_COUNT.0,
980                "INDIRECTED_SRC_INFOS_COUNT",
981            ),
982        ];
983        debug_flags(f, KNOWN, self.0)
984    }
985}
986impl fmt::Debug for ClusterAccelerationStructureClusterFlagsNV {
987    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
988        const KNOWN: &[(Flags, &str)] = &[(
989            ClusterAccelerationStructureClusterFlagsNV::ALLOW_DISABLE_OPACITY_MICROMAPS.0,
990            "ALLOW_DISABLE_OPACITY_MICROMAPS",
991        )];
992        debug_flags(f, KNOWN, self.0)
993    }
994}
995impl fmt::Debug for ClusterAccelerationStructureGeometryFlagsNV {
996    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
997        const KNOWN: &[(Flags, &str)] = &[
998            (
999                ClusterAccelerationStructureGeometryFlagsNV::CULL_DISABLE.0,
1000                "CULL_DISABLE",
1001            ),
1002            (
1003                ClusterAccelerationStructureGeometryFlagsNV::NO_DUPLICATE_ANYHIT_INVOCATION.0,
1004                "NO_DUPLICATE_ANYHIT_INVOCATION",
1005            ),
1006            (
1007                ClusterAccelerationStructureGeometryFlagsNV::OPAQUE.0,
1008                "OPAQUE",
1009            ),
1010        ];
1011        debug_flags(f, KNOWN, self.0)
1012    }
1013}
1014impl fmt::Debug for ClusterAccelerationStructureIndexFormatFlagsNV {
1015    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1016        const KNOWN: &[(Flags, &str)] = &[
1017            (
1018                ClusterAccelerationStructureIndexFormatFlagsNV::TYPE_8BIT.0,
1019                "TYPE_8BIT",
1020            ),
1021            (
1022                ClusterAccelerationStructureIndexFormatFlagsNV::TYPE_16BIT.0,
1023                "TYPE_16BIT",
1024            ),
1025            (
1026                ClusterAccelerationStructureIndexFormatFlagsNV::TYPE_32BIT.0,
1027                "TYPE_32BIT",
1028            ),
1029        ];
1030        debug_flags(f, KNOWN, self.0)
1031    }
1032}
1033impl fmt::Debug for ClusterAccelerationStructureOpModeNV {
1034    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1035        let name = match *self {
1036            Self::IMPLICIT_DESTINATIONS => Some("IMPLICIT_DESTINATIONS"),
1037            Self::EXPLICIT_DESTINATIONS => Some("EXPLICIT_DESTINATIONS"),
1038            Self::COMPUTE_SIZES => Some("COMPUTE_SIZES"),
1039            _ => None,
1040        };
1041        if let Some(x) = name {
1042            f.write_str(x)
1043        } else {
1044            self.0.fmt(f)
1045        }
1046    }
1047}
1048impl fmt::Debug for ClusterAccelerationStructureOpTypeNV {
1049    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1050        let name = match *self {
1051            Self::MOVE_OBJECTS => Some("MOVE_OBJECTS"),
1052            Self::BUILD_CLUSTERS_BOTTOM_LEVEL => Some("BUILD_CLUSTERS_BOTTOM_LEVEL"),
1053            Self::BUILD_TRIANGLE_CLUSTER => Some("BUILD_TRIANGLE_CLUSTER"),
1054            Self::BUILD_TRIANGLE_CLUSTER_TEMPLATE => Some("BUILD_TRIANGLE_CLUSTER_TEMPLATE"),
1055            Self::INSTANTIATE_TRIANGLE_CLUSTER => Some("INSTANTIATE_TRIANGLE_CLUSTER"),
1056            Self::GET_CLUSTER_TEMPLATE_INDICES => Some("GET_CLUSTER_TEMPLATE_INDICES"),
1057            _ => None,
1058        };
1059        if let Some(x) = name {
1060            f.write_str(x)
1061        } else {
1062            self.0.fmt(f)
1063        }
1064    }
1065}
1066impl fmt::Debug for ClusterAccelerationStructureTypeNV {
1067    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1068        let name = match *self {
1069            Self::CLUSTERS_BOTTOM_LEVEL => Some("CLUSTERS_BOTTOM_LEVEL"),
1070            Self::TRIANGLE_CLUSTER => Some("TRIANGLE_CLUSTER"),
1071            Self::TRIANGLE_CLUSTER_TEMPLATE => Some("TRIANGLE_CLUSTER_TEMPLATE"),
1072            _ => None,
1073        };
1074        if let Some(x) = name {
1075            f.write_str(x)
1076        } else {
1077            self.0.fmt(f)
1078        }
1079    }
1080}
1081impl fmt::Debug for CoarseSampleOrderTypeNV {
1082    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1083        let name = match *self {
1084            Self::DEFAULT => Some("DEFAULT"),
1085            Self::CUSTOM => Some("CUSTOM"),
1086            Self::PIXEL_MAJOR => Some("PIXEL_MAJOR"),
1087            Self::SAMPLE_MAJOR => Some("SAMPLE_MAJOR"),
1088            _ => None,
1089        };
1090        if let Some(x) = name {
1091            f.write_str(x)
1092        } else {
1093            self.0.fmt(f)
1094        }
1095    }
1096}
1097impl fmt::Debug for ColorComponentFlags {
1098    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1099        const KNOWN: &[(Flags, &str)] = &[
1100            (ColorComponentFlags::R.0, "R"),
1101            (ColorComponentFlags::G.0, "G"),
1102            (ColorComponentFlags::B.0, "B"),
1103            (ColorComponentFlags::A.0, "A"),
1104        ];
1105        debug_flags(f, KNOWN, self.0)
1106    }
1107}
1108impl fmt::Debug for ColorSpaceKHR {
1109    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1110        let name = match *self {
1111            Self::SRGB_NONLINEAR => Some("SRGB_NONLINEAR"),
1112            Self::DISPLAY_P3_NONLINEAR_EXT => Some("DISPLAY_P3_NONLINEAR_EXT"),
1113            Self::EXTENDED_SRGB_LINEAR_EXT => Some("EXTENDED_SRGB_LINEAR_EXT"),
1114            Self::DISPLAY_P3_LINEAR_EXT => Some("DISPLAY_P3_LINEAR_EXT"),
1115            Self::DCI_P3_NONLINEAR_EXT => Some("DCI_P3_NONLINEAR_EXT"),
1116            Self::BT709_LINEAR_EXT => Some("BT709_LINEAR_EXT"),
1117            Self::BT709_NONLINEAR_EXT => Some("BT709_NONLINEAR_EXT"),
1118            Self::BT2020_LINEAR_EXT => Some("BT2020_LINEAR_EXT"),
1119            Self::HDR10_ST2084_EXT => Some("HDR10_ST2084_EXT"),
1120            #[allow(deprecated)]
1121            Self::DOLBYVISION_EXT => Some("DOLBYVISION_EXT"),
1122            Self::HDR10_HLG_EXT => Some("HDR10_HLG_EXT"),
1123            Self::ADOBERGB_LINEAR_EXT => Some("ADOBERGB_LINEAR_EXT"),
1124            Self::ADOBERGB_NONLINEAR_EXT => Some("ADOBERGB_NONLINEAR_EXT"),
1125            Self::PASS_THROUGH_EXT => Some("PASS_THROUGH_EXT"),
1126            Self::EXTENDED_SRGB_NONLINEAR_EXT => Some("EXTENDED_SRGB_NONLINEAR_EXT"),
1127            Self::DISPLAY_NATIVE_AMD => Some("DISPLAY_NATIVE_AMD"),
1128            _ => None,
1129        };
1130        if let Some(x) = name {
1131            f.write_str(x)
1132        } else {
1133            self.0.fmt(f)
1134        }
1135    }
1136}
1137impl fmt::Debug for CommandBufferLevel {
1138    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1139        let name = match *self {
1140            Self::PRIMARY => Some("PRIMARY"),
1141            Self::SECONDARY => Some("SECONDARY"),
1142            _ => None,
1143        };
1144        if let Some(x) = name {
1145            f.write_str(x)
1146        } else {
1147            self.0.fmt(f)
1148        }
1149    }
1150}
1151impl fmt::Debug for CommandBufferResetFlags {
1152    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1153        const KNOWN: &[(Flags, &str)] = &[(
1154            CommandBufferResetFlags::RELEASE_RESOURCES.0,
1155            "RELEASE_RESOURCES",
1156        )];
1157        debug_flags(f, KNOWN, self.0)
1158    }
1159}
1160impl fmt::Debug for CommandBufferUsageFlags {
1161    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1162        const KNOWN: &[(Flags, &str)] = &[
1163            (
1164                CommandBufferUsageFlags::ONE_TIME_SUBMIT.0,
1165                "ONE_TIME_SUBMIT",
1166            ),
1167            (
1168                CommandBufferUsageFlags::RENDER_PASS_CONTINUE.0,
1169                "RENDER_PASS_CONTINUE",
1170            ),
1171            (
1172                CommandBufferUsageFlags::SIMULTANEOUS_USE.0,
1173                "SIMULTANEOUS_USE",
1174            ),
1175        ];
1176        debug_flags(f, KNOWN, self.0)
1177    }
1178}
1179impl fmt::Debug for CommandPoolCreateFlags {
1180    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1181        const KNOWN: &[(Flags, &str)] = &[
1182            (CommandPoolCreateFlags::TRANSIENT.0, "TRANSIENT"),
1183            (
1184                CommandPoolCreateFlags::RESET_COMMAND_BUFFER.0,
1185                "RESET_COMMAND_BUFFER",
1186            ),
1187            (CommandPoolCreateFlags::PROTECTED.0, "PROTECTED"),
1188        ];
1189        debug_flags(f, KNOWN, self.0)
1190    }
1191}
1192impl fmt::Debug for CommandPoolResetFlags {
1193    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1194        const KNOWN: &[(Flags, &str)] = &[(
1195            CommandPoolResetFlags::RELEASE_RESOURCES.0,
1196            "RELEASE_RESOURCES",
1197        )];
1198        debug_flags(f, KNOWN, self.0)
1199    }
1200}
1201impl fmt::Debug for CommandPoolTrimFlags {
1202    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1203        const KNOWN: &[(Flags, &str)] = &[];
1204        debug_flags(f, KNOWN, self.0)
1205    }
1206}
1207impl fmt::Debug for CompareOp {
1208    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1209        let name = match *self {
1210            Self::NEVER => Some("NEVER"),
1211            Self::LESS => Some("LESS"),
1212            Self::EQUAL => Some("EQUAL"),
1213            Self::LESS_OR_EQUAL => Some("LESS_OR_EQUAL"),
1214            Self::GREATER => Some("GREATER"),
1215            Self::NOT_EQUAL => Some("NOT_EQUAL"),
1216            Self::GREATER_OR_EQUAL => Some("GREATER_OR_EQUAL"),
1217            Self::ALWAYS => Some("ALWAYS"),
1218            _ => None,
1219        };
1220        if let Some(x) = name {
1221            f.write_str(x)
1222        } else {
1223            self.0.fmt(f)
1224        }
1225    }
1226}
1227impl fmt::Debug for ComponentSwizzle {
1228    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1229        let name = match *self {
1230            Self::IDENTITY => Some("IDENTITY"),
1231            Self::ZERO => Some("ZERO"),
1232            Self::ONE => Some("ONE"),
1233            Self::R => Some("R"),
1234            Self::G => Some("G"),
1235            Self::B => Some("B"),
1236            Self::A => Some("A"),
1237            _ => None,
1238        };
1239        if let Some(x) = name {
1240            f.write_str(x)
1241        } else {
1242            self.0.fmt(f)
1243        }
1244    }
1245}
1246impl fmt::Debug for ComponentTypeKHR {
1247    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1248        let name = match *self {
1249            Self::FLOAT16 => Some("FLOAT16"),
1250            Self::FLOAT32 => Some("FLOAT32"),
1251            Self::FLOAT64 => Some("FLOAT64"),
1252            Self::SINT8 => Some("SINT8"),
1253            Self::SINT16 => Some("SINT16"),
1254            Self::SINT32 => Some("SINT32"),
1255            Self::SINT64 => Some("SINT64"),
1256            Self::UINT8 => Some("UINT8"),
1257            Self::UINT16 => Some("UINT16"),
1258            Self::UINT32 => Some("UINT32"),
1259            Self::UINT64 => Some("UINT64"),
1260            Self::BFLOAT16 => Some("BFLOAT16"),
1261            Self::SINT8_PACKED_NV => Some("SINT8_PACKED_NV"),
1262            Self::UINT8_PACKED_NV => Some("UINT8_PACKED_NV"),
1263            Self::FLOAT8_E4M3_EXT => Some("FLOAT8_E4M3_EXT"),
1264            Self::FLOAT8_E5M2_EXT => Some("FLOAT8_E5M2_EXT"),
1265            _ => None,
1266        };
1267        if let Some(x) = name {
1268            f.write_str(x)
1269        } else {
1270            self.0.fmt(f)
1271        }
1272    }
1273}
1274impl fmt::Debug for CompositeAlphaFlagsKHR {
1275    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1276        const KNOWN: &[(Flags, &str)] = &[
1277            (CompositeAlphaFlagsKHR::OPAQUE.0, "OPAQUE"),
1278            (CompositeAlphaFlagsKHR::PRE_MULTIPLIED.0, "PRE_MULTIPLIED"),
1279            (CompositeAlphaFlagsKHR::POST_MULTIPLIED.0, "POST_MULTIPLIED"),
1280            (CompositeAlphaFlagsKHR::INHERIT.0, "INHERIT"),
1281        ];
1282        debug_flags(f, KNOWN, self.0)
1283    }
1284}
1285impl fmt::Debug for CompressedTriangleFormatAMDX {
1286    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1287        let name = match *self {
1288            Self::DGF1 => Some("DGF1"),
1289            _ => None,
1290        };
1291        if let Some(x) = name {
1292            f.write_str(x)
1293        } else {
1294            self.0.fmt(f)
1295        }
1296    }
1297}
1298impl fmt::Debug for ConditionalRenderingFlagsEXT {
1299    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1300        const KNOWN: &[(Flags, &str)] = &[(ConditionalRenderingFlagsEXT::INVERTED.0, "INVERTED")];
1301        debug_flags(f, KNOWN, self.0)
1302    }
1303}
1304impl fmt::Debug for ConservativeRasterizationModeEXT {
1305    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1306        let name = match *self {
1307            Self::DISABLED => Some("DISABLED"),
1308            Self::OVERESTIMATE => Some("OVERESTIMATE"),
1309            Self::UNDERESTIMATE => Some("UNDERESTIMATE"),
1310            _ => None,
1311        };
1312        if let Some(x) = name {
1313            f.write_str(x)
1314        } else {
1315            self.0.fmt(f)
1316        }
1317    }
1318}
1319impl fmt::Debug for CooperativeVectorMatrixLayoutNV {
1320    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1321        let name = match *self {
1322            Self::ROW_MAJOR => Some("ROW_MAJOR"),
1323            Self::COLUMN_MAJOR => Some("COLUMN_MAJOR"),
1324            Self::INFERENCING_OPTIMAL => Some("INFERENCING_OPTIMAL"),
1325            Self::TRAINING_OPTIMAL => Some("TRAINING_OPTIMAL"),
1326            _ => None,
1327        };
1328        if let Some(x) = name {
1329            f.write_str(x)
1330        } else {
1331            self.0.fmt(f)
1332        }
1333    }
1334}
1335impl fmt::Debug for CopyAccelerationStructureModeKHR {
1336    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1337        let name = match *self {
1338            Self::CLONE => Some("CLONE"),
1339            Self::COMPACT => Some("COMPACT"),
1340            Self::SERIALIZE => Some("SERIALIZE"),
1341            Self::DESERIALIZE => Some("DESERIALIZE"),
1342            _ => None,
1343        };
1344        if let Some(x) = name {
1345            f.write_str(x)
1346        } else {
1347            self.0.fmt(f)
1348        }
1349    }
1350}
1351impl fmt::Debug for CopyMicromapModeEXT {
1352    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1353        let name = match *self {
1354            Self::CLONE => Some("CLONE"),
1355            Self::SERIALIZE => Some("SERIALIZE"),
1356            Self::DESERIALIZE => Some("DESERIALIZE"),
1357            Self::COMPACT => Some("COMPACT"),
1358            _ => None,
1359        };
1360        if let Some(x) = name {
1361            f.write_str(x)
1362        } else {
1363            self.0.fmt(f)
1364        }
1365    }
1366}
1367impl fmt::Debug for CoverageModulationModeNV {
1368    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1369        let name = match *self {
1370            Self::NONE => Some("NONE"),
1371            Self::RGB => Some("RGB"),
1372            Self::ALPHA => Some("ALPHA"),
1373            Self::RGBA => Some("RGBA"),
1374            _ => None,
1375        };
1376        if let Some(x) = name {
1377            f.write_str(x)
1378        } else {
1379            self.0.fmt(f)
1380        }
1381    }
1382}
1383impl fmt::Debug for CoverageReductionModeNV {
1384    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1385        let name = match *self {
1386            Self::MERGE => Some("MERGE"),
1387            Self::TRUNCATE => Some("TRUNCATE"),
1388            _ => None,
1389        };
1390        if let Some(x) = name {
1391            f.write_str(x)
1392        } else {
1393            self.0.fmt(f)
1394        }
1395    }
1396}
1397impl fmt::Debug for CubicFilterWeightsQCOM {
1398    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1399        let name = match *self {
1400            Self::CATMULL_ROM => Some("CATMULL_ROM"),
1401            Self::ZERO_TANGENT_CARDINAL => Some("ZERO_TANGENT_CARDINAL"),
1402            Self::B_SPLINE => Some("B_SPLINE"),
1403            Self::MITCHELL_NETRAVALI => Some("MITCHELL_NETRAVALI"),
1404            _ => None,
1405        };
1406        if let Some(x) = name {
1407            f.write_str(x)
1408        } else {
1409            self.0.fmt(f)
1410        }
1411    }
1412}
1413impl fmt::Debug for CullModeFlags {
1414    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1415        const KNOWN: &[(Flags, &str)] = &[
1416            (CullModeFlags::NONE.0, "NONE"),
1417            (CullModeFlags::FRONT.0, "FRONT"),
1418            (CullModeFlags::BACK.0, "BACK"),
1419            (CullModeFlags::FRONT_AND_BACK.0, "FRONT_AND_BACK"),
1420        ];
1421        debug_flags(f, KNOWN, self.0)
1422    }
1423}
1424impl fmt::Debug for DataGraphModelCacheTypeQCOM {
1425    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1426        let name = match *self {
1427            Self::GENERIC_BINARY => Some("GENERIC_BINARY"),
1428            _ => None,
1429        };
1430        if let Some(x) = name {
1431            f.write_str(x)
1432        } else {
1433            self.0.fmt(f)
1434        }
1435    }
1436}
1437impl fmt::Debug for DataGraphPipelineDispatchFlagsARM {
1438    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1439        const KNOWN: &[(Flags64, &str)] = &[];
1440        debug_flags(f, KNOWN, self.0)
1441    }
1442}
1443impl fmt::Debug for DataGraphPipelinePropertyARM {
1444    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1445        let name = match *self {
1446            Self::CREATION_LOG => Some("CREATION_LOG"),
1447            Self::IDENTIFIER => Some("IDENTIFIER"),
1448            _ => None,
1449        };
1450        if let Some(x) = name {
1451            f.write_str(x)
1452        } else {
1453            self.0.fmt(f)
1454        }
1455    }
1456}
1457impl fmt::Debug for DataGraphPipelineSessionBindPointARM {
1458    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1459        let name = match *self {
1460            Self::TRANSIENT => Some("TRANSIENT"),
1461            _ => None,
1462        };
1463        if let Some(x) = name {
1464            f.write_str(x)
1465        } else {
1466            self.0.fmt(f)
1467        }
1468    }
1469}
1470impl fmt::Debug for DataGraphPipelineSessionBindPointTypeARM {
1471    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1472        let name = match *self {
1473            Self::MEMORY => Some("MEMORY"),
1474            _ => None,
1475        };
1476        if let Some(x) = name {
1477            f.write_str(x)
1478        } else {
1479            self.0.fmt(f)
1480        }
1481    }
1482}
1483impl fmt::Debug for DataGraphPipelineSessionCreateFlagsARM {
1484    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1485        const KNOWN: &[(Flags64, &str)] = &[(
1486            DataGraphPipelineSessionCreateFlagsARM::PROTECTED.0,
1487            "PROTECTED",
1488        )];
1489        debug_flags(f, KNOWN, self.0)
1490    }
1491}
1492impl fmt::Debug for DebugReportFlagsEXT {
1493    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1494        const KNOWN: &[(Flags, &str)] = &[
1495            (DebugReportFlagsEXT::INFORMATION.0, "INFORMATION"),
1496            (DebugReportFlagsEXT::WARNING.0, "WARNING"),
1497            (
1498                DebugReportFlagsEXT::PERFORMANCE_WARNING.0,
1499                "PERFORMANCE_WARNING",
1500            ),
1501            (DebugReportFlagsEXT::ERROR.0, "ERROR"),
1502            (DebugReportFlagsEXT::DEBUG.0, "DEBUG"),
1503        ];
1504        debug_flags(f, KNOWN, self.0)
1505    }
1506}
1507impl fmt::Debug for DebugReportObjectTypeEXT {
1508    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1509        let name = match *self {
1510            Self::UNKNOWN => Some("UNKNOWN"),
1511            Self::INSTANCE => Some("INSTANCE"),
1512            Self::PHYSICAL_DEVICE => Some("PHYSICAL_DEVICE"),
1513            Self::DEVICE => Some("DEVICE"),
1514            Self::QUEUE => Some("QUEUE"),
1515            Self::SEMAPHORE => Some("SEMAPHORE"),
1516            Self::COMMAND_BUFFER => Some("COMMAND_BUFFER"),
1517            Self::FENCE => Some("FENCE"),
1518            Self::DEVICE_MEMORY => Some("DEVICE_MEMORY"),
1519            Self::BUFFER => Some("BUFFER"),
1520            Self::IMAGE => Some("IMAGE"),
1521            Self::EVENT => Some("EVENT"),
1522            Self::QUERY_POOL => Some("QUERY_POOL"),
1523            Self::BUFFER_VIEW => Some("BUFFER_VIEW"),
1524            Self::IMAGE_VIEW => Some("IMAGE_VIEW"),
1525            Self::SHADER_MODULE => Some("SHADER_MODULE"),
1526            Self::PIPELINE_CACHE => Some("PIPELINE_CACHE"),
1527            Self::PIPELINE_LAYOUT => Some("PIPELINE_LAYOUT"),
1528            Self::RENDER_PASS => Some("RENDER_PASS"),
1529            Self::PIPELINE => Some("PIPELINE"),
1530            Self::DESCRIPTOR_SET_LAYOUT => Some("DESCRIPTOR_SET_LAYOUT"),
1531            Self::SAMPLER => Some("SAMPLER"),
1532            Self::DESCRIPTOR_POOL => Some("DESCRIPTOR_POOL"),
1533            Self::DESCRIPTOR_SET => Some("DESCRIPTOR_SET"),
1534            Self::FRAMEBUFFER => Some("FRAMEBUFFER"),
1535            Self::COMMAND_POOL => Some("COMMAND_POOL"),
1536            Self::SURFACE_KHR => Some("SURFACE_KHR"),
1537            Self::SWAPCHAIN_KHR => Some("SWAPCHAIN_KHR"),
1538            Self::DEBUG_REPORT_CALLBACK_EXT => Some("DEBUG_REPORT_CALLBACK_EXT"),
1539            Self::DISPLAY_KHR => Some("DISPLAY_KHR"),
1540            Self::DISPLAY_MODE_KHR => Some("DISPLAY_MODE_KHR"),
1541            Self::VALIDATION_CACHE_EXT => Some("VALIDATION_CACHE_EXT"),
1542            Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"),
1543            Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"),
1544            Self::CU_MODULE_NVX => Some("CU_MODULE_NVX"),
1545            Self::CU_FUNCTION_NVX => Some("CU_FUNCTION_NVX"),
1546            Self::ACCELERATION_STRUCTURE_KHR => Some("ACCELERATION_STRUCTURE_KHR"),
1547            Self::ACCELERATION_STRUCTURE_NV => Some("ACCELERATION_STRUCTURE_NV"),
1548            Self::CUDA_MODULE_NV => Some("CUDA_MODULE_NV"),
1549            Self::CUDA_FUNCTION_NV => Some("CUDA_FUNCTION_NV"),
1550            Self::BUFFER_COLLECTION_FUCHSIA => Some("BUFFER_COLLECTION_FUCHSIA"),
1551            _ => None,
1552        };
1553        if let Some(x) = name {
1554            f.write_str(x)
1555        } else {
1556            self.0.fmt(f)
1557        }
1558    }
1559}
1560impl fmt::Debug for DebugUtilsMessageSeverityFlagsEXT {
1561    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1562        const KNOWN: &[(Flags, &str)] = &[
1563            (DebugUtilsMessageSeverityFlagsEXT::VERBOSE.0, "VERBOSE"),
1564            (DebugUtilsMessageSeverityFlagsEXT::INFO.0, "INFO"),
1565            (DebugUtilsMessageSeverityFlagsEXT::WARNING.0, "WARNING"),
1566            (DebugUtilsMessageSeverityFlagsEXT::ERROR.0, "ERROR"),
1567        ];
1568        debug_flags(f, KNOWN, self.0)
1569    }
1570}
1571impl fmt::Debug for DebugUtilsMessageTypeFlagsEXT {
1572    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1573        const KNOWN: &[(Flags, &str)] = &[
1574            (DebugUtilsMessageTypeFlagsEXT::GENERAL.0, "GENERAL"),
1575            (DebugUtilsMessageTypeFlagsEXT::VALIDATION.0, "VALIDATION"),
1576            (DebugUtilsMessageTypeFlagsEXT::PERFORMANCE.0, "PERFORMANCE"),
1577            (
1578                DebugUtilsMessageTypeFlagsEXT::DEVICE_ADDRESS_BINDING.0,
1579                "DEVICE_ADDRESS_BINDING",
1580            ),
1581        ];
1582        debug_flags(f, KNOWN, self.0)
1583    }
1584}
1585impl fmt::Debug for DebugUtilsMessengerCallbackDataFlagsEXT {
1586    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1587        const KNOWN: &[(Flags, &str)] = &[];
1588        debug_flags(f, KNOWN, self.0)
1589    }
1590}
1591impl fmt::Debug for DebugUtilsMessengerCreateFlagsEXT {
1592    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1593        const KNOWN: &[(Flags, &str)] = &[];
1594        debug_flags(f, KNOWN, self.0)
1595    }
1596}
1597impl fmt::Debug for DefaultVertexAttributeValueKHR {
1598    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1599        let name = match *self {
1600            Self::ZERO_ZERO_ZERO_ZERO => Some("ZERO_ZERO_ZERO_ZERO"),
1601            Self::ZERO_ZERO_ZERO_ONE => Some("ZERO_ZERO_ZERO_ONE"),
1602            _ => None,
1603        };
1604        if let Some(x) = name {
1605            f.write_str(x)
1606        } else {
1607            self.0.fmt(f)
1608        }
1609    }
1610}
1611impl fmt::Debug for DependencyFlags {
1612    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1613        const KNOWN: &[(Flags, &str)] = &[
1614            (DependencyFlags::BY_REGION.0, "BY_REGION"),
1615            (DependencyFlags::FEEDBACK_LOOP_EXT.0, "FEEDBACK_LOOP_EXT"),
1616            (
1617                DependencyFlags::QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR.0,
1618                "QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_KHR",
1619            ),
1620            (
1621                DependencyFlags::ASYMMETRIC_EVENT_KHR.0,
1622                "ASYMMETRIC_EVENT_KHR",
1623            ),
1624            (DependencyFlags::DEVICE_GROUP.0, "DEVICE_GROUP"),
1625            (DependencyFlags::VIEW_LOCAL.0, "VIEW_LOCAL"),
1626        ];
1627        debug_flags(f, KNOWN, self.0)
1628    }
1629}
1630impl fmt::Debug for DepthBiasRepresentationEXT {
1631    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1632        let name = match *self {
1633            Self::LEAST_REPRESENTABLE_VALUE_FORMAT => Some("LEAST_REPRESENTABLE_VALUE_FORMAT"),
1634            Self::LEAST_REPRESENTABLE_VALUE_FORCE_UNORM => {
1635                Some("LEAST_REPRESENTABLE_VALUE_FORCE_UNORM")
1636            }
1637            Self::FLOAT => Some("FLOAT"),
1638            _ => None,
1639        };
1640        if let Some(x) = name {
1641            f.write_str(x)
1642        } else {
1643            self.0.fmt(f)
1644        }
1645    }
1646}
1647impl fmt::Debug for DepthClampModeEXT {
1648    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1649        let name = match *self {
1650            Self::VIEWPORT_RANGE => Some("VIEWPORT_RANGE"),
1651            Self::USER_DEFINED_RANGE => Some("USER_DEFINED_RANGE"),
1652            _ => None,
1653        };
1654        if let Some(x) = name {
1655            f.write_str(x)
1656        } else {
1657            self.0.fmt(f)
1658        }
1659    }
1660}
1661impl fmt::Debug for DescriptorBindingFlags {
1662    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1663        const KNOWN: &[(Flags, &str)] = &[
1664            (
1665                DescriptorBindingFlags::UPDATE_AFTER_BIND.0,
1666                "UPDATE_AFTER_BIND",
1667            ),
1668            (
1669                DescriptorBindingFlags::UPDATE_UNUSED_WHILE_PENDING.0,
1670                "UPDATE_UNUSED_WHILE_PENDING",
1671            ),
1672            (DescriptorBindingFlags::PARTIALLY_BOUND.0, "PARTIALLY_BOUND"),
1673            (
1674                DescriptorBindingFlags::VARIABLE_DESCRIPTOR_COUNT.0,
1675                "VARIABLE_DESCRIPTOR_COUNT",
1676            ),
1677        ];
1678        debug_flags(f, KNOWN, self.0)
1679    }
1680}
1681impl fmt::Debug for DescriptorMappingSourceEXT {
1682    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1683        let name = match *self {
1684            Self::HEAP_WITH_CONSTANT_OFFSET => Some("HEAP_WITH_CONSTANT_OFFSET"),
1685            Self::HEAP_WITH_PUSH_INDEX => Some("HEAP_WITH_PUSH_INDEX"),
1686            Self::HEAP_WITH_INDIRECT_INDEX => Some("HEAP_WITH_INDIRECT_INDEX"),
1687            Self::HEAP_WITH_INDIRECT_INDEX_ARRAY => Some("HEAP_WITH_INDIRECT_INDEX_ARRAY"),
1688            Self::RESOURCE_HEAP_DATA => Some("RESOURCE_HEAP_DATA"),
1689            Self::PUSH_DATA => Some("PUSH_DATA"),
1690            Self::PUSH_ADDRESS => Some("PUSH_ADDRESS"),
1691            Self::INDIRECT_ADDRESS => Some("INDIRECT_ADDRESS"),
1692            Self::HEAP_WITH_SHADER_RECORD_INDEX => Some("HEAP_WITH_SHADER_RECORD_INDEX"),
1693            Self::SHADER_RECORD_DATA => Some("SHADER_RECORD_DATA"),
1694            Self::SHADER_RECORD_ADDRESS => Some("SHADER_RECORD_ADDRESS"),
1695            _ => None,
1696        };
1697        if let Some(x) = name {
1698            f.write_str(x)
1699        } else {
1700            self.0.fmt(f)
1701        }
1702    }
1703}
1704impl fmt::Debug for DescriptorPoolCreateFlags {
1705    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1706        const KNOWN: &[(Flags, &str)] = &[
1707            (
1708                DescriptorPoolCreateFlags::FREE_DESCRIPTOR_SET.0,
1709                "FREE_DESCRIPTOR_SET",
1710            ),
1711            (DescriptorPoolCreateFlags::HOST_ONLY_EXT.0, "HOST_ONLY_EXT"),
1712            (
1713                DescriptorPoolCreateFlags::ALLOW_OVERALLOCATION_SETS_NV.0,
1714                "ALLOW_OVERALLOCATION_SETS_NV",
1715            ),
1716            (
1717                DescriptorPoolCreateFlags::ALLOW_OVERALLOCATION_POOLS_NV.0,
1718                "ALLOW_OVERALLOCATION_POOLS_NV",
1719            ),
1720            (
1721                DescriptorPoolCreateFlags::UPDATE_AFTER_BIND.0,
1722                "UPDATE_AFTER_BIND",
1723            ),
1724        ];
1725        debug_flags(f, KNOWN, self.0)
1726    }
1727}
1728impl fmt::Debug for DescriptorPoolResetFlags {
1729    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1730        const KNOWN: &[(Flags, &str)] = &[];
1731        debug_flags(f, KNOWN, self.0)
1732    }
1733}
1734impl fmt::Debug for DescriptorSetLayoutCreateFlags {
1735    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1736        const KNOWN: &[(Flags, &str)] = &[
1737            (
1738                DescriptorSetLayoutCreateFlags::DESCRIPTOR_BUFFER_EXT.0,
1739                "DESCRIPTOR_BUFFER_EXT",
1740            ),
1741            (
1742                DescriptorSetLayoutCreateFlags::EMBEDDED_IMMUTABLE_SAMPLERS_EXT.0,
1743                "EMBEDDED_IMMUTABLE_SAMPLERS_EXT",
1744            ),
1745            (
1746                DescriptorSetLayoutCreateFlags::INDIRECT_BINDABLE_NV.0,
1747                "INDIRECT_BINDABLE_NV",
1748            ),
1749            (
1750                DescriptorSetLayoutCreateFlags::HOST_ONLY_POOL_EXT.0,
1751                "HOST_ONLY_POOL_EXT",
1752            ),
1753            (
1754                DescriptorSetLayoutCreateFlags::PER_STAGE_NV.0,
1755                "PER_STAGE_NV",
1756            ),
1757            (
1758                DescriptorSetLayoutCreateFlags::UPDATE_AFTER_BIND_POOL.0,
1759                "UPDATE_AFTER_BIND_POOL",
1760            ),
1761            (
1762                DescriptorSetLayoutCreateFlags::PUSH_DESCRIPTOR.0,
1763                "PUSH_DESCRIPTOR",
1764            ),
1765        ];
1766        debug_flags(f, KNOWN, self.0)
1767    }
1768}
1769impl fmt::Debug for DescriptorType {
1770    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1771        let name = match *self {
1772            Self::SAMPLER => Some("SAMPLER"),
1773            Self::COMBINED_IMAGE_SAMPLER => Some("COMBINED_IMAGE_SAMPLER"),
1774            Self::SAMPLED_IMAGE => Some("SAMPLED_IMAGE"),
1775            Self::STORAGE_IMAGE => Some("STORAGE_IMAGE"),
1776            Self::UNIFORM_TEXEL_BUFFER => Some("UNIFORM_TEXEL_BUFFER"),
1777            Self::STORAGE_TEXEL_BUFFER => Some("STORAGE_TEXEL_BUFFER"),
1778            Self::UNIFORM_BUFFER => Some("UNIFORM_BUFFER"),
1779            Self::STORAGE_BUFFER => Some("STORAGE_BUFFER"),
1780            Self::UNIFORM_BUFFER_DYNAMIC => Some("UNIFORM_BUFFER_DYNAMIC"),
1781            Self::STORAGE_BUFFER_DYNAMIC => Some("STORAGE_BUFFER_DYNAMIC"),
1782            Self::INPUT_ATTACHMENT => Some("INPUT_ATTACHMENT"),
1783            Self::ACCELERATION_STRUCTURE_KHR => Some("ACCELERATION_STRUCTURE_KHR"),
1784            Self::ACCELERATION_STRUCTURE_NV => Some("ACCELERATION_STRUCTURE_NV"),
1785            Self::SAMPLE_WEIGHT_IMAGE_QCOM => Some("SAMPLE_WEIGHT_IMAGE_QCOM"),
1786            Self::BLOCK_MATCH_IMAGE_QCOM => Some("BLOCK_MATCH_IMAGE_QCOM"),
1787            Self::TENSOR_ARM => Some("TENSOR_ARM"),
1788            Self::MUTABLE_EXT => Some("MUTABLE_EXT"),
1789            Self::PARTITIONED_ACCELERATION_STRUCTURE_NV => {
1790                Some("PARTITIONED_ACCELERATION_STRUCTURE_NV")
1791            }
1792            Self::INLINE_UNIFORM_BLOCK => Some("INLINE_UNIFORM_BLOCK"),
1793            _ => None,
1794        };
1795        if let Some(x) = name {
1796            f.write_str(x)
1797        } else {
1798            self.0.fmt(f)
1799        }
1800    }
1801}
1802impl fmt::Debug for DescriptorUpdateTemplateCreateFlags {
1803    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1804        const KNOWN: &[(Flags, &str)] = &[];
1805        debug_flags(f, KNOWN, self.0)
1806    }
1807}
1808impl fmt::Debug for DescriptorUpdateTemplateType {
1809    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1810        let name = match *self {
1811            Self::DESCRIPTOR_SET => Some("DESCRIPTOR_SET"),
1812            Self::PUSH_DESCRIPTORS => Some("PUSH_DESCRIPTORS"),
1813            _ => None,
1814        };
1815        if let Some(x) = name {
1816            f.write_str(x)
1817        } else {
1818            self.0.fmt(f)
1819        }
1820    }
1821}
1822impl fmt::Debug for DeviceAddressBindingFlagsEXT {
1823    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1824        const KNOWN: &[(Flags, &str)] = &[(
1825            DeviceAddressBindingFlagsEXT::INTERNAL_OBJECT.0,
1826            "INTERNAL_OBJECT",
1827        )];
1828        debug_flags(f, KNOWN, self.0)
1829    }
1830}
1831impl fmt::Debug for DeviceAddressBindingTypeEXT {
1832    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1833        let name = match *self {
1834            Self::BIND => Some("BIND"),
1835            Self::UNBIND => Some("UNBIND"),
1836            _ => None,
1837        };
1838        if let Some(x) = name {
1839            f.write_str(x)
1840        } else {
1841            self.0.fmt(f)
1842        }
1843    }
1844}
1845impl fmt::Debug for DeviceCreateFlags {
1846    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1847        const KNOWN: &[(Flags, &str)] = &[];
1848        debug_flags(f, KNOWN, self.0)
1849    }
1850}
1851impl fmt::Debug for DeviceDiagnosticsConfigFlagsNV {
1852    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1853        const KNOWN: &[(Flags, &str)] = &[
1854            (
1855                DeviceDiagnosticsConfigFlagsNV::ENABLE_SHADER_DEBUG_INFO.0,
1856                "ENABLE_SHADER_DEBUG_INFO",
1857            ),
1858            (
1859                DeviceDiagnosticsConfigFlagsNV::ENABLE_RESOURCE_TRACKING.0,
1860                "ENABLE_RESOURCE_TRACKING",
1861            ),
1862            (
1863                DeviceDiagnosticsConfigFlagsNV::ENABLE_AUTOMATIC_CHECKPOINTS.0,
1864                "ENABLE_AUTOMATIC_CHECKPOINTS",
1865            ),
1866            (
1867                DeviceDiagnosticsConfigFlagsNV::ENABLE_SHADER_ERROR_REPORTING.0,
1868                "ENABLE_SHADER_ERROR_REPORTING",
1869            ),
1870        ];
1871        debug_flags(f, KNOWN, self.0)
1872    }
1873}
1874impl fmt::Debug for DeviceEventTypeEXT {
1875    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1876        let name = match *self {
1877            Self::DISPLAY_HOTPLUG => Some("DISPLAY_HOTPLUG"),
1878            _ => None,
1879        };
1880        if let Some(x) = name {
1881            f.write_str(x)
1882        } else {
1883            self.0.fmt(f)
1884        }
1885    }
1886}
1887impl fmt::Debug for DeviceFaultAddressTypeEXT {
1888    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1889        let name = match *self {
1890            Self::NONE => Some("NONE"),
1891            Self::READ_INVALID => Some("READ_INVALID"),
1892            Self::WRITE_INVALID => Some("WRITE_INVALID"),
1893            Self::EXECUTE_INVALID => Some("EXECUTE_INVALID"),
1894            Self::INSTRUCTION_POINTER_UNKNOWN => Some("INSTRUCTION_POINTER_UNKNOWN"),
1895            Self::INSTRUCTION_POINTER_INVALID => Some("INSTRUCTION_POINTER_INVALID"),
1896            Self::INSTRUCTION_POINTER_FAULT => Some("INSTRUCTION_POINTER_FAULT"),
1897            _ => None,
1898        };
1899        if let Some(x) = name {
1900            f.write_str(x)
1901        } else {
1902            self.0.fmt(f)
1903        }
1904    }
1905}
1906impl fmt::Debug for DeviceFaultVendorBinaryHeaderVersionEXT {
1907    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1908        let name = match *self {
1909            Self::ONE => Some("ONE"),
1910            _ => None,
1911        };
1912        if let Some(x) = name {
1913            f.write_str(x)
1914        } else {
1915            self.0.fmt(f)
1916        }
1917    }
1918}
1919impl fmt::Debug for DeviceGroupPresentModeFlagsKHR {
1920    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1921        const KNOWN: &[(Flags, &str)] = &[
1922            (DeviceGroupPresentModeFlagsKHR::LOCAL.0, "LOCAL"),
1923            (DeviceGroupPresentModeFlagsKHR::REMOTE.0, "REMOTE"),
1924            (DeviceGroupPresentModeFlagsKHR::SUM.0, "SUM"),
1925            (
1926                DeviceGroupPresentModeFlagsKHR::LOCAL_MULTI_DEVICE.0,
1927                "LOCAL_MULTI_DEVICE",
1928            ),
1929        ];
1930        debug_flags(f, KNOWN, self.0)
1931    }
1932}
1933impl fmt::Debug for DeviceMemoryReportEventTypeEXT {
1934    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1935        let name = match *self {
1936            Self::ALLOCATE => Some("ALLOCATE"),
1937            Self::FREE => Some("FREE"),
1938            Self::IMPORT => Some("IMPORT"),
1939            Self::UNIMPORT => Some("UNIMPORT"),
1940            Self::ALLOCATION_FAILED => Some("ALLOCATION_FAILED"),
1941            _ => None,
1942        };
1943        if let Some(x) = name {
1944            f.write_str(x)
1945        } else {
1946            self.0.fmt(f)
1947        }
1948    }
1949}
1950impl fmt::Debug for DeviceMemoryReportFlagsEXT {
1951    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1952        const KNOWN: &[(Flags, &str)] = &[];
1953        debug_flags(f, KNOWN, self.0)
1954    }
1955}
1956impl fmt::Debug for DeviceQueueCreateFlags {
1957    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1958        const KNOWN: &[(Flags, &str)] = &[
1959            (
1960                DeviceQueueCreateFlags::INTERNALLY_SYNCHRONIZED_KHR.0,
1961                "INTERNALLY_SYNCHRONIZED_KHR",
1962            ),
1963            (DeviceQueueCreateFlags::PROTECTED.0, "PROTECTED"),
1964        ];
1965        debug_flags(f, KNOWN, self.0)
1966    }
1967}
1968impl fmt::Debug for DirectDriverLoadingFlagsLUNARG {
1969    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1970        const KNOWN: &[(Flags, &str)] = &[];
1971        debug_flags(f, KNOWN, self.0)
1972    }
1973}
1974impl fmt::Debug for DirectDriverLoadingModeLUNARG {
1975    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1976        let name = match *self {
1977            Self::EXCLUSIVE => Some("EXCLUSIVE"),
1978            Self::INCLUSIVE => Some("INCLUSIVE"),
1979            _ => None,
1980        };
1981        if let Some(x) = name {
1982            f.write_str(x)
1983        } else {
1984            self.0.fmt(f)
1985        }
1986    }
1987}
1988impl fmt::Debug for DirectFBSurfaceCreateFlagsEXT {
1989    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1990        const KNOWN: &[(Flags, &str)] = &[];
1991        debug_flags(f, KNOWN, self.0)
1992    }
1993}
1994impl fmt::Debug for DiscardRectangleModeEXT {
1995    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
1996        let name = match *self {
1997            Self::INCLUSIVE => Some("INCLUSIVE"),
1998            Self::EXCLUSIVE => Some("EXCLUSIVE"),
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 DisplacementMicromapFormatNV {
2009    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2010        let name = match *self {
2011            Self::TYPE_64_TRIANGLES_64_BYTES => Some("TYPE_64_TRIANGLES_64_BYTES"),
2012            Self::TYPE_256_TRIANGLES_128_BYTES => Some("TYPE_256_TRIANGLES_128_BYTES"),
2013            Self::TYPE_1024_TRIANGLES_128_BYTES => Some("TYPE_1024_TRIANGLES_128_BYTES"),
2014            _ => None,
2015        };
2016        if let Some(x) = name {
2017            f.write_str(x)
2018        } else {
2019            self.0.fmt(f)
2020        }
2021    }
2022}
2023impl fmt::Debug for DisplayEventTypeEXT {
2024    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2025        let name = match *self {
2026            Self::FIRST_PIXEL_OUT => Some("FIRST_PIXEL_OUT"),
2027            _ => None,
2028        };
2029        if let Some(x) = name {
2030            f.write_str(x)
2031        } else {
2032            self.0.fmt(f)
2033        }
2034    }
2035}
2036impl fmt::Debug for DisplayModeCreateFlagsKHR {
2037    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2038        const KNOWN: &[(Flags, &str)] = &[];
2039        debug_flags(f, KNOWN, self.0)
2040    }
2041}
2042impl fmt::Debug for DisplayPlaneAlphaFlagsKHR {
2043    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2044        const KNOWN: &[(Flags, &str)] = &[
2045            (DisplayPlaneAlphaFlagsKHR::OPAQUE.0, "OPAQUE"),
2046            (DisplayPlaneAlphaFlagsKHR::GLOBAL.0, "GLOBAL"),
2047            (DisplayPlaneAlphaFlagsKHR::PER_PIXEL.0, "PER_PIXEL"),
2048            (
2049                DisplayPlaneAlphaFlagsKHR::PER_PIXEL_PREMULTIPLIED.0,
2050                "PER_PIXEL_PREMULTIPLIED",
2051            ),
2052        ];
2053        debug_flags(f, KNOWN, self.0)
2054    }
2055}
2056impl fmt::Debug for DisplayPowerStateEXT {
2057    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2058        let name = match *self {
2059            Self::OFF => Some("OFF"),
2060            Self::SUSPEND => Some("SUSPEND"),
2061            Self::ON => Some("ON"),
2062            _ => None,
2063        };
2064        if let Some(x) = name {
2065            f.write_str(x)
2066        } else {
2067            self.0.fmt(f)
2068        }
2069    }
2070}
2071impl fmt::Debug for DisplaySurfaceCreateFlagsKHR {
2072    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2073        const KNOWN: &[(Flags, &str)] = &[];
2074        debug_flags(f, KNOWN, self.0)
2075    }
2076}
2077impl fmt::Debug for DisplaySurfaceStereoTypeNV {
2078    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2079        let name = match *self {
2080            Self::NONE => Some("NONE"),
2081            Self::ONBOARD_DIN => Some("ONBOARD_DIN"),
2082            Self::HDMI_3D => Some("HDMI_3D"),
2083            Self::INBAND_DISPLAYPORT => Some("INBAND_DISPLAYPORT"),
2084            _ => None,
2085        };
2086        if let Some(x) = name {
2087            f.write_str(x)
2088        } else {
2089            self.0.fmt(f)
2090        }
2091    }
2092}
2093impl fmt::Debug for DriverId {
2094    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2095        let name = match *self {
2096            Self::AMD_PROPRIETARY => Some("AMD_PROPRIETARY"),
2097            Self::AMD_OPEN_SOURCE => Some("AMD_OPEN_SOURCE"),
2098            Self::MESA_RADV => Some("MESA_RADV"),
2099            Self::NVIDIA_PROPRIETARY => Some("NVIDIA_PROPRIETARY"),
2100            Self::INTEL_PROPRIETARY_WINDOWS => Some("INTEL_PROPRIETARY_WINDOWS"),
2101            Self::INTEL_OPEN_SOURCE_MESA => Some("INTEL_OPEN_SOURCE_MESA"),
2102            Self::IMAGINATION_PROPRIETARY => Some("IMAGINATION_PROPRIETARY"),
2103            Self::QUALCOMM_PROPRIETARY => Some("QUALCOMM_PROPRIETARY"),
2104            Self::ARM_PROPRIETARY => Some("ARM_PROPRIETARY"),
2105            Self::GOOGLE_SWIFTSHADER => Some("GOOGLE_SWIFTSHADER"),
2106            Self::GGP_PROPRIETARY => Some("GGP_PROPRIETARY"),
2107            Self::BROADCOM_PROPRIETARY => Some("BROADCOM_PROPRIETARY"),
2108            Self::MESA_LLVMPIPE => Some("MESA_LLVMPIPE"),
2109            Self::MOLTENVK => Some("MOLTENVK"),
2110            Self::COREAVI_PROPRIETARY => Some("COREAVI_PROPRIETARY"),
2111            Self::JUICE_PROPRIETARY => Some("JUICE_PROPRIETARY"),
2112            Self::VERISILICON_PROPRIETARY => Some("VERISILICON_PROPRIETARY"),
2113            Self::MESA_TURNIP => Some("MESA_TURNIP"),
2114            Self::MESA_V3DV => Some("MESA_V3DV"),
2115            Self::MESA_PANVK => Some("MESA_PANVK"),
2116            Self::SAMSUNG_PROPRIETARY => Some("SAMSUNG_PROPRIETARY"),
2117            Self::MESA_VENUS => Some("MESA_VENUS"),
2118            Self::MESA_DOZEN => Some("MESA_DOZEN"),
2119            Self::MESA_NVK => Some("MESA_NVK"),
2120            Self::IMAGINATION_OPEN_SOURCE_MESA => Some("IMAGINATION_OPEN_SOURCE_MESA"),
2121            Self::MESA_HONEYKRISP => Some("MESA_HONEYKRISP"),
2122            Self::VULKAN_SC_EMULATION_ON_VULKAN => Some("VULKAN_SC_EMULATION_ON_VULKAN"),
2123            Self::MESA_KOSMICKRISP => Some("MESA_KOSMICKRISP"),
2124            _ => None,
2125        };
2126        if let Some(x) = name {
2127            f.write_str(x)
2128        } else {
2129            self.0.fmt(f)
2130        }
2131    }
2132}
2133impl fmt::Debug for DynamicState {
2134    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2135        let name = match *self {
2136            Self::VIEWPORT => Some("VIEWPORT"),
2137            Self::SCISSOR => Some("SCISSOR"),
2138            Self::LINE_WIDTH => Some("LINE_WIDTH"),
2139            Self::DEPTH_BIAS => Some("DEPTH_BIAS"),
2140            Self::BLEND_CONSTANTS => Some("BLEND_CONSTANTS"),
2141            Self::DEPTH_BOUNDS => Some("DEPTH_BOUNDS"),
2142            Self::STENCIL_COMPARE_MASK => Some("STENCIL_COMPARE_MASK"),
2143            Self::STENCIL_WRITE_MASK => Some("STENCIL_WRITE_MASK"),
2144            Self::STENCIL_REFERENCE => Some("STENCIL_REFERENCE"),
2145            Self::VIEWPORT_W_SCALING_NV => Some("VIEWPORT_W_SCALING_NV"),
2146            Self::DISCARD_RECTANGLE_EXT => Some("DISCARD_RECTANGLE_EXT"),
2147            Self::DISCARD_RECTANGLE_ENABLE_EXT => Some("DISCARD_RECTANGLE_ENABLE_EXT"),
2148            Self::DISCARD_RECTANGLE_MODE_EXT => Some("DISCARD_RECTANGLE_MODE_EXT"),
2149            Self::SAMPLE_LOCATIONS_EXT => Some("SAMPLE_LOCATIONS_EXT"),
2150            Self::RAY_TRACING_PIPELINE_STACK_SIZE_KHR => {
2151                Some("RAY_TRACING_PIPELINE_STACK_SIZE_KHR")
2152            }
2153            Self::VIEWPORT_SHADING_RATE_PALETTE_NV => Some("VIEWPORT_SHADING_RATE_PALETTE_NV"),
2154            Self::VIEWPORT_COARSE_SAMPLE_ORDER_NV => Some("VIEWPORT_COARSE_SAMPLE_ORDER_NV"),
2155            Self::EXCLUSIVE_SCISSOR_ENABLE_NV => Some("EXCLUSIVE_SCISSOR_ENABLE_NV"),
2156            Self::EXCLUSIVE_SCISSOR_NV => Some("EXCLUSIVE_SCISSOR_NV"),
2157            Self::FRAGMENT_SHADING_RATE_KHR => Some("FRAGMENT_SHADING_RATE_KHR"),
2158            Self::VERTEX_INPUT_EXT => Some("VERTEX_INPUT_EXT"),
2159            Self::PATCH_CONTROL_POINTS_EXT => Some("PATCH_CONTROL_POINTS_EXT"),
2160            Self::LOGIC_OP_EXT => Some("LOGIC_OP_EXT"),
2161            Self::COLOR_WRITE_ENABLE_EXT => Some("COLOR_WRITE_ENABLE_EXT"),
2162            Self::DEPTH_CLAMP_ENABLE_EXT => Some("DEPTH_CLAMP_ENABLE_EXT"),
2163            Self::POLYGON_MODE_EXT => Some("POLYGON_MODE_EXT"),
2164            Self::RASTERIZATION_SAMPLES_EXT => Some("RASTERIZATION_SAMPLES_EXT"),
2165            Self::SAMPLE_MASK_EXT => Some("SAMPLE_MASK_EXT"),
2166            Self::ALPHA_TO_COVERAGE_ENABLE_EXT => Some("ALPHA_TO_COVERAGE_ENABLE_EXT"),
2167            Self::ALPHA_TO_ONE_ENABLE_EXT => Some("ALPHA_TO_ONE_ENABLE_EXT"),
2168            Self::LOGIC_OP_ENABLE_EXT => Some("LOGIC_OP_ENABLE_EXT"),
2169            Self::COLOR_BLEND_ENABLE_EXT => Some("COLOR_BLEND_ENABLE_EXT"),
2170            Self::COLOR_BLEND_EQUATION_EXT => Some("COLOR_BLEND_EQUATION_EXT"),
2171            Self::COLOR_WRITE_MASK_EXT => Some("COLOR_WRITE_MASK_EXT"),
2172            Self::TESSELLATION_DOMAIN_ORIGIN_EXT => Some("TESSELLATION_DOMAIN_ORIGIN_EXT"),
2173            Self::RASTERIZATION_STREAM_EXT => Some("RASTERIZATION_STREAM_EXT"),
2174            Self::CONSERVATIVE_RASTERIZATION_MODE_EXT => {
2175                Some("CONSERVATIVE_RASTERIZATION_MODE_EXT")
2176            }
2177            Self::EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT => {
2178                Some("EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT")
2179            }
2180            Self::DEPTH_CLIP_ENABLE_EXT => Some("DEPTH_CLIP_ENABLE_EXT"),
2181            Self::SAMPLE_LOCATIONS_ENABLE_EXT => Some("SAMPLE_LOCATIONS_ENABLE_EXT"),
2182            Self::COLOR_BLEND_ADVANCED_EXT => Some("COLOR_BLEND_ADVANCED_EXT"),
2183            Self::PROVOKING_VERTEX_MODE_EXT => Some("PROVOKING_VERTEX_MODE_EXT"),
2184            Self::LINE_RASTERIZATION_MODE_EXT => Some("LINE_RASTERIZATION_MODE_EXT"),
2185            Self::LINE_STIPPLE_ENABLE_EXT => Some("LINE_STIPPLE_ENABLE_EXT"),
2186            Self::DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT => Some("DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT"),
2187            Self::VIEWPORT_W_SCALING_ENABLE_NV => Some("VIEWPORT_W_SCALING_ENABLE_NV"),
2188            Self::VIEWPORT_SWIZZLE_NV => Some("VIEWPORT_SWIZZLE_NV"),
2189            Self::COVERAGE_TO_COLOR_ENABLE_NV => Some("COVERAGE_TO_COLOR_ENABLE_NV"),
2190            Self::COVERAGE_TO_COLOR_LOCATION_NV => Some("COVERAGE_TO_COLOR_LOCATION_NV"),
2191            Self::COVERAGE_MODULATION_MODE_NV => Some("COVERAGE_MODULATION_MODE_NV"),
2192            Self::COVERAGE_MODULATION_TABLE_ENABLE_NV => {
2193                Some("COVERAGE_MODULATION_TABLE_ENABLE_NV")
2194            }
2195            Self::COVERAGE_MODULATION_TABLE_NV => Some("COVERAGE_MODULATION_TABLE_NV"),
2196            Self::SHADING_RATE_IMAGE_ENABLE_NV => Some("SHADING_RATE_IMAGE_ENABLE_NV"),
2197            Self::REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV => {
2198                Some("REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV")
2199            }
2200            Self::COVERAGE_REDUCTION_MODE_NV => Some("COVERAGE_REDUCTION_MODE_NV"),
2201            Self::ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT => {
2202                Some("ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT")
2203            }
2204            Self::DEPTH_CLAMP_RANGE_EXT => Some("DEPTH_CLAMP_RANGE_EXT"),
2205            Self::CULL_MODE => Some("CULL_MODE"),
2206            Self::FRONT_FACE => Some("FRONT_FACE"),
2207            Self::PRIMITIVE_TOPOLOGY => Some("PRIMITIVE_TOPOLOGY"),
2208            Self::VIEWPORT_WITH_COUNT => Some("VIEWPORT_WITH_COUNT"),
2209            Self::SCISSOR_WITH_COUNT => Some("SCISSOR_WITH_COUNT"),
2210            Self::VERTEX_INPUT_BINDING_STRIDE => Some("VERTEX_INPUT_BINDING_STRIDE"),
2211            Self::DEPTH_TEST_ENABLE => Some("DEPTH_TEST_ENABLE"),
2212            Self::DEPTH_WRITE_ENABLE => Some("DEPTH_WRITE_ENABLE"),
2213            Self::DEPTH_COMPARE_OP => Some("DEPTH_COMPARE_OP"),
2214            Self::DEPTH_BOUNDS_TEST_ENABLE => Some("DEPTH_BOUNDS_TEST_ENABLE"),
2215            Self::STENCIL_TEST_ENABLE => Some("STENCIL_TEST_ENABLE"),
2216            Self::STENCIL_OP => Some("STENCIL_OP"),
2217            Self::RASTERIZER_DISCARD_ENABLE => Some("RASTERIZER_DISCARD_ENABLE"),
2218            Self::DEPTH_BIAS_ENABLE => Some("DEPTH_BIAS_ENABLE"),
2219            Self::PRIMITIVE_RESTART_ENABLE => Some("PRIMITIVE_RESTART_ENABLE"),
2220            Self::LINE_STIPPLE => Some("LINE_STIPPLE"),
2221            _ => None,
2222        };
2223        if let Some(x) = name {
2224            f.write_str(x)
2225        } else {
2226            self.0.fmt(f)
2227        }
2228    }
2229}
2230impl fmt::Debug for EventCreateFlags {
2231    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2232        const KNOWN: &[(Flags, &str)] = &[(EventCreateFlags::DEVICE_ONLY.0, "DEVICE_ONLY")];
2233        debug_flags(f, KNOWN, self.0)
2234    }
2235}
2236impl fmt::Debug for ExportMetalObjectTypeFlagsEXT {
2237    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2238        const KNOWN: &[(Flags, &str)] = &[
2239            (
2240                ExportMetalObjectTypeFlagsEXT::METAL_DEVICE.0,
2241                "METAL_DEVICE",
2242            ),
2243            (
2244                ExportMetalObjectTypeFlagsEXT::METAL_COMMAND_QUEUE.0,
2245                "METAL_COMMAND_QUEUE",
2246            ),
2247            (
2248                ExportMetalObjectTypeFlagsEXT::METAL_BUFFER.0,
2249                "METAL_BUFFER",
2250            ),
2251            (
2252                ExportMetalObjectTypeFlagsEXT::METAL_TEXTURE.0,
2253                "METAL_TEXTURE",
2254            ),
2255            (
2256                ExportMetalObjectTypeFlagsEXT::METAL_IOSURFACE.0,
2257                "METAL_IOSURFACE",
2258            ),
2259            (
2260                ExportMetalObjectTypeFlagsEXT::METAL_SHARED_EVENT.0,
2261                "METAL_SHARED_EVENT",
2262            ),
2263        ];
2264        debug_flags(f, KNOWN, self.0)
2265    }
2266}
2267impl fmt::Debug for ExternalFenceFeatureFlags {
2268    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2269        const KNOWN: &[(Flags, &str)] = &[
2270            (ExternalFenceFeatureFlags::EXPORTABLE.0, "EXPORTABLE"),
2271            (ExternalFenceFeatureFlags::IMPORTABLE.0, "IMPORTABLE"),
2272        ];
2273        debug_flags(f, KNOWN, self.0)
2274    }
2275}
2276impl fmt::Debug for ExternalFenceHandleTypeFlags {
2277    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2278        const KNOWN: &[(Flags, &str)] = &[
2279            (ExternalFenceHandleTypeFlags::OPAQUE_FD.0, "OPAQUE_FD"),
2280            (ExternalFenceHandleTypeFlags::OPAQUE_WIN32.0, "OPAQUE_WIN32"),
2281            (
2282                ExternalFenceHandleTypeFlags::OPAQUE_WIN32_KMT.0,
2283                "OPAQUE_WIN32_KMT",
2284            ),
2285            (ExternalFenceHandleTypeFlags::SYNC_FD.0, "SYNC_FD"),
2286        ];
2287        debug_flags(f, KNOWN, self.0)
2288    }
2289}
2290impl fmt::Debug for ExternalMemoryFeatureFlags {
2291    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2292        const KNOWN: &[(Flags, &str)] = &[
2293            (
2294                ExternalMemoryFeatureFlags::DEDICATED_ONLY.0,
2295                "DEDICATED_ONLY",
2296            ),
2297            (ExternalMemoryFeatureFlags::EXPORTABLE.0, "EXPORTABLE"),
2298            (ExternalMemoryFeatureFlags::IMPORTABLE.0, "IMPORTABLE"),
2299        ];
2300        debug_flags(f, KNOWN, self.0)
2301    }
2302}
2303impl fmt::Debug for ExternalMemoryFeatureFlagsNV {
2304    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2305        const KNOWN: &[(Flags, &str)] = &[
2306            (
2307                ExternalMemoryFeatureFlagsNV::DEDICATED_ONLY.0,
2308                "DEDICATED_ONLY",
2309            ),
2310            (ExternalMemoryFeatureFlagsNV::EXPORTABLE.0, "EXPORTABLE"),
2311            (ExternalMemoryFeatureFlagsNV::IMPORTABLE.0, "IMPORTABLE"),
2312        ];
2313        debug_flags(f, KNOWN, self.0)
2314    }
2315}
2316impl fmt::Debug for ExternalMemoryHandleTypeFlags {
2317    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2318        const KNOWN: &[(Flags, &str)] = &[
2319            (ExternalMemoryHandleTypeFlags::OPAQUE_FD.0, "OPAQUE_FD"),
2320            (
2321                ExternalMemoryHandleTypeFlags::OPAQUE_WIN32.0,
2322                "OPAQUE_WIN32",
2323            ),
2324            (
2325                ExternalMemoryHandleTypeFlags::OPAQUE_WIN32_KMT.0,
2326                "OPAQUE_WIN32_KMT",
2327            ),
2328            (
2329                ExternalMemoryHandleTypeFlags::D3D11_TEXTURE.0,
2330                "D3D11_TEXTURE",
2331            ),
2332            (
2333                ExternalMemoryHandleTypeFlags::D3D11_TEXTURE_KMT.0,
2334                "D3D11_TEXTURE_KMT",
2335            ),
2336            (ExternalMemoryHandleTypeFlags::D3D12_HEAP.0, "D3D12_HEAP"),
2337            (
2338                ExternalMemoryHandleTypeFlags::D3D12_RESOURCE.0,
2339                "D3D12_RESOURCE",
2340            ),
2341            (ExternalMemoryHandleTypeFlags::DMA_BUF_EXT.0, "DMA_BUF_EXT"),
2342            (
2343                ExternalMemoryHandleTypeFlags::ANDROID_HARDWARE_BUFFER_ANDROID.0,
2344                "ANDROID_HARDWARE_BUFFER_ANDROID",
2345            ),
2346            (
2347                ExternalMemoryHandleTypeFlags::HOST_ALLOCATION_EXT.0,
2348                "HOST_ALLOCATION_EXT",
2349            ),
2350            (
2351                ExternalMemoryHandleTypeFlags::HOST_MAPPED_FOREIGN_MEMORY_EXT.0,
2352                "HOST_MAPPED_FOREIGN_MEMORY_EXT",
2353            ),
2354            (
2355                ExternalMemoryHandleTypeFlags::ZIRCON_VMO_FUCHSIA.0,
2356                "ZIRCON_VMO_FUCHSIA",
2357            ),
2358            (
2359                ExternalMemoryHandleTypeFlags::RDMA_ADDRESS_NV.0,
2360                "RDMA_ADDRESS_NV",
2361            ),
2362            (
2363                ExternalMemoryHandleTypeFlags::OH_NATIVE_BUFFER_OHOS.0,
2364                "OH_NATIVE_BUFFER_OHOS",
2365            ),
2366            (
2367                ExternalMemoryHandleTypeFlags::SCREEN_BUFFER_QNX.0,
2368                "SCREEN_BUFFER_QNX",
2369            ),
2370            (
2371                ExternalMemoryHandleTypeFlags::MTLBUFFER_EXT.0,
2372                "MTLBUFFER_EXT",
2373            ),
2374            (
2375                ExternalMemoryHandleTypeFlags::MTLTEXTURE_EXT.0,
2376                "MTLTEXTURE_EXT",
2377            ),
2378            (ExternalMemoryHandleTypeFlags::MTLHEAP_EXT.0, "MTLHEAP_EXT"),
2379        ];
2380        debug_flags(f, KNOWN, self.0)
2381    }
2382}
2383impl fmt::Debug for ExternalMemoryHandleTypeFlagsNV {
2384    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2385        const KNOWN: &[(Flags, &str)] = &[
2386            (
2387                ExternalMemoryHandleTypeFlagsNV::OPAQUE_WIN32.0,
2388                "OPAQUE_WIN32",
2389            ),
2390            (
2391                ExternalMemoryHandleTypeFlagsNV::OPAQUE_WIN32_KMT.0,
2392                "OPAQUE_WIN32_KMT",
2393            ),
2394            (
2395                ExternalMemoryHandleTypeFlagsNV::D3D11_IMAGE.0,
2396                "D3D11_IMAGE",
2397            ),
2398            (
2399                ExternalMemoryHandleTypeFlagsNV::D3D11_IMAGE_KMT.0,
2400                "D3D11_IMAGE_KMT",
2401            ),
2402        ];
2403        debug_flags(f, KNOWN, self.0)
2404    }
2405}
2406impl fmt::Debug for ExternalSemaphoreFeatureFlags {
2407    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2408        const KNOWN: &[(Flags, &str)] = &[
2409            (ExternalSemaphoreFeatureFlags::EXPORTABLE.0, "EXPORTABLE"),
2410            (ExternalSemaphoreFeatureFlags::IMPORTABLE.0, "IMPORTABLE"),
2411        ];
2412        debug_flags(f, KNOWN, self.0)
2413    }
2414}
2415impl fmt::Debug for ExternalSemaphoreHandleTypeFlags {
2416    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2417        const KNOWN: &[(Flags, &str)] = &[
2418            (ExternalSemaphoreHandleTypeFlags::OPAQUE_FD.0, "OPAQUE_FD"),
2419            (
2420                ExternalSemaphoreHandleTypeFlags::OPAQUE_WIN32.0,
2421                "OPAQUE_WIN32",
2422            ),
2423            (
2424                ExternalSemaphoreHandleTypeFlags::OPAQUE_WIN32_KMT.0,
2425                "OPAQUE_WIN32_KMT",
2426            ),
2427            (
2428                ExternalSemaphoreHandleTypeFlags::D3D12_FENCE.0,
2429                "D3D12_FENCE",
2430            ),
2431            (ExternalSemaphoreHandleTypeFlags::SYNC_FD.0, "SYNC_FD"),
2432            (
2433                ExternalSemaphoreHandleTypeFlags::ZIRCON_EVENT_FUCHSIA.0,
2434                "ZIRCON_EVENT_FUCHSIA",
2435            ),
2436        ];
2437        debug_flags(f, KNOWN, self.0)
2438    }
2439}
2440impl fmt::Debug for FenceCreateFlags {
2441    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2442        const KNOWN: &[(Flags, &str)] = &[(FenceCreateFlags::SIGNALED.0, "SIGNALED")];
2443        debug_flags(f, KNOWN, self.0)
2444    }
2445}
2446impl fmt::Debug for FenceImportFlags {
2447    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2448        const KNOWN: &[(Flags, &str)] = &[(FenceImportFlags::TEMPORARY.0, "TEMPORARY")];
2449        debug_flags(f, KNOWN, self.0)
2450    }
2451}
2452impl fmt::Debug for Filter {
2453    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2454        let name = match *self {
2455            Self::NEAREST => Some("NEAREST"),
2456            Self::LINEAR => Some("LINEAR"),
2457            Self::CUBIC_EXT => Some("CUBIC_EXT"),
2458            _ => None,
2459        };
2460        if let Some(x) = name {
2461            f.write_str(x)
2462        } else {
2463            self.0.fmt(f)
2464        }
2465    }
2466}
2467impl fmt::Debug for Format {
2468    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2469        let name = match *self {
2470            Self::UNDEFINED => Some("UNDEFINED"),
2471            Self::R4G4_UNORM_PACK8 => Some("R4G4_UNORM_PACK8"),
2472            Self::R4G4B4A4_UNORM_PACK16 => Some("R4G4B4A4_UNORM_PACK16"),
2473            Self::B4G4R4A4_UNORM_PACK16 => Some("B4G4R4A4_UNORM_PACK16"),
2474            Self::R5G6B5_UNORM_PACK16 => Some("R5G6B5_UNORM_PACK16"),
2475            Self::B5G6R5_UNORM_PACK16 => Some("B5G6R5_UNORM_PACK16"),
2476            Self::R5G5B5A1_UNORM_PACK16 => Some("R5G5B5A1_UNORM_PACK16"),
2477            Self::B5G5R5A1_UNORM_PACK16 => Some("B5G5R5A1_UNORM_PACK16"),
2478            Self::A1R5G5B5_UNORM_PACK16 => Some("A1R5G5B5_UNORM_PACK16"),
2479            Self::R8_UNORM => Some("R8_UNORM"),
2480            Self::R8_SNORM => Some("R8_SNORM"),
2481            Self::R8_USCALED => Some("R8_USCALED"),
2482            Self::R8_SSCALED => Some("R8_SSCALED"),
2483            Self::R8_UINT => Some("R8_UINT"),
2484            Self::R8_SINT => Some("R8_SINT"),
2485            Self::R8_SRGB => Some("R8_SRGB"),
2486            Self::R8G8_UNORM => Some("R8G8_UNORM"),
2487            Self::R8G8_SNORM => Some("R8G8_SNORM"),
2488            Self::R8G8_USCALED => Some("R8G8_USCALED"),
2489            Self::R8G8_SSCALED => Some("R8G8_SSCALED"),
2490            Self::R8G8_UINT => Some("R8G8_UINT"),
2491            Self::R8G8_SINT => Some("R8G8_SINT"),
2492            Self::R8G8_SRGB => Some("R8G8_SRGB"),
2493            Self::R8G8B8_UNORM => Some("R8G8B8_UNORM"),
2494            Self::R8G8B8_SNORM => Some("R8G8B8_SNORM"),
2495            Self::R8G8B8_USCALED => Some("R8G8B8_USCALED"),
2496            Self::R8G8B8_SSCALED => Some("R8G8B8_SSCALED"),
2497            Self::R8G8B8_UINT => Some("R8G8B8_UINT"),
2498            Self::R8G8B8_SINT => Some("R8G8B8_SINT"),
2499            Self::R8G8B8_SRGB => Some("R8G8B8_SRGB"),
2500            Self::B8G8R8_UNORM => Some("B8G8R8_UNORM"),
2501            Self::B8G8R8_SNORM => Some("B8G8R8_SNORM"),
2502            Self::B8G8R8_USCALED => Some("B8G8R8_USCALED"),
2503            Self::B8G8R8_SSCALED => Some("B8G8R8_SSCALED"),
2504            Self::B8G8R8_UINT => Some("B8G8R8_UINT"),
2505            Self::B8G8R8_SINT => Some("B8G8R8_SINT"),
2506            Self::B8G8R8_SRGB => Some("B8G8R8_SRGB"),
2507            Self::R8G8B8A8_UNORM => Some("R8G8B8A8_UNORM"),
2508            Self::R8G8B8A8_SNORM => Some("R8G8B8A8_SNORM"),
2509            Self::R8G8B8A8_USCALED => Some("R8G8B8A8_USCALED"),
2510            Self::R8G8B8A8_SSCALED => Some("R8G8B8A8_SSCALED"),
2511            Self::R8G8B8A8_UINT => Some("R8G8B8A8_UINT"),
2512            Self::R8G8B8A8_SINT => Some("R8G8B8A8_SINT"),
2513            Self::R8G8B8A8_SRGB => Some("R8G8B8A8_SRGB"),
2514            Self::B8G8R8A8_UNORM => Some("B8G8R8A8_UNORM"),
2515            Self::B8G8R8A8_SNORM => Some("B8G8R8A8_SNORM"),
2516            Self::B8G8R8A8_USCALED => Some("B8G8R8A8_USCALED"),
2517            Self::B8G8R8A8_SSCALED => Some("B8G8R8A8_SSCALED"),
2518            Self::B8G8R8A8_UINT => Some("B8G8R8A8_UINT"),
2519            Self::B8G8R8A8_SINT => Some("B8G8R8A8_SINT"),
2520            Self::B8G8R8A8_SRGB => Some("B8G8R8A8_SRGB"),
2521            Self::A8B8G8R8_UNORM_PACK32 => Some("A8B8G8R8_UNORM_PACK32"),
2522            Self::A8B8G8R8_SNORM_PACK32 => Some("A8B8G8R8_SNORM_PACK32"),
2523            Self::A8B8G8R8_USCALED_PACK32 => Some("A8B8G8R8_USCALED_PACK32"),
2524            Self::A8B8G8R8_SSCALED_PACK32 => Some("A8B8G8R8_SSCALED_PACK32"),
2525            Self::A8B8G8R8_UINT_PACK32 => Some("A8B8G8R8_UINT_PACK32"),
2526            Self::A8B8G8R8_SINT_PACK32 => Some("A8B8G8R8_SINT_PACK32"),
2527            Self::A8B8G8R8_SRGB_PACK32 => Some("A8B8G8R8_SRGB_PACK32"),
2528            Self::A2R10G10B10_UNORM_PACK32 => Some("A2R10G10B10_UNORM_PACK32"),
2529            Self::A2R10G10B10_SNORM_PACK32 => Some("A2R10G10B10_SNORM_PACK32"),
2530            Self::A2R10G10B10_USCALED_PACK32 => Some("A2R10G10B10_USCALED_PACK32"),
2531            Self::A2R10G10B10_SSCALED_PACK32 => Some("A2R10G10B10_SSCALED_PACK32"),
2532            Self::A2R10G10B10_UINT_PACK32 => Some("A2R10G10B10_UINT_PACK32"),
2533            Self::A2R10G10B10_SINT_PACK32 => Some("A2R10G10B10_SINT_PACK32"),
2534            Self::A2B10G10R10_UNORM_PACK32 => Some("A2B10G10R10_UNORM_PACK32"),
2535            Self::A2B10G10R10_SNORM_PACK32 => Some("A2B10G10R10_SNORM_PACK32"),
2536            Self::A2B10G10R10_USCALED_PACK32 => Some("A2B10G10R10_USCALED_PACK32"),
2537            Self::A2B10G10R10_SSCALED_PACK32 => Some("A2B10G10R10_SSCALED_PACK32"),
2538            Self::A2B10G10R10_UINT_PACK32 => Some("A2B10G10R10_UINT_PACK32"),
2539            Self::A2B10G10R10_SINT_PACK32 => Some("A2B10G10R10_SINT_PACK32"),
2540            Self::R16_UNORM => Some("R16_UNORM"),
2541            Self::R16_SNORM => Some("R16_SNORM"),
2542            Self::R16_USCALED => Some("R16_USCALED"),
2543            Self::R16_SSCALED => Some("R16_SSCALED"),
2544            Self::R16_UINT => Some("R16_UINT"),
2545            Self::R16_SINT => Some("R16_SINT"),
2546            Self::R16_SFLOAT => Some("R16_SFLOAT"),
2547            Self::R16G16_UNORM => Some("R16G16_UNORM"),
2548            Self::R16G16_SNORM => Some("R16G16_SNORM"),
2549            Self::R16G16_USCALED => Some("R16G16_USCALED"),
2550            Self::R16G16_SSCALED => Some("R16G16_SSCALED"),
2551            Self::R16G16_UINT => Some("R16G16_UINT"),
2552            Self::R16G16_SINT => Some("R16G16_SINT"),
2553            Self::R16G16_SFLOAT => Some("R16G16_SFLOAT"),
2554            Self::R16G16B16_UNORM => Some("R16G16B16_UNORM"),
2555            Self::R16G16B16_SNORM => Some("R16G16B16_SNORM"),
2556            Self::R16G16B16_USCALED => Some("R16G16B16_USCALED"),
2557            Self::R16G16B16_SSCALED => Some("R16G16B16_SSCALED"),
2558            Self::R16G16B16_UINT => Some("R16G16B16_UINT"),
2559            Self::R16G16B16_SINT => Some("R16G16B16_SINT"),
2560            Self::R16G16B16_SFLOAT => Some("R16G16B16_SFLOAT"),
2561            Self::R16G16B16A16_UNORM => Some("R16G16B16A16_UNORM"),
2562            Self::R16G16B16A16_SNORM => Some("R16G16B16A16_SNORM"),
2563            Self::R16G16B16A16_USCALED => Some("R16G16B16A16_USCALED"),
2564            Self::R16G16B16A16_SSCALED => Some("R16G16B16A16_SSCALED"),
2565            Self::R16G16B16A16_UINT => Some("R16G16B16A16_UINT"),
2566            Self::R16G16B16A16_SINT => Some("R16G16B16A16_SINT"),
2567            Self::R16G16B16A16_SFLOAT => Some("R16G16B16A16_SFLOAT"),
2568            Self::R32_UINT => Some("R32_UINT"),
2569            Self::R32_SINT => Some("R32_SINT"),
2570            Self::R32_SFLOAT => Some("R32_SFLOAT"),
2571            Self::R32G32_UINT => Some("R32G32_UINT"),
2572            Self::R32G32_SINT => Some("R32G32_SINT"),
2573            Self::R32G32_SFLOAT => Some("R32G32_SFLOAT"),
2574            Self::R32G32B32_UINT => Some("R32G32B32_UINT"),
2575            Self::R32G32B32_SINT => Some("R32G32B32_SINT"),
2576            Self::R32G32B32_SFLOAT => Some("R32G32B32_SFLOAT"),
2577            Self::R32G32B32A32_UINT => Some("R32G32B32A32_UINT"),
2578            Self::R32G32B32A32_SINT => Some("R32G32B32A32_SINT"),
2579            Self::R32G32B32A32_SFLOAT => Some("R32G32B32A32_SFLOAT"),
2580            Self::R64_UINT => Some("R64_UINT"),
2581            Self::R64_SINT => Some("R64_SINT"),
2582            Self::R64_SFLOAT => Some("R64_SFLOAT"),
2583            Self::R64G64_UINT => Some("R64G64_UINT"),
2584            Self::R64G64_SINT => Some("R64G64_SINT"),
2585            Self::R64G64_SFLOAT => Some("R64G64_SFLOAT"),
2586            Self::R64G64B64_UINT => Some("R64G64B64_UINT"),
2587            Self::R64G64B64_SINT => Some("R64G64B64_SINT"),
2588            Self::R64G64B64_SFLOAT => Some("R64G64B64_SFLOAT"),
2589            Self::R64G64B64A64_UINT => Some("R64G64B64A64_UINT"),
2590            Self::R64G64B64A64_SINT => Some("R64G64B64A64_SINT"),
2591            Self::R64G64B64A64_SFLOAT => Some("R64G64B64A64_SFLOAT"),
2592            Self::B10G11R11_UFLOAT_PACK32 => Some("B10G11R11_UFLOAT_PACK32"),
2593            Self::E5B9G9R9_UFLOAT_PACK32 => Some("E5B9G9R9_UFLOAT_PACK32"),
2594            Self::D16_UNORM => Some("D16_UNORM"),
2595            Self::X8_D24_UNORM_PACK32 => Some("X8_D24_UNORM_PACK32"),
2596            Self::D32_SFLOAT => Some("D32_SFLOAT"),
2597            Self::S8_UINT => Some("S8_UINT"),
2598            Self::D16_UNORM_S8_UINT => Some("D16_UNORM_S8_UINT"),
2599            Self::D24_UNORM_S8_UINT => Some("D24_UNORM_S8_UINT"),
2600            Self::D32_SFLOAT_S8_UINT => Some("D32_SFLOAT_S8_UINT"),
2601            Self::BC1_RGB_UNORM_BLOCK => Some("BC1_RGB_UNORM_BLOCK"),
2602            Self::BC1_RGB_SRGB_BLOCK => Some("BC1_RGB_SRGB_BLOCK"),
2603            Self::BC1_RGBA_UNORM_BLOCK => Some("BC1_RGBA_UNORM_BLOCK"),
2604            Self::BC1_RGBA_SRGB_BLOCK => Some("BC1_RGBA_SRGB_BLOCK"),
2605            Self::BC2_UNORM_BLOCK => Some("BC2_UNORM_BLOCK"),
2606            Self::BC2_SRGB_BLOCK => Some("BC2_SRGB_BLOCK"),
2607            Self::BC3_UNORM_BLOCK => Some("BC3_UNORM_BLOCK"),
2608            Self::BC3_SRGB_BLOCK => Some("BC3_SRGB_BLOCK"),
2609            Self::BC4_UNORM_BLOCK => Some("BC4_UNORM_BLOCK"),
2610            Self::BC4_SNORM_BLOCK => Some("BC4_SNORM_BLOCK"),
2611            Self::BC5_UNORM_BLOCK => Some("BC5_UNORM_BLOCK"),
2612            Self::BC5_SNORM_BLOCK => Some("BC5_SNORM_BLOCK"),
2613            Self::BC6H_UFLOAT_BLOCK => Some("BC6H_UFLOAT_BLOCK"),
2614            Self::BC6H_SFLOAT_BLOCK => Some("BC6H_SFLOAT_BLOCK"),
2615            Self::BC7_UNORM_BLOCK => Some("BC7_UNORM_BLOCK"),
2616            Self::BC7_SRGB_BLOCK => Some("BC7_SRGB_BLOCK"),
2617            Self::ETC2_R8G8B8_UNORM_BLOCK => Some("ETC2_R8G8B8_UNORM_BLOCK"),
2618            Self::ETC2_R8G8B8_SRGB_BLOCK => Some("ETC2_R8G8B8_SRGB_BLOCK"),
2619            Self::ETC2_R8G8B8A1_UNORM_BLOCK => Some("ETC2_R8G8B8A1_UNORM_BLOCK"),
2620            Self::ETC2_R8G8B8A1_SRGB_BLOCK => Some("ETC2_R8G8B8A1_SRGB_BLOCK"),
2621            Self::ETC2_R8G8B8A8_UNORM_BLOCK => Some("ETC2_R8G8B8A8_UNORM_BLOCK"),
2622            Self::ETC2_R8G8B8A8_SRGB_BLOCK => Some("ETC2_R8G8B8A8_SRGB_BLOCK"),
2623            Self::EAC_R11_UNORM_BLOCK => Some("EAC_R11_UNORM_BLOCK"),
2624            Self::EAC_R11_SNORM_BLOCK => Some("EAC_R11_SNORM_BLOCK"),
2625            Self::EAC_R11G11_UNORM_BLOCK => Some("EAC_R11G11_UNORM_BLOCK"),
2626            Self::EAC_R11G11_SNORM_BLOCK => Some("EAC_R11G11_SNORM_BLOCK"),
2627            Self::ASTC_4X4_UNORM_BLOCK => Some("ASTC_4X4_UNORM_BLOCK"),
2628            Self::ASTC_4X4_SRGB_BLOCK => Some("ASTC_4X4_SRGB_BLOCK"),
2629            Self::ASTC_5X4_UNORM_BLOCK => Some("ASTC_5X4_UNORM_BLOCK"),
2630            Self::ASTC_5X4_SRGB_BLOCK => Some("ASTC_5X4_SRGB_BLOCK"),
2631            Self::ASTC_5X5_UNORM_BLOCK => Some("ASTC_5X5_UNORM_BLOCK"),
2632            Self::ASTC_5X5_SRGB_BLOCK => Some("ASTC_5X5_SRGB_BLOCK"),
2633            Self::ASTC_6X5_UNORM_BLOCK => Some("ASTC_6X5_UNORM_BLOCK"),
2634            Self::ASTC_6X5_SRGB_BLOCK => Some("ASTC_6X5_SRGB_BLOCK"),
2635            Self::ASTC_6X6_UNORM_BLOCK => Some("ASTC_6X6_UNORM_BLOCK"),
2636            Self::ASTC_6X6_SRGB_BLOCK => Some("ASTC_6X6_SRGB_BLOCK"),
2637            Self::ASTC_8X5_UNORM_BLOCK => Some("ASTC_8X5_UNORM_BLOCK"),
2638            Self::ASTC_8X5_SRGB_BLOCK => Some("ASTC_8X5_SRGB_BLOCK"),
2639            Self::ASTC_8X6_UNORM_BLOCK => Some("ASTC_8X6_UNORM_BLOCK"),
2640            Self::ASTC_8X6_SRGB_BLOCK => Some("ASTC_8X6_SRGB_BLOCK"),
2641            Self::ASTC_8X8_UNORM_BLOCK => Some("ASTC_8X8_UNORM_BLOCK"),
2642            Self::ASTC_8X8_SRGB_BLOCK => Some("ASTC_8X8_SRGB_BLOCK"),
2643            Self::ASTC_10X5_UNORM_BLOCK => Some("ASTC_10X5_UNORM_BLOCK"),
2644            Self::ASTC_10X5_SRGB_BLOCK => Some("ASTC_10X5_SRGB_BLOCK"),
2645            Self::ASTC_10X6_UNORM_BLOCK => Some("ASTC_10X6_UNORM_BLOCK"),
2646            Self::ASTC_10X6_SRGB_BLOCK => Some("ASTC_10X6_SRGB_BLOCK"),
2647            Self::ASTC_10X8_UNORM_BLOCK => Some("ASTC_10X8_UNORM_BLOCK"),
2648            Self::ASTC_10X8_SRGB_BLOCK => Some("ASTC_10X8_SRGB_BLOCK"),
2649            Self::ASTC_10X10_UNORM_BLOCK => Some("ASTC_10X10_UNORM_BLOCK"),
2650            Self::ASTC_10X10_SRGB_BLOCK => Some("ASTC_10X10_SRGB_BLOCK"),
2651            Self::ASTC_12X10_UNORM_BLOCK => Some("ASTC_12X10_UNORM_BLOCK"),
2652            Self::ASTC_12X10_SRGB_BLOCK => Some("ASTC_12X10_SRGB_BLOCK"),
2653            Self::ASTC_12X12_UNORM_BLOCK => Some("ASTC_12X12_UNORM_BLOCK"),
2654            Self::ASTC_12X12_SRGB_BLOCK => Some("ASTC_12X12_SRGB_BLOCK"),
2655            Self::PVRTC1_2BPP_UNORM_BLOCK_IMG => Some("PVRTC1_2BPP_UNORM_BLOCK_IMG"),
2656            Self::PVRTC1_4BPP_UNORM_BLOCK_IMG => Some("PVRTC1_4BPP_UNORM_BLOCK_IMG"),
2657            Self::PVRTC2_2BPP_UNORM_BLOCK_IMG => Some("PVRTC2_2BPP_UNORM_BLOCK_IMG"),
2658            Self::PVRTC2_4BPP_UNORM_BLOCK_IMG => Some("PVRTC2_4BPP_UNORM_BLOCK_IMG"),
2659            Self::PVRTC1_2BPP_SRGB_BLOCK_IMG => Some("PVRTC1_2BPP_SRGB_BLOCK_IMG"),
2660            Self::PVRTC1_4BPP_SRGB_BLOCK_IMG => Some("PVRTC1_4BPP_SRGB_BLOCK_IMG"),
2661            Self::PVRTC2_2BPP_SRGB_BLOCK_IMG => Some("PVRTC2_2BPP_SRGB_BLOCK_IMG"),
2662            Self::PVRTC2_4BPP_SRGB_BLOCK_IMG => Some("PVRTC2_4BPP_SRGB_BLOCK_IMG"),
2663            Self::ASTC_3X3X3_UNORM_BLOCK_EXT => Some("ASTC_3X3X3_UNORM_BLOCK_EXT"),
2664            Self::ASTC_3X3X3_SRGB_BLOCK_EXT => Some("ASTC_3X3X3_SRGB_BLOCK_EXT"),
2665            Self::ASTC_3X3X3_SFLOAT_BLOCK_EXT => Some("ASTC_3X3X3_SFLOAT_BLOCK_EXT"),
2666            Self::ASTC_4X3X3_UNORM_BLOCK_EXT => Some("ASTC_4X3X3_UNORM_BLOCK_EXT"),
2667            Self::ASTC_4X3X3_SRGB_BLOCK_EXT => Some("ASTC_4X3X3_SRGB_BLOCK_EXT"),
2668            Self::ASTC_4X3X3_SFLOAT_BLOCK_EXT => Some("ASTC_4X3X3_SFLOAT_BLOCK_EXT"),
2669            Self::ASTC_4X4X3_UNORM_BLOCK_EXT => Some("ASTC_4X4X3_UNORM_BLOCK_EXT"),
2670            Self::ASTC_4X4X3_SRGB_BLOCK_EXT => Some("ASTC_4X4X3_SRGB_BLOCK_EXT"),
2671            Self::ASTC_4X4X3_SFLOAT_BLOCK_EXT => Some("ASTC_4X4X3_SFLOAT_BLOCK_EXT"),
2672            Self::ASTC_4X4X4_UNORM_BLOCK_EXT => Some("ASTC_4X4X4_UNORM_BLOCK_EXT"),
2673            Self::ASTC_4X4X4_SRGB_BLOCK_EXT => Some("ASTC_4X4X4_SRGB_BLOCK_EXT"),
2674            Self::ASTC_4X4X4_SFLOAT_BLOCK_EXT => Some("ASTC_4X4X4_SFLOAT_BLOCK_EXT"),
2675            Self::ASTC_5X4X4_UNORM_BLOCK_EXT => Some("ASTC_5X4X4_UNORM_BLOCK_EXT"),
2676            Self::ASTC_5X4X4_SRGB_BLOCK_EXT => Some("ASTC_5X4X4_SRGB_BLOCK_EXT"),
2677            Self::ASTC_5X4X4_SFLOAT_BLOCK_EXT => Some("ASTC_5X4X4_SFLOAT_BLOCK_EXT"),
2678            Self::ASTC_5X5X4_UNORM_BLOCK_EXT => Some("ASTC_5X5X4_UNORM_BLOCK_EXT"),
2679            Self::ASTC_5X5X4_SRGB_BLOCK_EXT => Some("ASTC_5X5X4_SRGB_BLOCK_EXT"),
2680            Self::ASTC_5X5X4_SFLOAT_BLOCK_EXT => Some("ASTC_5X5X4_SFLOAT_BLOCK_EXT"),
2681            Self::ASTC_5X5X5_UNORM_BLOCK_EXT => Some("ASTC_5X5X5_UNORM_BLOCK_EXT"),
2682            Self::ASTC_5X5X5_SRGB_BLOCK_EXT => Some("ASTC_5X5X5_SRGB_BLOCK_EXT"),
2683            Self::ASTC_5X5X5_SFLOAT_BLOCK_EXT => Some("ASTC_5X5X5_SFLOAT_BLOCK_EXT"),
2684            Self::ASTC_6X5X5_UNORM_BLOCK_EXT => Some("ASTC_6X5X5_UNORM_BLOCK_EXT"),
2685            Self::ASTC_6X5X5_SRGB_BLOCK_EXT => Some("ASTC_6X5X5_SRGB_BLOCK_EXT"),
2686            Self::ASTC_6X5X5_SFLOAT_BLOCK_EXT => Some("ASTC_6X5X5_SFLOAT_BLOCK_EXT"),
2687            Self::ASTC_6X6X5_UNORM_BLOCK_EXT => Some("ASTC_6X6X5_UNORM_BLOCK_EXT"),
2688            Self::ASTC_6X6X5_SRGB_BLOCK_EXT => Some("ASTC_6X6X5_SRGB_BLOCK_EXT"),
2689            Self::ASTC_6X6X5_SFLOAT_BLOCK_EXT => Some("ASTC_6X6X5_SFLOAT_BLOCK_EXT"),
2690            Self::ASTC_6X6X6_UNORM_BLOCK_EXT => Some("ASTC_6X6X6_UNORM_BLOCK_EXT"),
2691            Self::ASTC_6X6X6_SRGB_BLOCK_EXT => Some("ASTC_6X6X6_SRGB_BLOCK_EXT"),
2692            Self::ASTC_6X6X6_SFLOAT_BLOCK_EXT => Some("ASTC_6X6X6_SFLOAT_BLOCK_EXT"),
2693            Self::R8_BOOL_ARM => Some("R8_BOOL_ARM"),
2694            Self::R16G16_SFIXED5_NV => Some("R16G16_SFIXED5_NV"),
2695            Self::R10X6_UINT_PACK16_ARM => Some("R10X6_UINT_PACK16_ARM"),
2696            Self::R10X6G10X6_UINT_2PACK16_ARM => Some("R10X6G10X6_UINT_2PACK16_ARM"),
2697            Self::R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM => {
2698                Some("R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM")
2699            }
2700            Self::R12X4_UINT_PACK16_ARM => Some("R12X4_UINT_PACK16_ARM"),
2701            Self::R12X4G12X4_UINT_2PACK16_ARM => Some("R12X4G12X4_UINT_2PACK16_ARM"),
2702            Self::R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM => {
2703                Some("R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM")
2704            }
2705            Self::R14X2_UINT_PACK16_ARM => Some("R14X2_UINT_PACK16_ARM"),
2706            Self::R14X2G14X2_UINT_2PACK16_ARM => Some("R14X2G14X2_UINT_2PACK16_ARM"),
2707            Self::R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM => {
2708                Some("R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM")
2709            }
2710            Self::R14X2_UNORM_PACK16_ARM => Some("R14X2_UNORM_PACK16_ARM"),
2711            Self::R14X2G14X2_UNORM_2PACK16_ARM => Some("R14X2G14X2_UNORM_2PACK16_ARM"),
2712            Self::R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM => {
2713                Some("R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM")
2714            }
2715            Self::G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM => {
2716                Some("G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM")
2717            }
2718            Self::G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM => {
2719                Some("G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM")
2720            }
2721            Self::G8B8G8R8_422_UNORM => Some("G8B8G8R8_422_UNORM"),
2722            Self::B8G8R8G8_422_UNORM => Some("B8G8R8G8_422_UNORM"),
2723            Self::G8_B8_R8_3PLANE_420_UNORM => Some("G8_B8_R8_3PLANE_420_UNORM"),
2724            Self::G8_B8R8_2PLANE_420_UNORM => Some("G8_B8R8_2PLANE_420_UNORM"),
2725            Self::G8_B8_R8_3PLANE_422_UNORM => Some("G8_B8_R8_3PLANE_422_UNORM"),
2726            Self::G8_B8R8_2PLANE_422_UNORM => Some("G8_B8R8_2PLANE_422_UNORM"),
2727            Self::G8_B8_R8_3PLANE_444_UNORM => Some("G8_B8_R8_3PLANE_444_UNORM"),
2728            Self::R10X6_UNORM_PACK16 => Some("R10X6_UNORM_PACK16"),
2729            Self::R10X6G10X6_UNORM_2PACK16 => Some("R10X6G10X6_UNORM_2PACK16"),
2730            Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => Some("R10X6G10X6B10X6A10X6_UNORM_4PACK16"),
2731            Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => {
2732                Some("G10X6B10X6G10X6R10X6_422_UNORM_4PACK16")
2733            }
2734            Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => {
2735                Some("B10X6G10X6R10X6G10X6_422_UNORM_4PACK16")
2736            }
2737            Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
2738                Some("G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16")
2739            }
2740            Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
2741                Some("G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16")
2742            }
2743            Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
2744                Some("G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16")
2745            }
2746            Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
2747                Some("G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16")
2748            }
2749            Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
2750                Some("G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16")
2751            }
2752            Self::R12X4_UNORM_PACK16 => Some("R12X4_UNORM_PACK16"),
2753            Self::R12X4G12X4_UNORM_2PACK16 => Some("R12X4G12X4_UNORM_2PACK16"),
2754            Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => Some("R12X4G12X4B12X4A12X4_UNORM_4PACK16"),
2755            Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => {
2756                Some("G12X4B12X4G12X4R12X4_422_UNORM_4PACK16")
2757            }
2758            Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => {
2759                Some("B12X4G12X4R12X4G12X4_422_UNORM_4PACK16")
2760            }
2761            Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
2762                Some("G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16")
2763            }
2764            Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
2765                Some("G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16")
2766            }
2767            Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
2768                Some("G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16")
2769            }
2770            Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
2771                Some("G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16")
2772            }
2773            Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
2774                Some("G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16")
2775            }
2776            Self::G16B16G16R16_422_UNORM => Some("G16B16G16R16_422_UNORM"),
2777            Self::B16G16R16G16_422_UNORM => Some("B16G16R16G16_422_UNORM"),
2778            Self::G16_B16_R16_3PLANE_420_UNORM => Some("G16_B16_R16_3PLANE_420_UNORM"),
2779            Self::G16_B16R16_2PLANE_420_UNORM => Some("G16_B16R16_2PLANE_420_UNORM"),
2780            Self::G16_B16_R16_3PLANE_422_UNORM => Some("G16_B16_R16_3PLANE_422_UNORM"),
2781            Self::G16_B16R16_2PLANE_422_UNORM => Some("G16_B16R16_2PLANE_422_UNORM"),
2782            Self::G16_B16_R16_3PLANE_444_UNORM => Some("G16_B16_R16_3PLANE_444_UNORM"),
2783            Self::G8_B8R8_2PLANE_444_UNORM => Some("G8_B8R8_2PLANE_444_UNORM"),
2784            Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
2785                Some("G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16")
2786            }
2787            Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
2788                Some("G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16")
2789            }
2790            Self::G16_B16R16_2PLANE_444_UNORM => Some("G16_B16R16_2PLANE_444_UNORM"),
2791            Self::A4R4G4B4_UNORM_PACK16 => Some("A4R4G4B4_UNORM_PACK16"),
2792            Self::A4B4G4R4_UNORM_PACK16 => Some("A4B4G4R4_UNORM_PACK16"),
2793            Self::ASTC_4X4_SFLOAT_BLOCK => Some("ASTC_4X4_SFLOAT_BLOCK"),
2794            Self::ASTC_5X4_SFLOAT_BLOCK => Some("ASTC_5X4_SFLOAT_BLOCK"),
2795            Self::ASTC_5X5_SFLOAT_BLOCK => Some("ASTC_5X5_SFLOAT_BLOCK"),
2796            Self::ASTC_6X5_SFLOAT_BLOCK => Some("ASTC_6X5_SFLOAT_BLOCK"),
2797            Self::ASTC_6X6_SFLOAT_BLOCK => Some("ASTC_6X6_SFLOAT_BLOCK"),
2798            Self::ASTC_8X5_SFLOAT_BLOCK => Some("ASTC_8X5_SFLOAT_BLOCK"),
2799            Self::ASTC_8X6_SFLOAT_BLOCK => Some("ASTC_8X6_SFLOAT_BLOCK"),
2800            Self::ASTC_8X8_SFLOAT_BLOCK => Some("ASTC_8X8_SFLOAT_BLOCK"),
2801            Self::ASTC_10X5_SFLOAT_BLOCK => Some("ASTC_10X5_SFLOAT_BLOCK"),
2802            Self::ASTC_10X6_SFLOAT_BLOCK => Some("ASTC_10X6_SFLOAT_BLOCK"),
2803            Self::ASTC_10X8_SFLOAT_BLOCK => Some("ASTC_10X8_SFLOAT_BLOCK"),
2804            Self::ASTC_10X10_SFLOAT_BLOCK => Some("ASTC_10X10_SFLOAT_BLOCK"),
2805            Self::ASTC_12X10_SFLOAT_BLOCK => Some("ASTC_12X10_SFLOAT_BLOCK"),
2806            Self::ASTC_12X12_SFLOAT_BLOCK => Some("ASTC_12X12_SFLOAT_BLOCK"),
2807            Self::A1B5G5R5_UNORM_PACK16 => Some("A1B5G5R5_UNORM_PACK16"),
2808            Self::A8_UNORM => Some("A8_UNORM"),
2809            _ => None,
2810        };
2811        if let Some(x) = name {
2812            f.write_str(x)
2813        } else {
2814            self.0.fmt(f)
2815        }
2816    }
2817}
2818impl fmt::Debug for FormatFeatureFlags {
2819    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2820        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")] ;
2821        debug_flags(f, KNOWN, self.0)
2822    }
2823}
2824impl fmt::Debug for FormatFeatureFlags2 {
2825    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2826        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 :: 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 :: VIDEO_ENCODE_INPUT_KHR . 0 , "VIDEO_ENCODE_INPUT_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_DPB_KHR . 0 , "VIDEO_ENCODE_DPB_KHR") , (FormatFeatureFlags2 :: ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV . 0 , "ACCELERATION_STRUCTURE_RADIUS_BUFFER_NV") , (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 :: TENSOR_SHADER_ARM . 0 , "TENSOR_SHADER_ARM") , (FormatFeatureFlags2 :: TENSOR_IMAGE_ALIASING_ARM . 0 , "TENSOR_IMAGE_ALIASING_ARM") , (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") , (FormatFeatureFlags2 :: TENSOR_DATA_GRAPH_ARM . 0 , "TENSOR_DATA_GRAPH_ARM") , (FormatFeatureFlags2 :: COPY_IMAGE_INDIRECT_DST_KHR . 0 , "COPY_IMAGE_INDIRECT_DST_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR . 0 , "VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR") , (FormatFeatureFlags2 :: VIDEO_ENCODE_EMPHASIS_MAP_KHR . 0 , "VIDEO_ENCODE_EMPHASIS_MAP_KHR") , (FormatFeatureFlags2 :: DEPTH_COPY_ON_COMPUTE_QUEUE_KHR . 0 , "DEPTH_COPY_ON_COMPUTE_QUEUE_KHR") , (FormatFeatureFlags2 :: DEPTH_COPY_ON_TRANSFER_QUEUE_KHR . 0 , "DEPTH_COPY_ON_TRANSFER_QUEUE_KHR") , (FormatFeatureFlags2 :: STENCIL_COPY_ON_COMPUTE_QUEUE_KHR . 0 , "STENCIL_COPY_ON_COMPUTE_QUEUE_KHR") , (FormatFeatureFlags2 :: STENCIL_COPY_ON_TRANSFER_QUEUE_KHR . 0 , "STENCIL_COPY_ON_TRANSFER_QUEUE_KHR") , (FormatFeatureFlags2 :: SAMPLED_IMAGE_FILTER_CUBIC . 0 , "SAMPLED_IMAGE_FILTER_CUBIC") , (FormatFeatureFlags2 :: HOST_IMAGE_TRANSFER . 0 , "HOST_IMAGE_TRANSFER")] ;
2827        debug_flags(f, KNOWN, self.0)
2828    }
2829}
2830impl fmt::Debug for FragmentShadingRateCombinerOpKHR {
2831    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2832        let name = match *self {
2833            Self::KEEP => Some("KEEP"),
2834            Self::REPLACE => Some("REPLACE"),
2835            Self::MIN => Some("MIN"),
2836            Self::MAX => Some("MAX"),
2837            Self::MUL => Some("MUL"),
2838            _ => None,
2839        };
2840        if let Some(x) = name {
2841            f.write_str(x)
2842        } else {
2843            self.0.fmt(f)
2844        }
2845    }
2846}
2847impl fmt::Debug for FragmentShadingRateNV {
2848    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2849        let name = match *self {
2850            Self::TYPE_1_INVOCATION_PER_PIXEL => Some("TYPE_1_INVOCATION_PER_PIXEL"),
2851            Self::TYPE_1_INVOCATION_PER_1X2_PIXELS => Some("TYPE_1_INVOCATION_PER_1X2_PIXELS"),
2852            Self::TYPE_1_INVOCATION_PER_2X1_PIXELS => Some("TYPE_1_INVOCATION_PER_2X1_PIXELS"),
2853            Self::TYPE_1_INVOCATION_PER_2X2_PIXELS => Some("TYPE_1_INVOCATION_PER_2X2_PIXELS"),
2854            Self::TYPE_1_INVOCATION_PER_2X4_PIXELS => Some("TYPE_1_INVOCATION_PER_2X4_PIXELS"),
2855            Self::TYPE_1_INVOCATION_PER_4X2_PIXELS => Some("TYPE_1_INVOCATION_PER_4X2_PIXELS"),
2856            Self::TYPE_1_INVOCATION_PER_4X4_PIXELS => Some("TYPE_1_INVOCATION_PER_4X4_PIXELS"),
2857            Self::TYPE_2_INVOCATIONS_PER_PIXEL => Some("TYPE_2_INVOCATIONS_PER_PIXEL"),
2858            Self::TYPE_4_INVOCATIONS_PER_PIXEL => Some("TYPE_4_INVOCATIONS_PER_PIXEL"),
2859            Self::TYPE_8_INVOCATIONS_PER_PIXEL => Some("TYPE_8_INVOCATIONS_PER_PIXEL"),
2860            Self::TYPE_16_INVOCATIONS_PER_PIXEL => Some("TYPE_16_INVOCATIONS_PER_PIXEL"),
2861            Self::NO_INVOCATIONS => Some("NO_INVOCATIONS"),
2862            _ => None,
2863        };
2864        if let Some(x) = name {
2865            f.write_str(x)
2866        } else {
2867            self.0.fmt(f)
2868        }
2869    }
2870}
2871impl fmt::Debug for FragmentShadingRateTypeNV {
2872    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2873        let name = match *self {
2874            Self::FRAGMENT_SIZE => Some("FRAGMENT_SIZE"),
2875            Self::ENUMS => Some("ENUMS"),
2876            _ => None,
2877        };
2878        if let Some(x) = name {
2879            f.write_str(x)
2880        } else {
2881            self.0.fmt(f)
2882        }
2883    }
2884}
2885impl fmt::Debug for FrameBoundaryFlagsEXT {
2886    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2887        const KNOWN: &[(Flags, &str)] = &[(FrameBoundaryFlagsEXT::FRAME_END.0, "FRAME_END")];
2888        debug_flags(f, KNOWN, self.0)
2889    }
2890}
2891impl fmt::Debug for FramebufferCreateFlags {
2892    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2893        const KNOWN: &[(Flags, &str)] = &[(FramebufferCreateFlags::IMAGELESS.0, "IMAGELESS")];
2894        debug_flags(f, KNOWN, self.0)
2895    }
2896}
2897impl fmt::Debug for FrontFace {
2898    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2899        let name = match *self {
2900            Self::COUNTER_CLOCKWISE => Some("COUNTER_CLOCKWISE"),
2901            Self::CLOCKWISE => Some("CLOCKWISE"),
2902            _ => None,
2903        };
2904        if let Some(x) = name {
2905            f.write_str(x)
2906        } else {
2907            self.0.fmt(f)
2908        }
2909    }
2910}
2911impl fmt::Debug for FullScreenExclusiveEXT {
2912    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2913        let name = match *self {
2914            Self::DEFAULT => Some("DEFAULT"),
2915            Self::ALLOWED => Some("ALLOWED"),
2916            Self::DISALLOWED => Some("DISALLOWED"),
2917            Self::APPLICATION_CONTROLLED => Some("APPLICATION_CONTROLLED"),
2918            _ => None,
2919        };
2920        if let Some(x) = name {
2921            f.write_str(x)
2922        } else {
2923            self.0.fmt(f)
2924        }
2925    }
2926}
2927impl fmt::Debug for GeometryFlagsKHR {
2928    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2929        const KNOWN: &[(Flags, &str)] = &[
2930            (GeometryFlagsKHR::OPAQUE.0, "OPAQUE"),
2931            (
2932                GeometryFlagsKHR::NO_DUPLICATE_ANY_HIT_INVOCATION.0,
2933                "NO_DUPLICATE_ANY_HIT_INVOCATION",
2934            ),
2935        ];
2936        debug_flags(f, KNOWN, self.0)
2937    }
2938}
2939impl fmt::Debug for GeometryInstanceFlagsKHR {
2940    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2941        const KNOWN: &[(Flags, &str)] = &[
2942            (
2943                GeometryInstanceFlagsKHR::TRIANGLE_FACING_CULL_DISABLE.0,
2944                "TRIANGLE_FACING_CULL_DISABLE",
2945            ),
2946            (
2947                GeometryInstanceFlagsKHR::TRIANGLE_FLIP_FACING.0,
2948                "TRIANGLE_FLIP_FACING",
2949            ),
2950            (GeometryInstanceFlagsKHR::FORCE_OPAQUE.0, "FORCE_OPAQUE"),
2951            (
2952                GeometryInstanceFlagsKHR::FORCE_NO_OPAQUE.0,
2953                "FORCE_NO_OPAQUE",
2954            ),
2955            (
2956                GeometryInstanceFlagsKHR::FORCE_OPACITY_MICROMAP_2_STATE_EXT.0,
2957                "FORCE_OPACITY_MICROMAP_2_STATE_EXT",
2958            ),
2959            (
2960                GeometryInstanceFlagsKHR::DISABLE_OPACITY_MICROMAPS_EXT.0,
2961                "DISABLE_OPACITY_MICROMAPS_EXT",
2962            ),
2963        ];
2964        debug_flags(f, KNOWN, self.0)
2965    }
2966}
2967impl fmt::Debug for GeometryTypeKHR {
2968    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2969        let name = match *self {
2970            Self::TRIANGLES => Some("TRIANGLES"),
2971            Self::AABBS => Some("AABBS"),
2972            Self::INSTANCES => Some("INSTANCES"),
2973            Self::SPHERES_NV => Some("SPHERES_NV"),
2974            Self::LINEAR_SWEPT_SPHERES_NV => Some("LINEAR_SWEPT_SPHERES_NV"),
2975            Self::DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX => {
2976                Some("DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX")
2977            }
2978            _ => None,
2979        };
2980        if let Some(x) = name {
2981            f.write_str(x)
2982        } else {
2983            self.0.fmt(f)
2984        }
2985    }
2986}
2987impl fmt::Debug for GraphicsPipelineLibraryFlagsEXT {
2988    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
2989        const KNOWN: &[(Flags, &str)] = &[
2990            (
2991                GraphicsPipelineLibraryFlagsEXT::VERTEX_INPUT_INTERFACE.0,
2992                "VERTEX_INPUT_INTERFACE",
2993            ),
2994            (
2995                GraphicsPipelineLibraryFlagsEXT::PRE_RASTERIZATION_SHADERS.0,
2996                "PRE_RASTERIZATION_SHADERS",
2997            ),
2998            (
2999                GraphicsPipelineLibraryFlagsEXT::FRAGMENT_SHADER.0,
3000                "FRAGMENT_SHADER",
3001            ),
3002            (
3003                GraphicsPipelineLibraryFlagsEXT::FRAGMENT_OUTPUT_INTERFACE.0,
3004                "FRAGMENT_OUTPUT_INTERFACE",
3005            ),
3006        ];
3007        debug_flags(f, KNOWN, self.0)
3008    }
3009}
3010impl fmt::Debug for HeadlessSurfaceCreateFlagsEXT {
3011    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3012        const KNOWN: &[(Flags, &str)] = &[];
3013        debug_flags(f, KNOWN, self.0)
3014    }
3015}
3016impl fmt::Debug for HostImageCopyFlags {
3017    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3018        const KNOWN: &[(Flags, &str)] = &[(HostImageCopyFlags::MEMCPY.0, "MEMCPY")];
3019        debug_flags(f, KNOWN, self.0)
3020    }
3021}
3022impl fmt::Debug for IOSSurfaceCreateFlagsMVK {
3023    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3024        const KNOWN: &[(Flags, &str)] = &[];
3025        debug_flags(f, KNOWN, self.0)
3026    }
3027}
3028impl fmt::Debug for ImageAspectFlags {
3029    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3030        const KNOWN: &[(Flags, &str)] = &[
3031            (ImageAspectFlags::COLOR.0, "COLOR"),
3032            (ImageAspectFlags::DEPTH.0, "DEPTH"),
3033            (ImageAspectFlags::STENCIL.0, "STENCIL"),
3034            (ImageAspectFlags::METADATA.0, "METADATA"),
3035            (ImageAspectFlags::MEMORY_PLANE_0_EXT.0, "MEMORY_PLANE_0_EXT"),
3036            (ImageAspectFlags::MEMORY_PLANE_1_EXT.0, "MEMORY_PLANE_1_EXT"),
3037            (ImageAspectFlags::MEMORY_PLANE_2_EXT.0, "MEMORY_PLANE_2_EXT"),
3038            (ImageAspectFlags::MEMORY_PLANE_3_EXT.0, "MEMORY_PLANE_3_EXT"),
3039            (ImageAspectFlags::PLANE_0.0, "PLANE_0"),
3040            (ImageAspectFlags::PLANE_1.0, "PLANE_1"),
3041            (ImageAspectFlags::PLANE_2.0, "PLANE_2"),
3042            (ImageAspectFlags::NONE.0, "NONE"),
3043        ];
3044        debug_flags(f, KNOWN, self.0)
3045    }
3046}
3047impl fmt::Debug for ImageCompressionFixedRateFlagsEXT {
3048    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3049        const KNOWN: &[(Flags, &str)] = &[
3050            (ImageCompressionFixedRateFlagsEXT::NONE.0, "NONE"),
3051            (ImageCompressionFixedRateFlagsEXT::TYPE_1BPC.0, "TYPE_1BPC"),
3052            (ImageCompressionFixedRateFlagsEXT::TYPE_2BPC.0, "TYPE_2BPC"),
3053            (ImageCompressionFixedRateFlagsEXT::TYPE_3BPC.0, "TYPE_3BPC"),
3054            (ImageCompressionFixedRateFlagsEXT::TYPE_4BPC.0, "TYPE_4BPC"),
3055            (ImageCompressionFixedRateFlagsEXT::TYPE_5BPC.0, "TYPE_5BPC"),
3056            (ImageCompressionFixedRateFlagsEXT::TYPE_6BPC.0, "TYPE_6BPC"),
3057            (ImageCompressionFixedRateFlagsEXT::TYPE_7BPC.0, "TYPE_7BPC"),
3058            (ImageCompressionFixedRateFlagsEXT::TYPE_8BPC.0, "TYPE_8BPC"),
3059            (ImageCompressionFixedRateFlagsEXT::TYPE_9BPC.0, "TYPE_9BPC"),
3060            (
3061                ImageCompressionFixedRateFlagsEXT::TYPE_10BPC.0,
3062                "TYPE_10BPC",
3063            ),
3064            (
3065                ImageCompressionFixedRateFlagsEXT::TYPE_11BPC.0,
3066                "TYPE_11BPC",
3067            ),
3068            (
3069                ImageCompressionFixedRateFlagsEXT::TYPE_12BPC.0,
3070                "TYPE_12BPC",
3071            ),
3072            (
3073                ImageCompressionFixedRateFlagsEXT::TYPE_13BPC.0,
3074                "TYPE_13BPC",
3075            ),
3076            (
3077                ImageCompressionFixedRateFlagsEXT::TYPE_14BPC.0,
3078                "TYPE_14BPC",
3079            ),
3080            (
3081                ImageCompressionFixedRateFlagsEXT::TYPE_15BPC.0,
3082                "TYPE_15BPC",
3083            ),
3084            (
3085                ImageCompressionFixedRateFlagsEXT::TYPE_16BPC.0,
3086                "TYPE_16BPC",
3087            ),
3088            (
3089                ImageCompressionFixedRateFlagsEXT::TYPE_17BPC.0,
3090                "TYPE_17BPC",
3091            ),
3092            (
3093                ImageCompressionFixedRateFlagsEXT::TYPE_18BPC.0,
3094                "TYPE_18BPC",
3095            ),
3096            (
3097                ImageCompressionFixedRateFlagsEXT::TYPE_19BPC.0,
3098                "TYPE_19BPC",
3099            ),
3100            (
3101                ImageCompressionFixedRateFlagsEXT::TYPE_20BPC.0,
3102                "TYPE_20BPC",
3103            ),
3104            (
3105                ImageCompressionFixedRateFlagsEXT::TYPE_21BPC.0,
3106                "TYPE_21BPC",
3107            ),
3108            (
3109                ImageCompressionFixedRateFlagsEXT::TYPE_22BPC.0,
3110                "TYPE_22BPC",
3111            ),
3112            (
3113                ImageCompressionFixedRateFlagsEXT::TYPE_23BPC.0,
3114                "TYPE_23BPC",
3115            ),
3116            (
3117                ImageCompressionFixedRateFlagsEXT::TYPE_24BPC.0,
3118                "TYPE_24BPC",
3119            ),
3120        ];
3121        debug_flags(f, KNOWN, self.0)
3122    }
3123}
3124impl fmt::Debug for ImageCompressionFlagsEXT {
3125    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3126        const KNOWN: &[(Flags, &str)] = &[
3127            (ImageCompressionFlagsEXT::DEFAULT.0, "DEFAULT"),
3128            (
3129                ImageCompressionFlagsEXT::FIXED_RATE_DEFAULT.0,
3130                "FIXED_RATE_DEFAULT",
3131            ),
3132            (
3133                ImageCompressionFlagsEXT::FIXED_RATE_EXPLICIT.0,
3134                "FIXED_RATE_EXPLICIT",
3135            ),
3136            (ImageCompressionFlagsEXT::DISABLED.0, "DISABLED"),
3137        ];
3138        debug_flags(f, KNOWN, self.0)
3139    }
3140}
3141impl fmt::Debug for ImageConstraintsInfoFlagsFUCHSIA {
3142    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3143        const KNOWN: &[(Flags, &str)] = &[
3144            (
3145                ImageConstraintsInfoFlagsFUCHSIA::CPU_READ_RARELY.0,
3146                "CPU_READ_RARELY",
3147            ),
3148            (
3149                ImageConstraintsInfoFlagsFUCHSIA::CPU_READ_OFTEN.0,
3150                "CPU_READ_OFTEN",
3151            ),
3152            (
3153                ImageConstraintsInfoFlagsFUCHSIA::CPU_WRITE_RARELY.0,
3154                "CPU_WRITE_RARELY",
3155            ),
3156            (
3157                ImageConstraintsInfoFlagsFUCHSIA::CPU_WRITE_OFTEN.0,
3158                "CPU_WRITE_OFTEN",
3159            ),
3160            (
3161                ImageConstraintsInfoFlagsFUCHSIA::PROTECTED_OPTIONAL.0,
3162                "PROTECTED_OPTIONAL",
3163            ),
3164        ];
3165        debug_flags(f, KNOWN, self.0)
3166    }
3167}
3168impl fmt::Debug for ImageCreateFlags {
3169    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3170        const KNOWN: &[(Flags, &str)] = &[
3171            (ImageCreateFlags::SPARSE_BINDING.0, "SPARSE_BINDING"),
3172            (ImageCreateFlags::SPARSE_RESIDENCY.0, "SPARSE_RESIDENCY"),
3173            (ImageCreateFlags::SPARSE_ALIASED.0, "SPARSE_ALIASED"),
3174            (ImageCreateFlags::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"),
3175            (ImageCreateFlags::CUBE_COMPATIBLE.0, "CUBE_COMPATIBLE"),
3176            (ImageCreateFlags::CORNER_SAMPLED_NV.0, "CORNER_SAMPLED_NV"),
3177            (
3178                ImageCreateFlags::DESCRIPTOR_HEAP_CAPTURE_REPLAY_EXT.0,
3179                "DESCRIPTOR_HEAP_CAPTURE_REPLAY_EXT",
3180            ),
3181            (
3182                ImageCreateFlags::SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT.0,
3183                "SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT",
3184            ),
3185            (ImageCreateFlags::SUBSAMPLED_EXT.0, "SUBSAMPLED_EXT"),
3186            (
3187                ImageCreateFlags::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT.0,
3188                "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXT",
3189            ),
3190            (
3191                ImageCreateFlags::TYPE_2D_VIEW_COMPATIBLE_EXT.0,
3192                "TYPE_2D_VIEW_COMPATIBLE_EXT",
3193            ),
3194            (
3195                ImageCreateFlags::VIDEO_PROFILE_INDEPENDENT_KHR.0,
3196                "VIDEO_PROFILE_INDEPENDENT_KHR",
3197            ),
3198            (
3199                ImageCreateFlags::FRAGMENT_DENSITY_MAP_OFFSET_EXT.0,
3200                "FRAGMENT_DENSITY_MAP_OFFSET_EXT",
3201            ),
3202            (ImageCreateFlags::ALIAS.0, "ALIAS"),
3203            (
3204                ImageCreateFlags::SPLIT_INSTANCE_BIND_REGIONS.0,
3205                "SPLIT_INSTANCE_BIND_REGIONS",
3206            ),
3207            (
3208                ImageCreateFlags::TYPE_2D_ARRAY_COMPATIBLE.0,
3209                "TYPE_2D_ARRAY_COMPATIBLE",
3210            ),
3211            (
3212                ImageCreateFlags::BLOCK_TEXEL_VIEW_COMPATIBLE.0,
3213                "BLOCK_TEXEL_VIEW_COMPATIBLE",
3214            ),
3215            (ImageCreateFlags::EXTENDED_USAGE.0, "EXTENDED_USAGE"),
3216            (ImageCreateFlags::PROTECTED.0, "PROTECTED"),
3217            (ImageCreateFlags::DISJOINT.0, "DISJOINT"),
3218        ];
3219        debug_flags(f, KNOWN, self.0)
3220    }
3221}
3222impl fmt::Debug for ImageFormatConstraintsFlagsFUCHSIA {
3223    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3224        const KNOWN: &[(Flags, &str)] = &[];
3225        debug_flags(f, KNOWN, self.0)
3226    }
3227}
3228impl fmt::Debug for ImageLayout {
3229    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3230        let name = match *self {
3231            Self::UNDEFINED => Some("UNDEFINED"),
3232            Self::GENERAL => Some("GENERAL"),
3233            Self::COLOR_ATTACHMENT_OPTIMAL => Some("COLOR_ATTACHMENT_OPTIMAL"),
3234            Self::DEPTH_STENCIL_ATTACHMENT_OPTIMAL => Some("DEPTH_STENCIL_ATTACHMENT_OPTIMAL"),
3235            Self::DEPTH_STENCIL_READ_ONLY_OPTIMAL => Some("DEPTH_STENCIL_READ_ONLY_OPTIMAL"),
3236            Self::SHADER_READ_ONLY_OPTIMAL => Some("SHADER_READ_ONLY_OPTIMAL"),
3237            Self::TRANSFER_SRC_OPTIMAL => Some("TRANSFER_SRC_OPTIMAL"),
3238            Self::TRANSFER_DST_OPTIMAL => Some("TRANSFER_DST_OPTIMAL"),
3239            Self::PREINITIALIZED => Some("PREINITIALIZED"),
3240            Self::PRESENT_SRC_KHR => Some("PRESENT_SRC_KHR"),
3241            Self::VIDEO_DECODE_DST_KHR => Some("VIDEO_DECODE_DST_KHR"),
3242            Self::VIDEO_DECODE_SRC_KHR => Some("VIDEO_DECODE_SRC_KHR"),
3243            Self::VIDEO_DECODE_DPB_KHR => Some("VIDEO_DECODE_DPB_KHR"),
3244            Self::SHARED_PRESENT_KHR => Some("SHARED_PRESENT_KHR"),
3245            Self::FRAGMENT_DENSITY_MAP_OPTIMAL_EXT => Some("FRAGMENT_DENSITY_MAP_OPTIMAL_EXT"),
3246            Self::FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR => {
3247                Some("FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR")
3248            }
3249            Self::VIDEO_ENCODE_DST_KHR => Some("VIDEO_ENCODE_DST_KHR"),
3250            Self::VIDEO_ENCODE_SRC_KHR => Some("VIDEO_ENCODE_SRC_KHR"),
3251            Self::VIDEO_ENCODE_DPB_KHR => Some("VIDEO_ENCODE_DPB_KHR"),
3252            Self::ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT => {
3253                Some("ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT")
3254            }
3255            Self::TENSOR_ALIASING_ARM => Some("TENSOR_ALIASING_ARM"),
3256            Self::VIDEO_ENCODE_QUANTIZATION_MAP_KHR => Some("VIDEO_ENCODE_QUANTIZATION_MAP_KHR"),
3257            Self::ZERO_INITIALIZED_EXT => Some("ZERO_INITIALIZED_EXT"),
3258            Self::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL => {
3259                Some("DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL")
3260            }
3261            Self::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL => {
3262                Some("DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL")
3263            }
3264            Self::DEPTH_ATTACHMENT_OPTIMAL => Some("DEPTH_ATTACHMENT_OPTIMAL"),
3265            Self::DEPTH_READ_ONLY_OPTIMAL => Some("DEPTH_READ_ONLY_OPTIMAL"),
3266            Self::STENCIL_ATTACHMENT_OPTIMAL => Some("STENCIL_ATTACHMENT_OPTIMAL"),
3267            Self::STENCIL_READ_ONLY_OPTIMAL => Some("STENCIL_READ_ONLY_OPTIMAL"),
3268            Self::READ_ONLY_OPTIMAL => Some("READ_ONLY_OPTIMAL"),
3269            Self::ATTACHMENT_OPTIMAL => Some("ATTACHMENT_OPTIMAL"),
3270            Self::RENDERING_LOCAL_READ => Some("RENDERING_LOCAL_READ"),
3271            _ => None,
3272        };
3273        if let Some(x) = name {
3274            f.write_str(x)
3275        } else {
3276            self.0.fmt(f)
3277        }
3278    }
3279}
3280impl fmt::Debug for ImagePipeSurfaceCreateFlagsFUCHSIA {
3281    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3282        const KNOWN: &[(Flags, &str)] = &[];
3283        debug_flags(f, KNOWN, self.0)
3284    }
3285}
3286impl fmt::Debug for ImageTiling {
3287    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3288        let name = match *self {
3289            Self::OPTIMAL => Some("OPTIMAL"),
3290            Self::LINEAR => Some("LINEAR"),
3291            Self::DRM_FORMAT_MODIFIER_EXT => Some("DRM_FORMAT_MODIFIER_EXT"),
3292            _ => None,
3293        };
3294        if let Some(x) = name {
3295            f.write_str(x)
3296        } else {
3297            self.0.fmt(f)
3298        }
3299    }
3300}
3301impl fmt::Debug for ImageType {
3302    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3303        let name = match *self {
3304            Self::TYPE_1D => Some("TYPE_1D"),
3305            Self::TYPE_2D => Some("TYPE_2D"),
3306            Self::TYPE_3D => Some("TYPE_3D"),
3307            _ => None,
3308        };
3309        if let Some(x) = name {
3310            f.write_str(x)
3311        } else {
3312            self.0.fmt(f)
3313        }
3314    }
3315}
3316impl fmt::Debug for ImageUsageFlags {
3317    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3318        const KNOWN: &[(Flags, &str)] = &[
3319            (ImageUsageFlags::TRANSFER_SRC.0, "TRANSFER_SRC"),
3320            (ImageUsageFlags::TRANSFER_DST.0, "TRANSFER_DST"),
3321            (ImageUsageFlags::SAMPLED.0, "SAMPLED"),
3322            (ImageUsageFlags::STORAGE.0, "STORAGE"),
3323            (ImageUsageFlags::COLOR_ATTACHMENT.0, "COLOR_ATTACHMENT"),
3324            (
3325                ImageUsageFlags::DEPTH_STENCIL_ATTACHMENT.0,
3326                "DEPTH_STENCIL_ATTACHMENT",
3327            ),
3328            (
3329                ImageUsageFlags::TRANSIENT_ATTACHMENT.0,
3330                "TRANSIENT_ATTACHMENT",
3331            ),
3332            (ImageUsageFlags::INPUT_ATTACHMENT.0, "INPUT_ATTACHMENT"),
3333            (
3334                ImageUsageFlags::VIDEO_DECODE_DST_KHR.0,
3335                "VIDEO_DECODE_DST_KHR",
3336            ),
3337            (
3338                ImageUsageFlags::VIDEO_DECODE_SRC_KHR.0,
3339                "VIDEO_DECODE_SRC_KHR",
3340            ),
3341            (
3342                ImageUsageFlags::VIDEO_DECODE_DPB_KHR.0,
3343                "VIDEO_DECODE_DPB_KHR",
3344            ),
3345            (
3346                ImageUsageFlags::FRAGMENT_DENSITY_MAP_EXT.0,
3347                "FRAGMENT_DENSITY_MAP_EXT",
3348            ),
3349            (
3350                ImageUsageFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
3351                "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
3352            ),
3353            (
3354                ImageUsageFlags::VIDEO_ENCODE_DST_KHR.0,
3355                "VIDEO_ENCODE_DST_KHR",
3356            ),
3357            (
3358                ImageUsageFlags::VIDEO_ENCODE_SRC_KHR.0,
3359                "VIDEO_ENCODE_SRC_KHR",
3360            ),
3361            (
3362                ImageUsageFlags::VIDEO_ENCODE_DPB_KHR.0,
3363                "VIDEO_ENCODE_DPB_KHR",
3364            ),
3365            (
3366                ImageUsageFlags::ATTACHMENT_FEEDBACK_LOOP_EXT.0,
3367                "ATTACHMENT_FEEDBACK_LOOP_EXT",
3368            ),
3369            (
3370                ImageUsageFlags::INVOCATION_MASK_HUAWEI.0,
3371                "INVOCATION_MASK_HUAWEI",
3372            ),
3373            (ImageUsageFlags::SAMPLE_WEIGHT_QCOM.0, "SAMPLE_WEIGHT_QCOM"),
3374            (
3375                ImageUsageFlags::SAMPLE_BLOCK_MATCH_QCOM.0,
3376                "SAMPLE_BLOCK_MATCH_QCOM",
3377            ),
3378            (
3379                ImageUsageFlags::TENSOR_ALIASING_ARM.0,
3380                "TENSOR_ALIASING_ARM",
3381            ),
3382            (ImageUsageFlags::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"),
3383            (
3384                ImageUsageFlags::VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR.0,
3385                "VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_KHR",
3386            ),
3387            (
3388                ImageUsageFlags::VIDEO_ENCODE_EMPHASIS_MAP_KHR.0,
3389                "VIDEO_ENCODE_EMPHASIS_MAP_KHR",
3390            ),
3391            (ImageUsageFlags::HOST_TRANSFER.0, "HOST_TRANSFER"),
3392        ];
3393        debug_flags(f, KNOWN, self.0)
3394    }
3395}
3396impl fmt::Debug for ImageViewCreateFlags {
3397    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3398        const KNOWN: &[(Flags, &str)] = &[
3399            (
3400                ImageViewCreateFlags::FRAGMENT_DENSITY_MAP_DYNAMIC_EXT.0,
3401                "FRAGMENT_DENSITY_MAP_DYNAMIC_EXT",
3402            ),
3403            (
3404                ImageViewCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
3405                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
3406            ),
3407            (
3408                ImageViewCreateFlags::FRAGMENT_DENSITY_MAP_DEFERRED_EXT.0,
3409                "FRAGMENT_DENSITY_MAP_DEFERRED_EXT",
3410            ),
3411        ];
3412        debug_flags(f, KNOWN, self.0)
3413    }
3414}
3415impl fmt::Debug for ImageViewType {
3416    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3417        let name = match *self {
3418            Self::TYPE_1D => Some("TYPE_1D"),
3419            Self::TYPE_2D => Some("TYPE_2D"),
3420            Self::TYPE_3D => Some("TYPE_3D"),
3421            Self::CUBE => Some("CUBE"),
3422            Self::TYPE_1D_ARRAY => Some("TYPE_1D_ARRAY"),
3423            Self::TYPE_2D_ARRAY => Some("TYPE_2D_ARRAY"),
3424            Self::CUBE_ARRAY => Some("CUBE_ARRAY"),
3425            _ => None,
3426        };
3427        if let Some(x) = name {
3428            f.write_str(x)
3429        } else {
3430            self.0.fmt(f)
3431        }
3432    }
3433}
3434impl fmt::Debug for IndexType {
3435    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3436        let name = match *self {
3437            Self::UINT16 => Some("UINT16"),
3438            Self::UINT32 => Some("UINT32"),
3439            Self::NONE_KHR => Some("NONE_KHR"),
3440            Self::UINT8 => Some("UINT8"),
3441            _ => None,
3442        };
3443        if let Some(x) = name {
3444            f.write_str(x)
3445        } else {
3446            self.0.fmt(f)
3447        }
3448    }
3449}
3450impl fmt::Debug for IndirectCommandsInputModeFlagsEXT {
3451    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3452        const KNOWN: &[(Flags, &str)] = &[
3453            (
3454                IndirectCommandsInputModeFlagsEXT::VULKAN_INDEX_BUFFER.0,
3455                "VULKAN_INDEX_BUFFER",
3456            ),
3457            (
3458                IndirectCommandsInputModeFlagsEXT::DXGI_INDEX_BUFFER.0,
3459                "DXGI_INDEX_BUFFER",
3460            ),
3461        ];
3462        debug_flags(f, KNOWN, self.0)
3463    }
3464}
3465impl fmt::Debug for IndirectCommandsLayoutUsageFlagsEXT {
3466    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3467        const KNOWN: &[(Flags, &str)] = &[
3468            (
3469                IndirectCommandsLayoutUsageFlagsEXT::EXPLICIT_PREPROCESS.0,
3470                "EXPLICIT_PREPROCESS",
3471            ),
3472            (
3473                IndirectCommandsLayoutUsageFlagsEXT::UNORDERED_SEQUENCES.0,
3474                "UNORDERED_SEQUENCES",
3475            ),
3476        ];
3477        debug_flags(f, KNOWN, self.0)
3478    }
3479}
3480impl fmt::Debug for IndirectCommandsLayoutUsageFlagsNV {
3481    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3482        const KNOWN: &[(Flags, &str)] = &[
3483            (
3484                IndirectCommandsLayoutUsageFlagsNV::EXPLICIT_PREPROCESS.0,
3485                "EXPLICIT_PREPROCESS",
3486            ),
3487            (
3488                IndirectCommandsLayoutUsageFlagsNV::INDEXED_SEQUENCES.0,
3489                "INDEXED_SEQUENCES",
3490            ),
3491            (
3492                IndirectCommandsLayoutUsageFlagsNV::UNORDERED_SEQUENCES.0,
3493                "UNORDERED_SEQUENCES",
3494            ),
3495        ];
3496        debug_flags(f, KNOWN, self.0)
3497    }
3498}
3499impl fmt::Debug for IndirectCommandsTokenTypeEXT {
3500    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3501        let name = match *self {
3502            Self::EXECUTION_SET => Some("EXECUTION_SET"),
3503            Self::PUSH_CONSTANT => Some("PUSH_CONSTANT"),
3504            Self::SEQUENCE_INDEX => Some("SEQUENCE_INDEX"),
3505            Self::INDEX_BUFFER => Some("INDEX_BUFFER"),
3506            Self::VERTEX_BUFFER => Some("VERTEX_BUFFER"),
3507            Self::DRAW_INDEXED => Some("DRAW_INDEXED"),
3508            Self::DRAW => Some("DRAW"),
3509            Self::DRAW_INDEXED_COUNT => Some("DRAW_INDEXED_COUNT"),
3510            Self::DRAW_COUNT => Some("DRAW_COUNT"),
3511            Self::DISPATCH => Some("DISPATCH"),
3512            Self::PUSH_DATA => Some("PUSH_DATA"),
3513            Self::PUSH_DATA_SEQUENCE_INDEX => Some("PUSH_DATA_SEQUENCE_INDEX"),
3514            Self::DRAW_MESH_TASKS_NV => Some("DRAW_MESH_TASKS_NV"),
3515            Self::DRAW_MESH_TASKS_COUNT_NV => Some("DRAW_MESH_TASKS_COUNT_NV"),
3516            Self::DRAW_MESH_TASKS => Some("DRAW_MESH_TASKS"),
3517            Self::DRAW_MESH_TASKS_COUNT => Some("DRAW_MESH_TASKS_COUNT"),
3518            Self::TRACE_RAYS2 => Some("TRACE_RAYS2"),
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 IndirectCommandsTokenTypeNV {
3529    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3530        let name = match *self {
3531            Self::SHADER_GROUP => Some("SHADER_GROUP"),
3532            Self::STATE_FLAGS => Some("STATE_FLAGS"),
3533            Self::INDEX_BUFFER => Some("INDEX_BUFFER"),
3534            Self::VERTEX_BUFFER => Some("VERTEX_BUFFER"),
3535            Self::PUSH_CONSTANT => Some("PUSH_CONSTANT"),
3536            Self::DRAW_INDEXED => Some("DRAW_INDEXED"),
3537            Self::DRAW => Some("DRAW"),
3538            Self::DRAW_TASKS => Some("DRAW_TASKS"),
3539            Self::PUSH_DATA => Some("PUSH_DATA"),
3540            Self::DRAW_MESH_TASKS => Some("DRAW_MESH_TASKS"),
3541            Self::PIPELINE => Some("PIPELINE"),
3542            Self::DISPATCH => Some("DISPATCH"),
3543            _ => None,
3544        };
3545        if let Some(x) = name {
3546            f.write_str(x)
3547        } else {
3548            self.0.fmt(f)
3549        }
3550    }
3551}
3552impl fmt::Debug for IndirectExecutionSetInfoTypeEXT {
3553    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3554        let name = match *self {
3555            Self::PIPELINES => Some("PIPELINES"),
3556            Self::SHADER_OBJECTS => Some("SHADER_OBJECTS"),
3557            _ => None,
3558        };
3559        if let Some(x) = name {
3560            f.write_str(x)
3561        } else {
3562            self.0.fmt(f)
3563        }
3564    }
3565}
3566impl fmt::Debug for IndirectStateFlagsNV {
3567    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3568        const KNOWN: &[(Flags, &str)] =
3569            &[(IndirectStateFlagsNV::FLAG_FRONTFACE.0, "FLAG_FRONTFACE")];
3570        debug_flags(f, KNOWN, self.0)
3571    }
3572}
3573impl fmt::Debug for InstanceCreateFlags {
3574    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3575        const KNOWN: &[(Flags, &str)] = &[(
3576            InstanceCreateFlags::ENUMERATE_PORTABILITY_KHR.0,
3577            "ENUMERATE_PORTABILITY_KHR",
3578        )];
3579        debug_flags(f, KNOWN, self.0)
3580    }
3581}
3582impl fmt::Debug for InternalAllocationType {
3583    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3584        let name = match *self {
3585            Self::EXECUTABLE => Some("EXECUTABLE"),
3586            _ => None,
3587        };
3588        if let Some(x) = name {
3589            f.write_str(x)
3590        } else {
3591            self.0.fmt(f)
3592        }
3593    }
3594}
3595impl fmt::Debug for LatencyMarkerNV {
3596    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3597        let name = match *self {
3598            Self::SIMULATION_START => Some("SIMULATION_START"),
3599            Self::SIMULATION_END => Some("SIMULATION_END"),
3600            Self::RENDERSUBMIT_START => Some("RENDERSUBMIT_START"),
3601            Self::RENDERSUBMIT_END => Some("RENDERSUBMIT_END"),
3602            Self::PRESENT_START => Some("PRESENT_START"),
3603            Self::PRESENT_END => Some("PRESENT_END"),
3604            Self::INPUT_SAMPLE => Some("INPUT_SAMPLE"),
3605            Self::TRIGGER_FLASH => Some("TRIGGER_FLASH"),
3606            Self::OUT_OF_BAND_RENDERSUBMIT_START => Some("OUT_OF_BAND_RENDERSUBMIT_START"),
3607            Self::OUT_OF_BAND_RENDERSUBMIT_END => Some("OUT_OF_BAND_RENDERSUBMIT_END"),
3608            Self::OUT_OF_BAND_PRESENT_START => Some("OUT_OF_BAND_PRESENT_START"),
3609            Self::OUT_OF_BAND_PRESENT_END => Some("OUT_OF_BAND_PRESENT_END"),
3610            _ => None,
3611        };
3612        if let Some(x) = name {
3613            f.write_str(x)
3614        } else {
3615            self.0.fmt(f)
3616        }
3617    }
3618}
3619impl fmt::Debug for LayerSettingTypeEXT {
3620    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3621        let name = match *self {
3622            Self::BOOL32 => Some("BOOL32"),
3623            Self::INT32 => Some("INT32"),
3624            Self::INT64 => Some("INT64"),
3625            Self::UINT32 => Some("UINT32"),
3626            Self::UINT64 => Some("UINT64"),
3627            Self::FLOAT32 => Some("FLOAT32"),
3628            Self::FLOAT64 => Some("FLOAT64"),
3629            Self::STRING => Some("STRING"),
3630            _ => None,
3631        };
3632        if let Some(x) = name {
3633            f.write_str(x)
3634        } else {
3635            self.0.fmt(f)
3636        }
3637    }
3638}
3639impl fmt::Debug for LayeredDriverUnderlyingApiMSFT {
3640    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3641        let name = match *self {
3642            Self::NONE => Some("NONE"),
3643            Self::D3D12 => Some("D3D12"),
3644            _ => None,
3645        };
3646        if let Some(x) = name {
3647            f.write_str(x)
3648        } else {
3649            self.0.fmt(f)
3650        }
3651    }
3652}
3653impl fmt::Debug for LineRasterizationMode {
3654    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3655        let name = match *self {
3656            Self::DEFAULT => Some("DEFAULT"),
3657            Self::RECTANGULAR => Some("RECTANGULAR"),
3658            Self::BRESENHAM => Some("BRESENHAM"),
3659            Self::RECTANGULAR_SMOOTH => Some("RECTANGULAR_SMOOTH"),
3660            _ => None,
3661        };
3662        if let Some(x) = name {
3663            f.write_str(x)
3664        } else {
3665            self.0.fmt(f)
3666        }
3667    }
3668}
3669impl fmt::Debug for LogicOp {
3670    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3671        let name = match *self {
3672            Self::CLEAR => Some("CLEAR"),
3673            Self::AND => Some("AND"),
3674            Self::AND_REVERSE => Some("AND_REVERSE"),
3675            Self::COPY => Some("COPY"),
3676            Self::AND_INVERTED => Some("AND_INVERTED"),
3677            Self::NO_OP => Some("NO_OP"),
3678            Self::XOR => Some("XOR"),
3679            Self::OR => Some("OR"),
3680            Self::NOR => Some("NOR"),
3681            Self::EQUIVALENT => Some("EQUIVALENT"),
3682            Self::INVERT => Some("INVERT"),
3683            Self::OR_REVERSE => Some("OR_REVERSE"),
3684            Self::COPY_INVERTED => Some("COPY_INVERTED"),
3685            Self::OR_INVERTED => Some("OR_INVERTED"),
3686            Self::NAND => Some("NAND"),
3687            Self::SET => Some("SET"),
3688            _ => None,
3689        };
3690        if let Some(x) = name {
3691            f.write_str(x)
3692        } else {
3693            self.0.fmt(f)
3694        }
3695    }
3696}
3697impl fmt::Debug for MacOSSurfaceCreateFlagsMVK {
3698    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3699        const KNOWN: &[(Flags, &str)] = &[];
3700        debug_flags(f, KNOWN, self.0)
3701    }
3702}
3703impl fmt::Debug for MemoryAllocateFlags {
3704    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3705        const KNOWN: &[(Flags, &str)] = &[
3706            (MemoryAllocateFlags::DEVICE_MASK.0, "DEVICE_MASK"),
3707            (
3708                MemoryAllocateFlags::ZERO_INITIALIZE_EXT.0,
3709                "ZERO_INITIALIZE_EXT",
3710            ),
3711            (MemoryAllocateFlags::DEVICE_ADDRESS.0, "DEVICE_ADDRESS"),
3712            (
3713                MemoryAllocateFlags::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
3714                "DEVICE_ADDRESS_CAPTURE_REPLAY",
3715            ),
3716        ];
3717        debug_flags(f, KNOWN, self.0)
3718    }
3719}
3720impl fmt::Debug for MemoryDecompressionMethodFlagsEXT {
3721    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3722        const KNOWN: &[(Flags64, &str)] = &[(
3723            MemoryDecompressionMethodFlagsEXT::GDEFLATE_1_0.0,
3724            "GDEFLATE_1_0",
3725        )];
3726        debug_flags(f, KNOWN, self.0)
3727    }
3728}
3729impl fmt::Debug for MemoryHeapFlags {
3730    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3731        const KNOWN: &[(Flags, &str)] = &[
3732            (MemoryHeapFlags::DEVICE_LOCAL.0, "DEVICE_LOCAL"),
3733            (MemoryHeapFlags::TILE_MEMORY_QCOM.0, "TILE_MEMORY_QCOM"),
3734            (MemoryHeapFlags::MULTI_INSTANCE.0, "MULTI_INSTANCE"),
3735        ];
3736        debug_flags(f, KNOWN, self.0)
3737    }
3738}
3739impl fmt::Debug for MemoryMapFlags {
3740    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3741        const KNOWN: &[(Flags, &str)] = &[(MemoryMapFlags::PLACED_EXT.0, "PLACED_EXT")];
3742        debug_flags(f, KNOWN, self.0)
3743    }
3744}
3745impl fmt::Debug for MemoryOverallocationBehaviorAMD {
3746    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3747        let name = match *self {
3748            Self::DEFAULT => Some("DEFAULT"),
3749            Self::ALLOWED => Some("ALLOWED"),
3750            Self::DISALLOWED => Some("DISALLOWED"),
3751            _ => None,
3752        };
3753        if let Some(x) = name {
3754            f.write_str(x)
3755        } else {
3756            self.0.fmt(f)
3757        }
3758    }
3759}
3760impl fmt::Debug for MemoryPropertyFlags {
3761    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3762        const KNOWN: &[(Flags, &str)] = &[
3763            (MemoryPropertyFlags::DEVICE_LOCAL.0, "DEVICE_LOCAL"),
3764            (MemoryPropertyFlags::HOST_VISIBLE.0, "HOST_VISIBLE"),
3765            (MemoryPropertyFlags::HOST_COHERENT.0, "HOST_COHERENT"),
3766            (MemoryPropertyFlags::HOST_CACHED.0, "HOST_CACHED"),
3767            (MemoryPropertyFlags::LAZILY_ALLOCATED.0, "LAZILY_ALLOCATED"),
3768            (
3769                MemoryPropertyFlags::DEVICE_COHERENT_AMD.0,
3770                "DEVICE_COHERENT_AMD",
3771            ),
3772            (
3773                MemoryPropertyFlags::DEVICE_UNCACHED_AMD.0,
3774                "DEVICE_UNCACHED_AMD",
3775            ),
3776            (MemoryPropertyFlags::RDMA_CAPABLE_NV.0, "RDMA_CAPABLE_NV"),
3777            (MemoryPropertyFlags::PROTECTED.0, "PROTECTED"),
3778        ];
3779        debug_flags(f, KNOWN, self.0)
3780    }
3781}
3782impl fmt::Debug for MemoryUnmapFlags {
3783    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3784        const KNOWN: &[(Flags, &str)] = &[(MemoryUnmapFlags::RESERVE_EXT.0, "RESERVE_EXT")];
3785        debug_flags(f, KNOWN, self.0)
3786    }
3787}
3788impl fmt::Debug for MetalSurfaceCreateFlagsEXT {
3789    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3790        const KNOWN: &[(Flags, &str)] = &[];
3791        debug_flags(f, KNOWN, self.0)
3792    }
3793}
3794impl fmt::Debug for MicromapCreateFlagsEXT {
3795    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3796        const KNOWN: &[(Flags, &str)] = &[(
3797            MicromapCreateFlagsEXT::DEVICE_ADDRESS_CAPTURE_REPLAY.0,
3798            "DEVICE_ADDRESS_CAPTURE_REPLAY",
3799        )];
3800        debug_flags(f, KNOWN, self.0)
3801    }
3802}
3803impl fmt::Debug for MicromapTypeEXT {
3804    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3805        let name = match *self {
3806            Self::OPACITY_MICROMAP => Some("OPACITY_MICROMAP"),
3807            Self::DISPLACEMENT_MICROMAP_NV => Some("DISPLACEMENT_MICROMAP_NV"),
3808            _ => None,
3809        };
3810        if let Some(x) = name {
3811            f.write_str(x)
3812        } else {
3813            self.0.fmt(f)
3814        }
3815    }
3816}
3817impl fmt::Debug for OpacityMicromapFormatEXT {
3818    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3819        let name = match *self {
3820            Self::TYPE_2_STATE => Some("TYPE_2_STATE"),
3821            Self::TYPE_4_STATE => Some("TYPE_4_STATE"),
3822            _ => None,
3823        };
3824        if let Some(x) = name {
3825            f.write_str(x)
3826        } else {
3827            self.0.fmt(f)
3828        }
3829    }
3830}
3831impl fmt::Debug for OpacityMicromapSpecialIndexEXT {
3832    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3833        let name = match *self {
3834            Self::FULLY_TRANSPARENT => Some("FULLY_TRANSPARENT"),
3835            Self::FULLY_OPAQUE => Some("FULLY_OPAQUE"),
3836            Self::FULLY_UNKNOWN_TRANSPARENT => Some("FULLY_UNKNOWN_TRANSPARENT"),
3837            Self::FULLY_UNKNOWN_OPAQUE => Some("FULLY_UNKNOWN_OPAQUE"),
3838            Self::CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV => {
3839                Some("CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV")
3840            }
3841            _ => None,
3842        };
3843        if let Some(x) = name {
3844            f.write_str(x)
3845        } else {
3846            self.0.fmt(f)
3847        }
3848    }
3849}
3850impl fmt::Debug for OpticalFlowExecuteFlagsNV {
3851    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3852        const KNOWN: &[(Flags, &str)] = &[(
3853            OpticalFlowExecuteFlagsNV::DISABLE_TEMPORAL_HINTS.0,
3854            "DISABLE_TEMPORAL_HINTS",
3855        )];
3856        debug_flags(f, KNOWN, self.0)
3857    }
3858}
3859impl fmt::Debug for OpticalFlowGridSizeFlagsNV {
3860    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3861        const KNOWN: &[(Flags, &str)] = &[
3862            (OpticalFlowGridSizeFlagsNV::UNKNOWN.0, "UNKNOWN"),
3863            (OpticalFlowGridSizeFlagsNV::TYPE_1X1.0, "TYPE_1X1"),
3864            (OpticalFlowGridSizeFlagsNV::TYPE_2X2.0, "TYPE_2X2"),
3865            (OpticalFlowGridSizeFlagsNV::TYPE_4X4.0, "TYPE_4X4"),
3866            (OpticalFlowGridSizeFlagsNV::TYPE_8X8.0, "TYPE_8X8"),
3867        ];
3868        debug_flags(f, KNOWN, self.0)
3869    }
3870}
3871impl fmt::Debug for OpticalFlowPerformanceLevelNV {
3872    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3873        let name = match *self {
3874            Self::UNKNOWN => Some("UNKNOWN"),
3875            Self::SLOW => Some("SLOW"),
3876            Self::MEDIUM => Some("MEDIUM"),
3877            Self::FAST => Some("FAST"),
3878            _ => None,
3879        };
3880        if let Some(x) = name {
3881            f.write_str(x)
3882        } else {
3883            self.0.fmt(f)
3884        }
3885    }
3886}
3887impl fmt::Debug for OpticalFlowSessionBindingPointNV {
3888    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3889        let name = match *self {
3890            Self::UNKNOWN => Some("UNKNOWN"),
3891            Self::INPUT => Some("INPUT"),
3892            Self::REFERENCE => Some("REFERENCE"),
3893            Self::HINT => Some("HINT"),
3894            Self::FLOW_VECTOR => Some("FLOW_VECTOR"),
3895            Self::BACKWARD_FLOW_VECTOR => Some("BACKWARD_FLOW_VECTOR"),
3896            Self::COST => Some("COST"),
3897            Self::BACKWARD_COST => Some("BACKWARD_COST"),
3898            Self::GLOBAL_FLOW => Some("GLOBAL_FLOW"),
3899            _ => None,
3900        };
3901        if let Some(x) = name {
3902            f.write_str(x)
3903        } else {
3904            self.0.fmt(f)
3905        }
3906    }
3907}
3908impl fmt::Debug for OpticalFlowSessionCreateFlagsNV {
3909    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3910        const KNOWN: &[(Flags, &str)] = &[
3911            (
3912                OpticalFlowSessionCreateFlagsNV::ENABLE_HINT.0,
3913                "ENABLE_HINT",
3914            ),
3915            (
3916                OpticalFlowSessionCreateFlagsNV::ENABLE_COST.0,
3917                "ENABLE_COST",
3918            ),
3919            (
3920                OpticalFlowSessionCreateFlagsNV::ENABLE_GLOBAL_FLOW.0,
3921                "ENABLE_GLOBAL_FLOW",
3922            ),
3923            (
3924                OpticalFlowSessionCreateFlagsNV::ALLOW_REGIONS.0,
3925                "ALLOW_REGIONS",
3926            ),
3927            (
3928                OpticalFlowSessionCreateFlagsNV::BOTH_DIRECTIONS.0,
3929                "BOTH_DIRECTIONS",
3930            ),
3931        ];
3932        debug_flags(f, KNOWN, self.0)
3933    }
3934}
3935impl fmt::Debug for OpticalFlowUsageFlagsNV {
3936    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3937        const KNOWN: &[(Flags, &str)] = &[
3938            (OpticalFlowUsageFlagsNV::UNKNOWN.0, "UNKNOWN"),
3939            (OpticalFlowUsageFlagsNV::INPUT.0, "INPUT"),
3940            (OpticalFlowUsageFlagsNV::OUTPUT.0, "OUTPUT"),
3941            (OpticalFlowUsageFlagsNV::HINT.0, "HINT"),
3942            (OpticalFlowUsageFlagsNV::COST.0, "COST"),
3943            (OpticalFlowUsageFlagsNV::GLOBAL_FLOW.0, "GLOBAL_FLOW"),
3944        ];
3945        debug_flags(f, KNOWN, self.0)
3946    }
3947}
3948impl fmt::Debug for OutOfBandQueueTypeNV {
3949    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3950        let name = match *self {
3951            Self::RENDER => Some("RENDER"),
3952            Self::PRESENT => Some("PRESENT"),
3953            _ => None,
3954        };
3955        if let Some(x) = name {
3956            f.write_str(x)
3957        } else {
3958            self.0.fmt(f)
3959        }
3960    }
3961}
3962impl fmt::Debug for PartitionedAccelerationStructureInstanceFlagsNV {
3963    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3964        const KNOWN: &[(Flags, &str)] = &[
3965            (
3966                PartitionedAccelerationStructureInstanceFlagsNV::FLAG_TRIANGLE_FACING_CULL_DISABLE
3967                    .0,
3968                "FLAG_TRIANGLE_FACING_CULL_DISABLE",
3969            ),
3970            (
3971                PartitionedAccelerationStructureInstanceFlagsNV::FLAG_TRIANGLE_FLIP_FACING.0,
3972                "FLAG_TRIANGLE_FLIP_FACING",
3973            ),
3974            (
3975                PartitionedAccelerationStructureInstanceFlagsNV::FLAG_FORCE_OPAQUE.0,
3976                "FLAG_FORCE_OPAQUE",
3977            ),
3978            (
3979                PartitionedAccelerationStructureInstanceFlagsNV::FLAG_FORCE_NO_OPAQUE.0,
3980                "FLAG_FORCE_NO_OPAQUE",
3981            ),
3982            (
3983                PartitionedAccelerationStructureInstanceFlagsNV::FLAG_ENABLE_EXPLICIT_BOUNDING_BOX
3984                    .0,
3985                "FLAG_ENABLE_EXPLICIT_BOUNDING_BOX",
3986            ),
3987        ];
3988        debug_flags(f, KNOWN, self.0)
3989    }
3990}
3991impl fmt::Debug for PartitionedAccelerationStructureOpTypeNV {
3992    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
3993        let name = match *self {
3994            Self::WRITE_INSTANCE => Some("WRITE_INSTANCE"),
3995            Self::UPDATE_INSTANCE => Some("UPDATE_INSTANCE"),
3996            Self::WRITE_PARTITION_TRANSLATION => Some("WRITE_PARTITION_TRANSLATION"),
3997            _ => None,
3998        };
3999        if let Some(x) = name {
4000            f.write_str(x)
4001        } else {
4002            self.0.fmt(f)
4003        }
4004    }
4005}
4006impl fmt::Debug for PastPresentationTimingFlagsEXT {
4007    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4008        const KNOWN: &[(Flags, &str)] = &[
4009            (
4010                PastPresentationTimingFlagsEXT::ALLOW_PARTIAL_RESULTS.0,
4011                "ALLOW_PARTIAL_RESULTS",
4012            ),
4013            (
4014                PastPresentationTimingFlagsEXT::ALLOW_OUT_OF_ORDER_RESULTS.0,
4015                "ALLOW_OUT_OF_ORDER_RESULTS",
4016            ),
4017        ];
4018        debug_flags(f, KNOWN, self.0)
4019    }
4020}
4021impl fmt::Debug for PeerMemoryFeatureFlags {
4022    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4023        const KNOWN: &[(Flags, &str)] = &[
4024            (PeerMemoryFeatureFlags::COPY_SRC.0, "COPY_SRC"),
4025            (PeerMemoryFeatureFlags::COPY_DST.0, "COPY_DST"),
4026            (PeerMemoryFeatureFlags::GENERIC_SRC.0, "GENERIC_SRC"),
4027            (PeerMemoryFeatureFlags::GENERIC_DST.0, "GENERIC_DST"),
4028        ];
4029        debug_flags(f, KNOWN, self.0)
4030    }
4031}
4032impl fmt::Debug for PerformanceConfigurationTypeINTEL {
4033    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4034        let name = match *self {
4035            Self::COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED => {
4036                Some("COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED")
4037            }
4038            _ => None,
4039        };
4040        if let Some(x) = name {
4041            f.write_str(x)
4042        } else {
4043            self.0.fmt(f)
4044        }
4045    }
4046}
4047impl fmt::Debug for PerformanceCounterDescriptionFlagsARM {
4048    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4049        const KNOWN: &[(Flags, &str)] = &[];
4050        debug_flags(f, KNOWN, self.0)
4051    }
4052}
4053impl fmt::Debug for PerformanceCounterDescriptionFlagsKHR {
4054    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4055        const KNOWN: &[(Flags, &str)] = &[
4056            (
4057                PerformanceCounterDescriptionFlagsKHR::PERFORMANCE_IMPACTING.0,
4058                "PERFORMANCE_IMPACTING",
4059            ),
4060            (
4061                PerformanceCounterDescriptionFlagsKHR::CONCURRENTLY_IMPACTED.0,
4062                "CONCURRENTLY_IMPACTED",
4063            ),
4064        ];
4065        debug_flags(f, KNOWN, self.0)
4066    }
4067}
4068impl fmt::Debug for PerformanceCounterScopeKHR {
4069    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4070        let name = match *self {
4071            Self::COMMAND_BUFFER => Some("COMMAND_BUFFER"),
4072            Self::RENDER_PASS => Some("RENDER_PASS"),
4073            Self::COMMAND => Some("COMMAND"),
4074            _ => None,
4075        };
4076        if let Some(x) = name {
4077            f.write_str(x)
4078        } else {
4079            self.0.fmt(f)
4080        }
4081    }
4082}
4083impl fmt::Debug for PerformanceCounterStorageKHR {
4084    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4085        let name = match *self {
4086            Self::INT32 => Some("INT32"),
4087            Self::INT64 => Some("INT64"),
4088            Self::UINT32 => Some("UINT32"),
4089            Self::UINT64 => Some("UINT64"),
4090            Self::FLOAT32 => Some("FLOAT32"),
4091            Self::FLOAT64 => Some("FLOAT64"),
4092            _ => None,
4093        };
4094        if let Some(x) = name {
4095            f.write_str(x)
4096        } else {
4097            self.0.fmt(f)
4098        }
4099    }
4100}
4101impl fmt::Debug for PerformanceCounterUnitKHR {
4102    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4103        let name = match *self {
4104            Self::GENERIC => Some("GENERIC"),
4105            Self::PERCENTAGE => Some("PERCENTAGE"),
4106            Self::NANOSECONDS => Some("NANOSECONDS"),
4107            Self::BYTES => Some("BYTES"),
4108            Self::BYTES_PER_SECOND => Some("BYTES_PER_SECOND"),
4109            Self::KELVIN => Some("KELVIN"),
4110            Self::WATTS => Some("WATTS"),
4111            Self::VOLTS => Some("VOLTS"),
4112            Self::AMPS => Some("AMPS"),
4113            Self::HERTZ => Some("HERTZ"),
4114            Self::CYCLES => Some("CYCLES"),
4115            _ => None,
4116        };
4117        if let Some(x) = name {
4118            f.write_str(x)
4119        } else {
4120            self.0.fmt(f)
4121        }
4122    }
4123}
4124impl fmt::Debug for PerformanceOverrideTypeINTEL {
4125    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4126        let name = match *self {
4127            Self::NULL_HARDWARE => Some("NULL_HARDWARE"),
4128            Self::FLUSH_GPU_CACHES => Some("FLUSH_GPU_CACHES"),
4129            _ => None,
4130        };
4131        if let Some(x) = name {
4132            f.write_str(x)
4133        } else {
4134            self.0.fmt(f)
4135        }
4136    }
4137}
4138impl fmt::Debug for PerformanceParameterTypeINTEL {
4139    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4140        let name = match *self {
4141            Self::HW_COUNTERS_SUPPORTED => Some("HW_COUNTERS_SUPPORTED"),
4142            Self::STREAM_MARKER_VALIDS => Some("STREAM_MARKER_VALIDS"),
4143            _ => None,
4144        };
4145        if let Some(x) = name {
4146            f.write_str(x)
4147        } else {
4148            self.0.fmt(f)
4149        }
4150    }
4151}
4152impl fmt::Debug for PerformanceValueTypeINTEL {
4153    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4154        let name = match *self {
4155            Self::UINT32 => Some("UINT32"),
4156            Self::UINT64 => Some("UINT64"),
4157            Self::FLOAT => Some("FLOAT"),
4158            Self::BOOL => Some("BOOL"),
4159            Self::STRING => Some("STRING"),
4160            _ => None,
4161        };
4162        if let Some(x) = name {
4163            f.write_str(x)
4164        } else {
4165            self.0.fmt(f)
4166        }
4167    }
4168}
4169impl fmt::Debug for PhysicalDeviceDataGraphOperationTypeARM {
4170    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4171        let name = match *self {
4172            Self::SPIRV_EXTENDED_INSTRUCTION_SET => Some("SPIRV_EXTENDED_INSTRUCTION_SET"),
4173            Self::NEURAL_MODEL_QCOM => Some("NEURAL_MODEL_QCOM"),
4174            Self::BUILTIN_MODEL_QCOM => Some("BUILTIN_MODEL_QCOM"),
4175            _ => None,
4176        };
4177        if let Some(x) = name {
4178            f.write_str(x)
4179        } else {
4180            self.0.fmt(f)
4181        }
4182    }
4183}
4184impl fmt::Debug for PhysicalDeviceDataGraphProcessingEngineTypeARM {
4185    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4186        let name = match *self {
4187            Self::DEFAULT => Some("DEFAULT"),
4188            Self::NEURAL_QCOM => Some("NEURAL_QCOM"),
4189            Self::COMPUTE_QCOM => Some("COMPUTE_QCOM"),
4190            _ => None,
4191        };
4192        if let Some(x) = name {
4193            f.write_str(x)
4194        } else {
4195            self.0.fmt(f)
4196        }
4197    }
4198}
4199impl fmt::Debug for PhysicalDeviceLayeredApiKHR {
4200    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4201        let name = match *self {
4202            Self::VULKAN => Some("VULKAN"),
4203            Self::D3D12 => Some("D3D12"),
4204            Self::METAL => Some("METAL"),
4205            Self::OPENGL => Some("OPENGL"),
4206            Self::OPENGLES => Some("OPENGLES"),
4207            _ => None,
4208        };
4209        if let Some(x) = name {
4210            f.write_str(x)
4211        } else {
4212            self.0.fmt(f)
4213        }
4214    }
4215}
4216impl fmt::Debug for PhysicalDeviceSchedulingControlsFlagsARM {
4217    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4218        const KNOWN: &[(Flags64, &str)] = &[(
4219            PhysicalDeviceSchedulingControlsFlagsARM::SHADER_CORE_COUNT.0,
4220            "SHADER_CORE_COUNT",
4221        )];
4222        debug_flags(f, KNOWN, self.0)
4223    }
4224}
4225impl fmt::Debug for PhysicalDeviceType {
4226    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4227        let name = match *self {
4228            Self::OTHER => Some("OTHER"),
4229            Self::INTEGRATED_GPU => Some("INTEGRATED_GPU"),
4230            Self::DISCRETE_GPU => Some("DISCRETE_GPU"),
4231            Self::VIRTUAL_GPU => Some("VIRTUAL_GPU"),
4232            Self::CPU => Some("CPU"),
4233            _ => None,
4234        };
4235        if let Some(x) = name {
4236            f.write_str(x)
4237        } else {
4238            self.0.fmt(f)
4239        }
4240    }
4241}
4242impl fmt::Debug for PipelineBindPoint {
4243    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4244        let name = match *self {
4245            Self::GRAPHICS => Some("GRAPHICS"),
4246            Self::COMPUTE => Some("COMPUTE"),
4247            Self::EXECUTION_GRAPH_AMDX => Some("EXECUTION_GRAPH_AMDX"),
4248            Self::RAY_TRACING_KHR => Some("RAY_TRACING_KHR"),
4249            Self::SUBPASS_SHADING_HUAWEI => Some("SUBPASS_SHADING_HUAWEI"),
4250            Self::DATA_GRAPH_ARM => Some("DATA_GRAPH_ARM"),
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 PipelineCacheCreateFlags {
4261    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4262        const KNOWN: &[(Flags, &str)] = &[
4263            (
4264                PipelineCacheCreateFlags::INTERNALLY_SYNCHRONIZED_MERGE_KHR.0,
4265                "INTERNALLY_SYNCHRONIZED_MERGE_KHR",
4266            ),
4267            (
4268                PipelineCacheCreateFlags::EXTERNALLY_SYNCHRONIZED.0,
4269                "EXTERNALLY_SYNCHRONIZED",
4270            ),
4271        ];
4272        debug_flags(f, KNOWN, self.0)
4273    }
4274}
4275impl fmt::Debug for PipelineCacheHeaderVersion {
4276    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4277        let name = match *self {
4278            Self::ONE => Some("ONE"),
4279            Self::DATA_GRAPH_QCOM => Some("DATA_GRAPH_QCOM"),
4280            _ => None,
4281        };
4282        if let Some(x) = name {
4283            f.write_str(x)
4284        } else {
4285            self.0.fmt(f)
4286        }
4287    }
4288}
4289impl fmt::Debug for PipelineColorBlendStateCreateFlags {
4290    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4291        const KNOWN: &[(Flags, &str)] = &[(
4292            PipelineColorBlendStateCreateFlags::RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT.0,
4293            "RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXT",
4294        )];
4295        debug_flags(f, KNOWN, self.0)
4296    }
4297}
4298impl fmt::Debug for PipelineCompilerControlFlagsAMD {
4299    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4300        const KNOWN: &[(Flags, &str)] = &[];
4301        debug_flags(f, KNOWN, self.0)
4302    }
4303}
4304impl fmt::Debug for PipelineCoverageModulationStateCreateFlagsNV {
4305    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4306        const KNOWN: &[(Flags, &str)] = &[];
4307        debug_flags(f, KNOWN, self.0)
4308    }
4309}
4310impl fmt::Debug for PipelineCoverageReductionStateCreateFlagsNV {
4311    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4312        const KNOWN: &[(Flags, &str)] = &[];
4313        debug_flags(f, KNOWN, self.0)
4314    }
4315}
4316impl fmt::Debug for PipelineCoverageToColorStateCreateFlagsNV {
4317    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4318        const KNOWN: &[(Flags, &str)] = &[];
4319        debug_flags(f, KNOWN, self.0)
4320    }
4321}
4322impl fmt::Debug for PipelineCreateFlags {
4323    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4324        const KNOWN: &[(Flags, &str)] = &[
4325            (
4326                PipelineCreateFlags::DISABLE_OPTIMIZATION.0,
4327                "DISABLE_OPTIMIZATION",
4328            ),
4329            (
4330                PipelineCreateFlags::ALLOW_DERIVATIVES.0,
4331                "ALLOW_DERIVATIVES",
4332            ),
4333            (PipelineCreateFlags::DERIVATIVE.0, "DERIVATIVE"),
4334            (
4335                PipelineCreateFlags::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR.0,
4336                "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR",
4337            ),
4338            (
4339                PipelineCreateFlags::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR.0,
4340                "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR",
4341            ),
4342            (
4343                PipelineCreateFlags::RAY_TRACING_NO_NULL_MISS_SHADERS_KHR.0,
4344                "RAY_TRACING_NO_NULL_MISS_SHADERS_KHR",
4345            ),
4346            (
4347                PipelineCreateFlags::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR.0,
4348                "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR",
4349            ),
4350            (
4351                PipelineCreateFlags::RAY_TRACING_SKIP_TRIANGLES_KHR.0,
4352                "RAY_TRACING_SKIP_TRIANGLES_KHR",
4353            ),
4354            (
4355                PipelineCreateFlags::RAY_TRACING_SKIP_AABBS_KHR.0,
4356                "RAY_TRACING_SKIP_AABBS_KHR",
4357            ),
4358            (
4359                PipelineCreateFlags::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR.0,
4360                "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR",
4361            ),
4362            (PipelineCreateFlags::DEFER_COMPILE_NV.0, "DEFER_COMPILE_NV"),
4363            (
4364                PipelineCreateFlags::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0,
4365                "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT",
4366            ),
4367            (
4368                PipelineCreateFlags::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
4369                "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
4370            ),
4371            (
4372                PipelineCreateFlags::CAPTURE_STATISTICS_KHR.0,
4373                "CAPTURE_STATISTICS_KHR",
4374            ),
4375            (
4376                PipelineCreateFlags::CAPTURE_INTERNAL_REPRESENTATIONS_KHR.0,
4377                "CAPTURE_INTERNAL_REPRESENTATIONS_KHR",
4378            ),
4379            (
4380                PipelineCreateFlags::INDIRECT_BINDABLE_NV.0,
4381                "INDIRECT_BINDABLE_NV",
4382            ),
4383            (PipelineCreateFlags::LIBRARY_KHR.0, "LIBRARY_KHR"),
4384            (
4385                PipelineCreateFlags::DESCRIPTOR_BUFFER_EXT.0,
4386                "DESCRIPTOR_BUFFER_EXT",
4387            ),
4388            (
4389                PipelineCreateFlags::RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT.0,
4390                "RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT",
4391            ),
4392            (
4393                PipelineCreateFlags::LINK_TIME_OPTIMIZATION_EXT.0,
4394                "LINK_TIME_OPTIMIZATION_EXT",
4395            ),
4396            (
4397                PipelineCreateFlags::RAY_TRACING_ALLOW_MOTION_NV.0,
4398                "RAY_TRACING_ALLOW_MOTION_NV",
4399            ),
4400            (
4401                PipelineCreateFlags::COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
4402                "COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT",
4403            ),
4404            (
4405                PipelineCreateFlags::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
4406                "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT",
4407            ),
4408            (
4409                PipelineCreateFlags::RAY_TRACING_OPACITY_MICROMAP_EXT.0,
4410                "RAY_TRACING_OPACITY_MICROMAP_EXT",
4411            ),
4412            (
4413                PipelineCreateFlags::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0,
4414                "RAY_TRACING_DISPLACEMENT_MICROMAP_NV",
4415            ),
4416            (PipelineCreateFlags::DISPATCH_BASE.0, "DISPATCH_BASE"),
4417            (
4418                PipelineCreateFlags::VIEW_INDEX_FROM_DEVICE_INDEX.0,
4419                "VIEW_INDEX_FROM_DEVICE_INDEX",
4420            ),
4421            (
4422                PipelineCreateFlags::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0,
4423                "FAIL_ON_PIPELINE_COMPILE_REQUIRED",
4424            ),
4425            (
4426                PipelineCreateFlags::EARLY_RETURN_ON_FAILURE.0,
4427                "EARLY_RETURN_ON_FAILURE",
4428            ),
4429            (
4430                PipelineCreateFlags::NO_PROTECTED_ACCESS.0,
4431                "NO_PROTECTED_ACCESS",
4432            ),
4433            (
4434                PipelineCreateFlags::PROTECTED_ACCESS_ONLY.0,
4435                "PROTECTED_ACCESS_ONLY",
4436            ),
4437        ];
4438        debug_flags(f, KNOWN, self.0)
4439    }
4440}
4441impl fmt::Debug for PipelineCreateFlags2 {
4442    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4443        const KNOWN: &[(Flags64, &str)] = &[
4444            (
4445                PipelineCreateFlags2::DISABLE_OPTIMIZATION.0,
4446                "DISABLE_OPTIMIZATION",
4447            ),
4448            (
4449                PipelineCreateFlags2::ALLOW_DERIVATIVES.0,
4450                "ALLOW_DERIVATIVES",
4451            ),
4452            (PipelineCreateFlags2::DERIVATIVE.0, "DERIVATIVE"),
4453            (
4454                PipelineCreateFlags2::VIEW_INDEX_FROM_DEVICE_INDEX.0,
4455                "VIEW_INDEX_FROM_DEVICE_INDEX",
4456            ),
4457            (PipelineCreateFlags2::DISPATCH_BASE.0, "DISPATCH_BASE"),
4458            (
4459                PipelineCreateFlags2::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0,
4460                "FAIL_ON_PIPELINE_COMPILE_REQUIRED",
4461            ),
4462            (
4463                PipelineCreateFlags2::EARLY_RETURN_ON_FAILURE.0,
4464                "EARLY_RETURN_ON_FAILURE",
4465            ),
4466            (
4467                PipelineCreateFlags2::NO_PROTECTED_ACCESS.0,
4468                "NO_PROTECTED_ACCESS",
4469            ),
4470            (
4471                PipelineCreateFlags2::PROTECTED_ACCESS_ONLY.0,
4472                "PROTECTED_ACCESS_ONLY",
4473            ),
4474            (
4475                PipelineCreateFlags2::EXECUTION_GRAPH_AMDX.0,
4476                "EXECUTION_GRAPH_AMDX",
4477            ),
4478            (
4479                PipelineCreateFlags2::DESCRIPTOR_HEAP_EXT.0,
4480                "DESCRIPTOR_HEAP_EXT",
4481            ),
4482            (
4483                PipelineCreateFlags2::RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV.0,
4484                "RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_NV",
4485            ),
4486            (
4487                PipelineCreateFlags2::ENABLE_LEGACY_DITHERING_EXT.0,
4488                "ENABLE_LEGACY_DITHERING_EXT",
4489            ),
4490            (PipelineCreateFlags2::DEFER_COMPILE_NV.0, "DEFER_COMPILE_NV"),
4491            (
4492                PipelineCreateFlags2::CAPTURE_STATISTICS_KHR.0,
4493                "CAPTURE_STATISTICS_KHR",
4494            ),
4495            (
4496                PipelineCreateFlags2::CAPTURE_INTERNAL_REPRESENTATIONS_KHR.0,
4497                "CAPTURE_INTERNAL_REPRESENTATIONS_KHR",
4498            ),
4499            (
4500                PipelineCreateFlags2::LINK_TIME_OPTIMIZATION_EXT.0,
4501                "LINK_TIME_OPTIMIZATION_EXT",
4502            ),
4503            (
4504                PipelineCreateFlags2::RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT.0,
4505                "RETAIN_LINK_TIME_OPTIMIZATION_INFO_EXT",
4506            ),
4507            (PipelineCreateFlags2::LIBRARY_KHR.0, "LIBRARY_KHR"),
4508            (
4509                PipelineCreateFlags2::RAY_TRACING_SKIP_TRIANGLES_KHR.0,
4510                "RAY_TRACING_SKIP_TRIANGLES_KHR",
4511            ),
4512            (
4513                PipelineCreateFlags2::RAY_TRACING_SKIP_AABBS_KHR.0,
4514                "RAY_TRACING_SKIP_AABBS_KHR",
4515            ),
4516            (
4517                PipelineCreateFlags2::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR.0,
4518                "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR",
4519            ),
4520            (
4521                PipelineCreateFlags2::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR.0,
4522                "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR",
4523            ),
4524            (
4525                PipelineCreateFlags2::RAY_TRACING_NO_NULL_MISS_SHADERS_KHR.0,
4526                "RAY_TRACING_NO_NULL_MISS_SHADERS_KHR",
4527            ),
4528            (
4529                PipelineCreateFlags2::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR.0,
4530                "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR",
4531            ),
4532            (
4533                PipelineCreateFlags2::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR.0,
4534                "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR",
4535            ),
4536            (
4537                PipelineCreateFlags2::INDIRECT_BINDABLE_NV.0,
4538                "INDIRECT_BINDABLE_NV",
4539            ),
4540            (
4541                PipelineCreateFlags2::RAY_TRACING_ALLOW_MOTION_NV.0,
4542                "RAY_TRACING_ALLOW_MOTION_NV",
4543            ),
4544            (
4545                PipelineCreateFlags2::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
4546                "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
4547            ),
4548            (
4549                PipelineCreateFlags2::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT.0,
4550                "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT",
4551            ),
4552            (
4553                PipelineCreateFlags2::RAY_TRACING_OPACITY_MICROMAP_EXT.0,
4554                "RAY_TRACING_OPACITY_MICROMAP_EXT",
4555            ),
4556            (
4557                PipelineCreateFlags2::COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
4558                "COLOR_ATTACHMENT_FEEDBACK_LOOP_EXT",
4559            ),
4560            (
4561                PipelineCreateFlags2::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT.0,
4562                "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_EXT",
4563            ),
4564            (
4565                PipelineCreateFlags2::RAY_TRACING_DISPLACEMENT_MICROMAP_NV.0,
4566                "RAY_TRACING_DISPLACEMENT_MICROMAP_NV",
4567            ),
4568            (
4569                PipelineCreateFlags2::DESCRIPTOR_BUFFER_EXT.0,
4570                "DESCRIPTOR_BUFFER_EXT",
4571            ),
4572            (
4573                PipelineCreateFlags2::DISALLOW_OPACITY_MICROMAP_ARM.0,
4574                "DISALLOW_OPACITY_MICROMAP_ARM",
4575            ),
4576            (PipelineCreateFlags2::CAPTURE_DATA_KHR.0, "CAPTURE_DATA_KHR"),
4577            (
4578                PipelineCreateFlags2::INDIRECT_BINDABLE_EXT.0,
4579                "INDIRECT_BINDABLE_EXT",
4580            ),
4581            (
4582                PipelineCreateFlags2::PER_LAYER_FRAGMENT_DENSITY_VALVE.0,
4583                "PER_LAYER_FRAGMENT_DENSITY_VALVE",
4584            ),
4585            (
4586                PipelineCreateFlags2::TYPE_64_INDEXING_EXT.0,
4587                "TYPE_64_INDEXING_EXT",
4588            ),
4589        ];
4590        debug_flags(f, KNOWN, self.0)
4591    }
4592}
4593impl fmt::Debug for PipelineCreationFeedbackFlags {
4594    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4595        const KNOWN: &[(Flags, &str)] = &[
4596            (PipelineCreationFeedbackFlags::VALID.0, "VALID"),
4597            (
4598                PipelineCreationFeedbackFlags::APPLICATION_PIPELINE_CACHE_HIT.0,
4599                "APPLICATION_PIPELINE_CACHE_HIT",
4600            ),
4601            (
4602                PipelineCreationFeedbackFlags::BASE_PIPELINE_ACCELERATION.0,
4603                "BASE_PIPELINE_ACCELERATION",
4604            ),
4605        ];
4606        debug_flags(f, KNOWN, self.0)
4607    }
4608}
4609impl fmt::Debug for PipelineDepthStencilStateCreateFlags {
4610    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4611        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")] ;
4612        debug_flags(f, KNOWN, self.0)
4613    }
4614}
4615impl fmt::Debug for PipelineDiscardRectangleStateCreateFlagsEXT {
4616    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4617        const KNOWN: &[(Flags, &str)] = &[];
4618        debug_flags(f, KNOWN, self.0)
4619    }
4620}
4621impl fmt::Debug for PipelineDynamicStateCreateFlags {
4622    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4623        const KNOWN: &[(Flags, &str)] = &[];
4624        debug_flags(f, KNOWN, self.0)
4625    }
4626}
4627impl fmt::Debug for PipelineExecutableStatisticFormatKHR {
4628    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4629        let name = match *self {
4630            Self::BOOL32 => Some("BOOL32"),
4631            Self::INT64 => Some("INT64"),
4632            Self::UINT64 => Some("UINT64"),
4633            Self::FLOAT64 => Some("FLOAT64"),
4634            _ => None,
4635        };
4636        if let Some(x) = name {
4637            f.write_str(x)
4638        } else {
4639            self.0.fmt(f)
4640        }
4641    }
4642}
4643impl fmt::Debug for PipelineInputAssemblyStateCreateFlags {
4644    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4645        const KNOWN: &[(Flags, &str)] = &[];
4646        debug_flags(f, KNOWN, self.0)
4647    }
4648}
4649impl fmt::Debug for PipelineLayoutCreateFlags {
4650    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4651        const KNOWN: &[(Flags, &str)] = &[(
4652            PipelineLayoutCreateFlags::INDEPENDENT_SETS_EXT.0,
4653            "INDEPENDENT_SETS_EXT",
4654        )];
4655        debug_flags(f, KNOWN, self.0)
4656    }
4657}
4658impl fmt::Debug for PipelineMultisampleStateCreateFlags {
4659    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4660        const KNOWN: &[(Flags, &str)] = &[];
4661        debug_flags(f, KNOWN, self.0)
4662    }
4663}
4664impl fmt::Debug for PipelineRasterizationConservativeStateCreateFlagsEXT {
4665    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4666        const KNOWN: &[(Flags, &str)] = &[];
4667        debug_flags(f, KNOWN, self.0)
4668    }
4669}
4670impl fmt::Debug for PipelineRasterizationDepthClipStateCreateFlagsEXT {
4671    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4672        const KNOWN: &[(Flags, &str)] = &[];
4673        debug_flags(f, KNOWN, self.0)
4674    }
4675}
4676impl fmt::Debug for PipelineRasterizationStateCreateFlags {
4677    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4678        const KNOWN: &[(Flags, &str)] = &[];
4679        debug_flags(f, KNOWN, self.0)
4680    }
4681}
4682impl fmt::Debug for PipelineRasterizationStateStreamCreateFlagsEXT {
4683    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4684        const KNOWN: &[(Flags, &str)] = &[];
4685        debug_flags(f, KNOWN, self.0)
4686    }
4687}
4688impl fmt::Debug for PipelineRobustnessBufferBehavior {
4689    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4690        let name = match *self {
4691            Self::DEVICE_DEFAULT => Some("DEVICE_DEFAULT"),
4692            Self::DISABLED => Some("DISABLED"),
4693            Self::ROBUST_BUFFER_ACCESS => Some("ROBUST_BUFFER_ACCESS"),
4694            Self::ROBUST_BUFFER_ACCESS_2 => Some("ROBUST_BUFFER_ACCESS_2"),
4695            _ => None,
4696        };
4697        if let Some(x) = name {
4698            f.write_str(x)
4699        } else {
4700            self.0.fmt(f)
4701        }
4702    }
4703}
4704impl fmt::Debug for PipelineRobustnessImageBehavior {
4705    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4706        let name = match *self {
4707            Self::DEVICE_DEFAULT => Some("DEVICE_DEFAULT"),
4708            Self::DISABLED => Some("DISABLED"),
4709            Self::ROBUST_IMAGE_ACCESS => Some("ROBUST_IMAGE_ACCESS"),
4710            Self::ROBUST_IMAGE_ACCESS_2 => Some("ROBUST_IMAGE_ACCESS_2"),
4711            _ => None,
4712        };
4713        if let Some(x) = name {
4714            f.write_str(x)
4715        } else {
4716            self.0.fmt(f)
4717        }
4718    }
4719}
4720impl fmt::Debug for PipelineShaderStageCreateFlags {
4721    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4722        const KNOWN: &[(Flags, &str)] = &[
4723            (
4724                PipelineShaderStageCreateFlags::ALLOW_VARYING_SUBGROUP_SIZE.0,
4725                "ALLOW_VARYING_SUBGROUP_SIZE",
4726            ),
4727            (
4728                PipelineShaderStageCreateFlags::REQUIRE_FULL_SUBGROUPS.0,
4729                "REQUIRE_FULL_SUBGROUPS",
4730            ),
4731        ];
4732        debug_flags(f, KNOWN, self.0)
4733    }
4734}
4735impl fmt::Debug for PipelineStageFlags {
4736    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4737        const KNOWN: &[(Flags, &str)] = &[
4738            (PipelineStageFlags::TOP_OF_PIPE.0, "TOP_OF_PIPE"),
4739            (PipelineStageFlags::DRAW_INDIRECT.0, "DRAW_INDIRECT"),
4740            (PipelineStageFlags::VERTEX_INPUT.0, "VERTEX_INPUT"),
4741            (PipelineStageFlags::VERTEX_SHADER.0, "VERTEX_SHADER"),
4742            (
4743                PipelineStageFlags::TESSELLATION_CONTROL_SHADER.0,
4744                "TESSELLATION_CONTROL_SHADER",
4745            ),
4746            (
4747                PipelineStageFlags::TESSELLATION_EVALUATION_SHADER.0,
4748                "TESSELLATION_EVALUATION_SHADER",
4749            ),
4750            (PipelineStageFlags::GEOMETRY_SHADER.0, "GEOMETRY_SHADER"),
4751            (PipelineStageFlags::FRAGMENT_SHADER.0, "FRAGMENT_SHADER"),
4752            (
4753                PipelineStageFlags::EARLY_FRAGMENT_TESTS.0,
4754                "EARLY_FRAGMENT_TESTS",
4755            ),
4756            (
4757                PipelineStageFlags::LATE_FRAGMENT_TESTS.0,
4758                "LATE_FRAGMENT_TESTS",
4759            ),
4760            (
4761                PipelineStageFlags::COLOR_ATTACHMENT_OUTPUT.0,
4762                "COLOR_ATTACHMENT_OUTPUT",
4763            ),
4764            (PipelineStageFlags::COMPUTE_SHADER.0, "COMPUTE_SHADER"),
4765            (PipelineStageFlags::TRANSFER.0, "TRANSFER"),
4766            (PipelineStageFlags::BOTTOM_OF_PIPE.0, "BOTTOM_OF_PIPE"),
4767            (PipelineStageFlags::HOST.0, "HOST"),
4768            (PipelineStageFlags::ALL_GRAPHICS.0, "ALL_GRAPHICS"),
4769            (PipelineStageFlags::ALL_COMMANDS.0, "ALL_COMMANDS"),
4770            (
4771                PipelineStageFlags::TRANSFORM_FEEDBACK_EXT.0,
4772                "TRANSFORM_FEEDBACK_EXT",
4773            ),
4774            (
4775                PipelineStageFlags::CONDITIONAL_RENDERING_EXT.0,
4776                "CONDITIONAL_RENDERING_EXT",
4777            ),
4778            (
4779                PipelineStageFlags::ACCELERATION_STRUCTURE_BUILD_KHR.0,
4780                "ACCELERATION_STRUCTURE_BUILD_KHR",
4781            ),
4782            (
4783                PipelineStageFlags::RAY_TRACING_SHADER_KHR.0,
4784                "RAY_TRACING_SHADER_KHR",
4785            ),
4786            (
4787                PipelineStageFlags::FRAGMENT_DENSITY_PROCESS_EXT.0,
4788                "FRAGMENT_DENSITY_PROCESS_EXT",
4789            ),
4790            (
4791                PipelineStageFlags::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
4792                "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
4793            ),
4794            (PipelineStageFlags::TASK_SHADER_EXT.0, "TASK_SHADER_EXT"),
4795            (PipelineStageFlags::MESH_SHADER_EXT.0, "MESH_SHADER_EXT"),
4796            (
4797                PipelineStageFlags::COMMAND_PREPROCESS_EXT.0,
4798                "COMMAND_PREPROCESS_EXT",
4799            ),
4800            (PipelineStageFlags::NONE.0, "NONE"),
4801        ];
4802        debug_flags(f, KNOWN, self.0)
4803    }
4804}
4805impl fmt::Debug for PipelineStageFlags2 {
4806    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4807        const KNOWN: &[(Flags64, &str)] = &[
4808            (PipelineStageFlags2::NONE.0, "NONE"),
4809            (PipelineStageFlags2::TOP_OF_PIPE.0, "TOP_OF_PIPE"),
4810            (PipelineStageFlags2::DRAW_INDIRECT.0, "DRAW_INDIRECT"),
4811            (PipelineStageFlags2::VERTEX_INPUT.0, "VERTEX_INPUT"),
4812            (PipelineStageFlags2::VERTEX_SHADER.0, "VERTEX_SHADER"),
4813            (
4814                PipelineStageFlags2::TESSELLATION_CONTROL_SHADER.0,
4815                "TESSELLATION_CONTROL_SHADER",
4816            ),
4817            (
4818                PipelineStageFlags2::TESSELLATION_EVALUATION_SHADER.0,
4819                "TESSELLATION_EVALUATION_SHADER",
4820            ),
4821            (PipelineStageFlags2::GEOMETRY_SHADER.0, "GEOMETRY_SHADER"),
4822            (PipelineStageFlags2::FRAGMENT_SHADER.0, "FRAGMENT_SHADER"),
4823            (
4824                PipelineStageFlags2::EARLY_FRAGMENT_TESTS.0,
4825                "EARLY_FRAGMENT_TESTS",
4826            ),
4827            (
4828                PipelineStageFlags2::LATE_FRAGMENT_TESTS.0,
4829                "LATE_FRAGMENT_TESTS",
4830            ),
4831            (
4832                PipelineStageFlags2::COLOR_ATTACHMENT_OUTPUT.0,
4833                "COLOR_ATTACHMENT_OUTPUT",
4834            ),
4835            (PipelineStageFlags2::COMPUTE_SHADER.0, "COMPUTE_SHADER"),
4836            (PipelineStageFlags2::ALL_TRANSFER.0, "ALL_TRANSFER"),
4837            (PipelineStageFlags2::BOTTOM_OF_PIPE.0, "BOTTOM_OF_PIPE"),
4838            (PipelineStageFlags2::HOST.0, "HOST"),
4839            (PipelineStageFlags2::ALL_GRAPHICS.0, "ALL_GRAPHICS"),
4840            (PipelineStageFlags2::ALL_COMMANDS.0, "ALL_COMMANDS"),
4841            (PipelineStageFlags2::COPY.0, "COPY"),
4842            (PipelineStageFlags2::RESOLVE.0, "RESOLVE"),
4843            (PipelineStageFlags2::BLIT.0, "BLIT"),
4844            (PipelineStageFlags2::CLEAR.0, "CLEAR"),
4845            (PipelineStageFlags2::INDEX_INPUT.0, "INDEX_INPUT"),
4846            (
4847                PipelineStageFlags2::VERTEX_ATTRIBUTE_INPUT.0,
4848                "VERTEX_ATTRIBUTE_INPUT",
4849            ),
4850            (
4851                PipelineStageFlags2::PRE_RASTERIZATION_SHADERS.0,
4852                "PRE_RASTERIZATION_SHADERS",
4853            ),
4854            (PipelineStageFlags2::VIDEO_DECODE_KHR.0, "VIDEO_DECODE_KHR"),
4855            (PipelineStageFlags2::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"),
4856            (
4857                PipelineStageFlags2::TRANSFORM_FEEDBACK_EXT.0,
4858                "TRANSFORM_FEEDBACK_EXT",
4859            ),
4860            (
4861                PipelineStageFlags2::CONDITIONAL_RENDERING_EXT.0,
4862                "CONDITIONAL_RENDERING_EXT",
4863            ),
4864            (
4865                PipelineStageFlags2::COMMAND_PREPROCESS_EXT.0,
4866                "COMMAND_PREPROCESS_EXT",
4867            ),
4868            (
4869                PipelineStageFlags2::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR.0,
4870                "FRAGMENT_SHADING_RATE_ATTACHMENT_KHR",
4871            ),
4872            (
4873                PipelineStageFlags2::ACCELERATION_STRUCTURE_BUILD_KHR.0,
4874                "ACCELERATION_STRUCTURE_BUILD_KHR",
4875            ),
4876            (
4877                PipelineStageFlags2::RAY_TRACING_SHADER_KHR.0,
4878                "RAY_TRACING_SHADER_KHR",
4879            ),
4880            (
4881                PipelineStageFlags2::FRAGMENT_DENSITY_PROCESS_EXT.0,
4882                "FRAGMENT_DENSITY_PROCESS_EXT",
4883            ),
4884            (PipelineStageFlags2::TASK_SHADER_EXT.0, "TASK_SHADER_EXT"),
4885            (PipelineStageFlags2::MESH_SHADER_EXT.0, "MESH_SHADER_EXT"),
4886            (
4887                PipelineStageFlags2::SUBPASS_SHADER_HUAWEI.0,
4888                "SUBPASS_SHADER_HUAWEI",
4889            ),
4890            (
4891                PipelineStageFlags2::INVOCATION_MASK_HUAWEI.0,
4892                "INVOCATION_MASK_HUAWEI",
4893            ),
4894            (
4895                PipelineStageFlags2::ACCELERATION_STRUCTURE_COPY_KHR.0,
4896                "ACCELERATION_STRUCTURE_COPY_KHR",
4897            ),
4898            (
4899                PipelineStageFlags2::MICROMAP_BUILD_EXT.0,
4900                "MICROMAP_BUILD_EXT",
4901            ),
4902            (
4903                PipelineStageFlags2::CLUSTER_CULLING_SHADER_HUAWEI.0,
4904                "CLUSTER_CULLING_SHADER_HUAWEI",
4905            ),
4906            (PipelineStageFlags2::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"),
4907            (
4908                PipelineStageFlags2::CONVERT_COOPERATIVE_VECTOR_MATRIX_NV.0,
4909                "CONVERT_COOPERATIVE_VECTOR_MATRIX_NV",
4910            ),
4911            (PipelineStageFlags2::DATA_GRAPH_ARM.0, "DATA_GRAPH_ARM"),
4912            (
4913                PipelineStageFlags2::COPY_INDIRECT_KHR.0,
4914                "COPY_INDIRECT_KHR",
4915            ),
4916            (
4917                PipelineStageFlags2::MEMORY_DECOMPRESSION_EXT.0,
4918                "MEMORY_DECOMPRESSION_EXT",
4919            ),
4920        ];
4921        debug_flags(f, KNOWN, self.0)
4922    }
4923}
4924impl fmt::Debug for PipelineTessellationStateCreateFlags {
4925    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4926        const KNOWN: &[(Flags, &str)] = &[];
4927        debug_flags(f, KNOWN, self.0)
4928    }
4929}
4930impl fmt::Debug for PipelineVertexInputStateCreateFlags {
4931    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4932        const KNOWN: &[(Flags, &str)] = &[];
4933        debug_flags(f, KNOWN, self.0)
4934    }
4935}
4936impl fmt::Debug for PipelineViewportStateCreateFlags {
4937    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4938        const KNOWN: &[(Flags, &str)] = &[];
4939        debug_flags(f, KNOWN, self.0)
4940    }
4941}
4942impl fmt::Debug for PipelineViewportSwizzleStateCreateFlagsNV {
4943    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4944        const KNOWN: &[(Flags, &str)] = &[];
4945        debug_flags(f, KNOWN, self.0)
4946    }
4947}
4948impl fmt::Debug for PointClippingBehavior {
4949    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4950        let name = match *self {
4951            Self::ALL_CLIP_PLANES => Some("ALL_CLIP_PLANES"),
4952            Self::USER_CLIP_PLANES_ONLY => Some("USER_CLIP_PLANES_ONLY"),
4953            _ => None,
4954        };
4955        if let Some(x) = name {
4956            f.write_str(x)
4957        } else {
4958            self.0.fmt(f)
4959        }
4960    }
4961}
4962impl fmt::Debug for PolygonMode {
4963    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4964        let name = match *self {
4965            Self::FILL => Some("FILL"),
4966            Self::LINE => Some("LINE"),
4967            Self::POINT => Some("POINT"),
4968            Self::FILL_RECTANGLE_NV => Some("FILL_RECTANGLE_NV"),
4969            _ => None,
4970        };
4971        if let Some(x) = name {
4972            f.write_str(x)
4973        } else {
4974            self.0.fmt(f)
4975        }
4976    }
4977}
4978impl fmt::Debug for PresentGravityFlagsKHR {
4979    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4980        const KNOWN: &[(Flags, &str)] = &[
4981            (PresentGravityFlagsKHR::MIN.0, "MIN"),
4982            (PresentGravityFlagsKHR::MAX.0, "MAX"),
4983            (PresentGravityFlagsKHR::CENTERED.0, "CENTERED"),
4984        ];
4985        debug_flags(f, KNOWN, self.0)
4986    }
4987}
4988impl fmt::Debug for PresentModeKHR {
4989    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
4990        let name = match *self {
4991            Self::IMMEDIATE => Some("IMMEDIATE"),
4992            Self::MAILBOX => Some("MAILBOX"),
4993            Self::FIFO => Some("FIFO"),
4994            Self::FIFO_RELAXED => Some("FIFO_RELAXED"),
4995            Self::SHARED_DEMAND_REFRESH => Some("SHARED_DEMAND_REFRESH"),
4996            Self::SHARED_CONTINUOUS_REFRESH => Some("SHARED_CONTINUOUS_REFRESH"),
4997            Self::FIFO_LATEST_READY => Some("FIFO_LATEST_READY"),
4998            _ => None,
4999        };
5000        if let Some(x) = name {
5001            f.write_str(x)
5002        } else {
5003            self.0.fmt(f)
5004        }
5005    }
5006}
5007impl fmt::Debug for PresentScalingFlagsKHR {
5008    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5009        const KNOWN: &[(Flags, &str)] = &[
5010            (PresentScalingFlagsKHR::ONE_TO_ONE.0, "ONE_TO_ONE"),
5011            (
5012                PresentScalingFlagsKHR::ASPECT_RATIO_STRETCH.0,
5013                "ASPECT_RATIO_STRETCH",
5014            ),
5015            (PresentScalingFlagsKHR::STRETCH.0, "STRETCH"),
5016        ];
5017        debug_flags(f, KNOWN, self.0)
5018    }
5019}
5020impl fmt::Debug for PresentStageFlagsEXT {
5021    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5022        const KNOWN: &[(Flags, &str)] = &[
5023            (
5024                PresentStageFlagsEXT::QUEUE_OPERATIONS_END.0,
5025                "QUEUE_OPERATIONS_END",
5026            ),
5027            (PresentStageFlagsEXT::REQUEST_DEQUEUED.0, "REQUEST_DEQUEUED"),
5028            (
5029                PresentStageFlagsEXT::IMAGE_FIRST_PIXEL_OUT.0,
5030                "IMAGE_FIRST_PIXEL_OUT",
5031            ),
5032            (
5033                PresentStageFlagsEXT::IMAGE_FIRST_PIXEL_VISIBLE.0,
5034                "IMAGE_FIRST_PIXEL_VISIBLE",
5035            ),
5036        ];
5037        debug_flags(f, KNOWN, self.0)
5038    }
5039}
5040impl fmt::Debug for PresentTimingInfoFlagsEXT {
5041    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5042        const KNOWN: &[(Flags, &str)] = &[
5043            (
5044                PresentTimingInfoFlagsEXT::PRESENT_AT_RELATIVE_TIME.0,
5045                "PRESENT_AT_RELATIVE_TIME",
5046            ),
5047            (
5048                PresentTimingInfoFlagsEXT::PRESENT_AT_NEAREST_REFRESH_CYCLE.0,
5049                "PRESENT_AT_NEAREST_REFRESH_CYCLE",
5050            ),
5051        ];
5052        debug_flags(f, KNOWN, self.0)
5053    }
5054}
5055impl fmt::Debug for PrimitiveTopology {
5056    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5057        let name = match *self {
5058            Self::POINT_LIST => Some("POINT_LIST"),
5059            Self::LINE_LIST => Some("LINE_LIST"),
5060            Self::LINE_STRIP => Some("LINE_STRIP"),
5061            Self::TRIANGLE_LIST => Some("TRIANGLE_LIST"),
5062            Self::TRIANGLE_STRIP => Some("TRIANGLE_STRIP"),
5063            Self::TRIANGLE_FAN => Some("TRIANGLE_FAN"),
5064            Self::LINE_LIST_WITH_ADJACENCY => Some("LINE_LIST_WITH_ADJACENCY"),
5065            Self::LINE_STRIP_WITH_ADJACENCY => Some("LINE_STRIP_WITH_ADJACENCY"),
5066            Self::TRIANGLE_LIST_WITH_ADJACENCY => Some("TRIANGLE_LIST_WITH_ADJACENCY"),
5067            Self::TRIANGLE_STRIP_WITH_ADJACENCY => Some("TRIANGLE_STRIP_WITH_ADJACENCY"),
5068            Self::PATCH_LIST => Some("PATCH_LIST"),
5069            _ => None,
5070        };
5071        if let Some(x) = name {
5072            f.write_str(x)
5073        } else {
5074            self.0.fmt(f)
5075        }
5076    }
5077}
5078impl fmt::Debug for PrivateDataSlotCreateFlags {
5079    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5080        const KNOWN: &[(Flags, &str)] = &[];
5081        debug_flags(f, KNOWN, self.0)
5082    }
5083}
5084impl fmt::Debug for ProvokingVertexModeEXT {
5085    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5086        let name = match *self {
5087            Self::FIRST_VERTEX => Some("FIRST_VERTEX"),
5088            Self::LAST_VERTEX => Some("LAST_VERTEX"),
5089            _ => None,
5090        };
5091        if let Some(x) = name {
5092            f.write_str(x)
5093        } else {
5094            self.0.fmt(f)
5095        }
5096    }
5097}
5098impl fmt::Debug for QueryControlFlags {
5099    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5100        const KNOWN: &[(Flags, &str)] = &[(QueryControlFlags::PRECISE.0, "PRECISE")];
5101        debug_flags(f, KNOWN, self.0)
5102    }
5103}
5104impl fmt::Debug for QueryPipelineStatisticFlags {
5105    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5106        const KNOWN: &[(Flags, &str)] = &[
5107            (
5108                QueryPipelineStatisticFlags::INPUT_ASSEMBLY_VERTICES.0,
5109                "INPUT_ASSEMBLY_VERTICES",
5110            ),
5111            (
5112                QueryPipelineStatisticFlags::INPUT_ASSEMBLY_PRIMITIVES.0,
5113                "INPUT_ASSEMBLY_PRIMITIVES",
5114            ),
5115            (
5116                QueryPipelineStatisticFlags::VERTEX_SHADER_INVOCATIONS.0,
5117                "VERTEX_SHADER_INVOCATIONS",
5118            ),
5119            (
5120                QueryPipelineStatisticFlags::GEOMETRY_SHADER_INVOCATIONS.0,
5121                "GEOMETRY_SHADER_INVOCATIONS",
5122            ),
5123            (
5124                QueryPipelineStatisticFlags::GEOMETRY_SHADER_PRIMITIVES.0,
5125                "GEOMETRY_SHADER_PRIMITIVES",
5126            ),
5127            (
5128                QueryPipelineStatisticFlags::CLIPPING_INVOCATIONS.0,
5129                "CLIPPING_INVOCATIONS",
5130            ),
5131            (
5132                QueryPipelineStatisticFlags::CLIPPING_PRIMITIVES.0,
5133                "CLIPPING_PRIMITIVES",
5134            ),
5135            (
5136                QueryPipelineStatisticFlags::FRAGMENT_SHADER_INVOCATIONS.0,
5137                "FRAGMENT_SHADER_INVOCATIONS",
5138            ),
5139            (
5140                QueryPipelineStatisticFlags::TESSELLATION_CONTROL_SHADER_PATCHES.0,
5141                "TESSELLATION_CONTROL_SHADER_PATCHES",
5142            ),
5143            (
5144                QueryPipelineStatisticFlags::TESSELLATION_EVALUATION_SHADER_INVOCATIONS.0,
5145                "TESSELLATION_EVALUATION_SHADER_INVOCATIONS",
5146            ),
5147            (
5148                QueryPipelineStatisticFlags::COMPUTE_SHADER_INVOCATIONS.0,
5149                "COMPUTE_SHADER_INVOCATIONS",
5150            ),
5151            (
5152                QueryPipelineStatisticFlags::TASK_SHADER_INVOCATIONS_EXT.0,
5153                "TASK_SHADER_INVOCATIONS_EXT",
5154            ),
5155            (
5156                QueryPipelineStatisticFlags::MESH_SHADER_INVOCATIONS_EXT.0,
5157                "MESH_SHADER_INVOCATIONS_EXT",
5158            ),
5159            (
5160                QueryPipelineStatisticFlags::CLUSTER_CULLING_SHADER_INVOCATIONS_HUAWEI.0,
5161                "CLUSTER_CULLING_SHADER_INVOCATIONS_HUAWEI",
5162            ),
5163        ];
5164        debug_flags(f, KNOWN, self.0)
5165    }
5166}
5167impl fmt::Debug for QueryPoolCreateFlags {
5168    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5169        const KNOWN: &[(Flags, &str)] = &[(QueryPoolCreateFlags::RESET_KHR.0, "RESET_KHR")];
5170        debug_flags(f, KNOWN, self.0)
5171    }
5172}
5173impl fmt::Debug for QueryPoolSamplingModeINTEL {
5174    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5175        let name = match *self {
5176            Self::MANUAL => Some("MANUAL"),
5177            _ => None,
5178        };
5179        if let Some(x) = name {
5180            f.write_str(x)
5181        } else {
5182            self.0.fmt(f)
5183        }
5184    }
5185}
5186impl fmt::Debug for QueryResultFlags {
5187    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5188        const KNOWN: &[(Flags, &str)] = &[
5189            (QueryResultFlags::TYPE_64.0, "TYPE_64"),
5190            (QueryResultFlags::WAIT.0, "WAIT"),
5191            (QueryResultFlags::WITH_AVAILABILITY.0, "WITH_AVAILABILITY"),
5192            (QueryResultFlags::PARTIAL.0, "PARTIAL"),
5193            (QueryResultFlags::WITH_STATUS_KHR.0, "WITH_STATUS_KHR"),
5194        ];
5195        debug_flags(f, KNOWN, self.0)
5196    }
5197}
5198impl fmt::Debug for QueryResultStatusKHR {
5199    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5200        let name = match *self {
5201            Self::ERROR => Some("ERROR"),
5202            Self::NOT_READY => Some("NOT_READY"),
5203            Self::COMPLETE => Some("COMPLETE"),
5204            Self::INSUFFICIENTSTREAM_BUFFER_RANGE => Some("INSUFFICIENTSTREAM_BUFFER_RANGE"),
5205            _ => None,
5206        };
5207        if let Some(x) = name {
5208            f.write_str(x)
5209        } else {
5210            self.0.fmt(f)
5211        }
5212    }
5213}
5214impl fmt::Debug for QueryType {
5215    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5216        let name = match *self {
5217            Self::OCCLUSION => Some("OCCLUSION"),
5218            Self::PIPELINE_STATISTICS => Some("PIPELINE_STATISTICS"),
5219            Self::TIMESTAMP => Some("TIMESTAMP"),
5220            Self::RESULT_STATUS_ONLY_KHR => Some("RESULT_STATUS_ONLY_KHR"),
5221            Self::TRANSFORM_FEEDBACK_STREAM_EXT => Some("TRANSFORM_FEEDBACK_STREAM_EXT"),
5222            Self::PERFORMANCE_QUERY_KHR => Some("PERFORMANCE_QUERY_KHR"),
5223            Self::ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR => {
5224                Some("ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR")
5225            }
5226            Self::ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR => {
5227                Some("ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR")
5228            }
5229            Self::ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV => {
5230                Some("ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV")
5231            }
5232            Self::PERFORMANCE_QUERY_INTEL => Some("PERFORMANCE_QUERY_INTEL"),
5233            Self::VIDEO_ENCODE_FEEDBACK_KHR => Some("VIDEO_ENCODE_FEEDBACK_KHR"),
5234            Self::MESH_PRIMITIVES_GENERATED_EXT => Some("MESH_PRIMITIVES_GENERATED_EXT"),
5235            Self::PRIMITIVES_GENERATED_EXT => Some("PRIMITIVES_GENERATED_EXT"),
5236            Self::ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR => {
5237                Some("ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR")
5238            }
5239            Self::ACCELERATION_STRUCTURE_SIZE_KHR => Some("ACCELERATION_STRUCTURE_SIZE_KHR"),
5240            Self::MICROMAP_SERIALIZATION_SIZE_EXT => Some("MICROMAP_SERIALIZATION_SIZE_EXT"),
5241            Self::MICROMAP_COMPACTED_SIZE_EXT => Some("MICROMAP_COMPACTED_SIZE_EXT"),
5242            _ => None,
5243        };
5244        if let Some(x) = name {
5245            f.write_str(x)
5246        } else {
5247            self.0.fmt(f)
5248        }
5249    }
5250}
5251impl fmt::Debug for QueueFlags {
5252    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5253        const KNOWN: &[(Flags, &str)] = &[
5254            (QueueFlags::GRAPHICS.0, "GRAPHICS"),
5255            (QueueFlags::COMPUTE.0, "COMPUTE"),
5256            (QueueFlags::TRANSFER.0, "TRANSFER"),
5257            (QueueFlags::SPARSE_BINDING.0, "SPARSE_BINDING"),
5258            (QueueFlags::VIDEO_DECODE_KHR.0, "VIDEO_DECODE_KHR"),
5259            (QueueFlags::VIDEO_ENCODE_KHR.0, "VIDEO_ENCODE_KHR"),
5260            (QueueFlags::OPTICAL_FLOW_NV.0, "OPTICAL_FLOW_NV"),
5261            (QueueFlags::DATA_GRAPH_ARM.0, "DATA_GRAPH_ARM"),
5262            (QueueFlags::PROTECTED.0, "PROTECTED"),
5263        ];
5264        debug_flags(f, KNOWN, self.0)
5265    }
5266}
5267impl fmt::Debug for QueueGlobalPriority {
5268    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5269        let name = match *self {
5270            Self::LOW => Some("LOW"),
5271            Self::MEDIUM => Some("MEDIUM"),
5272            Self::HIGH => Some("HIGH"),
5273            Self::REALTIME => Some("REALTIME"),
5274            _ => None,
5275        };
5276        if let Some(x) = name {
5277            f.write_str(x)
5278        } else {
5279            self.0.fmt(f)
5280        }
5281    }
5282}
5283impl fmt::Debug for RasterizationOrderAMD {
5284    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5285        let name = match *self {
5286            Self::STRICT => Some("STRICT"),
5287            Self::RELAXED => Some("RELAXED"),
5288            _ => None,
5289        };
5290        if let Some(x) = name {
5291            f.write_str(x)
5292        } else {
5293            self.0.fmt(f)
5294        }
5295    }
5296}
5297impl fmt::Debug for RayTracingInvocationReorderModeEXT {
5298    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5299        let name = match *self {
5300            Self::NONE => Some("NONE"),
5301            Self::REORDER => Some("REORDER"),
5302            _ => None,
5303        };
5304        if let Some(x) = name {
5305            f.write_str(x)
5306        } else {
5307            self.0.fmt(f)
5308        }
5309    }
5310}
5311impl fmt::Debug for RayTracingLssIndexingModeNV {
5312    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5313        let name = match *self {
5314            Self::LIST => Some("LIST"),
5315            Self::SUCCESSIVE => Some("SUCCESSIVE"),
5316            _ => None,
5317        };
5318        if let Some(x) = name {
5319            f.write_str(x)
5320        } else {
5321            self.0.fmt(f)
5322        }
5323    }
5324}
5325impl fmt::Debug for RayTracingLssPrimitiveEndCapsModeNV {
5326    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5327        let name = match *self {
5328            Self::NONE => Some("NONE"),
5329            Self::CHAINED => Some("CHAINED"),
5330            _ => None,
5331        };
5332        if let Some(x) = name {
5333            f.write_str(x)
5334        } else {
5335            self.0.fmt(f)
5336        }
5337    }
5338}
5339impl fmt::Debug for RayTracingShaderGroupTypeKHR {
5340    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5341        let name = match *self {
5342            Self::GENERAL => Some("GENERAL"),
5343            Self::TRIANGLES_HIT_GROUP => Some("TRIANGLES_HIT_GROUP"),
5344            Self::PROCEDURAL_HIT_GROUP => Some("PROCEDURAL_HIT_GROUP"),
5345            _ => None,
5346        };
5347        if let Some(x) = name {
5348            f.write_str(x)
5349        } else {
5350            self.0.fmt(f)
5351        }
5352    }
5353}
5354impl fmt::Debug for RenderPassCreateFlags {
5355    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5356        const KNOWN: &[(Flags, &str)] = &[
5357            (RenderPassCreateFlags::TRANSFORM_QCOM.0, "TRANSFORM_QCOM"),
5358            (
5359                RenderPassCreateFlags::PER_LAYER_FRAGMENT_DENSITY_VALVE.0,
5360                "PER_LAYER_FRAGMENT_DENSITY_VALVE",
5361            ),
5362        ];
5363        debug_flags(f, KNOWN, self.0)
5364    }
5365}
5366impl fmt::Debug for RenderingAttachmentFlagsKHR {
5367    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5368        const KNOWN: &[(Flags, &str)] = &[
5369            (
5370                RenderingAttachmentFlagsKHR::INPUT_ATTACHMENT_FEEDBACK.0,
5371                "INPUT_ATTACHMENT_FEEDBACK",
5372            ),
5373            (
5374                RenderingAttachmentFlagsKHR::RESOLVE_SKIP_TRANSFER_FUNCTION.0,
5375                "RESOLVE_SKIP_TRANSFER_FUNCTION",
5376            ),
5377            (
5378                RenderingAttachmentFlagsKHR::RESOLVE_ENABLE_TRANSFER_FUNCTION.0,
5379                "RESOLVE_ENABLE_TRANSFER_FUNCTION",
5380            ),
5381        ];
5382        debug_flags(f, KNOWN, self.0)
5383    }
5384}
5385impl fmt::Debug for RenderingFlags {
5386    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5387        const KNOWN: &[(Flags, &str)] = &[
5388            (
5389                RenderingFlags::CONTENTS_SECONDARY_COMMAND_BUFFERS.0,
5390                "CONTENTS_SECONDARY_COMMAND_BUFFERS",
5391            ),
5392            (RenderingFlags::SUSPENDING.0, "SUSPENDING"),
5393            (RenderingFlags::RESUMING.0, "RESUMING"),
5394            (
5395                RenderingFlags::ENABLE_LEGACY_DITHERING_EXT.0,
5396                "ENABLE_LEGACY_DITHERING_EXT",
5397            ),
5398            (RenderingFlags::CONTENTS_INLINE_KHR.0, "CONTENTS_INLINE_KHR"),
5399            (
5400                RenderingFlags::PER_LAYER_FRAGMENT_DENSITY_VALVE.0,
5401                "PER_LAYER_FRAGMENT_DENSITY_VALVE",
5402            ),
5403            (RenderingFlags::FRAGMENT_REGION_EXT.0, "FRAGMENT_REGION_EXT"),
5404            (RenderingFlags::CUSTOM_RESOLVE_EXT.0, "CUSTOM_RESOLVE_EXT"),
5405            (
5406                RenderingFlags::LOCAL_READ_CONCURRENT_ACCESS_CONTROL_KHR.0,
5407                "LOCAL_READ_CONCURRENT_ACCESS_CONTROL_KHR",
5408            ),
5409        ];
5410        debug_flags(f, KNOWN, self.0)
5411    }
5412}
5413impl fmt::Debug for ResolveImageFlagsKHR {
5414    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5415        const KNOWN: &[(Flags, &str)] = &[
5416            (
5417                ResolveImageFlagsKHR::SKIP_TRANSFER_FUNCTION.0,
5418                "SKIP_TRANSFER_FUNCTION",
5419            ),
5420            (
5421                ResolveImageFlagsKHR::ENABLE_TRANSFER_FUNCTION.0,
5422                "ENABLE_TRANSFER_FUNCTION",
5423            ),
5424        ];
5425        debug_flags(f, KNOWN, self.0)
5426    }
5427}
5428impl fmt::Debug for ResolveModeFlags {
5429    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5430        const KNOWN: &[(Flags, &str)] = &[
5431            (ResolveModeFlags::NONE.0, "NONE"),
5432            (ResolveModeFlags::SAMPLE_ZERO.0, "SAMPLE_ZERO"),
5433            (ResolveModeFlags::AVERAGE.0, "AVERAGE"),
5434            (ResolveModeFlags::MIN.0, "MIN"),
5435            (ResolveModeFlags::MAX.0, "MAX"),
5436            (
5437                ResolveModeFlags::EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID.0,
5438                "EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID",
5439            ),
5440            (ResolveModeFlags::CUSTOM_EXT.0, "CUSTOM_EXT"),
5441        ];
5442        debug_flags(f, KNOWN, self.0)
5443    }
5444}
5445impl fmt::Debug for SampleCountFlags {
5446    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5447        const KNOWN: &[(Flags, &str)] = &[
5448            (SampleCountFlags::TYPE_1.0, "TYPE_1"),
5449            (SampleCountFlags::TYPE_2.0, "TYPE_2"),
5450            (SampleCountFlags::TYPE_4.0, "TYPE_4"),
5451            (SampleCountFlags::TYPE_8.0, "TYPE_8"),
5452            (SampleCountFlags::TYPE_16.0, "TYPE_16"),
5453            (SampleCountFlags::TYPE_32.0, "TYPE_32"),
5454            (SampleCountFlags::TYPE_64.0, "TYPE_64"),
5455        ];
5456        debug_flags(f, KNOWN, self.0)
5457    }
5458}
5459impl fmt::Debug for SamplerAddressMode {
5460    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5461        let name = match *self {
5462            Self::REPEAT => Some("REPEAT"),
5463            Self::MIRRORED_REPEAT => Some("MIRRORED_REPEAT"),
5464            Self::CLAMP_TO_EDGE => Some("CLAMP_TO_EDGE"),
5465            Self::CLAMP_TO_BORDER => Some("CLAMP_TO_BORDER"),
5466            Self::MIRROR_CLAMP_TO_EDGE => Some("MIRROR_CLAMP_TO_EDGE"),
5467            _ => None,
5468        };
5469        if let Some(x) = name {
5470            f.write_str(x)
5471        } else {
5472            self.0.fmt(f)
5473        }
5474    }
5475}
5476impl fmt::Debug for SamplerCreateFlags {
5477    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5478        const KNOWN: &[(Flags, &str)] = &[
5479            (SamplerCreateFlags::SUBSAMPLED_EXT.0, "SUBSAMPLED_EXT"),
5480            (
5481                SamplerCreateFlags::SUBSAMPLED_COARSE_RECONSTRUCTION_EXT.0,
5482                "SUBSAMPLED_COARSE_RECONSTRUCTION_EXT",
5483            ),
5484            (
5485                SamplerCreateFlags::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT.0,
5486                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY_EXT",
5487            ),
5488            (
5489                SamplerCreateFlags::NON_SEAMLESS_CUBE_MAP_EXT.0,
5490                "NON_SEAMLESS_CUBE_MAP_EXT",
5491            ),
5492            (
5493                SamplerCreateFlags::IMAGE_PROCESSING_QCOM.0,
5494                "IMAGE_PROCESSING_QCOM",
5495            ),
5496        ];
5497        debug_flags(f, KNOWN, self.0)
5498    }
5499}
5500impl fmt::Debug for SamplerMipmapMode {
5501    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5502        let name = match *self {
5503            Self::NEAREST => Some("NEAREST"),
5504            Self::LINEAR => Some("LINEAR"),
5505            _ => None,
5506        };
5507        if let Some(x) = name {
5508            f.write_str(x)
5509        } else {
5510            self.0.fmt(f)
5511        }
5512    }
5513}
5514impl fmt::Debug for SamplerReductionMode {
5515    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5516        let name = match *self {
5517            Self::WEIGHTED_AVERAGE => Some("WEIGHTED_AVERAGE"),
5518            Self::MIN => Some("MIN"),
5519            Self::MAX => Some("MAX"),
5520            Self::WEIGHTED_AVERAGE_RANGECLAMP_QCOM => Some("WEIGHTED_AVERAGE_RANGECLAMP_QCOM"),
5521            _ => None,
5522        };
5523        if let Some(x) = name {
5524            f.write_str(x)
5525        } else {
5526            self.0.fmt(f)
5527        }
5528    }
5529}
5530impl fmt::Debug for SamplerYcbcrModelConversion {
5531    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5532        let name = match *self {
5533            Self::RGB_IDENTITY => Some("RGB_IDENTITY"),
5534            Self::YCBCR_IDENTITY => Some("YCBCR_IDENTITY"),
5535            Self::YCBCR_709 => Some("YCBCR_709"),
5536            Self::YCBCR_601 => Some("YCBCR_601"),
5537            Self::YCBCR_2020 => Some("YCBCR_2020"),
5538            _ => None,
5539        };
5540        if let Some(x) = name {
5541            f.write_str(x)
5542        } else {
5543            self.0.fmt(f)
5544        }
5545    }
5546}
5547impl fmt::Debug for SamplerYcbcrRange {
5548    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5549        let name = match *self {
5550            Self::ITU_FULL => Some("ITU_FULL"),
5551            Self::ITU_NARROW => Some("ITU_NARROW"),
5552            _ => None,
5553        };
5554        if let Some(x) = name {
5555            f.write_str(x)
5556        } else {
5557            self.0.fmt(f)
5558        }
5559    }
5560}
5561impl fmt::Debug for ScopeKHR {
5562    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5563        let name = match *self {
5564            Self::DEVICE => Some("DEVICE"),
5565            Self::WORKGROUP => Some("WORKGROUP"),
5566            Self::SUBGROUP => Some("SUBGROUP"),
5567            Self::QUEUE_FAMILY => Some("QUEUE_FAMILY"),
5568            _ => None,
5569        };
5570        if let Some(x) = name {
5571            f.write_str(x)
5572        } else {
5573            self.0.fmt(f)
5574        }
5575    }
5576}
5577impl fmt::Debug for ScreenSurfaceCreateFlagsQNX {
5578    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5579        const KNOWN: &[(Flags, &str)] = &[];
5580        debug_flags(f, KNOWN, self.0)
5581    }
5582}
5583impl fmt::Debug for SemaphoreCreateFlags {
5584    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5585        const KNOWN: &[(Flags, &str)] = &[];
5586        debug_flags(f, KNOWN, self.0)
5587    }
5588}
5589impl fmt::Debug for SemaphoreImportFlags {
5590    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5591        const KNOWN: &[(Flags, &str)] = &[(SemaphoreImportFlags::TEMPORARY.0, "TEMPORARY")];
5592        debug_flags(f, KNOWN, self.0)
5593    }
5594}
5595impl fmt::Debug for SemaphoreType {
5596    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5597        let name = match *self {
5598            Self::BINARY => Some("BINARY"),
5599            Self::TIMELINE => Some("TIMELINE"),
5600            _ => None,
5601        };
5602        if let Some(x) = name {
5603            f.write_str(x)
5604        } else {
5605            self.0.fmt(f)
5606        }
5607    }
5608}
5609impl fmt::Debug for SemaphoreWaitFlags {
5610    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5611        const KNOWN: &[(Flags, &str)] = &[(SemaphoreWaitFlags::ANY.0, "ANY")];
5612        debug_flags(f, KNOWN, self.0)
5613    }
5614}
5615impl fmt::Debug for ShaderCodeTypeEXT {
5616    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5617        let name = match *self {
5618            Self::BINARY => Some("BINARY"),
5619            Self::SPIRV => Some("SPIRV"),
5620            _ => None,
5621        };
5622        if let Some(x) = name {
5623            f.write_str(x)
5624        } else {
5625            self.0.fmt(f)
5626        }
5627    }
5628}
5629impl fmt::Debug for ShaderCorePropertiesFlagsAMD {
5630    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5631        const KNOWN: &[(Flags, &str)] = &[];
5632        debug_flags(f, KNOWN, self.0)
5633    }
5634}
5635impl fmt::Debug for ShaderCreateFlagsEXT {
5636    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5637        const KNOWN: &[(Flags, &str)] = &[
5638            (ShaderCreateFlagsEXT::LINK_STAGE.0, "LINK_STAGE"),
5639            (ShaderCreateFlagsEXT::DESCRIPTOR_HEAP.0, "DESCRIPTOR_HEAP"),
5640            (
5641                ShaderCreateFlagsEXT::ALLOW_VARYING_SUBGROUP_SIZE.0,
5642                "ALLOW_VARYING_SUBGROUP_SIZE",
5643            ),
5644            (
5645                ShaderCreateFlagsEXT::REQUIRE_FULL_SUBGROUPS.0,
5646                "REQUIRE_FULL_SUBGROUPS",
5647            ),
5648            (ShaderCreateFlagsEXT::NO_TASK_SHADER.0, "NO_TASK_SHADER"),
5649            (ShaderCreateFlagsEXT::DISPATCH_BASE.0, "DISPATCH_BASE"),
5650            (
5651                ShaderCreateFlagsEXT::FRAGMENT_SHADING_RATE_ATTACHMENT.0,
5652                "FRAGMENT_SHADING_RATE_ATTACHMENT",
5653            ),
5654            (
5655                ShaderCreateFlagsEXT::FRAGMENT_DENSITY_MAP_ATTACHMENT.0,
5656                "FRAGMENT_DENSITY_MAP_ATTACHMENT",
5657            ),
5658            (
5659                ShaderCreateFlagsEXT::INDIRECT_BINDABLE.0,
5660                "INDIRECT_BINDABLE",
5661            ),
5662            (ShaderCreateFlagsEXT::TYPE_64_INDEXING.0, "TYPE_64_INDEXING"),
5663        ];
5664        debug_flags(f, KNOWN, self.0)
5665    }
5666}
5667impl fmt::Debug for ShaderFloatControlsIndependence {
5668    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5669        let name = match *self {
5670            Self::TYPE_32_ONLY => Some("TYPE_32_ONLY"),
5671            Self::ALL => Some("ALL"),
5672            Self::NONE => Some("NONE"),
5673            _ => None,
5674        };
5675        if let Some(x) = name {
5676            f.write_str(x)
5677        } else {
5678            self.0.fmt(f)
5679        }
5680    }
5681}
5682impl fmt::Debug for ShaderGroupShaderKHR {
5683    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5684        let name = match *self {
5685            Self::GENERAL => Some("GENERAL"),
5686            Self::CLOSEST_HIT => Some("CLOSEST_HIT"),
5687            Self::ANY_HIT => Some("ANY_HIT"),
5688            Self::INTERSECTION => Some("INTERSECTION"),
5689            _ => None,
5690        };
5691        if let Some(x) = name {
5692            f.write_str(x)
5693        } else {
5694            self.0.fmt(f)
5695        }
5696    }
5697}
5698impl fmt::Debug for ShaderInfoTypeAMD {
5699    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5700        let name = match *self {
5701            Self::STATISTICS => Some("STATISTICS"),
5702            Self::BINARY => Some("BINARY"),
5703            Self::DISASSEMBLY => Some("DISASSEMBLY"),
5704            _ => None,
5705        };
5706        if let Some(x) = name {
5707            f.write_str(x)
5708        } else {
5709            self.0.fmt(f)
5710        }
5711    }
5712}
5713impl fmt::Debug for ShaderModuleCreateFlags {
5714    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5715        const KNOWN: &[(Flags, &str)] = &[];
5716        debug_flags(f, KNOWN, self.0)
5717    }
5718}
5719impl fmt::Debug for ShaderStageFlags {
5720    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5721        const KNOWN: &[(Flags, &str)] = &[
5722            (ShaderStageFlags::VERTEX.0, "VERTEX"),
5723            (
5724                ShaderStageFlags::TESSELLATION_CONTROL.0,
5725                "TESSELLATION_CONTROL",
5726            ),
5727            (
5728                ShaderStageFlags::TESSELLATION_EVALUATION.0,
5729                "TESSELLATION_EVALUATION",
5730            ),
5731            (ShaderStageFlags::GEOMETRY.0, "GEOMETRY"),
5732            (ShaderStageFlags::FRAGMENT.0, "FRAGMENT"),
5733            (ShaderStageFlags::COMPUTE.0, "COMPUTE"),
5734            (ShaderStageFlags::ALL_GRAPHICS.0, "ALL_GRAPHICS"),
5735            (ShaderStageFlags::ALL.0, "ALL"),
5736            (ShaderStageFlags::RAYGEN_KHR.0, "RAYGEN_KHR"),
5737            (ShaderStageFlags::ANY_HIT_KHR.0, "ANY_HIT_KHR"),
5738            (ShaderStageFlags::CLOSEST_HIT_KHR.0, "CLOSEST_HIT_KHR"),
5739            (ShaderStageFlags::MISS_KHR.0, "MISS_KHR"),
5740            (ShaderStageFlags::INTERSECTION_KHR.0, "INTERSECTION_KHR"),
5741            (ShaderStageFlags::CALLABLE_KHR.0, "CALLABLE_KHR"),
5742            (ShaderStageFlags::TASK_EXT.0, "TASK_EXT"),
5743            (ShaderStageFlags::MESH_EXT.0, "MESH_EXT"),
5744            (
5745                ShaderStageFlags::SUBPASS_SHADING_HUAWEI.0,
5746                "SUBPASS_SHADING_HUAWEI",
5747            ),
5748            (
5749                ShaderStageFlags::CLUSTER_CULLING_HUAWEI.0,
5750                "CLUSTER_CULLING_HUAWEI",
5751            ),
5752        ];
5753        debug_flags(f, KNOWN, self.0)
5754    }
5755}
5756impl fmt::Debug for ShadingRatePaletteEntryNV {
5757    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5758        let name = match *self {
5759            Self::NO_INVOCATIONS => Some("NO_INVOCATIONS"),
5760            Self::TYPE_16_INVOCATIONS_PER_PIXEL => Some("TYPE_16_INVOCATIONS_PER_PIXEL"),
5761            Self::TYPE_8_INVOCATIONS_PER_PIXEL => Some("TYPE_8_INVOCATIONS_PER_PIXEL"),
5762            Self::TYPE_4_INVOCATIONS_PER_PIXEL => Some("TYPE_4_INVOCATIONS_PER_PIXEL"),
5763            Self::TYPE_2_INVOCATIONS_PER_PIXEL => Some("TYPE_2_INVOCATIONS_PER_PIXEL"),
5764            Self::TYPE_1_INVOCATION_PER_PIXEL => Some("TYPE_1_INVOCATION_PER_PIXEL"),
5765            Self::TYPE_1_INVOCATION_PER_2X1_PIXELS => Some("TYPE_1_INVOCATION_PER_2X1_PIXELS"),
5766            Self::TYPE_1_INVOCATION_PER_1X2_PIXELS => Some("TYPE_1_INVOCATION_PER_1X2_PIXELS"),
5767            Self::TYPE_1_INVOCATION_PER_2X2_PIXELS => Some("TYPE_1_INVOCATION_PER_2X2_PIXELS"),
5768            Self::TYPE_1_INVOCATION_PER_4X2_PIXELS => Some("TYPE_1_INVOCATION_PER_4X2_PIXELS"),
5769            Self::TYPE_1_INVOCATION_PER_2X4_PIXELS => Some("TYPE_1_INVOCATION_PER_2X4_PIXELS"),
5770            Self::TYPE_1_INVOCATION_PER_4X4_PIXELS => Some("TYPE_1_INVOCATION_PER_4X4_PIXELS"),
5771            _ => None,
5772        };
5773        if let Some(x) = name {
5774            f.write_str(x)
5775        } else {
5776            self.0.fmt(f)
5777        }
5778    }
5779}
5780impl fmt::Debug for SharingMode {
5781    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5782        let name = match *self {
5783            Self::EXCLUSIVE => Some("EXCLUSIVE"),
5784            Self::CONCURRENT => Some("CONCURRENT"),
5785            _ => None,
5786        };
5787        if let Some(x) = name {
5788            f.write_str(x)
5789        } else {
5790            self.0.fmt(f)
5791        }
5792    }
5793}
5794impl fmt::Debug for SparseImageFormatFlags {
5795    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5796        const KNOWN: &[(Flags, &str)] = &[
5797            (SparseImageFormatFlags::SINGLE_MIPTAIL.0, "SINGLE_MIPTAIL"),
5798            (
5799                SparseImageFormatFlags::ALIGNED_MIP_SIZE.0,
5800                "ALIGNED_MIP_SIZE",
5801            ),
5802            (
5803                SparseImageFormatFlags::NONSTANDARD_BLOCK_SIZE.0,
5804                "NONSTANDARD_BLOCK_SIZE",
5805            ),
5806        ];
5807        debug_flags(f, KNOWN, self.0)
5808    }
5809}
5810impl fmt::Debug for SparseMemoryBindFlags {
5811    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5812        const KNOWN: &[(Flags, &str)] = &[(SparseMemoryBindFlags::METADATA.0, "METADATA")];
5813        debug_flags(f, KNOWN, self.0)
5814    }
5815}
5816impl fmt::Debug for SpirvResourceTypeFlagsEXT {
5817    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5818        const KNOWN: &[(Flags, &str)] = &[
5819            (SpirvResourceTypeFlagsEXT::ALL.0, "ALL"),
5820            (SpirvResourceTypeFlagsEXT::SAMPLER.0, "SAMPLER"),
5821            (SpirvResourceTypeFlagsEXT::SAMPLED_IMAGE.0, "SAMPLED_IMAGE"),
5822            (
5823                SpirvResourceTypeFlagsEXT::READ_ONLY_IMAGE.0,
5824                "READ_ONLY_IMAGE",
5825            ),
5826            (
5827                SpirvResourceTypeFlagsEXT::READ_WRITE_IMAGE.0,
5828                "READ_WRITE_IMAGE",
5829            ),
5830            (
5831                SpirvResourceTypeFlagsEXT::COMBINED_SAMPLED_IMAGE.0,
5832                "COMBINED_SAMPLED_IMAGE",
5833            ),
5834            (
5835                SpirvResourceTypeFlagsEXT::UNIFORM_BUFFER.0,
5836                "UNIFORM_BUFFER",
5837            ),
5838            (
5839                SpirvResourceTypeFlagsEXT::READ_ONLY_STORAGE_BUFFER.0,
5840                "READ_ONLY_STORAGE_BUFFER",
5841            ),
5842            (
5843                SpirvResourceTypeFlagsEXT::READ_WRITE_STORAGE_BUFFER.0,
5844                "READ_WRITE_STORAGE_BUFFER",
5845            ),
5846            (
5847                SpirvResourceTypeFlagsEXT::ACCELERATION_STRUCTURE.0,
5848                "ACCELERATION_STRUCTURE",
5849            ),
5850            (SpirvResourceTypeFlagsEXT::TENSOR_ARM.0, "TENSOR_ARM"),
5851        ];
5852        debug_flags(f, KNOWN, self.0)
5853    }
5854}
5855impl fmt::Debug for StencilFaceFlags {
5856    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5857        const KNOWN: &[(Flags, &str)] = &[
5858            (StencilFaceFlags::FRONT.0, "FRONT"),
5859            (StencilFaceFlags::BACK.0, "BACK"),
5860            (StencilFaceFlags::FRONT_AND_BACK.0, "FRONT_AND_BACK"),
5861        ];
5862        debug_flags(f, KNOWN, self.0)
5863    }
5864}
5865impl fmt::Debug for StencilOp {
5866    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5867        let name = match *self {
5868            Self::KEEP => Some("KEEP"),
5869            Self::ZERO => Some("ZERO"),
5870            Self::REPLACE => Some("REPLACE"),
5871            Self::INCREMENT_AND_CLAMP => Some("INCREMENT_AND_CLAMP"),
5872            Self::DECREMENT_AND_CLAMP => Some("DECREMENT_AND_CLAMP"),
5873            Self::INVERT => Some("INVERT"),
5874            Self::INCREMENT_AND_WRAP => Some("INCREMENT_AND_WRAP"),
5875            Self::DECREMENT_AND_WRAP => Some("DECREMENT_AND_WRAP"),
5876            _ => None,
5877        };
5878        if let Some(x) = name {
5879            f.write_str(x)
5880        } else {
5881            self.0.fmt(f)
5882        }
5883    }
5884}
5885impl fmt::Debug for StreamDescriptorSurfaceCreateFlagsGGP {
5886    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5887        const KNOWN: &[(Flags, &str)] = &[];
5888        debug_flags(f, KNOWN, self.0)
5889    }
5890}
5891impl fmt::Debug for StructureType {
5892    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5893        let name = match *self {
5894            Self::APPLICATION_INFO => Some("APPLICATION_INFO"),
5895            Self::INSTANCE_CREATE_INFO => Some("INSTANCE_CREATE_INFO"),
5896            Self::DEVICE_QUEUE_CREATE_INFO => Some("DEVICE_QUEUE_CREATE_INFO"),
5897            Self::DEVICE_CREATE_INFO => Some("DEVICE_CREATE_INFO"),
5898            Self::SUBMIT_INFO => Some("SUBMIT_INFO"),
5899            Self::MEMORY_ALLOCATE_INFO => Some("MEMORY_ALLOCATE_INFO"),
5900            Self::MAPPED_MEMORY_RANGE => Some("MAPPED_MEMORY_RANGE"),
5901            Self::BIND_SPARSE_INFO => Some("BIND_SPARSE_INFO"),
5902            Self::FENCE_CREATE_INFO => Some("FENCE_CREATE_INFO"),
5903            Self::SEMAPHORE_CREATE_INFO => Some("SEMAPHORE_CREATE_INFO"),
5904            Self::EVENT_CREATE_INFO => Some("EVENT_CREATE_INFO"),
5905            Self::QUERY_POOL_CREATE_INFO => Some("QUERY_POOL_CREATE_INFO"),
5906            Self::BUFFER_CREATE_INFO => Some("BUFFER_CREATE_INFO"),
5907            Self::BUFFER_VIEW_CREATE_INFO => Some("BUFFER_VIEW_CREATE_INFO"),
5908            Self::IMAGE_CREATE_INFO => Some("IMAGE_CREATE_INFO"),
5909            Self::IMAGE_VIEW_CREATE_INFO => Some("IMAGE_VIEW_CREATE_INFO"),
5910            Self::SHADER_MODULE_CREATE_INFO => Some("SHADER_MODULE_CREATE_INFO"),
5911            Self::PIPELINE_CACHE_CREATE_INFO => Some("PIPELINE_CACHE_CREATE_INFO"),
5912            Self::PIPELINE_SHADER_STAGE_CREATE_INFO => Some("PIPELINE_SHADER_STAGE_CREATE_INFO"),
5913            Self::PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO => {
5914                Some("PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO")
5915            }
5916            Self::PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO => {
5917                Some("PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO")
5918            }
5919            Self::PIPELINE_TESSELLATION_STATE_CREATE_INFO => {
5920                Some("PIPELINE_TESSELLATION_STATE_CREATE_INFO")
5921            }
5922            Self::PIPELINE_VIEWPORT_STATE_CREATE_INFO => {
5923                Some("PIPELINE_VIEWPORT_STATE_CREATE_INFO")
5924            }
5925            Self::PIPELINE_RASTERIZATION_STATE_CREATE_INFO => {
5926                Some("PIPELINE_RASTERIZATION_STATE_CREATE_INFO")
5927            }
5928            Self::PIPELINE_MULTISAMPLE_STATE_CREATE_INFO => {
5929                Some("PIPELINE_MULTISAMPLE_STATE_CREATE_INFO")
5930            }
5931            Self::PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO => {
5932                Some("PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO")
5933            }
5934            Self::PIPELINE_COLOR_BLEND_STATE_CREATE_INFO => {
5935                Some("PIPELINE_COLOR_BLEND_STATE_CREATE_INFO")
5936            }
5937            Self::PIPELINE_DYNAMIC_STATE_CREATE_INFO => Some("PIPELINE_DYNAMIC_STATE_CREATE_INFO"),
5938            Self::GRAPHICS_PIPELINE_CREATE_INFO => Some("GRAPHICS_PIPELINE_CREATE_INFO"),
5939            Self::COMPUTE_PIPELINE_CREATE_INFO => Some("COMPUTE_PIPELINE_CREATE_INFO"),
5940            Self::PIPELINE_LAYOUT_CREATE_INFO => Some("PIPELINE_LAYOUT_CREATE_INFO"),
5941            Self::SAMPLER_CREATE_INFO => Some("SAMPLER_CREATE_INFO"),
5942            Self::DESCRIPTOR_SET_LAYOUT_CREATE_INFO => Some("DESCRIPTOR_SET_LAYOUT_CREATE_INFO"),
5943            Self::DESCRIPTOR_POOL_CREATE_INFO => Some("DESCRIPTOR_POOL_CREATE_INFO"),
5944            Self::DESCRIPTOR_SET_ALLOCATE_INFO => Some("DESCRIPTOR_SET_ALLOCATE_INFO"),
5945            Self::WRITE_DESCRIPTOR_SET => Some("WRITE_DESCRIPTOR_SET"),
5946            Self::COPY_DESCRIPTOR_SET => Some("COPY_DESCRIPTOR_SET"),
5947            Self::FRAMEBUFFER_CREATE_INFO => Some("FRAMEBUFFER_CREATE_INFO"),
5948            Self::RENDER_PASS_CREATE_INFO => Some("RENDER_PASS_CREATE_INFO"),
5949            Self::COMMAND_POOL_CREATE_INFO => Some("COMMAND_POOL_CREATE_INFO"),
5950            Self::COMMAND_BUFFER_ALLOCATE_INFO => Some("COMMAND_BUFFER_ALLOCATE_INFO"),
5951            Self::COMMAND_BUFFER_INHERITANCE_INFO => Some("COMMAND_BUFFER_INHERITANCE_INFO"),
5952            Self::COMMAND_BUFFER_BEGIN_INFO => Some("COMMAND_BUFFER_BEGIN_INFO"),
5953            Self::RENDER_PASS_BEGIN_INFO => Some("RENDER_PASS_BEGIN_INFO"),
5954            Self::BUFFER_MEMORY_BARRIER => Some("BUFFER_MEMORY_BARRIER"),
5955            Self::IMAGE_MEMORY_BARRIER => Some("IMAGE_MEMORY_BARRIER"),
5956            Self::MEMORY_BARRIER => Some("MEMORY_BARRIER"),
5957            Self::LOADER_INSTANCE_CREATE_INFO => Some("LOADER_INSTANCE_CREATE_INFO"),
5958            Self::LOADER_DEVICE_CREATE_INFO => Some("LOADER_DEVICE_CREATE_INFO"),
5959            Self::SWAPCHAIN_CREATE_INFO_KHR => Some("SWAPCHAIN_CREATE_INFO_KHR"),
5960            Self::PRESENT_INFO_KHR => Some("PRESENT_INFO_KHR"),
5961            Self::DEVICE_GROUP_PRESENT_CAPABILITIES_KHR => {
5962                Some("DEVICE_GROUP_PRESENT_CAPABILITIES_KHR")
5963            }
5964            Self::IMAGE_SWAPCHAIN_CREATE_INFO_KHR => Some("IMAGE_SWAPCHAIN_CREATE_INFO_KHR"),
5965            Self::BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR => {
5966                Some("BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR")
5967            }
5968            Self::ACQUIRE_NEXT_IMAGE_INFO_KHR => Some("ACQUIRE_NEXT_IMAGE_INFO_KHR"),
5969            Self::DEVICE_GROUP_PRESENT_INFO_KHR => Some("DEVICE_GROUP_PRESENT_INFO_KHR"),
5970            Self::DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR => {
5971                Some("DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR")
5972            }
5973            Self::DISPLAY_MODE_CREATE_INFO_KHR => Some("DISPLAY_MODE_CREATE_INFO_KHR"),
5974            Self::DISPLAY_SURFACE_CREATE_INFO_KHR => Some("DISPLAY_SURFACE_CREATE_INFO_KHR"),
5975            Self::DISPLAY_PRESENT_INFO_KHR => Some("DISPLAY_PRESENT_INFO_KHR"),
5976            Self::XLIB_SURFACE_CREATE_INFO_KHR => Some("XLIB_SURFACE_CREATE_INFO_KHR"),
5977            Self::XCB_SURFACE_CREATE_INFO_KHR => Some("XCB_SURFACE_CREATE_INFO_KHR"),
5978            Self::WAYLAND_SURFACE_CREATE_INFO_KHR => Some("WAYLAND_SURFACE_CREATE_INFO_KHR"),
5979            Self::ANDROID_SURFACE_CREATE_INFO_KHR => Some("ANDROID_SURFACE_CREATE_INFO_KHR"),
5980            Self::WIN32_SURFACE_CREATE_INFO_KHR => Some("WIN32_SURFACE_CREATE_INFO_KHR"),
5981            Self::NATIVE_BUFFER_ANDROID => Some("NATIVE_BUFFER_ANDROID"),
5982            Self::SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID => {
5983                Some("SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID")
5984            }
5985            Self::PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID => {
5986                Some("PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID")
5987            }
5988            Self::DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT => {
5989                Some("DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT")
5990            }
5991            Self::PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD => {
5992                Some("PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD")
5993            }
5994            Self::DEBUG_MARKER_OBJECT_NAME_INFO_EXT => Some("DEBUG_MARKER_OBJECT_NAME_INFO_EXT"),
5995            Self::DEBUG_MARKER_OBJECT_TAG_INFO_EXT => Some("DEBUG_MARKER_OBJECT_TAG_INFO_EXT"),
5996            Self::DEBUG_MARKER_MARKER_INFO_EXT => Some("DEBUG_MARKER_MARKER_INFO_EXT"),
5997            Self::VIDEO_PROFILE_INFO_KHR => Some("VIDEO_PROFILE_INFO_KHR"),
5998            Self::VIDEO_CAPABILITIES_KHR => Some("VIDEO_CAPABILITIES_KHR"),
5999            Self::VIDEO_PICTURE_RESOURCE_INFO_KHR => Some("VIDEO_PICTURE_RESOURCE_INFO_KHR"),
6000            Self::VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR => {
6001                Some("VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR")
6002            }
6003            Self::BIND_VIDEO_SESSION_MEMORY_INFO_KHR => Some("BIND_VIDEO_SESSION_MEMORY_INFO_KHR"),
6004            Self::VIDEO_SESSION_CREATE_INFO_KHR => Some("VIDEO_SESSION_CREATE_INFO_KHR"),
6005            Self::VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR => {
6006                Some("VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR")
6007            }
6008            Self::VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR => {
6009                Some("VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR")
6010            }
6011            Self::VIDEO_BEGIN_CODING_INFO_KHR => Some("VIDEO_BEGIN_CODING_INFO_KHR"),
6012            Self::VIDEO_END_CODING_INFO_KHR => Some("VIDEO_END_CODING_INFO_KHR"),
6013            Self::VIDEO_CODING_CONTROL_INFO_KHR => Some("VIDEO_CODING_CONTROL_INFO_KHR"),
6014            Self::VIDEO_REFERENCE_SLOT_INFO_KHR => Some("VIDEO_REFERENCE_SLOT_INFO_KHR"),
6015            Self::QUEUE_FAMILY_VIDEO_PROPERTIES_KHR => Some("QUEUE_FAMILY_VIDEO_PROPERTIES_KHR"),
6016            Self::VIDEO_PROFILE_LIST_INFO_KHR => Some("VIDEO_PROFILE_LIST_INFO_KHR"),
6017            Self::PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR => {
6018                Some("PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR")
6019            }
6020            Self::VIDEO_FORMAT_PROPERTIES_KHR => Some("VIDEO_FORMAT_PROPERTIES_KHR"),
6021            Self::QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR => {
6022                Some("QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR")
6023            }
6024            Self::VIDEO_DECODE_INFO_KHR => Some("VIDEO_DECODE_INFO_KHR"),
6025            Self::VIDEO_DECODE_CAPABILITIES_KHR => Some("VIDEO_DECODE_CAPABILITIES_KHR"),
6026            Self::VIDEO_DECODE_USAGE_INFO_KHR => Some("VIDEO_DECODE_USAGE_INFO_KHR"),
6027            Self::DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV => {
6028                Some("DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV")
6029            }
6030            Self::DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV => {
6031                Some("DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV")
6032            }
6033            Self::DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV => {
6034                Some("DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV")
6035            }
6036            Self::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT => {
6037                Some("PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT")
6038            }
6039            Self::PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT => {
6040                Some("PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT")
6041            }
6042            Self::PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT => {
6043                Some("PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT")
6044            }
6045            Self::CU_MODULE_CREATE_INFO_NVX => Some("CU_MODULE_CREATE_INFO_NVX"),
6046            Self::CU_FUNCTION_CREATE_INFO_NVX => Some("CU_FUNCTION_CREATE_INFO_NVX"),
6047            Self::CU_LAUNCH_INFO_NVX => Some("CU_LAUNCH_INFO_NVX"),
6048            Self::CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX => {
6049                Some("CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX")
6050            }
6051            Self::IMAGE_VIEW_HANDLE_INFO_NVX => Some("IMAGE_VIEW_HANDLE_INFO_NVX"),
6052            Self::IMAGE_VIEW_ADDRESS_PROPERTIES_NVX => Some("IMAGE_VIEW_ADDRESS_PROPERTIES_NVX"),
6053            Self::VIDEO_ENCODE_H264_CAPABILITIES_KHR => Some("VIDEO_ENCODE_H264_CAPABILITIES_KHR"),
6054            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR => {
6055                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR")
6056            }
6057            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR => {
6058                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR")
6059            }
6060            Self::VIDEO_ENCODE_H264_PICTURE_INFO_KHR => Some("VIDEO_ENCODE_H264_PICTURE_INFO_KHR"),
6061            Self::VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR => {
6062                Some("VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR")
6063            }
6064            Self::VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR => {
6065                Some("VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR")
6066            }
6067            Self::VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR => {
6068                Some("VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR")
6069            }
6070            Self::VIDEO_ENCODE_H264_PROFILE_INFO_KHR => Some("VIDEO_ENCODE_H264_PROFILE_INFO_KHR"),
6071            Self::VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR => {
6072                Some("VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR")
6073            }
6074            Self::VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR => {
6075                Some("VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR")
6076            }
6077            Self::VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR => {
6078                Some("VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR")
6079            }
6080            Self::VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR => {
6081                Some("VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR")
6082            }
6083            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR => {
6084                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR")
6085            }
6086            Self::VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR => {
6087                Some("VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR")
6088            }
6089            Self::VIDEO_ENCODE_H265_CAPABILITIES_KHR => Some("VIDEO_ENCODE_H265_CAPABILITIES_KHR"),
6090            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR => {
6091                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR")
6092            }
6093            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR => {
6094                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR")
6095            }
6096            Self::VIDEO_ENCODE_H265_PICTURE_INFO_KHR => Some("VIDEO_ENCODE_H265_PICTURE_INFO_KHR"),
6097            Self::VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR => {
6098                Some("VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR")
6099            }
6100            Self::VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR => {
6101                Some("VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR")
6102            }
6103            Self::VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR => {
6104                Some("VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR")
6105            }
6106            Self::VIDEO_ENCODE_H265_PROFILE_INFO_KHR => Some("VIDEO_ENCODE_H265_PROFILE_INFO_KHR"),
6107            Self::VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR => {
6108                Some("VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR")
6109            }
6110            Self::VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR => {
6111                Some("VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR")
6112            }
6113            Self::VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR => {
6114                Some("VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR")
6115            }
6116            Self::VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR => {
6117                Some("VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR")
6118            }
6119            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR => {
6120                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR")
6121            }
6122            Self::VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR => {
6123                Some("VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR")
6124            }
6125            Self::VIDEO_DECODE_H264_CAPABILITIES_KHR => Some("VIDEO_DECODE_H264_CAPABILITIES_KHR"),
6126            Self::VIDEO_DECODE_H264_PICTURE_INFO_KHR => Some("VIDEO_DECODE_H264_PICTURE_INFO_KHR"),
6127            Self::VIDEO_DECODE_H264_PROFILE_INFO_KHR => Some("VIDEO_DECODE_H264_PROFILE_INFO_KHR"),
6128            Self::VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR => {
6129                Some("VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR")
6130            }
6131            Self::VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR => {
6132                Some("VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR")
6133            }
6134            Self::VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR => {
6135                Some("VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR")
6136            }
6137            Self::TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD => {
6138                Some("TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")
6139            }
6140            Self::STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP => {
6141                Some("STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP")
6142            }
6143            Self::PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV => {
6144                Some("PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV")
6145            }
6146            Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV => {
6147                Some("EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV")
6148            }
6149            Self::EXPORT_MEMORY_ALLOCATE_INFO_NV => Some("EXPORT_MEMORY_ALLOCATE_INFO_NV"),
6150            Self::IMPORT_MEMORY_WIN32_HANDLE_INFO_NV => Some("IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"),
6151            Self::EXPORT_MEMORY_WIN32_HANDLE_INFO_NV => Some("EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"),
6152            Self::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV => {
6153                Some("WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV")
6154            }
6155            Self::VALIDATION_FLAGS_EXT => Some("VALIDATION_FLAGS_EXT"),
6156            Self::VI_SURFACE_CREATE_INFO_NN => Some("VI_SURFACE_CREATE_INFO_NN"),
6157            Self::IMAGE_VIEW_ASTC_DECODE_MODE_EXT => Some("IMAGE_VIEW_ASTC_DECODE_MODE_EXT"),
6158            Self::PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT => {
6159                Some("PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT")
6160            }
6161            Self::IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR => {
6162                Some("IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR")
6163            }
6164            Self::EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR => {
6165                Some("EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR")
6166            }
6167            Self::MEMORY_WIN32_HANDLE_PROPERTIES_KHR => Some("MEMORY_WIN32_HANDLE_PROPERTIES_KHR"),
6168            Self::MEMORY_GET_WIN32_HANDLE_INFO_KHR => Some("MEMORY_GET_WIN32_HANDLE_INFO_KHR"),
6169            Self::IMPORT_MEMORY_FD_INFO_KHR => Some("IMPORT_MEMORY_FD_INFO_KHR"),
6170            Self::MEMORY_FD_PROPERTIES_KHR => Some("MEMORY_FD_PROPERTIES_KHR"),
6171            Self::MEMORY_GET_FD_INFO_KHR => Some("MEMORY_GET_FD_INFO_KHR"),
6172            Self::WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR => {
6173                Some("WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR")
6174            }
6175            Self::IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR => {
6176                Some("IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR")
6177            }
6178            Self::EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR => {
6179                Some("EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR")
6180            }
6181            Self::D3D12_FENCE_SUBMIT_INFO_KHR => Some("D3D12_FENCE_SUBMIT_INFO_KHR"),
6182            Self::SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR => {
6183                Some("SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR")
6184            }
6185            Self::IMPORT_SEMAPHORE_FD_INFO_KHR => Some("IMPORT_SEMAPHORE_FD_INFO_KHR"),
6186            Self::SEMAPHORE_GET_FD_INFO_KHR => Some("SEMAPHORE_GET_FD_INFO_KHR"),
6187            Self::COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT => {
6188                Some("COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT")
6189            }
6190            Self::PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT => {
6191                Some("PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT")
6192            }
6193            Self::CONDITIONAL_RENDERING_BEGIN_INFO_EXT => {
6194                Some("CONDITIONAL_RENDERING_BEGIN_INFO_EXT")
6195            }
6196            Self::PRESENT_REGIONS_KHR => Some("PRESENT_REGIONS_KHR"),
6197            Self::PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV => {
6198                Some("PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV")
6199            }
6200            Self::SURFACE_CAPABILITIES_2_EXT => Some("SURFACE_CAPABILITIES_2_EXT"),
6201            Self::DISPLAY_POWER_INFO_EXT => Some("DISPLAY_POWER_INFO_EXT"),
6202            Self::DEVICE_EVENT_INFO_EXT => Some("DEVICE_EVENT_INFO_EXT"),
6203            Self::DISPLAY_EVENT_INFO_EXT => Some("DISPLAY_EVENT_INFO_EXT"),
6204            Self::SWAPCHAIN_COUNTER_CREATE_INFO_EXT => Some("SWAPCHAIN_COUNTER_CREATE_INFO_EXT"),
6205            Self::PRESENT_TIMES_INFO_GOOGLE => Some("PRESENT_TIMES_INFO_GOOGLE"),
6206            Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX => {
6207                Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX")
6208            }
6209            Self::MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX => {
6210                Some("MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX")
6211            }
6212            Self::PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV => {
6213                Some("PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV")
6214            }
6215            Self::PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT => {
6216                Some("PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT")
6217            }
6218            Self::PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT => {
6219                Some("PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT")
6220            }
6221            Self::PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT => {
6222                Some("PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT")
6223            }
6224            Self::PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT => {
6225                Some("PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT")
6226            }
6227            Self::PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT => {
6228                Some("PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT")
6229            }
6230            Self::PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT => {
6231                Some("PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT")
6232            }
6233            Self::HDR_METADATA_EXT => Some("HDR_METADATA_EXT"),
6234            Self::PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG => {
6235                Some("PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG")
6236            }
6237            Self::SHARED_PRESENT_SURFACE_CAPABILITIES_KHR => {
6238                Some("SHARED_PRESENT_SURFACE_CAPABILITIES_KHR")
6239            }
6240            Self::IMPORT_FENCE_WIN32_HANDLE_INFO_KHR => Some("IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"),
6241            Self::EXPORT_FENCE_WIN32_HANDLE_INFO_KHR => Some("EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"),
6242            Self::FENCE_GET_WIN32_HANDLE_INFO_KHR => Some("FENCE_GET_WIN32_HANDLE_INFO_KHR"),
6243            Self::IMPORT_FENCE_FD_INFO_KHR => Some("IMPORT_FENCE_FD_INFO_KHR"),
6244            Self::FENCE_GET_FD_INFO_KHR => Some("FENCE_GET_FD_INFO_KHR"),
6245            Self::PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR => {
6246                Some("PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR")
6247            }
6248            Self::PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR => {
6249                Some("PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR")
6250            }
6251            Self::QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR => {
6252                Some("QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR")
6253            }
6254            Self::PERFORMANCE_QUERY_SUBMIT_INFO_KHR => Some("PERFORMANCE_QUERY_SUBMIT_INFO_KHR"),
6255            Self::ACQUIRE_PROFILING_LOCK_INFO_KHR => Some("ACQUIRE_PROFILING_LOCK_INFO_KHR"),
6256            Self::PERFORMANCE_COUNTER_KHR => Some("PERFORMANCE_COUNTER_KHR"),
6257            Self::PERFORMANCE_COUNTER_DESCRIPTION_KHR => {
6258                Some("PERFORMANCE_COUNTER_DESCRIPTION_KHR")
6259            }
6260            Self::PHYSICAL_DEVICE_SURFACE_INFO_2_KHR => Some("PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"),
6261            Self::SURFACE_CAPABILITIES_2_KHR => Some("SURFACE_CAPABILITIES_2_KHR"),
6262            Self::SURFACE_FORMAT_2_KHR => Some("SURFACE_FORMAT_2_KHR"),
6263            Self::DISPLAY_PROPERTIES_2_KHR => Some("DISPLAY_PROPERTIES_2_KHR"),
6264            Self::DISPLAY_PLANE_PROPERTIES_2_KHR => Some("DISPLAY_PLANE_PROPERTIES_2_KHR"),
6265            Self::DISPLAY_MODE_PROPERTIES_2_KHR => Some("DISPLAY_MODE_PROPERTIES_2_KHR"),
6266            Self::DISPLAY_PLANE_INFO_2_KHR => Some("DISPLAY_PLANE_INFO_2_KHR"),
6267            Self::DISPLAY_PLANE_CAPABILITIES_2_KHR => Some("DISPLAY_PLANE_CAPABILITIES_2_KHR"),
6268            Self::IOS_SURFACE_CREATE_INFO_MVK => Some("IOS_SURFACE_CREATE_INFO_MVK"),
6269            Self::MACOS_SURFACE_CREATE_INFO_MVK => Some("MACOS_SURFACE_CREATE_INFO_MVK"),
6270            Self::DEBUG_UTILS_OBJECT_NAME_INFO_EXT => Some("DEBUG_UTILS_OBJECT_NAME_INFO_EXT"),
6271            Self::DEBUG_UTILS_OBJECT_TAG_INFO_EXT => Some("DEBUG_UTILS_OBJECT_TAG_INFO_EXT"),
6272            Self::DEBUG_UTILS_LABEL_EXT => Some("DEBUG_UTILS_LABEL_EXT"),
6273            Self::DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT => {
6274                Some("DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT")
6275            }
6276            Self::DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT => {
6277                Some("DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT")
6278            }
6279            Self::ANDROID_HARDWARE_BUFFER_USAGE_ANDROID => {
6280                Some("ANDROID_HARDWARE_BUFFER_USAGE_ANDROID")
6281            }
6282            Self::ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID => {
6283                Some("ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID")
6284            }
6285            Self::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID => {
6286                Some("ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID")
6287            }
6288            Self::IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID => {
6289                Some("IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID")
6290            }
6291            Self::MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID => {
6292                Some("MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID")
6293            }
6294            Self::EXTERNAL_FORMAT_ANDROID => Some("EXTERNAL_FORMAT_ANDROID"),
6295            Self::ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID => {
6296                Some("ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID")
6297            }
6298            Self::PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX => {
6299                Some("PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX")
6300            }
6301            Self::PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX => {
6302                Some("PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX")
6303            }
6304            Self::EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX => {
6305                Some("EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX")
6306            }
6307            Self::EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX => {
6308                Some("EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX")
6309            }
6310            Self::PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX => {
6311                Some("PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX")
6312            }
6313            Self::TEXEL_BUFFER_DESCRIPTOR_INFO_EXT => Some("TEXEL_BUFFER_DESCRIPTOR_INFO_EXT"),
6314            Self::IMAGE_DESCRIPTOR_INFO_EXT => Some("IMAGE_DESCRIPTOR_INFO_EXT"),
6315            Self::RESOURCE_DESCRIPTOR_INFO_EXT => Some("RESOURCE_DESCRIPTOR_INFO_EXT"),
6316            Self::BIND_HEAP_INFO_EXT => Some("BIND_HEAP_INFO_EXT"),
6317            Self::PUSH_DATA_INFO_EXT => Some("PUSH_DATA_INFO_EXT"),
6318            Self::DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT => {
6319                Some("DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT")
6320            }
6321            Self::SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT => {
6322                Some("SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT")
6323            }
6324            Self::OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT => {
6325                Some("OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT")
6326            }
6327            Self::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT => {
6328                Some("PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT")
6329            }
6330            Self::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT => {
6331                Some("PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT")
6332            }
6333            Self::COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT => {
6334                Some("COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT")
6335            }
6336            Self::SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT => {
6337                Some("SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT")
6338            }
6339            Self::INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV => {
6340                Some("INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV")
6341            }
6342            Self::SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT => {
6343                Some("SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT")
6344            }
6345            Self::PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM => {
6346                Some("PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM")
6347            }
6348            Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD => Some("ATTACHMENT_SAMPLE_COUNT_INFO_AMD"),
6349            Self::PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR => {
6350                Some("PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR")
6351            }
6352            Self::SAMPLE_LOCATIONS_INFO_EXT => Some("SAMPLE_LOCATIONS_INFO_EXT"),
6353            Self::RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT => {
6354                Some("RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT")
6355            }
6356            Self::PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT => {
6357                Some("PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT")
6358            }
6359            Self::PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT => {
6360                Some("PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT")
6361            }
6362            Self::MULTISAMPLE_PROPERTIES_EXT => Some("MULTISAMPLE_PROPERTIES_EXT"),
6363            Self::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT => {
6364                Some("PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT")
6365            }
6366            Self::PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT => {
6367                Some("PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT")
6368            }
6369            Self::PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT => {
6370                Some("PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT")
6371            }
6372            Self::PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV => {
6373                Some("PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV")
6374            }
6375            Self::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR => {
6376                Some("WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR")
6377            }
6378            Self::ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR => {
6379                Some("ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR")
6380            }
6381            Self::ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR => {
6382                Some("ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR")
6383            }
6384            Self::ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR => {
6385                Some("ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR")
6386            }
6387            Self::ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR => {
6388                Some("ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR")
6389            }
6390            Self::ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR => {
6391                Some("ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR")
6392            }
6393            Self::ACCELERATION_STRUCTURE_GEOMETRY_KHR => {
6394                Some("ACCELERATION_STRUCTURE_GEOMETRY_KHR")
6395            }
6396            Self::ACCELERATION_STRUCTURE_VERSION_INFO_KHR => {
6397                Some("ACCELERATION_STRUCTURE_VERSION_INFO_KHR")
6398            }
6399            Self::COPY_ACCELERATION_STRUCTURE_INFO_KHR => {
6400                Some("COPY_ACCELERATION_STRUCTURE_INFO_KHR")
6401            }
6402            Self::COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR => {
6403                Some("COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR")
6404            }
6405            Self::COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR => {
6406                Some("COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR")
6407            }
6408            Self::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR => {
6409                Some("PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR")
6410            }
6411            Self::PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR => {
6412                Some("PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR")
6413            }
6414            Self::ACCELERATION_STRUCTURE_CREATE_INFO_KHR => {
6415                Some("ACCELERATION_STRUCTURE_CREATE_INFO_KHR")
6416            }
6417            Self::ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR => {
6418                Some("ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR")
6419            }
6420            Self::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR => {
6421                Some("PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR")
6422            }
6423            Self::PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR => {
6424                Some("PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR")
6425            }
6426            Self::RAY_TRACING_PIPELINE_CREATE_INFO_KHR => {
6427                Some("RAY_TRACING_PIPELINE_CREATE_INFO_KHR")
6428            }
6429            Self::RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR => {
6430                Some("RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR")
6431            }
6432            Self::RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR => {
6433                Some("RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR")
6434            }
6435            Self::PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR => {
6436                Some("PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR")
6437            }
6438            Self::PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV => {
6439                Some("PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV")
6440            }
6441            Self::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV => {
6442                Some("PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV")
6443            }
6444            Self::PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV => {
6445                Some("PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV")
6446            }
6447            Self::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT => {
6448                Some("DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT")
6449            }
6450            Self::PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT => {
6451                Some("PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT")
6452            }
6453            Self::IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT => {
6454                Some("IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT")
6455            }
6456            Self::IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT => {
6457                Some("IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT")
6458            }
6459            Self::IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT => {
6460                Some("IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT")
6461            }
6462            Self::DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT => {
6463                Some("DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT")
6464            }
6465            Self::VALIDATION_CACHE_CREATE_INFO_EXT => Some("VALIDATION_CACHE_CREATE_INFO_EXT"),
6466            Self::SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT => {
6467                Some("SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT")
6468            }
6469            Self::PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR => {
6470                Some("PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR")
6471            }
6472            Self::PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR => {
6473                Some("PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR")
6474            }
6475            Self::PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV => {
6476                Some("PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV")
6477            }
6478            Self::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV => {
6479                Some("PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV")
6480            }
6481            Self::PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV => {
6482                Some("PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV")
6483            }
6484            Self::PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV => {
6485                Some("PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV")
6486            }
6487            Self::RAY_TRACING_PIPELINE_CREATE_INFO_NV => {
6488                Some("RAY_TRACING_PIPELINE_CREATE_INFO_NV")
6489            }
6490            Self::ACCELERATION_STRUCTURE_CREATE_INFO_NV => {
6491                Some("ACCELERATION_STRUCTURE_CREATE_INFO_NV")
6492            }
6493            Self::GEOMETRY_NV => Some("GEOMETRY_NV"),
6494            Self::GEOMETRY_TRIANGLES_NV => Some("GEOMETRY_TRIANGLES_NV"),
6495            Self::GEOMETRY_AABB_NV => Some("GEOMETRY_AABB_NV"),
6496            Self::BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV => {
6497                Some("BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV")
6498            }
6499            Self::WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV => {
6500                Some("WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV")
6501            }
6502            Self::ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV => {
6503                Some("ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV")
6504            }
6505            Self::PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV => {
6506                Some("PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV")
6507            }
6508            Self::RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV => {
6509                Some("RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV")
6510            }
6511            Self::ACCELERATION_STRUCTURE_INFO_NV => Some("ACCELERATION_STRUCTURE_INFO_NV"),
6512            Self::PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV => {
6513                Some("PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV")
6514            }
6515            Self::PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV => {
6516                Some("PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV")
6517            }
6518            Self::PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT => {
6519                Some("PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT")
6520            }
6521            Self::FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT => {
6522                Some("FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT")
6523            }
6524            Self::IMPORT_MEMORY_HOST_POINTER_INFO_EXT => {
6525                Some("IMPORT_MEMORY_HOST_POINTER_INFO_EXT")
6526            }
6527            Self::MEMORY_HOST_POINTER_PROPERTIES_EXT => Some("MEMORY_HOST_POINTER_PROPERTIES_EXT"),
6528            Self::PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT => {
6529                Some("PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT")
6530            }
6531            Self::PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR => {
6532                Some("PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR")
6533            }
6534            Self::PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD => {
6535                Some("PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD")
6536            }
6537            Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD => {
6538                Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD")
6539            }
6540            Self::VIDEO_DECODE_H265_CAPABILITIES_KHR => Some("VIDEO_DECODE_H265_CAPABILITIES_KHR"),
6541            Self::VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR => {
6542                Some("VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR")
6543            }
6544            Self::VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR => {
6545                Some("VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR")
6546            }
6547            Self::VIDEO_DECODE_H265_PROFILE_INFO_KHR => Some("VIDEO_DECODE_H265_PROFILE_INFO_KHR"),
6548            Self::VIDEO_DECODE_H265_PICTURE_INFO_KHR => Some("VIDEO_DECODE_H265_PICTURE_INFO_KHR"),
6549            Self::VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR => {
6550                Some("VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR")
6551            }
6552            Self::DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD => {
6553                Some("DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD")
6554            }
6555            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT => {
6556                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT")
6557            }
6558            Self::PRESENT_FRAME_TOKEN_GGP => Some("PRESENT_FRAME_TOKEN_GGP"),
6559            Self::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV => {
6560                Some("PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV")
6561            }
6562            Self::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV => {
6563                Some("PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV")
6564            }
6565            Self::PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV => {
6566                Some("PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV")
6567            }
6568            Self::PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV => {
6569                Some("PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV")
6570            }
6571            Self::PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV => {
6572                Some("PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV")
6573            }
6574            Self::CHECKPOINT_DATA_NV => Some("CHECKPOINT_DATA_NV"),
6575            Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV => {
6576                Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV")
6577            }
6578            Self::QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV => {
6579                Some("QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV")
6580            }
6581            Self::CHECKPOINT_DATA_2_NV => Some("CHECKPOINT_DATA_2_NV"),
6582            Self::PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT => {
6583                Some("PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT")
6584            }
6585            Self::SWAPCHAIN_TIMING_PROPERTIES_EXT => Some("SWAPCHAIN_TIMING_PROPERTIES_EXT"),
6586            Self::SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT => {
6587                Some("SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT")
6588            }
6589            Self::PRESENT_TIMINGS_INFO_EXT => Some("PRESENT_TIMINGS_INFO_EXT"),
6590            Self::PRESENT_TIMING_INFO_EXT => Some("PRESENT_TIMING_INFO_EXT"),
6591            Self::PAST_PRESENTATION_TIMING_INFO_EXT => Some("PAST_PRESENTATION_TIMING_INFO_EXT"),
6592            Self::PAST_PRESENTATION_TIMING_PROPERTIES_EXT => {
6593                Some("PAST_PRESENTATION_TIMING_PROPERTIES_EXT")
6594            }
6595            Self::PAST_PRESENTATION_TIMING_EXT => Some("PAST_PRESENTATION_TIMING_EXT"),
6596            Self::PRESENT_TIMING_SURFACE_CAPABILITIES_EXT => {
6597                Some("PRESENT_TIMING_SURFACE_CAPABILITIES_EXT")
6598            }
6599            Self::SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT => {
6600                Some("SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT")
6601            }
6602            Self::PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL => {
6603                Some("PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL")
6604            }
6605            Self::QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL => {
6606                Some("QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL")
6607            }
6608            Self::INITIALIZE_PERFORMANCE_API_INFO_INTEL => {
6609                Some("INITIALIZE_PERFORMANCE_API_INFO_INTEL")
6610            }
6611            Self::PERFORMANCE_MARKER_INFO_INTEL => Some("PERFORMANCE_MARKER_INFO_INTEL"),
6612            Self::PERFORMANCE_STREAM_MARKER_INFO_INTEL => {
6613                Some("PERFORMANCE_STREAM_MARKER_INFO_INTEL")
6614            }
6615            Self::PERFORMANCE_OVERRIDE_INFO_INTEL => Some("PERFORMANCE_OVERRIDE_INFO_INTEL"),
6616            Self::PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL => {
6617                Some("PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL")
6618            }
6619            Self::PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT => {
6620                Some("PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT")
6621            }
6622            Self::DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD => {
6623                Some("DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD")
6624            }
6625            Self::SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD => {
6626                Some("SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD")
6627            }
6628            Self::IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA => {
6629                Some("IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA")
6630            }
6631            Self::METAL_SURFACE_CREATE_INFO_EXT => Some("METAL_SURFACE_CREATE_INFO_EXT"),
6632            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT => {
6633                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT")
6634            }
6635            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT => {
6636                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT")
6637            }
6638            Self::RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT => {
6639                Some("RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT")
6640            }
6641            Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT => {
6642                Some("RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT")
6643            }
6644            Self::FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => {
6645                Some("FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")
6646            }
6647            Self::PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR => {
6648                Some("PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR")
6649            }
6650            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR => {
6651                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR")
6652            }
6653            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR => {
6654                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR")
6655            }
6656            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR => {
6657                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR")
6658            }
6659            Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR => {
6660                Some("RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")
6661            }
6662            Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD => {
6663                Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD")
6664            }
6665            Self::PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD => {
6666                Some("PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD")
6667            }
6668            Self::PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT => {
6669                Some("PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT")
6670            }
6671            Self::PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR => {
6672                Some("PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR")
6673            }
6674            Self::PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT => {
6675                Some("PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT")
6676            }
6677            Self::PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT => {
6678                Some("PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT")
6679            }
6680            Self::MEMORY_PRIORITY_ALLOCATE_INFO_EXT => Some("MEMORY_PRIORITY_ALLOCATE_INFO_EXT"),
6681            Self::SURFACE_PROTECTED_CAPABILITIES_KHR => Some("SURFACE_PROTECTED_CAPABILITIES_KHR"),
6682            Self::PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV => {
6683                Some("PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV")
6684            }
6685            Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT => {
6686                Some("PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT")
6687            }
6688            Self::BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT => {
6689                Some("BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT")
6690            }
6691            Self::VALIDATION_FEATURES_EXT => Some("VALIDATION_FEATURES_EXT"),
6692            Self::PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR => {
6693                Some("PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR")
6694            }
6695            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV => {
6696                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV")
6697            }
6698            Self::COOPERATIVE_MATRIX_PROPERTIES_NV => Some("COOPERATIVE_MATRIX_PROPERTIES_NV"),
6699            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV => {
6700                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV")
6701            }
6702            Self::PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV => {
6703                Some("PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV")
6704            }
6705            Self::PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV => {
6706                Some("PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV")
6707            }
6708            Self::FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV => {
6709                Some("FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV")
6710            }
6711            Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT => {
6712                Some("PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT")
6713            }
6714            Self::PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT => {
6715                Some("PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT")
6716            }
6717            Self::PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT => {
6718                Some("PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT")
6719            }
6720            Self::PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT => {
6721                Some("PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT")
6722            }
6723            Self::PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT => {
6724                Some("PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT")
6725            }
6726            Self::SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT => {
6727                Some("SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT")
6728            }
6729            Self::SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT => {
6730                Some("SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT")
6731            }
6732            Self::SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT => {
6733                Some("SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT")
6734            }
6735            Self::HEADLESS_SURFACE_CREATE_INFO_EXT => Some("HEADLESS_SURFACE_CREATE_INFO_EXT"),
6736            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT => {
6737                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT")
6738            }
6739            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT => {
6740                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT")
6741            }
6742            Self::PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR => {
6743                Some("PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR")
6744            }
6745            Self::PIPELINE_INFO_KHR => Some("PIPELINE_INFO_KHR"),
6746            Self::PIPELINE_EXECUTABLE_PROPERTIES_KHR => Some("PIPELINE_EXECUTABLE_PROPERTIES_KHR"),
6747            Self::PIPELINE_EXECUTABLE_INFO_KHR => Some("PIPELINE_EXECUTABLE_INFO_KHR"),
6748            Self::PIPELINE_EXECUTABLE_STATISTIC_KHR => Some("PIPELINE_EXECUTABLE_STATISTIC_KHR"),
6749            Self::PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR => {
6750                Some("PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR")
6751            }
6752            Self::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT => {
6753                Some("PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT")
6754            }
6755            Self::PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT => {
6756                Some("PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT")
6757            }
6758            Self::MEMORY_MAP_PLACED_INFO_EXT => Some("MEMORY_MAP_PLACED_INFO_EXT"),
6759            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT => {
6760                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT")
6761            }
6762            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV => {
6763                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV")
6764            }
6765            Self::GRAPHICS_SHADER_GROUP_CREATE_INFO_NV => {
6766                Some("GRAPHICS_SHADER_GROUP_CREATE_INFO_NV")
6767            }
6768            Self::GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV => {
6769                Some("GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV")
6770            }
6771            Self::INDIRECT_COMMANDS_LAYOUT_TOKEN_NV => Some("INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"),
6772            Self::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV => {
6773                Some("INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV")
6774            }
6775            Self::GENERATED_COMMANDS_INFO_NV => Some("GENERATED_COMMANDS_INFO_NV"),
6776            Self::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV => {
6777                Some("GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV")
6778            }
6779            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV => {
6780                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV")
6781            }
6782            Self::PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV => {
6783                Some("PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV")
6784            }
6785            Self::COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV => {
6786                Some("COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV")
6787            }
6788            Self::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT => {
6789                Some("PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT")
6790            }
6791            Self::COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM => {
6792                Some("COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM")
6793            }
6794            Self::RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM => {
6795                Some("RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM")
6796            }
6797            Self::PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT => {
6798                Some("PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT")
6799            }
6800            Self::DEPTH_BIAS_INFO_EXT => Some("DEPTH_BIAS_INFO_EXT"),
6801            Self::DEPTH_BIAS_REPRESENTATION_INFO_EXT => Some("DEPTH_BIAS_REPRESENTATION_INFO_EXT"),
6802            Self::PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT => {
6803                Some("PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT")
6804            }
6805            Self::DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT => {
6806                Some("DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT")
6807            }
6808            Self::DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT => {
6809                Some("DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT")
6810            }
6811            Self::SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT => {
6812                Some("SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT")
6813            }
6814            Self::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT => {
6815                Some("PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT")
6816            }
6817            Self::PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT => {
6818                Some("PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT")
6819            }
6820            Self::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT => {
6821                Some("PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT")
6822            }
6823            Self::PIPELINE_LIBRARY_CREATE_INFO_KHR => Some("PIPELINE_LIBRARY_CREATE_INFO_KHR"),
6824            Self::PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV => {
6825                Some("PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV")
6826            }
6827            Self::SURFACE_CAPABILITIES_PRESENT_BARRIER_NV => {
6828                Some("SURFACE_CAPABILITIES_PRESENT_BARRIER_NV")
6829            }
6830            Self::SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV => {
6831                Some("SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV")
6832            }
6833            Self::PRESENT_ID_KHR => Some("PRESENT_ID_KHR"),
6834            Self::PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR => {
6835                Some("PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR")
6836            }
6837            Self::VIDEO_ENCODE_INFO_KHR => Some("VIDEO_ENCODE_INFO_KHR"),
6838            Self::VIDEO_ENCODE_RATE_CONTROL_INFO_KHR => Some("VIDEO_ENCODE_RATE_CONTROL_INFO_KHR"),
6839            Self::VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR => {
6840                Some("VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR")
6841            }
6842            Self::VIDEO_ENCODE_CAPABILITIES_KHR => Some("VIDEO_ENCODE_CAPABILITIES_KHR"),
6843            Self::VIDEO_ENCODE_USAGE_INFO_KHR => Some("VIDEO_ENCODE_USAGE_INFO_KHR"),
6844            Self::QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR => {
6845                Some("QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR")
6846            }
6847            Self::PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR => {
6848                Some("PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR")
6849            }
6850            Self::VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR => {
6851                Some("VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR")
6852            }
6853            Self::VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR => {
6854                Some("VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR")
6855            }
6856            Self::VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR => {
6857                Some("VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR")
6858            }
6859            Self::VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR => {
6860                Some("VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR")
6861            }
6862            Self::PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV => {
6863                Some("PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV")
6864            }
6865            Self::DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV => {
6866                Some("DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV")
6867            }
6868            Self::CUDA_MODULE_CREATE_INFO_NV => Some("CUDA_MODULE_CREATE_INFO_NV"),
6869            Self::CUDA_FUNCTION_CREATE_INFO_NV => Some("CUDA_FUNCTION_CREATE_INFO_NV"),
6870            Self::CUDA_LAUNCH_INFO_NV => Some("CUDA_LAUNCH_INFO_NV"),
6871            Self::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV => {
6872                Some("PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV")
6873            }
6874            Self::PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV => {
6875                Some("PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV")
6876            }
6877            Self::PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM => {
6878                Some("PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM")
6879            }
6880            Self::PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM => {
6881                Some("PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM")
6882            }
6883            Self::RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM => {
6884                Some("RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM")
6885            }
6886            Self::PER_TILE_BEGIN_INFO_QCOM => Some("PER_TILE_BEGIN_INFO_QCOM"),
6887            Self::PER_TILE_END_INFO_QCOM => Some("PER_TILE_END_INFO_QCOM"),
6888            Self::DISPATCH_TILE_INFO_QCOM => Some("DISPATCH_TILE_INFO_QCOM"),
6889            Self::QUERY_LOW_LATENCY_SUPPORT_NV => Some("QUERY_LOW_LATENCY_SUPPORT_NV"),
6890            Self::EXPORT_METAL_OBJECT_CREATE_INFO_EXT => {
6891                Some("EXPORT_METAL_OBJECT_CREATE_INFO_EXT")
6892            }
6893            Self::EXPORT_METAL_OBJECTS_INFO_EXT => Some("EXPORT_METAL_OBJECTS_INFO_EXT"),
6894            Self::EXPORT_METAL_DEVICE_INFO_EXT => Some("EXPORT_METAL_DEVICE_INFO_EXT"),
6895            Self::EXPORT_METAL_COMMAND_QUEUE_INFO_EXT => {
6896                Some("EXPORT_METAL_COMMAND_QUEUE_INFO_EXT")
6897            }
6898            Self::EXPORT_METAL_BUFFER_INFO_EXT => Some("EXPORT_METAL_BUFFER_INFO_EXT"),
6899            Self::IMPORT_METAL_BUFFER_INFO_EXT => Some("IMPORT_METAL_BUFFER_INFO_EXT"),
6900            Self::EXPORT_METAL_TEXTURE_INFO_EXT => Some("EXPORT_METAL_TEXTURE_INFO_EXT"),
6901            Self::IMPORT_METAL_TEXTURE_INFO_EXT => Some("IMPORT_METAL_TEXTURE_INFO_EXT"),
6902            Self::EXPORT_METAL_IO_SURFACE_INFO_EXT => Some("EXPORT_METAL_IO_SURFACE_INFO_EXT"),
6903            Self::IMPORT_METAL_IO_SURFACE_INFO_EXT => Some("IMPORT_METAL_IO_SURFACE_INFO_EXT"),
6904            Self::EXPORT_METAL_SHARED_EVENT_INFO_EXT => Some("EXPORT_METAL_SHARED_EVENT_INFO_EXT"),
6905            Self::IMPORT_METAL_SHARED_EVENT_INFO_EXT => Some("IMPORT_METAL_SHARED_EVENT_INFO_EXT"),
6906            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT => {
6907                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT")
6908            }
6909            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT => {
6910                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT")
6911            }
6912            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT => {
6913                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT")
6914            }
6915            Self::DESCRIPTOR_ADDRESS_INFO_EXT => Some("DESCRIPTOR_ADDRESS_INFO_EXT"),
6916            Self::DESCRIPTOR_GET_INFO_EXT => Some("DESCRIPTOR_GET_INFO_EXT"),
6917            Self::BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
6918                Some("BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
6919            }
6920            Self::IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
6921                Some("IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
6922            }
6923            Self::IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
6924                Some("IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
6925            }
6926            Self::SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
6927                Some("SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
6928            }
6929            Self::OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT => {
6930                Some("OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT")
6931            }
6932            Self::DESCRIPTOR_BUFFER_BINDING_INFO_EXT => Some("DESCRIPTOR_BUFFER_BINDING_INFO_EXT"),
6933            Self::DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT => {
6934                Some("DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT")
6935            }
6936            Self::ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT => {
6937                Some("ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT")
6938            }
6939            Self::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT => {
6940                Some("PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT")
6941            }
6942            Self::PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT => {
6943                Some("PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT")
6944            }
6945            Self::GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT => {
6946                Some("GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT")
6947            }
6948            Self::PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD => {
6949                Some("PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD")
6950            }
6951            Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR => {
6952                Some("PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR")
6953            }
6954            Self::PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR => {
6955                Some("PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR")
6956            }
6957            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR => {
6958                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR")
6959            }
6960            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV => {
6961                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV")
6962            }
6963            Self::PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV => {
6964                Some("PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV")
6965            }
6966            Self::PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV => {
6967                Some("PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV")
6968            }
6969            Self::ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV => {
6970                Some("ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV")
6971            }
6972            Self::PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV => {
6973                Some("PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV")
6974            }
6975            Self::ACCELERATION_STRUCTURE_MOTION_INFO_NV => {
6976                Some("ACCELERATION_STRUCTURE_MOTION_INFO_NV")
6977            }
6978            Self::PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT => {
6979                Some("PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT")
6980            }
6981            Self::PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT => {
6982                Some("PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT")
6983            }
6984            Self::PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT => {
6985                Some("PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT")
6986            }
6987            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT => {
6988                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT")
6989            }
6990            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT => {
6991                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT")
6992            }
6993            Self::COPY_COMMAND_TRANSFORM_INFO_QCOM => Some("COPY_COMMAND_TRANSFORM_INFO_QCOM"),
6994            Self::PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR => {
6995                Some("PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR")
6996            }
6997            Self::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT => {
6998                Some("PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT")
6999            }
7000            Self::IMAGE_COMPRESSION_CONTROL_EXT => Some("IMAGE_COMPRESSION_CONTROL_EXT"),
7001            Self::IMAGE_COMPRESSION_PROPERTIES_EXT => Some("IMAGE_COMPRESSION_PROPERTIES_EXT"),
7002            Self::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT => {
7003                Some("PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT")
7004            }
7005            Self::PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT => {
7006                Some("PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")
7007            }
7008            Self::PHYSICAL_DEVICE_FAULT_FEATURES_EXT => Some("PHYSICAL_DEVICE_FAULT_FEATURES_EXT"),
7009            Self::DEVICE_FAULT_COUNTS_EXT => Some("DEVICE_FAULT_COUNTS_EXT"),
7010            Self::DEVICE_FAULT_INFO_EXT => Some("DEVICE_FAULT_INFO_EXT"),
7011            Self::PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT => {
7012                Some("PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")
7013            }
7014            Self::DIRECTFB_SURFACE_CREATE_INFO_EXT => Some("DIRECTFB_SURFACE_CREATE_INFO_EXT"),
7015            Self::PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT => {
7016                Some("PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT")
7017            }
7018            Self::VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT => {
7019                Some("VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")
7020            }
7021            Self::VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT => {
7022                Some("VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")
7023            }
7024            Self::PHYSICAL_DEVICE_DRM_PROPERTIES_EXT => Some("PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"),
7025            Self::PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT => {
7026                Some("PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT")
7027            }
7028            Self::DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT => {
7029                Some("DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT")
7030            }
7031            Self::PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT => {
7032                Some("PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT")
7033            }
7034            Self::PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT => {
7035                Some("PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT")
7036            }
7037            Self::PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT => {
7038                Some("PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT")
7039            }
7040            Self::IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA => {
7041                Some("IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")
7042            }
7043            Self::MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA => {
7044                Some("MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")
7045            }
7046            Self::MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA => {
7047                Some("MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")
7048            }
7049            Self::IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA => {
7050                Some("IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")
7051            }
7052            Self::SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA => {
7053                Some("SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")
7054            }
7055            Self::BUFFER_COLLECTION_CREATE_INFO_FUCHSIA => {
7056                Some("BUFFER_COLLECTION_CREATE_INFO_FUCHSIA")
7057            }
7058            Self::IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA => {
7059                Some("IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA")
7060            }
7061            Self::BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA => {
7062                Some("BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA")
7063            }
7064            Self::BUFFER_COLLECTION_PROPERTIES_FUCHSIA => {
7065                Some("BUFFER_COLLECTION_PROPERTIES_FUCHSIA")
7066            }
7067            Self::BUFFER_CONSTRAINTS_INFO_FUCHSIA => Some("BUFFER_CONSTRAINTS_INFO_FUCHSIA"),
7068            Self::BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA => {
7069                Some("BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA")
7070            }
7071            Self::IMAGE_CONSTRAINTS_INFO_FUCHSIA => Some("IMAGE_CONSTRAINTS_INFO_FUCHSIA"),
7072            Self::IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA => {
7073                Some("IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA")
7074            }
7075            Self::SYSMEM_COLOR_SPACE_FUCHSIA => Some("SYSMEM_COLOR_SPACE_FUCHSIA"),
7076            Self::BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA => {
7077                Some("BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA")
7078            }
7079            Self::SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI => {
7080                Some("SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI")
7081            }
7082            Self::PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI => {
7083                Some("PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI")
7084            }
7085            Self::PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI => {
7086                Some("PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI")
7087            }
7088            Self::PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI => {
7089                Some("PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI")
7090            }
7091            Self::MEMORY_GET_REMOTE_ADDRESS_INFO_NV => Some("MEMORY_GET_REMOTE_ADDRESS_INFO_NV"),
7092            Self::PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV => {
7093                Some("PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV")
7094            }
7095            Self::PIPELINE_PROPERTIES_IDENTIFIER_EXT => Some("PIPELINE_PROPERTIES_IDENTIFIER_EXT"),
7096            Self::PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT => {
7097                Some("PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT")
7098            }
7099            Self::PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT => {
7100                Some("PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT")
7101            }
7102            Self::FRAME_BOUNDARY_EXT => Some("FRAME_BOUNDARY_EXT"),
7103            Self::PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT => {
7104                Some("PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT")
7105            }
7106            Self::SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT => {
7107                Some("SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT")
7108            }
7109            Self::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT => {
7110                Some("MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT")
7111            }
7112            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT => {
7113                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT")
7114            }
7115            Self::SCREEN_SURFACE_CREATE_INFO_QNX => Some("SCREEN_SURFACE_CREATE_INFO_QNX"),
7116            Self::PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT => {
7117                Some("PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT")
7118            }
7119            Self::PIPELINE_COLOR_WRITE_CREATE_INFO_EXT => {
7120                Some("PIPELINE_COLOR_WRITE_CREATE_INFO_EXT")
7121            }
7122            Self::PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT => {
7123                Some("PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT")
7124            }
7125            Self::PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR => {
7126                Some("PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR")
7127            }
7128            Self::PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR => {
7129                Some("PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR")
7130            }
7131            Self::PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE => {
7132                Some("PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE")
7133            }
7134            Self::VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE => {
7135                Some("VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE")
7136            }
7137            Self::VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE => {
7138                Some("VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE")
7139            }
7140            Self::VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE => {
7141                Some("VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE")
7142            }
7143            Self::PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT => {
7144                Some("PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT")
7145            }
7146            Self::IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT => Some("IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"),
7147            Self::PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT => {
7148                Some("PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT")
7149            }
7150            Self::PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT => {
7151                Some("PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT")
7152            }
7153            Self::PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT => {
7154                Some("PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT")
7155            }
7156            Self::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT => {
7157                Some("PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT")
7158            }
7159            Self::PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT => {
7160                Some("PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT")
7161            }
7162            Self::MICROMAP_BUILD_INFO_EXT => Some("MICROMAP_BUILD_INFO_EXT"),
7163            Self::MICROMAP_VERSION_INFO_EXT => Some("MICROMAP_VERSION_INFO_EXT"),
7164            Self::COPY_MICROMAP_INFO_EXT => Some("COPY_MICROMAP_INFO_EXT"),
7165            Self::COPY_MICROMAP_TO_MEMORY_INFO_EXT => Some("COPY_MICROMAP_TO_MEMORY_INFO_EXT"),
7166            Self::COPY_MEMORY_TO_MICROMAP_INFO_EXT => Some("COPY_MEMORY_TO_MICROMAP_INFO_EXT"),
7167            Self::PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT => {
7168                Some("PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT")
7169            }
7170            Self::PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT => {
7171                Some("PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT")
7172            }
7173            Self::MICROMAP_CREATE_INFO_EXT => Some("MICROMAP_CREATE_INFO_EXT"),
7174            Self::MICROMAP_BUILD_SIZES_INFO_EXT => Some("MICROMAP_BUILD_SIZES_INFO_EXT"),
7175            Self::ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT => {
7176                Some("ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT")
7177            }
7178            Self::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV => {
7179                Some("PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV")
7180            }
7181            Self::PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV => {
7182                Some("PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV")
7183            }
7184            Self::ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV => {
7185                Some("ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV")
7186            }
7187            Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI => {
7188                Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI")
7189            }
7190            Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI => {
7191                Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI")
7192            }
7193            Self::PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI => {
7194                Some("PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI")
7195            }
7196            Self::PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT => {
7197                Some("PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT")
7198            }
7199            Self::SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT => {
7200                Some("SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT")
7201            }
7202            Self::PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT => {
7203                Some("PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT")
7204            }
7205            Self::PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM => {
7206                Some("PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM")
7207            }
7208            Self::DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM => {
7209                Some("DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM")
7210            }
7211            Self::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM => {
7212                Some("PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM")
7213            }
7214            Self::PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM => {
7215                Some("PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM")
7216            }
7217            Self::PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT => {
7218                Some("PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT")
7219            }
7220            Self::IMAGE_VIEW_SLICED_CREATE_INFO_EXT => Some("IMAGE_VIEW_SLICED_CREATE_INFO_EXT"),
7221            Self::PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE => {
7222                Some("PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE")
7223            }
7224            Self::DESCRIPTOR_SET_BINDING_REFERENCE_VALVE => {
7225                Some("DESCRIPTOR_SET_BINDING_REFERENCE_VALVE")
7226            }
7227            Self::DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE => {
7228                Some("DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE")
7229            }
7230            Self::PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT => {
7231                Some("PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT")
7232            }
7233            Self::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM => {
7234                Some("PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM")
7235            }
7236            Self::PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM => {
7237                Some("PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM")
7238            }
7239            Self::RENDER_PASS_STRIPE_BEGIN_INFO_ARM => Some("RENDER_PASS_STRIPE_BEGIN_INFO_ARM"),
7240            Self::RENDER_PASS_STRIPE_INFO_ARM => Some("RENDER_PASS_STRIPE_INFO_ARM"),
7241            Self::RENDER_PASS_STRIPE_SUBMIT_INFO_ARM => Some("RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"),
7242            Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV => {
7243                Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV")
7244            }
7245            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV => {
7246                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV")
7247            }
7248            Self::COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV => {
7249                Some("COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV")
7250            }
7251            Self::PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV => {
7252                Some("PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV")
7253            }
7254            Self::PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV => {
7255                Some("PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV")
7256            }
7257            Self::ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV => {
7258                Some("ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV")
7259            }
7260            Self::ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV => {
7261                Some("ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV")
7262            }
7263            Self::PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV => {
7264                Some("PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV")
7265            }
7266            Self::PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR => {
7267                Some("PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR")
7268            }
7269            Self::PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT => {
7270                Some("PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT")
7271            }
7272            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM => {
7273                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM")
7274            }
7275            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM => {
7276                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM")
7277            }
7278            Self::IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM => {
7279                Some("IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM")
7280            }
7281            Self::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT => {
7282                Some("PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT")
7283            }
7284            Self::PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT => {
7285                Some("PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT")
7286            }
7287            Self::NATIVE_BUFFER_USAGE_OHOS => Some("NATIVE_BUFFER_USAGE_OHOS"),
7288            Self::NATIVE_BUFFER_PROPERTIES_OHOS => Some("NATIVE_BUFFER_PROPERTIES_OHOS"),
7289            Self::NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS => {
7290                Some("NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS")
7291            }
7292            Self::IMPORT_NATIVE_BUFFER_INFO_OHOS => Some("IMPORT_NATIVE_BUFFER_INFO_OHOS"),
7293            Self::MEMORY_GET_NATIVE_BUFFER_INFO_OHOS => Some("MEMORY_GET_NATIVE_BUFFER_INFO_OHOS"),
7294            Self::EXTERNAL_FORMAT_OHOS => Some("EXTERNAL_FORMAT_OHOS"),
7295            Self::EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT => {
7296                Some("EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT")
7297            }
7298            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT => {
7299                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT")
7300            }
7301            Self::PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT => {
7302                Some("PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT")
7303            }
7304            Self::PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT => {
7305                Some("PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT")
7306            }
7307            Self::RENDER_PASS_CREATION_CONTROL_EXT => Some("RENDER_PASS_CREATION_CONTROL_EXT"),
7308            Self::RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT => {
7309                Some("RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT")
7310            }
7311            Self::RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT => {
7312                Some("RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT")
7313            }
7314            Self::DIRECT_DRIVER_LOADING_INFO_LUNARG => Some("DIRECT_DRIVER_LOADING_INFO_LUNARG"),
7315            Self::DIRECT_DRIVER_LOADING_LIST_LUNARG => Some("DIRECT_DRIVER_LOADING_LIST_LUNARG"),
7316            Self::TENSOR_CREATE_INFO_ARM => Some("TENSOR_CREATE_INFO_ARM"),
7317            Self::TENSOR_VIEW_CREATE_INFO_ARM => Some("TENSOR_VIEW_CREATE_INFO_ARM"),
7318            Self::BIND_TENSOR_MEMORY_INFO_ARM => Some("BIND_TENSOR_MEMORY_INFO_ARM"),
7319            Self::WRITE_DESCRIPTOR_SET_TENSOR_ARM => Some("WRITE_DESCRIPTOR_SET_TENSOR_ARM"),
7320            Self::PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM => {
7321                Some("PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM")
7322            }
7323            Self::TENSOR_FORMAT_PROPERTIES_ARM => Some("TENSOR_FORMAT_PROPERTIES_ARM"),
7324            Self::TENSOR_DESCRIPTION_ARM => Some("TENSOR_DESCRIPTION_ARM"),
7325            Self::TENSOR_MEMORY_REQUIREMENTS_INFO_ARM => {
7326                Some("TENSOR_MEMORY_REQUIREMENTS_INFO_ARM")
7327            }
7328            Self::TENSOR_MEMORY_BARRIER_ARM => Some("TENSOR_MEMORY_BARRIER_ARM"),
7329            Self::PHYSICAL_DEVICE_TENSOR_FEATURES_ARM => {
7330                Some("PHYSICAL_DEVICE_TENSOR_FEATURES_ARM")
7331            }
7332            Self::DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM => {
7333                Some("DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM")
7334            }
7335            Self::COPY_TENSOR_INFO_ARM => Some("COPY_TENSOR_INFO_ARM"),
7336            Self::TENSOR_COPY_ARM => Some("TENSOR_COPY_ARM"),
7337            Self::TENSOR_DEPENDENCY_INFO_ARM => Some("TENSOR_DEPENDENCY_INFO_ARM"),
7338            Self::MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM => {
7339                Some("MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM")
7340            }
7341            Self::PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM => {
7342                Some("PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM")
7343            }
7344            Self::EXTERNAL_TENSOR_PROPERTIES_ARM => Some("EXTERNAL_TENSOR_PROPERTIES_ARM"),
7345            Self::EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM => {
7346                Some("EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM")
7347            }
7348            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM => {
7349                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM")
7350            }
7351            Self::PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM => {
7352                Some("PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM")
7353            }
7354            Self::DESCRIPTOR_GET_TENSOR_INFO_ARM => Some("DESCRIPTOR_GET_TENSOR_INFO_ARM"),
7355            Self::TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM => {
7356                Some("TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM")
7357            }
7358            Self::TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM => {
7359                Some("TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM")
7360            }
7361            Self::FRAME_BOUNDARY_TENSORS_ARM => Some("FRAME_BOUNDARY_TENSORS_ARM"),
7362            Self::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT => {
7363                Some("PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT")
7364            }
7365            Self::PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT => {
7366                Some("PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT")
7367            }
7368            Self::PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT => {
7369                Some("PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT")
7370            }
7371            Self::SHADER_MODULE_IDENTIFIER_EXT => Some("SHADER_MODULE_IDENTIFIER_EXT"),
7372            Self::PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT => {
7373                Some("PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT")
7374            }
7375            Self::PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV => {
7376                Some("PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV")
7377            }
7378            Self::PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV => {
7379                Some("PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV")
7380            }
7381            Self::OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV => Some("OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"),
7382            Self::OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV => {
7383                Some("OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV")
7384            }
7385            Self::OPTICAL_FLOW_SESSION_CREATE_INFO_NV => {
7386                Some("OPTICAL_FLOW_SESSION_CREATE_INFO_NV")
7387            }
7388            Self::OPTICAL_FLOW_EXECUTE_INFO_NV => Some("OPTICAL_FLOW_EXECUTE_INFO_NV"),
7389            Self::OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV => {
7390                Some("OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV")
7391            }
7392            Self::PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT => {
7393                Some("PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT")
7394            }
7395            Self::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID => {
7396                Some("PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID")
7397            }
7398            Self::PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID => {
7399                Some("PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID")
7400            }
7401            Self::ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID => {
7402                Some("ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID")
7403            }
7404            Self::PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD => {
7405                Some("PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD")
7406            }
7407            Self::ANTI_LAG_DATA_AMD => Some("ANTI_LAG_DATA_AMD"),
7408            Self::ANTI_LAG_PRESENTATION_INFO_AMD => Some("ANTI_LAG_PRESENTATION_INFO_AMD"),
7409            Self::PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX => {
7410                Some("PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX")
7411            }
7412            Self::ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX => {
7413                Some("ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX")
7414            }
7415            Self::SURFACE_CAPABILITIES_PRESENT_ID_2_KHR => {
7416                Some("SURFACE_CAPABILITIES_PRESENT_ID_2_KHR")
7417            }
7418            Self::PRESENT_ID_2_KHR => Some("PRESENT_ID_2_KHR"),
7419            Self::PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR => {
7420                Some("PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR")
7421            }
7422            Self::SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR => {
7423                Some("SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR")
7424            }
7425            Self::PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR => {
7426                Some("PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR")
7427            }
7428            Self::PRESENT_WAIT_2_INFO_KHR => Some("PRESENT_WAIT_2_INFO_KHR"),
7429            Self::PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR => {
7430                Some("PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR")
7431            }
7432            Self::PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT => {
7433                Some("PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT")
7434            }
7435            Self::PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT => {
7436                Some("PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT")
7437            }
7438            Self::SHADER_CREATE_INFO_EXT => Some("SHADER_CREATE_INFO_EXT"),
7439            Self::PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR => {
7440                Some("PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR")
7441            }
7442            Self::PIPELINE_BINARY_CREATE_INFO_KHR => Some("PIPELINE_BINARY_CREATE_INFO_KHR"),
7443            Self::PIPELINE_BINARY_INFO_KHR => Some("PIPELINE_BINARY_INFO_KHR"),
7444            Self::PIPELINE_BINARY_KEY_KHR => Some("PIPELINE_BINARY_KEY_KHR"),
7445            Self::PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR => {
7446                Some("PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR")
7447            }
7448            Self::RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR => {
7449                Some("RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR")
7450            }
7451            Self::PIPELINE_BINARY_DATA_INFO_KHR => Some("PIPELINE_BINARY_DATA_INFO_KHR"),
7452            Self::PIPELINE_CREATE_INFO_KHR => Some("PIPELINE_CREATE_INFO_KHR"),
7453            Self::DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR => {
7454                Some("DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR")
7455            }
7456            Self::PIPELINE_BINARY_HANDLES_INFO_KHR => Some("PIPELINE_BINARY_HANDLES_INFO_KHR"),
7457            Self::PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM => {
7458                Some("PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM")
7459            }
7460            Self::TILE_PROPERTIES_QCOM => Some("TILE_PROPERTIES_QCOM"),
7461            Self::PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC => {
7462                Some("PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC")
7463            }
7464            Self::AMIGO_PROFILING_SUBMIT_INFO_SEC => Some("AMIGO_PROFILING_SUBMIT_INFO_SEC"),
7465            Self::SURFACE_PRESENT_MODE_KHR => Some("SURFACE_PRESENT_MODE_KHR"),
7466            Self::SURFACE_PRESENT_SCALING_CAPABILITIES_KHR => {
7467                Some("SURFACE_PRESENT_SCALING_CAPABILITIES_KHR")
7468            }
7469            Self::SURFACE_PRESENT_MODE_COMPATIBILITY_KHR => {
7470                Some("SURFACE_PRESENT_MODE_COMPATIBILITY_KHR")
7471            }
7472            Self::PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR => {
7473                Some("PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR")
7474            }
7475            Self::SWAPCHAIN_PRESENT_FENCE_INFO_KHR => Some("SWAPCHAIN_PRESENT_FENCE_INFO_KHR"),
7476            Self::SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR => {
7477                Some("SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR")
7478            }
7479            Self::SWAPCHAIN_PRESENT_MODE_INFO_KHR => Some("SWAPCHAIN_PRESENT_MODE_INFO_KHR"),
7480            Self::SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR => {
7481                Some("SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR")
7482            }
7483            Self::RELEASE_SWAPCHAIN_IMAGES_INFO_KHR => Some("RELEASE_SWAPCHAIN_IMAGES_INFO_KHR"),
7484            Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM => {
7485                Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM")
7486            }
7487            Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV => {
7488                Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV")
7489            }
7490            Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV => {
7491                Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV")
7492            }
7493            Self::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV => {
7494                Some("PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV")
7495            }
7496            Self::PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV => {
7497                Some("PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV")
7498            }
7499            Self::COOPERATIVE_VECTOR_PROPERTIES_NV => Some("COOPERATIVE_VECTOR_PROPERTIES_NV"),
7500            Self::CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV => {
7501                Some("CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV")
7502            }
7503            Self::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV => {
7504                Some("PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV")
7505            }
7506            Self::PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV => {
7507                Some("PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV")
7508            }
7509            Self::PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT => {
7510                Some("PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT")
7511            }
7512            Self::MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT => {
7513                Some("MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT")
7514            }
7515            Self::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT => {
7516                Some("PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT")
7517            }
7518            Self::PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT => {
7519                Some("PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT")
7520            }
7521            Self::LAYER_SETTINGS_CREATE_INFO_EXT => Some("LAYER_SETTINGS_CREATE_INFO_EXT"),
7522            Self::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM => {
7523                Some("PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM")
7524            }
7525            Self::PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM => {
7526                Some("PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM")
7527            }
7528            Self::PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT => {
7529                Some("PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT")
7530            }
7531            Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT => {
7532                Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT")
7533            }
7534            Self::PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR => {
7535                Some("PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR")
7536            }
7537            Self::LATENCY_SLEEP_MODE_INFO_NV => Some("LATENCY_SLEEP_MODE_INFO_NV"),
7538            Self::LATENCY_SLEEP_INFO_NV => Some("LATENCY_SLEEP_INFO_NV"),
7539            Self::SET_LATENCY_MARKER_INFO_NV => Some("SET_LATENCY_MARKER_INFO_NV"),
7540            Self::GET_LATENCY_MARKER_INFO_NV => Some("GET_LATENCY_MARKER_INFO_NV"),
7541            Self::LATENCY_TIMINGS_FRAME_REPORT_NV => Some("LATENCY_TIMINGS_FRAME_REPORT_NV"),
7542            Self::LATENCY_SUBMISSION_PRESENT_ID_NV => Some("LATENCY_SUBMISSION_PRESENT_ID_NV"),
7543            Self::OUT_OF_BAND_QUEUE_TYPE_INFO_NV => Some("OUT_OF_BAND_QUEUE_TYPE_INFO_NV"),
7544            Self::SWAPCHAIN_LATENCY_CREATE_INFO_NV => Some("SWAPCHAIN_LATENCY_CREATE_INFO_NV"),
7545            Self::LATENCY_SURFACE_CAPABILITIES_NV => Some("LATENCY_SURFACE_CAPABILITIES_NV"),
7546            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR => {
7547                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR")
7548            }
7549            Self::COOPERATIVE_MATRIX_PROPERTIES_KHR => Some("COOPERATIVE_MATRIX_PROPERTIES_KHR"),
7550            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR => {
7551                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR")
7552            }
7553            Self::DATA_GRAPH_PIPELINE_CREATE_INFO_ARM => {
7554                Some("DATA_GRAPH_PIPELINE_CREATE_INFO_ARM")
7555            }
7556            Self::DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM => {
7557                Some("DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM")
7558            }
7559            Self::DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM => {
7560                Some("DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM")
7561            }
7562            Self::DATA_GRAPH_PIPELINE_CONSTANT_ARM => Some("DATA_GRAPH_PIPELINE_CONSTANT_ARM"),
7563            Self::DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM => {
7564                Some("DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM")
7565            }
7566            Self::BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM => {
7567                Some("BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM")
7568            }
7569            Self::PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM => {
7570                Some("PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM")
7571            }
7572            Self::DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM => {
7573                Some("DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM")
7574            }
7575            Self::DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM => {
7576                Some("DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM")
7577            }
7578            Self::DATA_GRAPH_PIPELINE_INFO_ARM => Some("DATA_GRAPH_PIPELINE_INFO_ARM"),
7579            Self::DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM => {
7580                Some("DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM")
7581            }
7582            Self::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM => {
7583                Some("DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM")
7584            }
7585            Self::DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM => {
7586                Some("DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM")
7587            }
7588            Self::DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM => {
7589                Some("DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM")
7590            }
7591            Self::DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM => {
7592                Some("DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM")
7593            }
7594            Self::DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM => {
7595                Some("DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM")
7596            }
7597            Self::QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM => {
7598                Some("QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM")
7599            }
7600            Self::QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM => {
7601                Some("QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM")
7602            }
7603            Self::PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM => {
7604                Some("PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM")
7605            }
7606            Self::DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM => {
7607                Some("DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM")
7608            }
7609            Self::PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM => {
7610                Some("PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM")
7611            }
7612            Self::MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM => {
7613                Some("MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM")
7614            }
7615            Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR => {
7616                Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR")
7617            }
7618            Self::PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR => {
7619                Some("PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR")
7620            }
7621            Self::VIDEO_DECODE_AV1_CAPABILITIES_KHR => Some("VIDEO_DECODE_AV1_CAPABILITIES_KHR"),
7622            Self::VIDEO_DECODE_AV1_PICTURE_INFO_KHR => Some("VIDEO_DECODE_AV1_PICTURE_INFO_KHR"),
7623            Self::VIDEO_DECODE_AV1_PROFILE_INFO_KHR => Some("VIDEO_DECODE_AV1_PROFILE_INFO_KHR"),
7624            Self::VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR => {
7625                Some("VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR")
7626            }
7627            Self::VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR => Some("VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR"),
7628            Self::VIDEO_ENCODE_AV1_CAPABILITIES_KHR => Some("VIDEO_ENCODE_AV1_CAPABILITIES_KHR"),
7629            Self::VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR => {
7630                Some("VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR")
7631            }
7632            Self::VIDEO_ENCODE_AV1_PICTURE_INFO_KHR => Some("VIDEO_ENCODE_AV1_PICTURE_INFO_KHR"),
7633            Self::VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR => Some("VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR"),
7634            Self::PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR => {
7635                Some("PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR")
7636            }
7637            Self::VIDEO_ENCODE_AV1_PROFILE_INFO_KHR => Some("VIDEO_ENCODE_AV1_PROFILE_INFO_KHR"),
7638            Self::VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR => {
7639                Some("VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR")
7640            }
7641            Self::VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR => {
7642                Some("VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR")
7643            }
7644            Self::VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR => {
7645                Some("VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR")
7646            }
7647            Self::VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR => {
7648                Some("VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR")
7649            }
7650            Self::VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR => {
7651                Some("VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR")
7652            }
7653            Self::PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR => {
7654                Some("PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR")
7655            }
7656            Self::VIDEO_DECODE_VP9_CAPABILITIES_KHR => Some("VIDEO_DECODE_VP9_CAPABILITIES_KHR"),
7657            Self::VIDEO_DECODE_VP9_PICTURE_INFO_KHR => Some("VIDEO_DECODE_VP9_PICTURE_INFO_KHR"),
7658            Self::VIDEO_DECODE_VP9_PROFILE_INFO_KHR => Some("VIDEO_DECODE_VP9_PROFILE_INFO_KHR"),
7659            Self::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR => {
7660                Some("PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR")
7661            }
7662            Self::VIDEO_INLINE_QUERY_INFO_KHR => Some("VIDEO_INLINE_QUERY_INFO_KHR"),
7663            Self::PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV => {
7664                Some("PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV")
7665            }
7666            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM => {
7667                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM")
7668            }
7669            Self::PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM => {
7670                Some("PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM")
7671            }
7672            Self::SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM => {
7673                Some("SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM")
7674            }
7675            Self::SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM => {
7676                Some("SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM")
7677            }
7678            Self::PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM => {
7679                Some("PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM")
7680            }
7681            Self::BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM => Some("BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM"),
7682            Self::PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM => {
7683                Some("PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM")
7684            }
7685            Self::SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM => {
7686                Some("SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM")
7687            }
7688            Self::PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM => {
7689                Some("PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM")
7690            }
7691            Self::PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT => {
7692                Some("PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT")
7693            }
7694            Self::PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR => {
7695                Some("PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR")
7696            }
7697            Self::ATTACHMENT_FEEDBACK_LOOP_INFO_EXT => Some("ATTACHMENT_FEEDBACK_LOOP_INFO_EXT"),
7698            Self::SCREEN_BUFFER_PROPERTIES_QNX => Some("SCREEN_BUFFER_PROPERTIES_QNX"),
7699            Self::SCREEN_BUFFER_FORMAT_PROPERTIES_QNX => {
7700                Some("SCREEN_BUFFER_FORMAT_PROPERTIES_QNX")
7701            }
7702            Self::IMPORT_SCREEN_BUFFER_INFO_QNX => Some("IMPORT_SCREEN_BUFFER_INFO_QNX"),
7703            Self::EXTERNAL_FORMAT_QNX => Some("EXTERNAL_FORMAT_QNX"),
7704            Self::PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX => {
7705                Some("PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX")
7706            }
7707            Self::PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT => {
7708                Some("PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT")
7709            }
7710            Self::CALIBRATED_TIMESTAMP_INFO_KHR => Some("CALIBRATED_TIMESTAMP_INFO_KHR"),
7711            Self::SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT => {
7712                Some("SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT")
7713            }
7714            Self::BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT => {
7715                Some("BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT")
7716            }
7717            Self::PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV => {
7718                Some("PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV")
7719            }
7720            Self::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM => {
7721                Some("PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM")
7722            }
7723            Self::PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM => {
7724                Some("PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM")
7725            }
7726            Self::TILE_MEMORY_REQUIREMENTS_QCOM => Some("TILE_MEMORY_REQUIREMENTS_QCOM"),
7727            Self::TILE_MEMORY_BIND_INFO_QCOM => Some("TILE_MEMORY_BIND_INFO_QCOM"),
7728            Self::TILE_MEMORY_SIZE_INFO_QCOM => Some("TILE_MEMORY_SIZE_INFO_QCOM"),
7729            Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR => {
7730                Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR")
7731            }
7732            Self::PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR => {
7733                Some("PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR")
7734            }
7735            Self::COPY_MEMORY_INDIRECT_INFO_KHR => Some("COPY_MEMORY_INDIRECT_INFO_KHR"),
7736            Self::COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR => {
7737                Some("COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR")
7738            }
7739            Self::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT => {
7740                Some("PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT")
7741            }
7742            Self::PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT => {
7743                Some("PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT")
7744            }
7745            Self::DECOMPRESS_MEMORY_INFO_EXT => Some("DECOMPRESS_MEMORY_INFO_EXT"),
7746            Self::DISPLAY_SURFACE_STEREO_CREATE_INFO_NV => {
7747                Some("DISPLAY_SURFACE_STEREO_CREATE_INFO_NV")
7748            }
7749            Self::DISPLAY_MODE_STEREO_PROPERTIES_NV => Some("DISPLAY_MODE_STEREO_PROPERTIES_NV"),
7750            Self::VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR => {
7751                Some("VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR")
7752            }
7753            Self::VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR => {
7754                Some("VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR")
7755            }
7756            Self::VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR => {
7757                Some("VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR")
7758            }
7759            Self::VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR => {
7760                Some("VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR")
7761            }
7762            Self::PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR => {
7763                Some("PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR")
7764            }
7765            Self::VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR => {
7766                Some("VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR")
7767            }
7768            Self::VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR => {
7769                Some("VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR")
7770            }
7771            Self::VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR => {
7772                Some("VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR")
7773            }
7774            Self::VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR => {
7775                Some("VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR")
7776            }
7777            Self::PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR => {
7778                Some("PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR")
7779            }
7780            Self::VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR => {
7781                Some("VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR")
7782            }
7783            Self::VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR => {
7784                Some("VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR")
7785            }
7786            Self::VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR => {
7787                Some("VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR")
7788            }
7789            Self::VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR => {
7790                Some("VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR")
7791            }
7792            Self::VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR => {
7793                Some("VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR")
7794            }
7795            Self::PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV => {
7796                Some("PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV")
7797            }
7798            Self::EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV => {
7799                Some("EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV")
7800            }
7801            Self::EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV => {
7802                Some("EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV")
7803            }
7804            Self::EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV => {
7805                Some("EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV")
7806            }
7807            Self::PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV => {
7808                Some("PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV")
7809            }
7810            Self::PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR => {
7811                Some("PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR")
7812            }
7813            Self::PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV => {
7814                Some("PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV")
7815            }
7816            Self::PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR => {
7817                Some("PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR")
7818            }
7819            Self::PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR => {
7820                Some("PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR")
7821            }
7822            Self::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR => {
7823                Some("PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR")
7824            }
7825            Self::PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR => {
7826                Some("PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR")
7827            }
7828            Self::PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR => {
7829                Some("PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR")
7830            }
7831            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV => {
7832                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV")
7833            }
7834            Self::PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT => {
7835                Some("PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT")
7836            }
7837            Self::PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT => {
7838                Some("PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT")
7839            }
7840            Self::PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV => {
7841                Some("PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV")
7842            }
7843            Self::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV => {
7844                Some("PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV")
7845            }
7846            Self::PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV => {
7847                Some("PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV")
7848            }
7849            Self::CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV => {
7850                Some("CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV")
7851            }
7852            Self::CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV => {
7853                Some("CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV")
7854            }
7855            Self::CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV => {
7856                Some("CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV")
7857            }
7858            Self::CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV => {
7859                Some("CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV")
7860            }
7861            Self::CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV => {
7862                Some("CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV")
7863            }
7864            Self::RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV => {
7865                Some("RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV")
7866            }
7867            Self::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV => {
7868                Some("PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV")
7869            }
7870            Self::PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV => {
7871                Some("PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV")
7872            }
7873            Self::WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV => {
7874                Some("WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV")
7875            }
7876            Self::PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV => {
7877                Some("PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV")
7878            }
7879            Self::BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV => {
7880                Some("BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV")
7881            }
7882            Self::PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV => {
7883                Some("PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV")
7884            }
7885            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT => {
7886                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT")
7887            }
7888            Self::PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT => {
7889                Some("PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT")
7890            }
7891            Self::GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT => {
7892                Some("GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT")
7893            }
7894            Self::INDIRECT_EXECUTION_SET_CREATE_INFO_EXT => {
7895                Some("INDIRECT_EXECUTION_SET_CREATE_INFO_EXT")
7896            }
7897            Self::GENERATED_COMMANDS_INFO_EXT => Some("GENERATED_COMMANDS_INFO_EXT"),
7898            Self::INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT => {
7899                Some("INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT")
7900            }
7901            Self::INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT => Some("INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT"),
7902            Self::WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT => {
7903                Some("WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT")
7904            }
7905            Self::WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT => {
7906                Some("WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT")
7907            }
7908            Self::INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT => {
7909                Some("INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT")
7910            }
7911            Self::INDIRECT_EXECUTION_SET_SHADER_INFO_EXT => {
7912                Some("INDIRECT_EXECUTION_SET_SHADER_INFO_EXT")
7913            }
7914            Self::INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT => {
7915                Some("INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT")
7916            }
7917            Self::GENERATED_COMMANDS_PIPELINE_INFO_EXT => {
7918                Some("GENERATED_COMMANDS_PIPELINE_INFO_EXT")
7919            }
7920            Self::GENERATED_COMMANDS_SHADER_INFO_EXT => Some("GENERATED_COMMANDS_SHADER_INFO_EXT"),
7921            Self::PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR => {
7922                Some("PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR")
7923            }
7924            Self::MEMORY_BARRIER_ACCESS_FLAGS_3_KHR => Some("MEMORY_BARRIER_ACCESS_FLAGS_3_KHR"),
7925            Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA => {
7926                Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA")
7927            }
7928            Self::PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA => {
7929                Some("PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA")
7930            }
7931            Self::IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA => {
7932                Some("IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA")
7933            }
7934            Self::PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR => {
7935                Some("PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR")
7936            }
7937            Self::PUSH_CONSTANT_BANK_INFO_NV => Some("PUSH_CONSTANT_BANK_INFO_NV"),
7938            Self::PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV => {
7939                Some("PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV")
7940            }
7941            Self::PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV => {
7942                Some("PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV")
7943            }
7944            Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT => {
7945                Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT")
7946            }
7947            Self::PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT => {
7948                Some("PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT")
7949            }
7950            Self::PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT => {
7951                Some("PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT")
7952            }
7953            Self::PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT => {
7954                Some("PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT")
7955            }
7956            Self::PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR => {
7957                Some("PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR")
7958            }
7959            Self::PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR => {
7960                Some("PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR")
7961            }
7962            Self::QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR => {
7963                Some("QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR")
7964            }
7965            Self::PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR => {
7966                Some("PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR")
7967            }
7968            Self::VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR => {
7969                Some("VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR")
7970            }
7971            Self::VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR => {
7972                Some("VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR")
7973            }
7974            Self::VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR => {
7975                Some("VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR")
7976            }
7977            Self::SURFACE_CREATE_INFO_OHOS => Some("SURFACE_CREATE_INFO_OHOS"),
7978            Self::PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI => {
7979                Some("PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI")
7980            }
7981            Self::HDR_VIVID_DYNAMIC_METADATA_HUAWEI => Some("HDR_VIVID_DYNAMIC_METADATA_HUAWEI"),
7982            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV => {
7983                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV")
7984            }
7985            Self::COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV => {
7986                Some("COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV")
7987            }
7988            Self::PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV => {
7989                Some("PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV")
7990            }
7991            Self::PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM => {
7992                Some("PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM")
7993            }
7994            Self::IMPORT_MEMORY_METAL_HANDLE_INFO_EXT => {
7995                Some("IMPORT_MEMORY_METAL_HANDLE_INFO_EXT")
7996            }
7997            Self::MEMORY_METAL_HANDLE_PROPERTIES_EXT => Some("MEMORY_METAL_HANDLE_PROPERTIES_EXT"),
7998            Self::MEMORY_GET_METAL_HANDLE_INFO_EXT => Some("MEMORY_GET_METAL_HANDLE_INFO_EXT"),
7999            Self::PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR => {
8000                Some("PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR")
8001            }
8002            Self::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM => {
8003                Some("PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM")
8004            }
8005            Self::PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM => {
8006                Some("PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM")
8007            }
8008            Self::PERFORMANCE_COUNTER_ARM => Some("PERFORMANCE_COUNTER_ARM"),
8009            Self::PERFORMANCE_COUNTER_DESCRIPTION_ARM => {
8010                Some("PERFORMANCE_COUNTER_DESCRIPTION_ARM")
8011            }
8012            Self::RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM => {
8013                Some("RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM")
8014            }
8015            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT => {
8016                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT")
8017            }
8018            Self::PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM => {
8019                Some("PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM")
8020            }
8021            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE => {
8022                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE")
8023            }
8024            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE => {
8025                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE")
8026            }
8027            Self::PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE => {
8028                Some("PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE")
8029            }
8030            Self::PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR => {
8031                Some("PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR")
8032            }
8033            Self::PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR => {
8034                Some("PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR")
8035            }
8036            Self::SET_PRESENT_CONFIG_NV => Some("SET_PRESENT_CONFIG_NV"),
8037            Self::PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV => {
8038                Some("PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV")
8039            }
8040            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT => {
8041                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT")
8042            }
8043            Self::PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT => {
8044                Some("PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT")
8045            }
8046            Self::RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT => {
8047                Some("RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT")
8048            }
8049            Self::PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT => {
8050                Some("PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT")
8051            }
8052            Self::PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR => {
8053                Some("PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR")
8054            }
8055            Self::PHYSICAL_DEVICE_SHADER_64_INDEXING_FEATURES_EXT => {
8056                Some("PHYSICAL_DEVICE_SHADER_64_INDEXING_FEATURES_EXT")
8057            }
8058            Self::PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT => {
8059                Some("PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT")
8060            }
8061            Self::BEGIN_CUSTOM_RESOLVE_INFO_EXT => Some("BEGIN_CUSTOM_RESOLVE_INFO_EXT"),
8062            Self::CUSTOM_RESOLVE_CREATE_INFO_EXT => Some("CUSTOM_RESOLVE_CREATE_INFO_EXT"),
8063            Self::PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM => {
8064                Some("PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM")
8065            }
8066            Self::DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM => {
8067                Some("DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM")
8068            }
8069            Self::PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR => {
8070                Some("PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR")
8071            }
8072            Self::PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR => {
8073                Some("PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR")
8074            }
8075            Self::RENDERING_ATTACHMENT_FLAGS_INFO_KHR => {
8076                Some("RENDERING_ATTACHMENT_FLAGS_INFO_KHR")
8077            }
8078            Self::RENDERING_END_INFO_KHR => Some("RENDERING_END_INFO_KHR"),
8079            Self::RESOLVE_IMAGE_MODE_INFO_KHR => Some("RESOLVE_IMAGE_MODE_INFO_KHR"),
8080            Self::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT => {
8081                Some("PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT")
8082            }
8083            Self::PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT => {
8084                Some("PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT")
8085            }
8086            Self::PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC => {
8087                Some("PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC")
8088            }
8089            Self::PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT => {
8090                Some("PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT")
8091            }
8092            Self::COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV => {
8093                Some("COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV")
8094            }
8095            Self::PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV => {
8096                Some("PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV")
8097            }
8098            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT => {
8099                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT")
8100            }
8101            Self::BIND_BUFFER_MEMORY_INFO => Some("BIND_BUFFER_MEMORY_INFO"),
8102            Self::BIND_IMAGE_MEMORY_INFO => Some("BIND_IMAGE_MEMORY_INFO"),
8103            Self::MEMORY_DEDICATED_REQUIREMENTS => Some("MEMORY_DEDICATED_REQUIREMENTS"),
8104            Self::MEMORY_DEDICATED_ALLOCATE_INFO => Some("MEMORY_DEDICATED_ALLOCATE_INFO"),
8105            Self::MEMORY_ALLOCATE_FLAGS_INFO => Some("MEMORY_ALLOCATE_FLAGS_INFO"),
8106            Self::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO => {
8107                Some("DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO")
8108            }
8109            Self::DEVICE_GROUP_SUBMIT_INFO => Some("DEVICE_GROUP_SUBMIT_INFO"),
8110            Self::DEVICE_GROUP_BIND_SPARSE_INFO => Some("DEVICE_GROUP_BIND_SPARSE_INFO"),
8111            Self::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO => {
8112                Some("BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO")
8113            }
8114            Self::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO => {
8115                Some("BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO")
8116            }
8117            Self::PHYSICAL_DEVICE_GROUP_PROPERTIES => Some("PHYSICAL_DEVICE_GROUP_PROPERTIES"),
8118            Self::DEVICE_GROUP_DEVICE_CREATE_INFO => Some("DEVICE_GROUP_DEVICE_CREATE_INFO"),
8119            Self::BUFFER_MEMORY_REQUIREMENTS_INFO_2 => Some("BUFFER_MEMORY_REQUIREMENTS_INFO_2"),
8120            Self::IMAGE_MEMORY_REQUIREMENTS_INFO_2 => Some("IMAGE_MEMORY_REQUIREMENTS_INFO_2"),
8121            Self::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 => {
8122                Some("IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2")
8123            }
8124            Self::MEMORY_REQUIREMENTS_2 => Some("MEMORY_REQUIREMENTS_2"),
8125            Self::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 => Some("SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"),
8126            Self::PHYSICAL_DEVICE_FEATURES_2 => Some("PHYSICAL_DEVICE_FEATURES_2"),
8127            Self::PHYSICAL_DEVICE_PROPERTIES_2 => Some("PHYSICAL_DEVICE_PROPERTIES_2"),
8128            Self::FORMAT_PROPERTIES_2 => Some("FORMAT_PROPERTIES_2"),
8129            Self::IMAGE_FORMAT_PROPERTIES_2 => Some("IMAGE_FORMAT_PROPERTIES_2"),
8130            Self::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 => {
8131                Some("PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2")
8132            }
8133            Self::QUEUE_FAMILY_PROPERTIES_2 => Some("QUEUE_FAMILY_PROPERTIES_2"),
8134            Self::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 => {
8135                Some("PHYSICAL_DEVICE_MEMORY_PROPERTIES_2")
8136            }
8137            Self::SPARSE_IMAGE_FORMAT_PROPERTIES_2 => Some("SPARSE_IMAGE_FORMAT_PROPERTIES_2"),
8138            Self::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 => {
8139                Some("PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2")
8140            }
8141            Self::IMAGE_VIEW_USAGE_CREATE_INFO => Some("IMAGE_VIEW_USAGE_CREATE_INFO"),
8142            Self::PROTECTED_SUBMIT_INFO => Some("PROTECTED_SUBMIT_INFO"),
8143            Self::PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES => {
8144                Some("PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES")
8145            }
8146            Self::PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES => {
8147                Some("PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES")
8148            }
8149            Self::DEVICE_QUEUE_INFO_2 => Some("DEVICE_QUEUE_INFO_2"),
8150            Self::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO => {
8151                Some("PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO")
8152            }
8153            Self::EXTERNAL_IMAGE_FORMAT_PROPERTIES => Some("EXTERNAL_IMAGE_FORMAT_PROPERTIES"),
8154            Self::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO => {
8155                Some("PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO")
8156            }
8157            Self::EXTERNAL_BUFFER_PROPERTIES => Some("EXTERNAL_BUFFER_PROPERTIES"),
8158            Self::PHYSICAL_DEVICE_ID_PROPERTIES => Some("PHYSICAL_DEVICE_ID_PROPERTIES"),
8159            Self::EXTERNAL_MEMORY_BUFFER_CREATE_INFO => Some("EXTERNAL_MEMORY_BUFFER_CREATE_INFO"),
8160            Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO => Some("EXTERNAL_MEMORY_IMAGE_CREATE_INFO"),
8161            Self::EXPORT_MEMORY_ALLOCATE_INFO => Some("EXPORT_MEMORY_ALLOCATE_INFO"),
8162            Self::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO => {
8163                Some("PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO")
8164            }
8165            Self::EXTERNAL_FENCE_PROPERTIES => Some("EXTERNAL_FENCE_PROPERTIES"),
8166            Self::EXPORT_FENCE_CREATE_INFO => Some("EXPORT_FENCE_CREATE_INFO"),
8167            Self::EXPORT_SEMAPHORE_CREATE_INFO => Some("EXPORT_SEMAPHORE_CREATE_INFO"),
8168            Self::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO => {
8169                Some("PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO")
8170            }
8171            Self::EXTERNAL_SEMAPHORE_PROPERTIES => Some("EXTERNAL_SEMAPHORE_PROPERTIES"),
8172            Self::PHYSICAL_DEVICE_SUBGROUP_PROPERTIES => {
8173                Some("PHYSICAL_DEVICE_SUBGROUP_PROPERTIES")
8174            }
8175            Self::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES => {
8176                Some("PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES")
8177            }
8178            Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES => {
8179                Some("PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES")
8180            }
8181            Self::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO => {
8182                Some("DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO")
8183            }
8184            Self::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES => {
8185                Some("PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES")
8186            }
8187            Self::DESCRIPTOR_SET_LAYOUT_SUPPORT => Some("DESCRIPTOR_SET_LAYOUT_SUPPORT"),
8188            Self::SAMPLER_YCBCR_CONVERSION_CREATE_INFO => {
8189                Some("SAMPLER_YCBCR_CONVERSION_CREATE_INFO")
8190            }
8191            Self::SAMPLER_YCBCR_CONVERSION_INFO => Some("SAMPLER_YCBCR_CONVERSION_INFO"),
8192            Self::BIND_IMAGE_PLANE_MEMORY_INFO => Some("BIND_IMAGE_PLANE_MEMORY_INFO"),
8193            Self::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO => {
8194                Some("IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO")
8195            }
8196            Self::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES => {
8197                Some("PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES")
8198            }
8199            Self::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES => {
8200                Some("SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES")
8201            }
8202            Self::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO => {
8203                Some("DEVICE_GROUP_RENDER_PASS_BEGIN_INFO")
8204            }
8205            Self::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES => {
8206                Some("PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES")
8207            }
8208            Self::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO => {
8209                Some("RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO")
8210            }
8211            Self::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO => {
8212                Some("PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO")
8213            }
8214            Self::RENDER_PASS_MULTIVIEW_CREATE_INFO => Some("RENDER_PASS_MULTIVIEW_CREATE_INFO"),
8215            Self::PHYSICAL_DEVICE_MULTIVIEW_FEATURES => Some("PHYSICAL_DEVICE_MULTIVIEW_FEATURES"),
8216            Self::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES => {
8217                Some("PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES")
8218            }
8219            Self::PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES => {
8220                Some("PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES")
8221            }
8222            Self::PHYSICAL_DEVICE_VULKAN_1_1_FEATURES => {
8223                Some("PHYSICAL_DEVICE_VULKAN_1_1_FEATURES")
8224            }
8225            Self::PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES => {
8226                Some("PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES")
8227            }
8228            Self::PHYSICAL_DEVICE_VULKAN_1_2_FEATURES => {
8229                Some("PHYSICAL_DEVICE_VULKAN_1_2_FEATURES")
8230            }
8231            Self::PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES => {
8232                Some("PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES")
8233            }
8234            Self::IMAGE_FORMAT_LIST_CREATE_INFO => Some("IMAGE_FORMAT_LIST_CREATE_INFO"),
8235            Self::PHYSICAL_DEVICE_DRIVER_PROPERTIES => Some("PHYSICAL_DEVICE_DRIVER_PROPERTIES"),
8236            Self::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES => {
8237                Some("PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES")
8238            }
8239            Self::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES => {
8240                Some("PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES")
8241            }
8242            Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES => {
8243                Some("PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES")
8244            }
8245            Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES => {
8246                Some("PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES")
8247            }
8248            Self::SEMAPHORE_TYPE_CREATE_INFO => Some("SEMAPHORE_TYPE_CREATE_INFO"),
8249            Self::TIMELINE_SEMAPHORE_SUBMIT_INFO => Some("TIMELINE_SEMAPHORE_SUBMIT_INFO"),
8250            Self::SEMAPHORE_WAIT_INFO => Some("SEMAPHORE_WAIT_INFO"),
8251            Self::SEMAPHORE_SIGNAL_INFO => Some("SEMAPHORE_SIGNAL_INFO"),
8252            Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES => {
8253                Some("PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES")
8254            }
8255            Self::BUFFER_DEVICE_ADDRESS_INFO => Some("BUFFER_DEVICE_ADDRESS_INFO"),
8256            Self::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO => {
8257                Some("BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO")
8258            }
8259            Self::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO => {
8260                Some("MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO")
8261            }
8262            Self::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO => {
8263                Some("DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO")
8264            }
8265            Self::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES => {
8266                Some("PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES")
8267            }
8268            Self::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES => {
8269                Some("PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES")
8270            }
8271            Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES => {
8272                Some("PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES")
8273            }
8274            Self::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES => {
8275                Some("PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES")
8276            }
8277            Self::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO => {
8278                Some("DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO")
8279            }
8280            Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES => {
8281                Some("PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES")
8282            }
8283            Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES => {
8284                Some("PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES")
8285            }
8286            Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO => {
8287                Some("DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO")
8288            }
8289            Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT => {
8290                Some("DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT")
8291            }
8292            Self::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES => {
8293                Some("PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES")
8294            }
8295            Self::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES => {
8296                Some("PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES")
8297            }
8298            Self::SAMPLER_REDUCTION_MODE_CREATE_INFO => Some("SAMPLER_REDUCTION_MODE_CREATE_INFO"),
8299            Self::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES => {
8300                Some("PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES")
8301            }
8302            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES => {
8303                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES")
8304            }
8305            Self::ATTACHMENT_DESCRIPTION_2 => Some("ATTACHMENT_DESCRIPTION_2"),
8306            Self::ATTACHMENT_REFERENCE_2 => Some("ATTACHMENT_REFERENCE_2"),
8307            Self::SUBPASS_DESCRIPTION_2 => Some("SUBPASS_DESCRIPTION_2"),
8308            Self::SUBPASS_DEPENDENCY_2 => Some("SUBPASS_DEPENDENCY_2"),
8309            Self::RENDER_PASS_CREATE_INFO_2 => Some("RENDER_PASS_CREATE_INFO_2"),
8310            Self::SUBPASS_BEGIN_INFO => Some("SUBPASS_BEGIN_INFO"),
8311            Self::SUBPASS_END_INFO => Some("SUBPASS_END_INFO"),
8312            Self::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES => {
8313                Some("PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES")
8314            }
8315            Self::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE => {
8316                Some("SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE")
8317            }
8318            Self::IMAGE_STENCIL_USAGE_CREATE_INFO => Some("IMAGE_STENCIL_USAGE_CREATE_INFO"),
8319            Self::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES => {
8320                Some("PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES")
8321            }
8322            Self::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO => {
8323                Some("FRAMEBUFFER_ATTACHMENTS_CREATE_INFO")
8324            }
8325            Self::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO => Some("FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"),
8326            Self::RENDER_PASS_ATTACHMENT_BEGIN_INFO => Some("RENDER_PASS_ATTACHMENT_BEGIN_INFO"),
8327            Self::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES => {
8328                Some("PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES")
8329            }
8330            Self::ATTACHMENT_REFERENCE_STENCIL_LAYOUT => {
8331                Some("ATTACHMENT_REFERENCE_STENCIL_LAYOUT")
8332            }
8333            Self::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT => {
8334                Some("ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT")
8335            }
8336            Self::PHYSICAL_DEVICE_VULKAN_1_3_FEATURES => {
8337                Some("PHYSICAL_DEVICE_VULKAN_1_3_FEATURES")
8338            }
8339            Self::PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES => {
8340                Some("PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES")
8341            }
8342            Self::PHYSICAL_DEVICE_TOOL_PROPERTIES => Some("PHYSICAL_DEVICE_TOOL_PROPERTIES"),
8343            Self::PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES => {
8344                Some("PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES")
8345            }
8346            Self::DEVICE_PRIVATE_DATA_CREATE_INFO => Some("DEVICE_PRIVATE_DATA_CREATE_INFO"),
8347            Self::PRIVATE_DATA_SLOT_CREATE_INFO => Some("PRIVATE_DATA_SLOT_CREATE_INFO"),
8348            Self::MEMORY_BARRIER_2 => Some("MEMORY_BARRIER_2"),
8349            Self::BUFFER_MEMORY_BARRIER_2 => Some("BUFFER_MEMORY_BARRIER_2"),
8350            Self::IMAGE_MEMORY_BARRIER_2 => Some("IMAGE_MEMORY_BARRIER_2"),
8351            Self::DEPENDENCY_INFO => Some("DEPENDENCY_INFO"),
8352            Self::SUBMIT_INFO_2 => Some("SUBMIT_INFO_2"),
8353            Self::SEMAPHORE_SUBMIT_INFO => Some("SEMAPHORE_SUBMIT_INFO"),
8354            Self::COMMAND_BUFFER_SUBMIT_INFO => Some("COMMAND_BUFFER_SUBMIT_INFO"),
8355            Self::PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES => {
8356                Some("PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES")
8357            }
8358            Self::COPY_BUFFER_INFO_2 => Some("COPY_BUFFER_INFO_2"),
8359            Self::COPY_IMAGE_INFO_2 => Some("COPY_IMAGE_INFO_2"),
8360            Self::COPY_BUFFER_TO_IMAGE_INFO_2 => Some("COPY_BUFFER_TO_IMAGE_INFO_2"),
8361            Self::COPY_IMAGE_TO_BUFFER_INFO_2 => Some("COPY_IMAGE_TO_BUFFER_INFO_2"),
8362            Self::BUFFER_COPY_2 => Some("BUFFER_COPY_2"),
8363            Self::IMAGE_COPY_2 => Some("IMAGE_COPY_2"),
8364            Self::BUFFER_IMAGE_COPY_2 => Some("BUFFER_IMAGE_COPY_2"),
8365            Self::PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES => {
8366                Some("PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES")
8367            }
8368            Self::FORMAT_PROPERTIES_3 => Some("FORMAT_PROPERTIES_3"),
8369            Self::PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES => {
8370                Some("PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES")
8371            }
8372            Self::PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES => {
8373                Some("PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES")
8374            }
8375            Self::DEVICE_BUFFER_MEMORY_REQUIREMENTS => Some("DEVICE_BUFFER_MEMORY_REQUIREMENTS"),
8376            Self::DEVICE_IMAGE_MEMORY_REQUIREMENTS => Some("DEVICE_IMAGE_MEMORY_REQUIREMENTS"),
8377            Self::PIPELINE_CREATION_FEEDBACK_CREATE_INFO => {
8378                Some("PIPELINE_CREATION_FEEDBACK_CREATE_INFO")
8379            }
8380            Self::PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES => {
8381                Some("PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES")
8382            }
8383            Self::PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES => {
8384                Some("PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES")
8385            }
8386            Self::PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES => {
8387                Some("PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES")
8388            }
8389            Self::PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES => {
8390                Some("PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES")
8391            }
8392            Self::PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES => {
8393                Some("PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES")
8394            }
8395            Self::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES => {
8396                Some("PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES")
8397            }
8398            Self::PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO => {
8399                Some("PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO")
8400            }
8401            Self::PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES => {
8402                Some("PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES")
8403            }
8404            Self::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES => {
8405                Some("PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES")
8406            }
8407            Self::PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES => {
8408                Some("PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES")
8409            }
8410            Self::WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK => {
8411                Some("WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK")
8412            }
8413            Self::DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO => {
8414                Some("DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO")
8415            }
8416            Self::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES => {
8417                Some("PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES")
8418            }
8419            Self::PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES => {
8420                Some("PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES")
8421            }
8422            Self::PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES => {
8423                Some("PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES")
8424            }
8425            Self::BLIT_IMAGE_INFO_2 => Some("BLIT_IMAGE_INFO_2"),
8426            Self::RESOLVE_IMAGE_INFO_2 => Some("RESOLVE_IMAGE_INFO_2"),
8427            Self::IMAGE_BLIT_2 => Some("IMAGE_BLIT_2"),
8428            Self::IMAGE_RESOLVE_2 => Some("IMAGE_RESOLVE_2"),
8429            Self::RENDERING_INFO => Some("RENDERING_INFO"),
8430            Self::RENDERING_ATTACHMENT_INFO => Some("RENDERING_ATTACHMENT_INFO"),
8431            Self::PIPELINE_RENDERING_CREATE_INFO => Some("PIPELINE_RENDERING_CREATE_INFO"),
8432            Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES => {
8433                Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES")
8434            }
8435            Self::COMMAND_BUFFER_INHERITANCE_RENDERING_INFO => {
8436                Some("COMMAND_BUFFER_INHERITANCE_RENDERING_INFO")
8437            }
8438            Self::PHYSICAL_DEVICE_VULKAN_1_4_FEATURES => {
8439                Some("PHYSICAL_DEVICE_VULKAN_1_4_FEATURES")
8440            }
8441            Self::PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES => {
8442                Some("PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES")
8443            }
8444            Self::DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO => {
8445                Some("DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO")
8446            }
8447            Self::PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES => {
8448                Some("PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES")
8449            }
8450            Self::QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES => {
8451                Some("QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES")
8452            }
8453            Self::PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES => {
8454                Some("PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES")
8455            }
8456            Self::MEMORY_MAP_INFO => Some("MEMORY_MAP_INFO"),
8457            Self::MEMORY_UNMAP_INFO => Some("MEMORY_UNMAP_INFO"),
8458            Self::PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES => {
8459                Some("PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES")
8460            }
8461            Self::PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES => {
8462                Some("PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES")
8463            }
8464            Self::DEVICE_IMAGE_SUBRESOURCE_INFO => Some("DEVICE_IMAGE_SUBRESOURCE_INFO"),
8465            Self::SUBRESOURCE_LAYOUT_2 => Some("SUBRESOURCE_LAYOUT_2"),
8466            Self::IMAGE_SUBRESOURCE_2 => Some("IMAGE_SUBRESOURCE_2"),
8467            Self::BUFFER_USAGE_FLAGS_2_CREATE_INFO => Some("BUFFER_USAGE_FLAGS_2_CREATE_INFO"),
8468            Self::PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES => {
8469                Some("PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES")
8470            }
8471            Self::PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES => {
8472                Some("PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES")
8473            }
8474            Self::BIND_MEMORY_STATUS => Some("BIND_MEMORY_STATUS"),
8475            Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES => {
8476                Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES")
8477            }
8478            Self::PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES => {
8479                Some("PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES")
8480            }
8481            Self::MEMORY_TO_IMAGE_COPY => Some("MEMORY_TO_IMAGE_COPY"),
8482            Self::IMAGE_TO_MEMORY_COPY => Some("IMAGE_TO_MEMORY_COPY"),
8483            Self::COPY_IMAGE_TO_MEMORY_INFO => Some("COPY_IMAGE_TO_MEMORY_INFO"),
8484            Self::COPY_MEMORY_TO_IMAGE_INFO => Some("COPY_MEMORY_TO_IMAGE_INFO"),
8485            Self::HOST_IMAGE_LAYOUT_TRANSITION_INFO => Some("HOST_IMAGE_LAYOUT_TRANSITION_INFO"),
8486            Self::COPY_IMAGE_TO_IMAGE_INFO => Some("COPY_IMAGE_TO_IMAGE_INFO"),
8487            Self::SUBRESOURCE_HOST_MEMCPY_SIZE => Some("SUBRESOURCE_HOST_MEMCPY_SIZE"),
8488            Self::HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY => {
8489                Some("HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY")
8490            }
8491            Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES => {
8492                Some("PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES")
8493            }
8494            Self::PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES => {
8495                Some("PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES")
8496            }
8497            Self::PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES => {
8498                Some("PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES")
8499            }
8500            Self::PIPELINE_CREATE_FLAGS_2_CREATE_INFO => {
8501                Some("PIPELINE_CREATE_FLAGS_2_CREATE_INFO")
8502            }
8503            Self::PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES => {
8504                Some("PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES")
8505            }
8506            Self::BIND_DESCRIPTOR_SETS_INFO => Some("BIND_DESCRIPTOR_SETS_INFO"),
8507            Self::PUSH_CONSTANTS_INFO => Some("PUSH_CONSTANTS_INFO"),
8508            Self::PUSH_DESCRIPTOR_SET_INFO => Some("PUSH_DESCRIPTOR_SET_INFO"),
8509            Self::PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO => {
8510                Some("PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO")
8511            }
8512            Self::PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES => {
8513                Some("PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES")
8514            }
8515            Self::PIPELINE_ROBUSTNESS_CREATE_INFO => Some("PIPELINE_ROBUSTNESS_CREATE_INFO"),
8516            Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES => {
8517                Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES")
8518            }
8519            Self::PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES => {
8520                Some("PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES")
8521            }
8522            Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES => {
8523                Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES")
8524            }
8525            Self::PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO => {
8526                Some("PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO")
8527            }
8528            Self::PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES => {
8529                Some("PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES")
8530            }
8531            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES => {
8532                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES")
8533            }
8534            Self::PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO => {
8535                Some("PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO")
8536            }
8537            Self::PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES => {
8538                Some("PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES")
8539            }
8540            Self::RENDERING_AREA_INFO => Some("RENDERING_AREA_INFO"),
8541            Self::PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES => {
8542                Some("PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES")
8543            }
8544            Self::RENDERING_ATTACHMENT_LOCATION_INFO => Some("RENDERING_ATTACHMENT_LOCATION_INFO"),
8545            Self::RENDERING_INPUT_ATTACHMENT_INDEX_INFO => {
8546                Some("RENDERING_INPUT_ATTACHMENT_INDEX_INFO")
8547            }
8548            _ => None,
8549        };
8550        if let Some(x) = name {
8551            f.write_str(x)
8552        } else {
8553            self.0.fmt(f)
8554        }
8555    }
8556}
8557impl fmt::Debug for SubgroupFeatureFlags {
8558    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8559        const KNOWN: &[(Flags, &str)] = &[
8560            (SubgroupFeatureFlags::BASIC.0, "BASIC"),
8561            (SubgroupFeatureFlags::VOTE.0, "VOTE"),
8562            (SubgroupFeatureFlags::ARITHMETIC.0, "ARITHMETIC"),
8563            (SubgroupFeatureFlags::BALLOT.0, "BALLOT"),
8564            (SubgroupFeatureFlags::SHUFFLE.0, "SHUFFLE"),
8565            (SubgroupFeatureFlags::SHUFFLE_RELATIVE.0, "SHUFFLE_RELATIVE"),
8566            (SubgroupFeatureFlags::CLUSTERED.0, "CLUSTERED"),
8567            (SubgroupFeatureFlags::QUAD.0, "QUAD"),
8568            (SubgroupFeatureFlags::PARTITIONED_EXT.0, "PARTITIONED_EXT"),
8569            (SubgroupFeatureFlags::ROTATE.0, "ROTATE"),
8570            (SubgroupFeatureFlags::ROTATE_CLUSTERED.0, "ROTATE_CLUSTERED"),
8571        ];
8572        debug_flags(f, KNOWN, self.0)
8573    }
8574}
8575impl fmt::Debug for SubmitFlags {
8576    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8577        const KNOWN: &[(Flags, &str)] = &[(SubmitFlags::PROTECTED.0, "PROTECTED")];
8578        debug_flags(f, KNOWN, self.0)
8579    }
8580}
8581impl fmt::Debug for SubpassContents {
8582    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8583        let name = match *self {
8584            Self::INLINE => Some("INLINE"),
8585            Self::SECONDARY_COMMAND_BUFFERS => Some("SECONDARY_COMMAND_BUFFERS"),
8586            Self::INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR => {
8587                Some("INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR")
8588            }
8589            _ => None,
8590        };
8591        if let Some(x) = name {
8592            f.write_str(x)
8593        } else {
8594            self.0.fmt(f)
8595        }
8596    }
8597}
8598impl fmt::Debug for SubpassDescriptionFlags {
8599    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8600        const KNOWN: &[(Flags, &str)] = &[
8601            (
8602                SubpassDescriptionFlags::PER_VIEW_ATTRIBUTES_NVX.0,
8603                "PER_VIEW_ATTRIBUTES_NVX",
8604            ),
8605            (
8606                SubpassDescriptionFlags::PER_VIEW_POSITION_X_ONLY_NVX.0,
8607                "PER_VIEW_POSITION_X_ONLY_NVX",
8608            ),
8609            (
8610                SubpassDescriptionFlags::TILE_SHADING_APRON_QCOM.0,
8611                "TILE_SHADING_APRON_QCOM",
8612            ),
8613            (
8614                SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT.0,
8615                "RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_EXT",
8616            ),
8617            (
8618                SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT.0,
8619                "RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_EXT",
8620            ),
8621            (
8622                SubpassDescriptionFlags::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT.0,
8623                "RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_EXT",
8624            ),
8625            (
8626                SubpassDescriptionFlags::ENABLE_LEGACY_DITHERING_EXT.0,
8627                "ENABLE_LEGACY_DITHERING_EXT",
8628            ),
8629            (
8630                SubpassDescriptionFlags::FRAGMENT_REGION_EXT.0,
8631                "FRAGMENT_REGION_EXT",
8632            ),
8633            (
8634                SubpassDescriptionFlags::CUSTOM_RESOLVE_EXT.0,
8635                "CUSTOM_RESOLVE_EXT",
8636            ),
8637        ];
8638        debug_flags(f, KNOWN, self.0)
8639    }
8640}
8641impl fmt::Debug for SubpassMergeStatusEXT {
8642    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8643        let name = match *self {
8644            Self::MERGED => Some("MERGED"),
8645            Self::DISALLOWED => Some("DISALLOWED"),
8646            Self::NOT_MERGED_SIDE_EFFECTS => Some("NOT_MERGED_SIDE_EFFECTS"),
8647            Self::NOT_MERGED_SAMPLES_MISMATCH => Some("NOT_MERGED_SAMPLES_MISMATCH"),
8648            Self::NOT_MERGED_VIEWS_MISMATCH => Some("NOT_MERGED_VIEWS_MISMATCH"),
8649            Self::NOT_MERGED_ALIASING => Some("NOT_MERGED_ALIASING"),
8650            Self::NOT_MERGED_DEPENDENCIES => Some("NOT_MERGED_DEPENDENCIES"),
8651            Self::NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT => {
8652                Some("NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT")
8653            }
8654            Self::NOT_MERGED_TOO_MANY_ATTACHMENTS => Some("NOT_MERGED_TOO_MANY_ATTACHMENTS"),
8655            Self::NOT_MERGED_INSUFFICIENT_STORAGE => Some("NOT_MERGED_INSUFFICIENT_STORAGE"),
8656            Self::NOT_MERGED_DEPTH_STENCIL_COUNT => Some("NOT_MERGED_DEPTH_STENCIL_COUNT"),
8657            Self::NOT_MERGED_RESOLVE_ATTACHMENT_REUSE => {
8658                Some("NOT_MERGED_RESOLVE_ATTACHMENT_REUSE")
8659            }
8660            Self::NOT_MERGED_SINGLE_SUBPASS => Some("NOT_MERGED_SINGLE_SUBPASS"),
8661            Self::NOT_MERGED_UNSPECIFIED => Some("NOT_MERGED_UNSPECIFIED"),
8662            _ => None,
8663        };
8664        if let Some(x) = name {
8665            f.write_str(x)
8666        } else {
8667            self.0.fmt(f)
8668        }
8669    }
8670}
8671impl fmt::Debug for SurfaceCounterFlagsEXT {
8672    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8673        const KNOWN: &[(Flags, &str)] = &[(SurfaceCounterFlagsEXT::VBLANK.0, "VBLANK")];
8674        debug_flags(f, KNOWN, self.0)
8675    }
8676}
8677impl fmt::Debug for SurfaceCreateFlagsOHOS {
8678    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8679        const KNOWN: &[(Flags, &str)] = &[];
8680        debug_flags(f, KNOWN, self.0)
8681    }
8682}
8683impl fmt::Debug for SurfaceTransformFlagsKHR {
8684    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8685        const KNOWN: &[(Flags, &str)] = &[
8686            (SurfaceTransformFlagsKHR::IDENTITY.0, "IDENTITY"),
8687            (SurfaceTransformFlagsKHR::ROTATE_90.0, "ROTATE_90"),
8688            (SurfaceTransformFlagsKHR::ROTATE_180.0, "ROTATE_180"),
8689            (SurfaceTransformFlagsKHR::ROTATE_270.0, "ROTATE_270"),
8690            (
8691                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR.0,
8692                "HORIZONTAL_MIRROR",
8693            ),
8694            (
8695                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR_ROTATE_90.0,
8696                "HORIZONTAL_MIRROR_ROTATE_90",
8697            ),
8698            (
8699                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR_ROTATE_180.0,
8700                "HORIZONTAL_MIRROR_ROTATE_180",
8701            ),
8702            (
8703                SurfaceTransformFlagsKHR::HORIZONTAL_MIRROR_ROTATE_270.0,
8704                "HORIZONTAL_MIRROR_ROTATE_270",
8705            ),
8706            (SurfaceTransformFlagsKHR::INHERIT.0, "INHERIT"),
8707        ];
8708        debug_flags(f, KNOWN, self.0)
8709    }
8710}
8711impl fmt::Debug for SwapchainCreateFlagsKHR {
8712    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8713        const KNOWN: &[(Flags, &str)] = &[
8714            (
8715                SwapchainCreateFlagsKHR::SPLIT_INSTANCE_BIND_REGIONS.0,
8716                "SPLIT_INSTANCE_BIND_REGIONS",
8717            ),
8718            (SwapchainCreateFlagsKHR::PROTECTED.0, "PROTECTED"),
8719            (SwapchainCreateFlagsKHR::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"),
8720            (
8721                SwapchainCreateFlagsKHR::PRESENT_TIMING_EXT.0,
8722                "PRESENT_TIMING_EXT",
8723            ),
8724            (SwapchainCreateFlagsKHR::PRESENT_ID_2.0, "PRESENT_ID_2"),
8725            (SwapchainCreateFlagsKHR::PRESENT_WAIT_2.0, "PRESENT_WAIT_2"),
8726            (
8727                SwapchainCreateFlagsKHR::DEFERRED_MEMORY_ALLOCATION.0,
8728                "DEFERRED_MEMORY_ALLOCATION",
8729            ),
8730        ];
8731        debug_flags(f, KNOWN, self.0)
8732    }
8733}
8734impl fmt::Debug for SwapchainImageUsageFlagsANDROID {
8735    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8736        const KNOWN: &[(Flags, &str)] = &[(SwapchainImageUsageFlagsANDROID::SHARED.0, "SHARED")];
8737        debug_flags(f, KNOWN, self.0)
8738    }
8739}
8740impl fmt::Debug for SystemAllocationScope {
8741    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8742        let name = match *self {
8743            Self::COMMAND => Some("COMMAND"),
8744            Self::OBJECT => Some("OBJECT"),
8745            Self::CACHE => Some("CACHE"),
8746            Self::DEVICE => Some("DEVICE"),
8747            Self::INSTANCE => Some("INSTANCE"),
8748            _ => None,
8749        };
8750        if let Some(x) = name {
8751            f.write_str(x)
8752        } else {
8753            self.0.fmt(f)
8754        }
8755    }
8756}
8757impl fmt::Debug for TensorCreateFlagsARM {
8758    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8759        const KNOWN: &[(Flags64, &str)] = &[
8760            (TensorCreateFlagsARM::MUTABLE_FORMAT.0, "MUTABLE_FORMAT"),
8761            (TensorCreateFlagsARM::PROTECTED.0, "PROTECTED"),
8762            (
8763                TensorCreateFlagsARM::DESCRIPTOR_HEAP_CAPTURE_REPLAY.0,
8764                "DESCRIPTOR_HEAP_CAPTURE_REPLAY",
8765            ),
8766            (
8767                TensorCreateFlagsARM::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0,
8768                "DESCRIPTOR_BUFFER_CAPTURE_REPLAY",
8769            ),
8770        ];
8771        debug_flags(f, KNOWN, self.0)
8772    }
8773}
8774impl fmt::Debug for TensorTilingARM {
8775    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8776        let name = match *self {
8777            Self::OPTIMAL => Some("OPTIMAL"),
8778            Self::LINEAR => Some("LINEAR"),
8779            _ => None,
8780        };
8781        if let Some(x) = name {
8782            f.write_str(x)
8783        } else {
8784            self.0.fmt(f)
8785        }
8786    }
8787}
8788impl fmt::Debug for TensorUsageFlagsARM {
8789    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8790        const KNOWN: &[(Flags64, &str)] = &[
8791            (TensorUsageFlagsARM::SHADER.0, "SHADER"),
8792            (TensorUsageFlagsARM::TRANSFER_SRC.0, "TRANSFER_SRC"),
8793            (TensorUsageFlagsARM::TRANSFER_DST.0, "TRANSFER_DST"),
8794            (TensorUsageFlagsARM::IMAGE_ALIASING.0, "IMAGE_ALIASING"),
8795            (TensorUsageFlagsARM::DATA_GRAPH.0, "DATA_GRAPH"),
8796        ];
8797        debug_flags(f, KNOWN, self.0)
8798    }
8799}
8800impl fmt::Debug for TensorViewCreateFlagsARM {
8801    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8802        const KNOWN: &[(Flags64, &str)] = &[(
8803            TensorViewCreateFlagsARM::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0,
8804            "DESCRIPTOR_BUFFER_CAPTURE_REPLAY",
8805        )];
8806        debug_flags(f, KNOWN, self.0)
8807    }
8808}
8809impl fmt::Debug for TessellationDomainOrigin {
8810    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8811        let name = match *self {
8812            Self::UPPER_LEFT => Some("UPPER_LEFT"),
8813            Self::LOWER_LEFT => Some("LOWER_LEFT"),
8814            _ => None,
8815        };
8816        if let Some(x) = name {
8817            f.write_str(x)
8818        } else {
8819            self.0.fmt(f)
8820        }
8821    }
8822}
8823impl fmt::Debug for TileShadingRenderPassFlagsQCOM {
8824    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8825        const KNOWN: &[(Flags, &str)] = &[
8826            (TileShadingRenderPassFlagsQCOM::ENABLE.0, "ENABLE"),
8827            (
8828                TileShadingRenderPassFlagsQCOM::PER_TILE_EXECUTION.0,
8829                "PER_TILE_EXECUTION",
8830            ),
8831        ];
8832        debug_flags(f, KNOWN, self.0)
8833    }
8834}
8835impl fmt::Debug for TimeDomainKHR {
8836    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8837        let name = match *self {
8838            Self::DEVICE => Some("DEVICE"),
8839            Self::CLOCK_MONOTONIC => Some("CLOCK_MONOTONIC"),
8840            Self::CLOCK_MONOTONIC_RAW => Some("CLOCK_MONOTONIC_RAW"),
8841            Self::QUERY_PERFORMANCE_COUNTER => Some("QUERY_PERFORMANCE_COUNTER"),
8842            Self::PRESENT_STAGE_LOCAL_EXT => Some("PRESENT_STAGE_LOCAL_EXT"),
8843            Self::SWAPCHAIN_LOCAL_EXT => Some("SWAPCHAIN_LOCAL_EXT"),
8844            _ => None,
8845        };
8846        if let Some(x) = name {
8847            f.write_str(x)
8848        } else {
8849            self.0.fmt(f)
8850        }
8851    }
8852}
8853impl fmt::Debug for ToolPurposeFlags {
8854    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8855        const KNOWN: &[(Flags, &str)] = &[
8856            (ToolPurposeFlags::VALIDATION.0, "VALIDATION"),
8857            (ToolPurposeFlags::PROFILING.0, "PROFILING"),
8858            (ToolPurposeFlags::TRACING.0, "TRACING"),
8859            (
8860                ToolPurposeFlags::ADDITIONAL_FEATURES.0,
8861                "ADDITIONAL_FEATURES",
8862            ),
8863            (ToolPurposeFlags::MODIFYING_FEATURES.0, "MODIFYING_FEATURES"),
8864            (
8865                ToolPurposeFlags::DEBUG_REPORTING_EXT.0,
8866                "DEBUG_REPORTING_EXT",
8867            ),
8868            (ToolPurposeFlags::DEBUG_MARKERS_EXT.0, "DEBUG_MARKERS_EXT"),
8869        ];
8870        debug_flags(f, KNOWN, self.0)
8871    }
8872}
8873impl fmt::Debug for ValidationCacheCreateFlagsEXT {
8874    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8875        const KNOWN: &[(Flags, &str)] = &[];
8876        debug_flags(f, KNOWN, self.0)
8877    }
8878}
8879impl fmt::Debug for ValidationCacheHeaderVersionEXT {
8880    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8881        let name = match *self {
8882            Self::ONE => Some("ONE"),
8883            _ => None,
8884        };
8885        if let Some(x) = name {
8886            f.write_str(x)
8887        } else {
8888            self.0.fmt(f)
8889        }
8890    }
8891}
8892impl fmt::Debug for ValidationCheckEXT {
8893    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8894        let name = match *self {
8895            Self::ALL => Some("ALL"),
8896            Self::SHADERS => Some("SHADERS"),
8897            _ => None,
8898        };
8899        if let Some(x) = name {
8900            f.write_str(x)
8901        } else {
8902            self.0.fmt(f)
8903        }
8904    }
8905}
8906impl fmt::Debug for ValidationFeatureDisableEXT {
8907    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8908        let name = match *self {
8909            Self::ALL => Some("ALL"),
8910            Self::SHADERS => Some("SHADERS"),
8911            Self::THREAD_SAFETY => Some("THREAD_SAFETY"),
8912            Self::API_PARAMETERS => Some("API_PARAMETERS"),
8913            Self::OBJECT_LIFETIMES => Some("OBJECT_LIFETIMES"),
8914            Self::CORE_CHECKS => Some("CORE_CHECKS"),
8915            Self::UNIQUE_HANDLES => Some("UNIQUE_HANDLES"),
8916            Self::SHADER_VALIDATION_CACHE => Some("SHADER_VALIDATION_CACHE"),
8917            _ => None,
8918        };
8919        if let Some(x) = name {
8920            f.write_str(x)
8921        } else {
8922            self.0.fmt(f)
8923        }
8924    }
8925}
8926impl fmt::Debug for ValidationFeatureEnableEXT {
8927    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8928        let name = match *self {
8929            Self::GPU_ASSISTED => Some("GPU_ASSISTED"),
8930            Self::GPU_ASSISTED_RESERVE_BINDING_SLOT => Some("GPU_ASSISTED_RESERVE_BINDING_SLOT"),
8931            Self::BEST_PRACTICES => Some("BEST_PRACTICES"),
8932            Self::DEBUG_PRINTF => Some("DEBUG_PRINTF"),
8933            Self::SYNCHRONIZATION_VALIDATION => Some("SYNCHRONIZATION_VALIDATION"),
8934            _ => None,
8935        };
8936        if let Some(x) = name {
8937            f.write_str(x)
8938        } else {
8939            self.0.fmt(f)
8940        }
8941    }
8942}
8943impl fmt::Debug for VendorId {
8944    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8945        let name = match *self {
8946            Self::KHRONOS => Some("KHRONOS"),
8947            Self::VIV => Some("VIV"),
8948            Self::VSI => Some("VSI"),
8949            Self::KAZAN => Some("KAZAN"),
8950            Self::CODEPLAY => Some("CODEPLAY"),
8951            Self::MESA => Some("MESA"),
8952            Self::POCL => Some("POCL"),
8953            Self::MOBILEYE => Some("MOBILEYE"),
8954            _ => None,
8955        };
8956        if let Some(x) = name {
8957            f.write_str(x)
8958        } else {
8959            self.0.fmt(f)
8960        }
8961    }
8962}
8963impl fmt::Debug for VertexInputRate {
8964    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8965        let name = match *self {
8966            Self::VERTEX => Some("VERTEX"),
8967            Self::INSTANCE => Some("INSTANCE"),
8968            _ => None,
8969        };
8970        if let Some(x) = name {
8971            f.write_str(x)
8972        } else {
8973            self.0.fmt(f)
8974        }
8975    }
8976}
8977impl fmt::Debug for ViSurfaceCreateFlagsNN {
8978    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8979        const KNOWN: &[(Flags, &str)] = &[];
8980        debug_flags(f, KNOWN, self.0)
8981    }
8982}
8983impl fmt::Debug for VideoBeginCodingFlagsKHR {
8984    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8985        const KNOWN: &[(Flags, &str)] = &[];
8986        debug_flags(f, KNOWN, self.0)
8987    }
8988}
8989impl fmt::Debug for VideoCapabilityFlagsKHR {
8990    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
8991        const KNOWN: &[(Flags, &str)] = &[
8992            (
8993                VideoCapabilityFlagsKHR::PROTECTED_CONTENT.0,
8994                "PROTECTED_CONTENT",
8995            ),
8996            (
8997                VideoCapabilityFlagsKHR::SEPARATE_REFERENCE_IMAGES.0,
8998                "SEPARATE_REFERENCE_IMAGES",
8999            ),
9000        ];
9001        debug_flags(f, KNOWN, self.0)
9002    }
9003}
9004impl fmt::Debug for VideoChromaSubsamplingFlagsKHR {
9005    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9006        const KNOWN: &[(Flags, &str)] = &[
9007            (VideoChromaSubsamplingFlagsKHR::INVALID.0, "INVALID"),
9008            (VideoChromaSubsamplingFlagsKHR::MONOCHROME.0, "MONOCHROME"),
9009            (VideoChromaSubsamplingFlagsKHR::TYPE_420.0, "TYPE_420"),
9010            (VideoChromaSubsamplingFlagsKHR::TYPE_422.0, "TYPE_422"),
9011            (VideoChromaSubsamplingFlagsKHR::TYPE_444.0, "TYPE_444"),
9012        ];
9013        debug_flags(f, KNOWN, self.0)
9014    }
9015}
9016impl fmt::Debug for VideoCodecOperationFlagsKHR {
9017    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9018        const KNOWN: &[(Flags, &str)] = &[
9019            (VideoCodecOperationFlagsKHR::NONE.0, "NONE"),
9020            (VideoCodecOperationFlagsKHR::ENCODE_H264.0, "ENCODE_H264"),
9021            (VideoCodecOperationFlagsKHR::ENCODE_H265.0, "ENCODE_H265"),
9022            (VideoCodecOperationFlagsKHR::DECODE_H264.0, "DECODE_H264"),
9023            (VideoCodecOperationFlagsKHR::DECODE_H265.0, "DECODE_H265"),
9024            (VideoCodecOperationFlagsKHR::DECODE_AV1.0, "DECODE_AV1"),
9025            (VideoCodecOperationFlagsKHR::ENCODE_AV1.0, "ENCODE_AV1"),
9026            (VideoCodecOperationFlagsKHR::DECODE_VP9.0, "DECODE_VP9"),
9027        ];
9028        debug_flags(f, KNOWN, self.0)
9029    }
9030}
9031impl fmt::Debug for VideoCodingControlFlagsKHR {
9032    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9033        const KNOWN: &[(Flags, &str)] = &[
9034            (VideoCodingControlFlagsKHR::RESET.0, "RESET"),
9035            (
9036                VideoCodingControlFlagsKHR::ENCODE_RATE_CONTROL.0,
9037                "ENCODE_RATE_CONTROL",
9038            ),
9039            (
9040                VideoCodingControlFlagsKHR::ENCODE_QUALITY_LEVEL.0,
9041                "ENCODE_QUALITY_LEVEL",
9042            ),
9043        ];
9044        debug_flags(f, KNOWN, self.0)
9045    }
9046}
9047impl fmt::Debug for VideoComponentBitDepthFlagsKHR {
9048    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9049        const KNOWN: &[(Flags, &str)] = &[
9050            (VideoComponentBitDepthFlagsKHR::INVALID.0, "INVALID"),
9051            (VideoComponentBitDepthFlagsKHR::TYPE_8.0, "TYPE_8"),
9052            (VideoComponentBitDepthFlagsKHR::TYPE_10.0, "TYPE_10"),
9053            (VideoComponentBitDepthFlagsKHR::TYPE_12.0, "TYPE_12"),
9054        ];
9055        debug_flags(f, KNOWN, self.0)
9056    }
9057}
9058impl fmt::Debug for VideoDecodeCapabilityFlagsKHR {
9059    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9060        const KNOWN: &[(Flags, &str)] = &[
9061            (
9062                VideoDecodeCapabilityFlagsKHR::DPB_AND_OUTPUT_COINCIDE.0,
9063                "DPB_AND_OUTPUT_COINCIDE",
9064            ),
9065            (
9066                VideoDecodeCapabilityFlagsKHR::DPB_AND_OUTPUT_DISTINCT.0,
9067                "DPB_AND_OUTPUT_DISTINCT",
9068            ),
9069        ];
9070        debug_flags(f, KNOWN, self.0)
9071    }
9072}
9073impl fmt::Debug for VideoDecodeFlagsKHR {
9074    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9075        const KNOWN: &[(Flags, &str)] = &[];
9076        debug_flags(f, KNOWN, self.0)
9077    }
9078}
9079impl fmt::Debug for VideoDecodeH264PictureLayoutFlagsKHR {
9080    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9081        const KNOWN: &[(Flags, &str)] = &[
9082            (
9083                VideoDecodeH264PictureLayoutFlagsKHR::PROGRESSIVE.0,
9084                "PROGRESSIVE",
9085            ),
9086            (
9087                VideoDecodeH264PictureLayoutFlagsKHR::INTERLACED_INTERLEAVED_LINES.0,
9088                "INTERLACED_INTERLEAVED_LINES",
9089            ),
9090            (
9091                VideoDecodeH264PictureLayoutFlagsKHR::INTERLACED_SEPARATE_PLANES.0,
9092                "INTERLACED_SEPARATE_PLANES",
9093            ),
9094        ];
9095        debug_flags(f, KNOWN, self.0)
9096    }
9097}
9098impl fmt::Debug for VideoDecodeUsageFlagsKHR {
9099    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9100        const KNOWN: &[(Flags, &str)] = &[
9101            (VideoDecodeUsageFlagsKHR::DEFAULT.0, "DEFAULT"),
9102            (VideoDecodeUsageFlagsKHR::TRANSCODING.0, "TRANSCODING"),
9103            (VideoDecodeUsageFlagsKHR::OFFLINE.0, "OFFLINE"),
9104            (VideoDecodeUsageFlagsKHR::STREAMING.0, "STREAMING"),
9105        ];
9106        debug_flags(f, KNOWN, self.0)
9107    }
9108}
9109impl fmt::Debug for VideoEncodeAV1CapabilityFlagsKHR {
9110    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9111        const KNOWN: &[(Flags, &str)] = &[
9112            (
9113                VideoEncodeAV1CapabilityFlagsKHR::PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX.0,
9114                "PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX",
9115            ),
9116            (
9117                VideoEncodeAV1CapabilityFlagsKHR::GENERATE_OBU_EXTENSION_HEADER.0,
9118                "GENERATE_OBU_EXTENSION_HEADER",
9119            ),
9120            (
9121                VideoEncodeAV1CapabilityFlagsKHR::PRIMARY_REFERENCE_CDF_ONLY.0,
9122                "PRIMARY_REFERENCE_CDF_ONLY",
9123            ),
9124            (
9125                VideoEncodeAV1CapabilityFlagsKHR::FRAME_SIZE_OVERRIDE.0,
9126                "FRAME_SIZE_OVERRIDE",
9127            ),
9128            (
9129                VideoEncodeAV1CapabilityFlagsKHR::MOTION_VECTOR_SCALING.0,
9130                "MOTION_VECTOR_SCALING",
9131            ),
9132            (
9133                VideoEncodeAV1CapabilityFlagsKHR::COMPOUND_PREDICTION_INTRA_REFRESH.0,
9134                "COMPOUND_PREDICTION_INTRA_REFRESH",
9135            ),
9136        ];
9137        debug_flags(f, KNOWN, self.0)
9138    }
9139}
9140impl fmt::Debug for VideoEncodeAV1PredictionModeKHR {
9141    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9142        let name = match *self {
9143            Self::INTRA_ONLY => Some("INTRA_ONLY"),
9144            Self::SINGLE_REFERENCE => Some("SINGLE_REFERENCE"),
9145            Self::UNIDIRECTIONAL_COMPOUND => Some("UNIDIRECTIONAL_COMPOUND"),
9146            Self::BIDIRECTIONAL_COMPOUND => Some("BIDIRECTIONAL_COMPOUND"),
9147            _ => None,
9148        };
9149        if let Some(x) = name {
9150            f.write_str(x)
9151        } else {
9152            self.0.fmt(f)
9153        }
9154    }
9155}
9156impl fmt::Debug for VideoEncodeAV1RateControlFlagsKHR {
9157    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9158        const KNOWN: &[(Flags, &str)] = &[
9159            (
9160                VideoEncodeAV1RateControlFlagsKHR::REGULAR_GOP.0,
9161                "REGULAR_GOP",
9162            ),
9163            (
9164                VideoEncodeAV1RateControlFlagsKHR::TEMPORAL_LAYER_PATTERN_DYADIC.0,
9165                "TEMPORAL_LAYER_PATTERN_DYADIC",
9166            ),
9167            (
9168                VideoEncodeAV1RateControlFlagsKHR::REFERENCE_PATTERN_FLAT.0,
9169                "REFERENCE_PATTERN_FLAT",
9170            ),
9171            (
9172                VideoEncodeAV1RateControlFlagsKHR::REFERENCE_PATTERN_DYADIC.0,
9173                "REFERENCE_PATTERN_DYADIC",
9174            ),
9175        ];
9176        debug_flags(f, KNOWN, self.0)
9177    }
9178}
9179impl fmt::Debug for VideoEncodeAV1RateControlGroupKHR {
9180    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9181        let name = match *self {
9182            Self::INTRA => Some("INTRA"),
9183            Self::PREDICTIVE => Some("PREDICTIVE"),
9184            Self::BIPREDICTIVE => Some("BIPREDICTIVE"),
9185            _ => None,
9186        };
9187        if let Some(x) = name {
9188            f.write_str(x)
9189        } else {
9190            self.0.fmt(f)
9191        }
9192    }
9193}
9194impl fmt::Debug for VideoEncodeAV1StdFlagsKHR {
9195    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9196        const KNOWN: &[(Flags, &str)] = &[
9197            (
9198                VideoEncodeAV1StdFlagsKHR::UNIFORM_TILE_SPACING_FLAG_SET.0,
9199                "UNIFORM_TILE_SPACING_FLAG_SET",
9200            ),
9201            (
9202                VideoEncodeAV1StdFlagsKHR::SKIP_MODE_PRESENT_UNSET.0,
9203                "SKIP_MODE_PRESENT_UNSET",
9204            ),
9205            (
9206                VideoEncodeAV1StdFlagsKHR::PRIMARY_REF_FRAME.0,
9207                "PRIMARY_REF_FRAME",
9208            ),
9209            (VideoEncodeAV1StdFlagsKHR::DELTA_Q.0, "DELTA_Q"),
9210        ];
9211        debug_flags(f, KNOWN, self.0)
9212    }
9213}
9214impl fmt::Debug for VideoEncodeAV1SuperblockSizeFlagsKHR {
9215    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9216        const KNOWN: &[(Flags, &str)] = &[
9217            (VideoEncodeAV1SuperblockSizeFlagsKHR::TYPE_64.0, "TYPE_64"),
9218            (VideoEncodeAV1SuperblockSizeFlagsKHR::TYPE_128.0, "TYPE_128"),
9219        ];
9220        debug_flags(f, KNOWN, self.0)
9221    }
9222}
9223impl fmt::Debug for VideoEncodeCapabilityFlagsKHR {
9224    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9225        const KNOWN: &[(Flags, &str)] = &[
9226            (
9227                VideoEncodeCapabilityFlagsKHR::PRECEDING_EXTERNALLY_ENCODED_BYTES.0,
9228                "PRECEDING_EXTERNALLY_ENCODED_BYTES",
9229            ),
9230            (
9231                VideoEncodeCapabilityFlagsKHR::INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION.0,
9232                "INSUFFICIENTSTREAM_BUFFER_RANGE_DETECTION",
9233            ),
9234            (
9235                VideoEncodeCapabilityFlagsKHR::QUANTIZATION_DELTA_MAP.0,
9236                "QUANTIZATION_DELTA_MAP",
9237            ),
9238            (
9239                VideoEncodeCapabilityFlagsKHR::EMPHASIS_MAP.0,
9240                "EMPHASIS_MAP",
9241            ),
9242        ];
9243        debug_flags(f, KNOWN, self.0)
9244    }
9245}
9246impl fmt::Debug for VideoEncodeContentFlagsKHR {
9247    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9248        const KNOWN: &[(Flags, &str)] = &[
9249            (VideoEncodeContentFlagsKHR::DEFAULT.0, "DEFAULT"),
9250            (VideoEncodeContentFlagsKHR::CAMERA.0, "CAMERA"),
9251            (VideoEncodeContentFlagsKHR::DESKTOP.0, "DESKTOP"),
9252            (VideoEncodeContentFlagsKHR::RENDERED.0, "RENDERED"),
9253        ];
9254        debug_flags(f, KNOWN, self.0)
9255    }
9256}
9257impl fmt::Debug for VideoEncodeFeedbackFlagsKHR {
9258    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9259        const KNOWN: &[(Flags, &str)] = &[
9260            (
9261                VideoEncodeFeedbackFlagsKHR::BITSTREAM_BUFFER_OFFSET.0,
9262                "BITSTREAM_BUFFER_OFFSET",
9263            ),
9264            (
9265                VideoEncodeFeedbackFlagsKHR::BITSTREAM_BYTES_WRITTEN.0,
9266                "BITSTREAM_BYTES_WRITTEN",
9267            ),
9268            (
9269                VideoEncodeFeedbackFlagsKHR::BITSTREAM_HAS_OVERRIDES.0,
9270                "BITSTREAM_HAS_OVERRIDES",
9271            ),
9272        ];
9273        debug_flags(f, KNOWN, self.0)
9274    }
9275}
9276impl fmt::Debug for VideoEncodeFlagsKHR {
9277    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9278        const KNOWN: &[(Flags, &str)] = &[
9279            (VideoEncodeFlagsKHR::INTRA_REFRESH.0, "INTRA_REFRESH"),
9280            (
9281                VideoEncodeFlagsKHR::WITH_QUANTIZATION_DELTA_MAP.0,
9282                "WITH_QUANTIZATION_DELTA_MAP",
9283            ),
9284            (
9285                VideoEncodeFlagsKHR::WITH_EMPHASIS_MAP.0,
9286                "WITH_EMPHASIS_MAP",
9287            ),
9288        ];
9289        debug_flags(f, KNOWN, self.0)
9290    }
9291}
9292impl fmt::Debug for VideoEncodeH264CapabilityFlagsKHR {
9293    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9294        const KNOWN: &[(Flags, &str)] = &[
9295            (
9296                VideoEncodeH264CapabilityFlagsKHR::HRD_COMPLIANCE.0,
9297                "HRD_COMPLIANCE",
9298            ),
9299            (
9300                VideoEncodeH264CapabilityFlagsKHR::PREDICTION_WEIGHT_TABLE_GENERATED.0,
9301                "PREDICTION_WEIGHT_TABLE_GENERATED",
9302            ),
9303            (
9304                VideoEncodeH264CapabilityFlagsKHR::ROW_UNALIGNED_SLICE.0,
9305                "ROW_UNALIGNED_SLICE",
9306            ),
9307            (
9308                VideoEncodeH264CapabilityFlagsKHR::DIFFERENT_SLICE_TYPE.0,
9309                "DIFFERENT_SLICE_TYPE",
9310            ),
9311            (
9312                VideoEncodeH264CapabilityFlagsKHR::B_FRAME_IN_L0_LIST.0,
9313                "B_FRAME_IN_L0_LIST",
9314            ),
9315            (
9316                VideoEncodeH264CapabilityFlagsKHR::B_FRAME_IN_L1_LIST.0,
9317                "B_FRAME_IN_L1_LIST",
9318            ),
9319            (
9320                VideoEncodeH264CapabilityFlagsKHR::PER_PICTURE_TYPE_MIN_MAX_QP.0,
9321                "PER_PICTURE_TYPE_MIN_MAX_QP",
9322            ),
9323            (
9324                VideoEncodeH264CapabilityFlagsKHR::PER_SLICE_CONSTANT_QP.0,
9325                "PER_SLICE_CONSTANT_QP",
9326            ),
9327            (
9328                VideoEncodeH264CapabilityFlagsKHR::GENERATE_PREFIX_NALU.0,
9329                "GENERATE_PREFIX_NALU",
9330            ),
9331            (
9332                VideoEncodeH264CapabilityFlagsKHR::B_PICTURE_INTRA_REFRESH.0,
9333                "B_PICTURE_INTRA_REFRESH",
9334            ),
9335            (
9336                VideoEncodeH264CapabilityFlagsKHR::MB_QP_DIFF_WRAPAROUND.0,
9337                "MB_QP_DIFF_WRAPAROUND",
9338            ),
9339        ];
9340        debug_flags(f, KNOWN, self.0)
9341    }
9342}
9343impl fmt::Debug for VideoEncodeH264RateControlFlagsKHR {
9344    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9345        const KNOWN: &[(Flags, &str)] = &[
9346            (
9347                VideoEncodeH264RateControlFlagsKHR::ATTEMPT_HRD_COMPLIANCE.0,
9348                "ATTEMPT_HRD_COMPLIANCE",
9349            ),
9350            (
9351                VideoEncodeH264RateControlFlagsKHR::REGULAR_GOP.0,
9352                "REGULAR_GOP",
9353            ),
9354            (
9355                VideoEncodeH264RateControlFlagsKHR::REFERENCE_PATTERN_FLAT.0,
9356                "REFERENCE_PATTERN_FLAT",
9357            ),
9358            (
9359                VideoEncodeH264RateControlFlagsKHR::REFERENCE_PATTERN_DYADIC.0,
9360                "REFERENCE_PATTERN_DYADIC",
9361            ),
9362            (
9363                VideoEncodeH264RateControlFlagsKHR::TEMPORAL_LAYER_PATTERN_DYADIC.0,
9364                "TEMPORAL_LAYER_PATTERN_DYADIC",
9365            ),
9366        ];
9367        debug_flags(f, KNOWN, self.0)
9368    }
9369}
9370impl fmt::Debug for VideoEncodeH264StdFlagsKHR {
9371    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9372        const KNOWN: &[(Flags, &str)] = &[
9373            (
9374                VideoEncodeH264StdFlagsKHR::SEPARATE_COLOR_PLANE_FLAG_SET.0,
9375                "SEPARATE_COLOR_PLANE_FLAG_SET",
9376            ),
9377            (
9378                VideoEncodeH264StdFlagsKHR::QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET.0,
9379                "QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET",
9380            ),
9381            (
9382                VideoEncodeH264StdFlagsKHR::SCALING_MATRIX_PRESENT_FLAG_SET.0,
9383                "SCALING_MATRIX_PRESENT_FLAG_SET",
9384            ),
9385            (
9386                VideoEncodeH264StdFlagsKHR::CHROMA_QP_INDEX_OFFSET.0,
9387                "CHROMA_QP_INDEX_OFFSET",
9388            ),
9389            (
9390                VideoEncodeH264StdFlagsKHR::SECOND_CHROMA_QP_INDEX_OFFSET.0,
9391                "SECOND_CHROMA_QP_INDEX_OFFSET",
9392            ),
9393            (
9394                VideoEncodeH264StdFlagsKHR::PIC_INIT_QP_MINUS26.0,
9395                "PIC_INIT_QP_MINUS26",
9396            ),
9397            (
9398                VideoEncodeH264StdFlagsKHR::WEIGHTED_PRED_FLAG_SET.0,
9399                "WEIGHTED_PRED_FLAG_SET",
9400            ),
9401            (
9402                VideoEncodeH264StdFlagsKHR::WEIGHTED_BIPRED_IDC_EXPLICIT.0,
9403                "WEIGHTED_BIPRED_IDC_EXPLICIT",
9404            ),
9405            (
9406                VideoEncodeH264StdFlagsKHR::WEIGHTED_BIPRED_IDC_IMPLICIT.0,
9407                "WEIGHTED_BIPRED_IDC_IMPLICIT",
9408            ),
9409            (
9410                VideoEncodeH264StdFlagsKHR::TRANSFORM_8X8_MODE_FLAG_SET.0,
9411                "TRANSFORM_8X8_MODE_FLAG_SET",
9412            ),
9413            (
9414                VideoEncodeH264StdFlagsKHR::DIRECT_SPATIAL_MV_PRED_FLAG_UNSET.0,
9415                "DIRECT_SPATIAL_MV_PRED_FLAG_UNSET",
9416            ),
9417            (
9418                VideoEncodeH264StdFlagsKHR::ENTROPY_CODING_MODE_FLAG_UNSET.0,
9419                "ENTROPY_CODING_MODE_FLAG_UNSET",
9420            ),
9421            (
9422                VideoEncodeH264StdFlagsKHR::ENTROPY_CODING_MODE_FLAG_SET.0,
9423                "ENTROPY_CODING_MODE_FLAG_SET",
9424            ),
9425            (
9426                VideoEncodeH264StdFlagsKHR::DIRECT_8X8_INFERENCE_FLAG_UNSET.0,
9427                "DIRECT_8X8_INFERENCE_FLAG_UNSET",
9428            ),
9429            (
9430                VideoEncodeH264StdFlagsKHR::CONSTRAINED_INTRA_PRED_FLAG_SET.0,
9431                "CONSTRAINED_INTRA_PRED_FLAG_SET",
9432            ),
9433            (
9434                VideoEncodeH264StdFlagsKHR::DEBLOCKING_FILTER_DISABLED.0,
9435                "DEBLOCKING_FILTER_DISABLED",
9436            ),
9437            (
9438                VideoEncodeH264StdFlagsKHR::DEBLOCKING_FILTER_ENABLED.0,
9439                "DEBLOCKING_FILTER_ENABLED",
9440            ),
9441            (
9442                VideoEncodeH264StdFlagsKHR::DEBLOCKING_FILTER_PARTIAL.0,
9443                "DEBLOCKING_FILTER_PARTIAL",
9444            ),
9445            (
9446                VideoEncodeH264StdFlagsKHR::SLICE_QP_DELTA.0,
9447                "SLICE_QP_DELTA",
9448            ),
9449            (
9450                VideoEncodeH264StdFlagsKHR::DIFFERENT_SLICE_QP_DELTA.0,
9451                "DIFFERENT_SLICE_QP_DELTA",
9452            ),
9453        ];
9454        debug_flags(f, KNOWN, self.0)
9455    }
9456}
9457impl fmt::Debug for VideoEncodeH265CapabilityFlagsKHR {
9458    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9459        const KNOWN: &[(Flags, &str)] = &[
9460            (
9461                VideoEncodeH265CapabilityFlagsKHR::HRD_COMPLIANCE.0,
9462                "HRD_COMPLIANCE",
9463            ),
9464            (
9465                VideoEncodeH265CapabilityFlagsKHR::PREDICTION_WEIGHT_TABLE_GENERATED.0,
9466                "PREDICTION_WEIGHT_TABLE_GENERATED",
9467            ),
9468            (
9469                VideoEncodeH265CapabilityFlagsKHR::ROW_UNALIGNED_SLICE_SEGMENT.0,
9470                "ROW_UNALIGNED_SLICE_SEGMENT",
9471            ),
9472            (
9473                VideoEncodeH265CapabilityFlagsKHR::DIFFERENT_SLICE_SEGMENT_TYPE.0,
9474                "DIFFERENT_SLICE_SEGMENT_TYPE",
9475            ),
9476            (
9477                VideoEncodeH265CapabilityFlagsKHR::B_FRAME_IN_L0_LIST.0,
9478                "B_FRAME_IN_L0_LIST",
9479            ),
9480            (
9481                VideoEncodeH265CapabilityFlagsKHR::B_FRAME_IN_L1_LIST.0,
9482                "B_FRAME_IN_L1_LIST",
9483            ),
9484            (
9485                VideoEncodeH265CapabilityFlagsKHR::PER_PICTURE_TYPE_MIN_MAX_QP.0,
9486                "PER_PICTURE_TYPE_MIN_MAX_QP",
9487            ),
9488            (
9489                VideoEncodeH265CapabilityFlagsKHR::PER_SLICE_SEGMENT_CONSTANT_QP.0,
9490                "PER_SLICE_SEGMENT_CONSTANT_QP",
9491            ),
9492            (
9493                VideoEncodeH265CapabilityFlagsKHR::MULTIPLE_TILES_PER_SLICE_SEGMENT.0,
9494                "MULTIPLE_TILES_PER_SLICE_SEGMENT",
9495            ),
9496            (
9497                VideoEncodeH265CapabilityFlagsKHR::MULTIPLE_SLICE_SEGMENTS_PER_TILE.0,
9498                "MULTIPLE_SLICE_SEGMENTS_PER_TILE",
9499            ),
9500            (
9501                VideoEncodeH265CapabilityFlagsKHR::B_PICTURE_INTRA_REFRESH.0,
9502                "B_PICTURE_INTRA_REFRESH",
9503            ),
9504            (
9505                VideoEncodeH265CapabilityFlagsKHR::CU_QP_DIFF_WRAPAROUND.0,
9506                "CU_QP_DIFF_WRAPAROUND",
9507            ),
9508        ];
9509        debug_flags(f, KNOWN, self.0)
9510    }
9511}
9512impl fmt::Debug for VideoEncodeH265CtbSizeFlagsKHR {
9513    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9514        const KNOWN: &[(Flags, &str)] = &[
9515            (VideoEncodeH265CtbSizeFlagsKHR::TYPE_16.0, "TYPE_16"),
9516            (VideoEncodeH265CtbSizeFlagsKHR::TYPE_32.0, "TYPE_32"),
9517            (VideoEncodeH265CtbSizeFlagsKHR::TYPE_64.0, "TYPE_64"),
9518        ];
9519        debug_flags(f, KNOWN, self.0)
9520    }
9521}
9522impl fmt::Debug for VideoEncodeH265RateControlFlagsKHR {
9523    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9524        const KNOWN: &[(Flags, &str)] = &[
9525            (
9526                VideoEncodeH265RateControlFlagsKHR::ATTEMPT_HRD_COMPLIANCE.0,
9527                "ATTEMPT_HRD_COMPLIANCE",
9528            ),
9529            (
9530                VideoEncodeH265RateControlFlagsKHR::REGULAR_GOP.0,
9531                "REGULAR_GOP",
9532            ),
9533            (
9534                VideoEncodeH265RateControlFlagsKHR::REFERENCE_PATTERN_FLAT.0,
9535                "REFERENCE_PATTERN_FLAT",
9536            ),
9537            (
9538                VideoEncodeH265RateControlFlagsKHR::REFERENCE_PATTERN_DYADIC.0,
9539                "REFERENCE_PATTERN_DYADIC",
9540            ),
9541            (
9542                VideoEncodeH265RateControlFlagsKHR::TEMPORAL_SUB_LAYER_PATTERN_DYADIC.0,
9543                "TEMPORAL_SUB_LAYER_PATTERN_DYADIC",
9544            ),
9545        ];
9546        debug_flags(f, KNOWN, self.0)
9547    }
9548}
9549impl fmt::Debug for VideoEncodeH265StdFlagsKHR {
9550    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9551        const KNOWN: &[(Flags, &str)] = &[
9552            (
9553                VideoEncodeH265StdFlagsKHR::SEPARATE_COLOR_PLANE_FLAG_SET.0,
9554                "SEPARATE_COLOR_PLANE_FLAG_SET",
9555            ),
9556            (
9557                VideoEncodeH265StdFlagsKHR::SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET.0,
9558                "SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET",
9559            ),
9560            (
9561                VideoEncodeH265StdFlagsKHR::SCALING_LIST_DATA_PRESENT_FLAG_SET.0,
9562                "SCALING_LIST_DATA_PRESENT_FLAG_SET",
9563            ),
9564            (
9565                VideoEncodeH265StdFlagsKHR::PCM_ENABLED_FLAG_SET.0,
9566                "PCM_ENABLED_FLAG_SET",
9567            ),
9568            (
9569                VideoEncodeH265StdFlagsKHR::SPS_TEMPORAL_MVP_ENABLED_FLAG_SET.0,
9570                "SPS_TEMPORAL_MVP_ENABLED_FLAG_SET",
9571            ),
9572            (
9573                VideoEncodeH265StdFlagsKHR::INIT_QP_MINUS26.0,
9574                "INIT_QP_MINUS26",
9575            ),
9576            (
9577                VideoEncodeH265StdFlagsKHR::WEIGHTED_PRED_FLAG_SET.0,
9578                "WEIGHTED_PRED_FLAG_SET",
9579            ),
9580            (
9581                VideoEncodeH265StdFlagsKHR::WEIGHTED_BIPRED_FLAG_SET.0,
9582                "WEIGHTED_BIPRED_FLAG_SET",
9583            ),
9584            (
9585                VideoEncodeH265StdFlagsKHR::LOG2_PARALLEL_MERGE_LEVEL_MINUS2.0,
9586                "LOG2_PARALLEL_MERGE_LEVEL_MINUS2",
9587            ),
9588            (
9589                VideoEncodeH265StdFlagsKHR::SIGN_DATA_HIDING_ENABLED_FLAG_SET.0,
9590                "SIGN_DATA_HIDING_ENABLED_FLAG_SET",
9591            ),
9592            (
9593                VideoEncodeH265StdFlagsKHR::TRANSFORM_SKIP_ENABLED_FLAG_SET.0,
9594                "TRANSFORM_SKIP_ENABLED_FLAG_SET",
9595            ),
9596            (
9597                VideoEncodeH265StdFlagsKHR::TRANSFORM_SKIP_ENABLED_FLAG_UNSET.0,
9598                "TRANSFORM_SKIP_ENABLED_FLAG_UNSET",
9599            ),
9600            (
9601                VideoEncodeH265StdFlagsKHR::PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET.0,
9602                "PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET",
9603            ),
9604            (
9605                VideoEncodeH265StdFlagsKHR::TRANSQUANT_BYPASS_ENABLED_FLAG_SET.0,
9606                "TRANSQUANT_BYPASS_ENABLED_FLAG_SET",
9607            ),
9608            (
9609                VideoEncodeH265StdFlagsKHR::CONSTRAINED_INTRA_PRED_FLAG_SET.0,
9610                "CONSTRAINED_INTRA_PRED_FLAG_SET",
9611            ),
9612            (
9613                VideoEncodeH265StdFlagsKHR::ENTROPY_CODING_SYNC_ENABLED_FLAG_SET.0,
9614                "ENTROPY_CODING_SYNC_ENABLED_FLAG_SET",
9615            ),
9616            (
9617                VideoEncodeH265StdFlagsKHR::DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET.0,
9618                "DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET",
9619            ),
9620            (
9621                VideoEncodeH265StdFlagsKHR::DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET.0,
9622                "DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET",
9623            ),
9624            (
9625                VideoEncodeH265StdFlagsKHR::DEPENDENT_SLICE_SEGMENT_FLAG_SET.0,
9626                "DEPENDENT_SLICE_SEGMENT_FLAG_SET",
9627            ),
9628            (
9629                VideoEncodeH265StdFlagsKHR::SLICE_QP_DELTA.0,
9630                "SLICE_QP_DELTA",
9631            ),
9632            (
9633                VideoEncodeH265StdFlagsKHR::DIFFERENT_SLICE_QP_DELTA.0,
9634                "DIFFERENT_SLICE_QP_DELTA",
9635            ),
9636        ];
9637        debug_flags(f, KNOWN, self.0)
9638    }
9639}
9640impl fmt::Debug for VideoEncodeH265TransformBlockSizeFlagsKHR {
9641    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9642        const KNOWN: &[(Flags, &str)] = &[
9643            (
9644                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_4.0,
9645                "TYPE_4",
9646            ),
9647            (
9648                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_8.0,
9649                "TYPE_8",
9650            ),
9651            (
9652                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_16.0,
9653                "TYPE_16",
9654            ),
9655            (
9656                VideoEncodeH265TransformBlockSizeFlagsKHR::TYPE_32.0,
9657                "TYPE_32",
9658            ),
9659        ];
9660        debug_flags(f, KNOWN, self.0)
9661    }
9662}
9663impl fmt::Debug for VideoEncodeIntraRefreshModeFlagsKHR {
9664    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9665        const KNOWN: &[(Flags, &str)] = &[
9666            (VideoEncodeIntraRefreshModeFlagsKHR::NONE.0, "NONE"),
9667            (
9668                VideoEncodeIntraRefreshModeFlagsKHR::PER_PICTURE_PARTITION.0,
9669                "PER_PICTURE_PARTITION",
9670            ),
9671            (
9672                VideoEncodeIntraRefreshModeFlagsKHR::BLOCK_BASED.0,
9673                "BLOCK_BASED",
9674            ),
9675            (
9676                VideoEncodeIntraRefreshModeFlagsKHR::BLOCK_ROW_BASED.0,
9677                "BLOCK_ROW_BASED",
9678            ),
9679            (
9680                VideoEncodeIntraRefreshModeFlagsKHR::BLOCK_COLUMN_BASED.0,
9681                "BLOCK_COLUMN_BASED",
9682            ),
9683        ];
9684        debug_flags(f, KNOWN, self.0)
9685    }
9686}
9687impl fmt::Debug for VideoEncodeRateControlFlagsKHR {
9688    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9689        const KNOWN: &[(Flags, &str)] = &[];
9690        debug_flags(f, KNOWN, self.0)
9691    }
9692}
9693impl fmt::Debug for VideoEncodeRateControlModeFlagsKHR {
9694    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9695        const KNOWN: &[(Flags, &str)] = &[
9696            (VideoEncodeRateControlModeFlagsKHR::DEFAULT.0, "DEFAULT"),
9697            (VideoEncodeRateControlModeFlagsKHR::DISABLED.0, "DISABLED"),
9698            (VideoEncodeRateControlModeFlagsKHR::CBR.0, "CBR"),
9699            (VideoEncodeRateControlModeFlagsKHR::VBR.0, "VBR"),
9700        ];
9701        debug_flags(f, KNOWN, self.0)
9702    }
9703}
9704impl fmt::Debug for VideoEncodeRgbChromaOffsetFlagsVALVE {
9705    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9706        const KNOWN: &[(Flags, &str)] = &[
9707            (
9708                VideoEncodeRgbChromaOffsetFlagsVALVE::COSITED_EVEN.0,
9709                "COSITED_EVEN",
9710            ),
9711            (VideoEncodeRgbChromaOffsetFlagsVALVE::MIDPOINT.0, "MIDPOINT"),
9712        ];
9713        debug_flags(f, KNOWN, self.0)
9714    }
9715}
9716impl fmt::Debug for VideoEncodeRgbModelConversionFlagsVALVE {
9717    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9718        const KNOWN: &[(Flags, &str)] = &[
9719            (
9720                VideoEncodeRgbModelConversionFlagsVALVE::RGB_IDENTITY.0,
9721                "RGB_IDENTITY",
9722            ),
9723            (
9724                VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_IDENTITY.0,
9725                "YCBCR_IDENTITY",
9726            ),
9727            (
9728                VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_709.0,
9729                "YCBCR_709",
9730            ),
9731            (
9732                VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_601.0,
9733                "YCBCR_601",
9734            ),
9735            (
9736                VideoEncodeRgbModelConversionFlagsVALVE::YCBCR_2020.0,
9737                "YCBCR_2020",
9738            ),
9739        ];
9740        debug_flags(f, KNOWN, self.0)
9741    }
9742}
9743impl fmt::Debug for VideoEncodeRgbRangeCompressionFlagsVALVE {
9744    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9745        const KNOWN: &[(Flags, &str)] = &[
9746            (
9747                VideoEncodeRgbRangeCompressionFlagsVALVE::FULL_RANGE.0,
9748                "FULL_RANGE",
9749            ),
9750            (
9751                VideoEncodeRgbRangeCompressionFlagsVALVE::NARROW_RANGE.0,
9752                "NARROW_RANGE",
9753            ),
9754        ];
9755        debug_flags(f, KNOWN, self.0)
9756    }
9757}
9758impl fmt::Debug for VideoEncodeTuningModeKHR {
9759    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9760        let name = match *self {
9761            Self::DEFAULT => Some("DEFAULT"),
9762            Self::HIGH_QUALITY => Some("HIGH_QUALITY"),
9763            Self::LOW_LATENCY => Some("LOW_LATENCY"),
9764            Self::ULTRA_LOW_LATENCY => Some("ULTRA_LOW_LATENCY"),
9765            Self::LOSSLESS => Some("LOSSLESS"),
9766            _ => None,
9767        };
9768        if let Some(x) = name {
9769            f.write_str(x)
9770        } else {
9771            self.0.fmt(f)
9772        }
9773    }
9774}
9775impl fmt::Debug for VideoEncodeUsageFlagsKHR {
9776    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9777        const KNOWN: &[(Flags, &str)] = &[
9778            (VideoEncodeUsageFlagsKHR::DEFAULT.0, "DEFAULT"),
9779            (VideoEncodeUsageFlagsKHR::TRANSCODING.0, "TRANSCODING"),
9780            (VideoEncodeUsageFlagsKHR::STREAMING.0, "STREAMING"),
9781            (VideoEncodeUsageFlagsKHR::RECORDING.0, "RECORDING"),
9782            (VideoEncodeUsageFlagsKHR::CONFERENCING.0, "CONFERENCING"),
9783        ];
9784        debug_flags(f, KNOWN, self.0)
9785    }
9786}
9787impl fmt::Debug for VideoEndCodingFlagsKHR {
9788    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9789        const KNOWN: &[(Flags, &str)] = &[];
9790        debug_flags(f, KNOWN, self.0)
9791    }
9792}
9793impl fmt::Debug for VideoSessionCreateFlagsKHR {
9794    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9795        const KNOWN: &[(Flags, &str)] = &[
9796            (
9797                VideoSessionCreateFlagsKHR::PROTECTED_CONTENT.0,
9798                "PROTECTED_CONTENT",
9799            ),
9800            (
9801                VideoSessionCreateFlagsKHR::ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS.0,
9802                "ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS",
9803            ),
9804            (
9805                VideoSessionCreateFlagsKHR::INLINE_QUERIES.0,
9806                "INLINE_QUERIES",
9807            ),
9808            (
9809                VideoSessionCreateFlagsKHR::ALLOW_ENCODE_QUANTIZATION_DELTA_MAP.0,
9810                "ALLOW_ENCODE_QUANTIZATION_DELTA_MAP",
9811            ),
9812            (
9813                VideoSessionCreateFlagsKHR::ALLOW_ENCODE_EMPHASIS_MAP.0,
9814                "ALLOW_ENCODE_EMPHASIS_MAP",
9815            ),
9816            (
9817                VideoSessionCreateFlagsKHR::INLINE_SESSION_PARAMETERS.0,
9818                "INLINE_SESSION_PARAMETERS",
9819            ),
9820        ];
9821        debug_flags(f, KNOWN, self.0)
9822    }
9823}
9824impl fmt::Debug for VideoSessionParametersCreateFlagsKHR {
9825    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9826        const KNOWN: &[(Flags, &str)] = &[(
9827            VideoSessionParametersCreateFlagsKHR::QUANTIZATION_MAP_COMPATIBLE.0,
9828            "QUANTIZATION_MAP_COMPATIBLE",
9829        )];
9830        debug_flags(f, KNOWN, self.0)
9831    }
9832}
9833impl fmt::Debug for ViewportCoordinateSwizzleNV {
9834    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9835        let name = match *self {
9836            Self::POSITIVE_X => Some("POSITIVE_X"),
9837            Self::NEGATIVE_X => Some("NEGATIVE_X"),
9838            Self::POSITIVE_Y => Some("POSITIVE_Y"),
9839            Self::NEGATIVE_Y => Some("NEGATIVE_Y"),
9840            Self::POSITIVE_Z => Some("POSITIVE_Z"),
9841            Self::NEGATIVE_Z => Some("NEGATIVE_Z"),
9842            Self::POSITIVE_W => Some("POSITIVE_W"),
9843            Self::NEGATIVE_W => Some("NEGATIVE_W"),
9844            _ => None,
9845        };
9846        if let Some(x) = name {
9847            f.write_str(x)
9848        } else {
9849            self.0.fmt(f)
9850        }
9851    }
9852}
9853impl fmt::Debug for WaylandSurfaceCreateFlagsKHR {
9854    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9855        const KNOWN: &[(Flags, &str)] = &[];
9856        debug_flags(f, KNOWN, self.0)
9857    }
9858}
9859impl fmt::Debug for Win32SurfaceCreateFlagsKHR {
9860    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9861        const KNOWN: &[(Flags, &str)] = &[];
9862        debug_flags(f, KNOWN, self.0)
9863    }
9864}
9865impl fmt::Debug for XcbSurfaceCreateFlagsKHR {
9866    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9867        const KNOWN: &[(Flags, &str)] = &[];
9868        debug_flags(f, KNOWN, self.0)
9869    }
9870}
9871impl fmt::Debug for XlibSurfaceCreateFlagsKHR {
9872    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9873        const KNOWN: &[(Flags, &str)] = &[];
9874        debug_flags(f, KNOWN, self.0)
9875    }
9876}