1 // This file is auto-generated by vulkano autogen from vk.xml header version 1.3.238.
2 // It should not be edited manually. Changes should be made by editing autogen.
3 
4 #[doc = r" An enumeration of all the possible formats."]
5 #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6 #[repr(i32)]
7 #[allow(non_camel_case_types)]
8 #[non_exhaustive]
9 pub enum Format {
10     R4G4_UNORM_PACK8 = ash::vk::Format::R4G4_UNORM_PACK8.as_raw(),
11     R4G4B4A4_UNORM_PACK16 = ash::vk::Format::R4G4B4A4_UNORM_PACK16.as_raw(),
12     B4G4R4A4_UNORM_PACK16 = ash::vk::Format::B4G4R4A4_UNORM_PACK16.as_raw(),
13     R5G6B5_UNORM_PACK16 = ash::vk::Format::R5G6B5_UNORM_PACK16.as_raw(),
14     B5G6R5_UNORM_PACK16 = ash::vk::Format::B5G6R5_UNORM_PACK16.as_raw(),
15     R5G5B5A1_UNORM_PACK16 = ash::vk::Format::R5G5B5A1_UNORM_PACK16.as_raw(),
16     B5G5R5A1_UNORM_PACK16 = ash::vk::Format::B5G5R5A1_UNORM_PACK16.as_raw(),
17     A1R5G5B5_UNORM_PACK16 = ash::vk::Format::A1R5G5B5_UNORM_PACK16.as_raw(),
18     R8_UNORM = ash::vk::Format::R8_UNORM.as_raw(),
19     R8_SNORM = ash::vk::Format::R8_SNORM.as_raw(),
20     R8_USCALED = ash::vk::Format::R8_USCALED.as_raw(),
21     R8_SSCALED = ash::vk::Format::R8_SSCALED.as_raw(),
22     R8_UINT = ash::vk::Format::R8_UINT.as_raw(),
23     R8_SINT = ash::vk::Format::R8_SINT.as_raw(),
24     R8_SRGB = ash::vk::Format::R8_SRGB.as_raw(),
25     R8G8_UNORM = ash::vk::Format::R8G8_UNORM.as_raw(),
26     R8G8_SNORM = ash::vk::Format::R8G8_SNORM.as_raw(),
27     R8G8_USCALED = ash::vk::Format::R8G8_USCALED.as_raw(),
28     R8G8_SSCALED = ash::vk::Format::R8G8_SSCALED.as_raw(),
29     R8G8_UINT = ash::vk::Format::R8G8_UINT.as_raw(),
30     R8G8_SINT = ash::vk::Format::R8G8_SINT.as_raw(),
31     R8G8_SRGB = ash::vk::Format::R8G8_SRGB.as_raw(),
32     R8G8B8_UNORM = ash::vk::Format::R8G8B8_UNORM.as_raw(),
33     R8G8B8_SNORM = ash::vk::Format::R8G8B8_SNORM.as_raw(),
34     R8G8B8_USCALED = ash::vk::Format::R8G8B8_USCALED.as_raw(),
35     R8G8B8_SSCALED = ash::vk::Format::R8G8B8_SSCALED.as_raw(),
36     R8G8B8_UINT = ash::vk::Format::R8G8B8_UINT.as_raw(),
37     R8G8B8_SINT = ash::vk::Format::R8G8B8_SINT.as_raw(),
38     R8G8B8_SRGB = ash::vk::Format::R8G8B8_SRGB.as_raw(),
39     B8G8R8_UNORM = ash::vk::Format::B8G8R8_UNORM.as_raw(),
40     B8G8R8_SNORM = ash::vk::Format::B8G8R8_SNORM.as_raw(),
41     B8G8R8_USCALED = ash::vk::Format::B8G8R8_USCALED.as_raw(),
42     B8G8R8_SSCALED = ash::vk::Format::B8G8R8_SSCALED.as_raw(),
43     B8G8R8_UINT = ash::vk::Format::B8G8R8_UINT.as_raw(),
44     B8G8R8_SINT = ash::vk::Format::B8G8R8_SINT.as_raw(),
45     B8G8R8_SRGB = ash::vk::Format::B8G8R8_SRGB.as_raw(),
46     R8G8B8A8_UNORM = ash::vk::Format::R8G8B8A8_UNORM.as_raw(),
47     R8G8B8A8_SNORM = ash::vk::Format::R8G8B8A8_SNORM.as_raw(),
48     R8G8B8A8_USCALED = ash::vk::Format::R8G8B8A8_USCALED.as_raw(),
49     R8G8B8A8_SSCALED = ash::vk::Format::R8G8B8A8_SSCALED.as_raw(),
50     R8G8B8A8_UINT = ash::vk::Format::R8G8B8A8_UINT.as_raw(),
51     R8G8B8A8_SINT = ash::vk::Format::R8G8B8A8_SINT.as_raw(),
52     R8G8B8A8_SRGB = ash::vk::Format::R8G8B8A8_SRGB.as_raw(),
53     B8G8R8A8_UNORM = ash::vk::Format::B8G8R8A8_UNORM.as_raw(),
54     B8G8R8A8_SNORM = ash::vk::Format::B8G8R8A8_SNORM.as_raw(),
55     B8G8R8A8_USCALED = ash::vk::Format::B8G8R8A8_USCALED.as_raw(),
56     B8G8R8A8_SSCALED = ash::vk::Format::B8G8R8A8_SSCALED.as_raw(),
57     B8G8R8A8_UINT = ash::vk::Format::B8G8R8A8_UINT.as_raw(),
58     B8G8R8A8_SINT = ash::vk::Format::B8G8R8A8_SINT.as_raw(),
59     B8G8R8A8_SRGB = ash::vk::Format::B8G8R8A8_SRGB.as_raw(),
60     A8B8G8R8_UNORM_PACK32 = ash::vk::Format::A8B8G8R8_UNORM_PACK32.as_raw(),
61     A8B8G8R8_SNORM_PACK32 = ash::vk::Format::A8B8G8R8_SNORM_PACK32.as_raw(),
62     A8B8G8R8_USCALED_PACK32 = ash::vk::Format::A8B8G8R8_USCALED_PACK32.as_raw(),
63     A8B8G8R8_SSCALED_PACK32 = ash::vk::Format::A8B8G8R8_SSCALED_PACK32.as_raw(),
64     A8B8G8R8_UINT_PACK32 = ash::vk::Format::A8B8G8R8_UINT_PACK32.as_raw(),
65     A8B8G8R8_SINT_PACK32 = ash::vk::Format::A8B8G8R8_SINT_PACK32.as_raw(),
66     A8B8G8R8_SRGB_PACK32 = ash::vk::Format::A8B8G8R8_SRGB_PACK32.as_raw(),
67     A2R10G10B10_UNORM_PACK32 = ash::vk::Format::A2R10G10B10_UNORM_PACK32.as_raw(),
68     A2R10G10B10_SNORM_PACK32 = ash::vk::Format::A2R10G10B10_SNORM_PACK32.as_raw(),
69     A2R10G10B10_USCALED_PACK32 = ash::vk::Format::A2R10G10B10_USCALED_PACK32.as_raw(),
70     A2R10G10B10_SSCALED_PACK32 = ash::vk::Format::A2R10G10B10_SSCALED_PACK32.as_raw(),
71     A2R10G10B10_UINT_PACK32 = ash::vk::Format::A2R10G10B10_UINT_PACK32.as_raw(),
72     A2R10G10B10_SINT_PACK32 = ash::vk::Format::A2R10G10B10_SINT_PACK32.as_raw(),
73     A2B10G10R10_UNORM_PACK32 = ash::vk::Format::A2B10G10R10_UNORM_PACK32.as_raw(),
74     A2B10G10R10_SNORM_PACK32 = ash::vk::Format::A2B10G10R10_SNORM_PACK32.as_raw(),
75     A2B10G10R10_USCALED_PACK32 = ash::vk::Format::A2B10G10R10_USCALED_PACK32.as_raw(),
76     A2B10G10R10_SSCALED_PACK32 = ash::vk::Format::A2B10G10R10_SSCALED_PACK32.as_raw(),
77     A2B10G10R10_UINT_PACK32 = ash::vk::Format::A2B10G10R10_UINT_PACK32.as_raw(),
78     A2B10G10R10_SINT_PACK32 = ash::vk::Format::A2B10G10R10_SINT_PACK32.as_raw(),
79     R16_UNORM = ash::vk::Format::R16_UNORM.as_raw(),
80     R16_SNORM = ash::vk::Format::R16_SNORM.as_raw(),
81     R16_USCALED = ash::vk::Format::R16_USCALED.as_raw(),
82     R16_SSCALED = ash::vk::Format::R16_SSCALED.as_raw(),
83     R16_UINT = ash::vk::Format::R16_UINT.as_raw(),
84     R16_SINT = ash::vk::Format::R16_SINT.as_raw(),
85     R16_SFLOAT = ash::vk::Format::R16_SFLOAT.as_raw(),
86     R16G16_UNORM = ash::vk::Format::R16G16_UNORM.as_raw(),
87     R16G16_SNORM = ash::vk::Format::R16G16_SNORM.as_raw(),
88     R16G16_USCALED = ash::vk::Format::R16G16_USCALED.as_raw(),
89     R16G16_SSCALED = ash::vk::Format::R16G16_SSCALED.as_raw(),
90     R16G16_UINT = ash::vk::Format::R16G16_UINT.as_raw(),
91     R16G16_SINT = ash::vk::Format::R16G16_SINT.as_raw(),
92     R16G16_SFLOAT = ash::vk::Format::R16G16_SFLOAT.as_raw(),
93     R16G16B16_UNORM = ash::vk::Format::R16G16B16_UNORM.as_raw(),
94     R16G16B16_SNORM = ash::vk::Format::R16G16B16_SNORM.as_raw(),
95     R16G16B16_USCALED = ash::vk::Format::R16G16B16_USCALED.as_raw(),
96     R16G16B16_SSCALED = ash::vk::Format::R16G16B16_SSCALED.as_raw(),
97     R16G16B16_UINT = ash::vk::Format::R16G16B16_UINT.as_raw(),
98     R16G16B16_SINT = ash::vk::Format::R16G16B16_SINT.as_raw(),
99     R16G16B16_SFLOAT = ash::vk::Format::R16G16B16_SFLOAT.as_raw(),
100     R16G16B16A16_UNORM = ash::vk::Format::R16G16B16A16_UNORM.as_raw(),
101     R16G16B16A16_SNORM = ash::vk::Format::R16G16B16A16_SNORM.as_raw(),
102     R16G16B16A16_USCALED = ash::vk::Format::R16G16B16A16_USCALED.as_raw(),
103     R16G16B16A16_SSCALED = ash::vk::Format::R16G16B16A16_SSCALED.as_raw(),
104     R16G16B16A16_UINT = ash::vk::Format::R16G16B16A16_UINT.as_raw(),
105     R16G16B16A16_SINT = ash::vk::Format::R16G16B16A16_SINT.as_raw(),
106     R16G16B16A16_SFLOAT = ash::vk::Format::R16G16B16A16_SFLOAT.as_raw(),
107     R32_UINT = ash::vk::Format::R32_UINT.as_raw(),
108     R32_SINT = ash::vk::Format::R32_SINT.as_raw(),
109     R32_SFLOAT = ash::vk::Format::R32_SFLOAT.as_raw(),
110     R32G32_UINT = ash::vk::Format::R32G32_UINT.as_raw(),
111     R32G32_SINT = ash::vk::Format::R32G32_SINT.as_raw(),
112     R32G32_SFLOAT = ash::vk::Format::R32G32_SFLOAT.as_raw(),
113     R32G32B32_UINT = ash::vk::Format::R32G32B32_UINT.as_raw(),
114     R32G32B32_SINT = ash::vk::Format::R32G32B32_SINT.as_raw(),
115     R32G32B32_SFLOAT = ash::vk::Format::R32G32B32_SFLOAT.as_raw(),
116     R32G32B32A32_UINT = ash::vk::Format::R32G32B32A32_UINT.as_raw(),
117     R32G32B32A32_SINT = ash::vk::Format::R32G32B32A32_SINT.as_raw(),
118     R32G32B32A32_SFLOAT = ash::vk::Format::R32G32B32A32_SFLOAT.as_raw(),
119     R64_UINT = ash::vk::Format::R64_UINT.as_raw(),
120     R64_SINT = ash::vk::Format::R64_SINT.as_raw(),
121     R64_SFLOAT = ash::vk::Format::R64_SFLOAT.as_raw(),
122     R64G64_UINT = ash::vk::Format::R64G64_UINT.as_raw(),
123     R64G64_SINT = ash::vk::Format::R64G64_SINT.as_raw(),
124     R64G64_SFLOAT = ash::vk::Format::R64G64_SFLOAT.as_raw(),
125     R64G64B64_UINT = ash::vk::Format::R64G64B64_UINT.as_raw(),
126     R64G64B64_SINT = ash::vk::Format::R64G64B64_SINT.as_raw(),
127     R64G64B64_SFLOAT = ash::vk::Format::R64G64B64_SFLOAT.as_raw(),
128     R64G64B64A64_UINT = ash::vk::Format::R64G64B64A64_UINT.as_raw(),
129     R64G64B64A64_SINT = ash::vk::Format::R64G64B64A64_SINT.as_raw(),
130     R64G64B64A64_SFLOAT = ash::vk::Format::R64G64B64A64_SFLOAT.as_raw(),
131     B10G11R11_UFLOAT_PACK32 = ash::vk::Format::B10G11R11_UFLOAT_PACK32.as_raw(),
132     E5B9G9R9_UFLOAT_PACK32 = ash::vk::Format::E5B9G9R9_UFLOAT_PACK32.as_raw(),
133     D16_UNORM = ash::vk::Format::D16_UNORM.as_raw(),
134     X8_D24_UNORM_PACK32 = ash::vk::Format::X8_D24_UNORM_PACK32.as_raw(),
135     D32_SFLOAT = ash::vk::Format::D32_SFLOAT.as_raw(),
136     S8_UINT = ash::vk::Format::S8_UINT.as_raw(),
137     D16_UNORM_S8_UINT = ash::vk::Format::D16_UNORM_S8_UINT.as_raw(),
138     D24_UNORM_S8_UINT = ash::vk::Format::D24_UNORM_S8_UINT.as_raw(),
139     D32_SFLOAT_S8_UINT = ash::vk::Format::D32_SFLOAT_S8_UINT.as_raw(),
140     BC1_RGB_UNORM_BLOCK = ash::vk::Format::BC1_RGB_UNORM_BLOCK.as_raw(),
141     BC1_RGB_SRGB_BLOCK = ash::vk::Format::BC1_RGB_SRGB_BLOCK.as_raw(),
142     BC1_RGBA_UNORM_BLOCK = ash::vk::Format::BC1_RGBA_UNORM_BLOCK.as_raw(),
143     BC1_RGBA_SRGB_BLOCK = ash::vk::Format::BC1_RGBA_SRGB_BLOCK.as_raw(),
144     BC2_UNORM_BLOCK = ash::vk::Format::BC2_UNORM_BLOCK.as_raw(),
145     BC2_SRGB_BLOCK = ash::vk::Format::BC2_SRGB_BLOCK.as_raw(),
146     BC3_UNORM_BLOCK = ash::vk::Format::BC3_UNORM_BLOCK.as_raw(),
147     BC3_SRGB_BLOCK = ash::vk::Format::BC3_SRGB_BLOCK.as_raw(),
148     BC4_UNORM_BLOCK = ash::vk::Format::BC4_UNORM_BLOCK.as_raw(),
149     BC4_SNORM_BLOCK = ash::vk::Format::BC4_SNORM_BLOCK.as_raw(),
150     BC5_UNORM_BLOCK = ash::vk::Format::BC5_UNORM_BLOCK.as_raw(),
151     BC5_SNORM_BLOCK = ash::vk::Format::BC5_SNORM_BLOCK.as_raw(),
152     BC6H_UFLOAT_BLOCK = ash::vk::Format::BC6H_UFLOAT_BLOCK.as_raw(),
153     BC6H_SFLOAT_BLOCK = ash::vk::Format::BC6H_SFLOAT_BLOCK.as_raw(),
154     BC7_UNORM_BLOCK = ash::vk::Format::BC7_UNORM_BLOCK.as_raw(),
155     BC7_SRGB_BLOCK = ash::vk::Format::BC7_SRGB_BLOCK.as_raw(),
156     ETC2_R8G8B8_UNORM_BLOCK = ash::vk::Format::ETC2_R8G8B8_UNORM_BLOCK.as_raw(),
157     ETC2_R8G8B8_SRGB_BLOCK = ash::vk::Format::ETC2_R8G8B8_SRGB_BLOCK.as_raw(),
158     ETC2_R8G8B8A1_UNORM_BLOCK = ash::vk::Format::ETC2_R8G8B8A1_UNORM_BLOCK.as_raw(),
159     ETC2_R8G8B8A1_SRGB_BLOCK = ash::vk::Format::ETC2_R8G8B8A1_SRGB_BLOCK.as_raw(),
160     ETC2_R8G8B8A8_UNORM_BLOCK = ash::vk::Format::ETC2_R8G8B8A8_UNORM_BLOCK.as_raw(),
161     ETC2_R8G8B8A8_SRGB_BLOCK = ash::vk::Format::ETC2_R8G8B8A8_SRGB_BLOCK.as_raw(),
162     EAC_R11_UNORM_BLOCK = ash::vk::Format::EAC_R11_UNORM_BLOCK.as_raw(),
163     EAC_R11_SNORM_BLOCK = ash::vk::Format::EAC_R11_SNORM_BLOCK.as_raw(),
164     EAC_R11G11_UNORM_BLOCK = ash::vk::Format::EAC_R11G11_UNORM_BLOCK.as_raw(),
165     EAC_R11G11_SNORM_BLOCK = ash::vk::Format::EAC_R11G11_SNORM_BLOCK.as_raw(),
166     ASTC_4x4_UNORM_BLOCK = ash::vk::Format::ASTC_4X4_UNORM_BLOCK.as_raw(),
167     ASTC_4x4_SRGB_BLOCK = ash::vk::Format::ASTC_4X4_SRGB_BLOCK.as_raw(),
168     ASTC_5x4_UNORM_BLOCK = ash::vk::Format::ASTC_5X4_UNORM_BLOCK.as_raw(),
169     ASTC_5x4_SRGB_BLOCK = ash::vk::Format::ASTC_5X4_SRGB_BLOCK.as_raw(),
170     ASTC_5x5_UNORM_BLOCK = ash::vk::Format::ASTC_5X5_UNORM_BLOCK.as_raw(),
171     ASTC_5x5_SRGB_BLOCK = ash::vk::Format::ASTC_5X5_SRGB_BLOCK.as_raw(),
172     ASTC_6x5_UNORM_BLOCK = ash::vk::Format::ASTC_6X5_UNORM_BLOCK.as_raw(),
173     ASTC_6x5_SRGB_BLOCK = ash::vk::Format::ASTC_6X5_SRGB_BLOCK.as_raw(),
174     ASTC_6x6_UNORM_BLOCK = ash::vk::Format::ASTC_6X6_UNORM_BLOCK.as_raw(),
175     ASTC_6x6_SRGB_BLOCK = ash::vk::Format::ASTC_6X6_SRGB_BLOCK.as_raw(),
176     ASTC_8x5_UNORM_BLOCK = ash::vk::Format::ASTC_8X5_UNORM_BLOCK.as_raw(),
177     ASTC_8x5_SRGB_BLOCK = ash::vk::Format::ASTC_8X5_SRGB_BLOCK.as_raw(),
178     ASTC_8x6_UNORM_BLOCK = ash::vk::Format::ASTC_8X6_UNORM_BLOCK.as_raw(),
179     ASTC_8x6_SRGB_BLOCK = ash::vk::Format::ASTC_8X6_SRGB_BLOCK.as_raw(),
180     ASTC_8x8_UNORM_BLOCK = ash::vk::Format::ASTC_8X8_UNORM_BLOCK.as_raw(),
181     ASTC_8x8_SRGB_BLOCK = ash::vk::Format::ASTC_8X8_SRGB_BLOCK.as_raw(),
182     ASTC_10x5_UNORM_BLOCK = ash::vk::Format::ASTC_10X5_UNORM_BLOCK.as_raw(),
183     ASTC_10x5_SRGB_BLOCK = ash::vk::Format::ASTC_10X5_SRGB_BLOCK.as_raw(),
184     ASTC_10x6_UNORM_BLOCK = ash::vk::Format::ASTC_10X6_UNORM_BLOCK.as_raw(),
185     ASTC_10x6_SRGB_BLOCK = ash::vk::Format::ASTC_10X6_SRGB_BLOCK.as_raw(),
186     ASTC_10x8_UNORM_BLOCK = ash::vk::Format::ASTC_10X8_UNORM_BLOCK.as_raw(),
187     ASTC_10x8_SRGB_BLOCK = ash::vk::Format::ASTC_10X8_SRGB_BLOCK.as_raw(),
188     ASTC_10x10_UNORM_BLOCK = ash::vk::Format::ASTC_10X10_UNORM_BLOCK.as_raw(),
189     ASTC_10x10_SRGB_BLOCK = ash::vk::Format::ASTC_10X10_SRGB_BLOCK.as_raw(),
190     ASTC_12x10_UNORM_BLOCK = ash::vk::Format::ASTC_12X10_UNORM_BLOCK.as_raw(),
191     ASTC_12x10_SRGB_BLOCK = ash::vk::Format::ASTC_12X10_SRGB_BLOCK.as_raw(),
192     ASTC_12x12_UNORM_BLOCK = ash::vk::Format::ASTC_12X12_UNORM_BLOCK.as_raw(),
193     ASTC_12x12_SRGB_BLOCK = ash::vk::Format::ASTC_12X12_SRGB_BLOCK.as_raw(),
194     G8B8G8R8_422_UNORM = ash::vk::Format::G8B8G8R8_422_UNORM.as_raw(),
195     B8G8R8G8_422_UNORM = ash::vk::Format::B8G8R8G8_422_UNORM.as_raw(),
196     G8_B8_R8_3PLANE_420_UNORM = ash::vk::Format::G8_B8_R8_3PLANE_420_UNORM.as_raw(),
197     G8_B8R8_2PLANE_420_UNORM = ash::vk::Format::G8_B8R8_2PLANE_420_UNORM.as_raw(),
198     G8_B8_R8_3PLANE_422_UNORM = ash::vk::Format::G8_B8_R8_3PLANE_422_UNORM.as_raw(),
199     G8_B8R8_2PLANE_422_UNORM = ash::vk::Format::G8_B8R8_2PLANE_422_UNORM.as_raw(),
200     G8_B8_R8_3PLANE_444_UNORM = ash::vk::Format::G8_B8_R8_3PLANE_444_UNORM.as_raw(),
201     R10X6_UNORM_PACK16 = ash::vk::Format::R10X6_UNORM_PACK16.as_raw(),
202     R10X6G10X6_UNORM_2PACK16 = ash::vk::Format::R10X6G10X6_UNORM_2PACK16.as_raw(),
203     R10X6G10X6B10X6A10X6_UNORM_4PACK16 =
204         ash::vk::Format::R10X6G10X6B10X6A10X6_UNORM_4PACK16.as_raw(),
205     G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 =
206         ash::vk::Format::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16.as_raw(),
207     B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 =
208         ash::vk::Format::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16.as_raw(),
209     G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 =
210         ash::vk::Format::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16.as_raw(),
211     G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 =
212         ash::vk::Format::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16.as_raw(),
213     G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 =
214         ash::vk::Format::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16.as_raw(),
215     G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 =
216         ash::vk::Format::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16.as_raw(),
217     G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 =
218         ash::vk::Format::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16.as_raw(),
219     R12X4_UNORM_PACK16 = ash::vk::Format::R12X4_UNORM_PACK16.as_raw(),
220     R12X4G12X4_UNORM_2PACK16 = ash::vk::Format::R12X4G12X4_UNORM_2PACK16.as_raw(),
221     R12X4G12X4B12X4A12X4_UNORM_4PACK16 =
222         ash::vk::Format::R12X4G12X4B12X4A12X4_UNORM_4PACK16.as_raw(),
223     G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 =
224         ash::vk::Format::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16.as_raw(),
225     B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 =
226         ash::vk::Format::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16.as_raw(),
227     G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 =
228         ash::vk::Format::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16.as_raw(),
229     G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 =
230         ash::vk::Format::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16.as_raw(),
231     G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 =
232         ash::vk::Format::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16.as_raw(),
233     G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 =
234         ash::vk::Format::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16.as_raw(),
235     G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 =
236         ash::vk::Format::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16.as_raw(),
237     G16B16G16R16_422_UNORM = ash::vk::Format::G16B16G16R16_422_UNORM.as_raw(),
238     B16G16R16G16_422_UNORM = ash::vk::Format::B16G16R16G16_422_UNORM.as_raw(),
239     G16_B16_R16_3PLANE_420_UNORM = ash::vk::Format::G16_B16_R16_3PLANE_420_UNORM.as_raw(),
240     G16_B16R16_2PLANE_420_UNORM = ash::vk::Format::G16_B16R16_2PLANE_420_UNORM.as_raw(),
241     G16_B16_R16_3PLANE_422_UNORM = ash::vk::Format::G16_B16_R16_3PLANE_422_UNORM.as_raw(),
242     G16_B16R16_2PLANE_422_UNORM = ash::vk::Format::G16_B16R16_2PLANE_422_UNORM.as_raw(),
243     G16_B16_R16_3PLANE_444_UNORM = ash::vk::Format::G16_B16_R16_3PLANE_444_UNORM.as_raw(),
244     PVRTC1_2BPP_UNORM_BLOCK = ash::vk::Format::PVRTC1_2BPP_UNORM_BLOCK_IMG.as_raw(),
245     PVRTC1_4BPP_UNORM_BLOCK = ash::vk::Format::PVRTC1_4BPP_UNORM_BLOCK_IMG.as_raw(),
246     PVRTC2_2BPP_UNORM_BLOCK = ash::vk::Format::PVRTC2_2BPP_UNORM_BLOCK_IMG.as_raw(),
247     PVRTC2_4BPP_UNORM_BLOCK = ash::vk::Format::PVRTC2_4BPP_UNORM_BLOCK_IMG.as_raw(),
248     PVRTC1_2BPP_SRGB_BLOCK = ash::vk::Format::PVRTC1_2BPP_SRGB_BLOCK_IMG.as_raw(),
249     PVRTC1_4BPP_SRGB_BLOCK = ash::vk::Format::PVRTC1_4BPP_SRGB_BLOCK_IMG.as_raw(),
250     PVRTC2_2BPP_SRGB_BLOCK = ash::vk::Format::PVRTC2_2BPP_SRGB_BLOCK_IMG.as_raw(),
251     PVRTC2_4BPP_SRGB_BLOCK = ash::vk::Format::PVRTC2_4BPP_SRGB_BLOCK_IMG.as_raw(),
252     ASTC_4x4_SFLOAT_BLOCK = ash::vk::Format::ASTC_4X4_SFLOAT_BLOCK.as_raw(),
253     ASTC_5x4_SFLOAT_BLOCK = ash::vk::Format::ASTC_5X4_SFLOAT_BLOCK.as_raw(),
254     ASTC_5x5_SFLOAT_BLOCK = ash::vk::Format::ASTC_5X5_SFLOAT_BLOCK.as_raw(),
255     ASTC_6x5_SFLOAT_BLOCK = ash::vk::Format::ASTC_6X5_SFLOAT_BLOCK.as_raw(),
256     ASTC_6x6_SFLOAT_BLOCK = ash::vk::Format::ASTC_6X6_SFLOAT_BLOCK.as_raw(),
257     ASTC_8x5_SFLOAT_BLOCK = ash::vk::Format::ASTC_8X5_SFLOAT_BLOCK.as_raw(),
258     ASTC_8x6_SFLOAT_BLOCK = ash::vk::Format::ASTC_8X6_SFLOAT_BLOCK.as_raw(),
259     ASTC_8x8_SFLOAT_BLOCK = ash::vk::Format::ASTC_8X8_SFLOAT_BLOCK.as_raw(),
260     ASTC_10x5_SFLOAT_BLOCK = ash::vk::Format::ASTC_10X5_SFLOAT_BLOCK.as_raw(),
261     ASTC_10x6_SFLOAT_BLOCK = ash::vk::Format::ASTC_10X6_SFLOAT_BLOCK.as_raw(),
262     ASTC_10x8_SFLOAT_BLOCK = ash::vk::Format::ASTC_10X8_SFLOAT_BLOCK.as_raw(),
263     ASTC_10x10_SFLOAT_BLOCK = ash::vk::Format::ASTC_10X10_SFLOAT_BLOCK.as_raw(),
264     ASTC_12x10_SFLOAT_BLOCK = ash::vk::Format::ASTC_12X10_SFLOAT_BLOCK.as_raw(),
265     ASTC_12x12_SFLOAT_BLOCK = ash::vk::Format::ASTC_12X12_SFLOAT_BLOCK.as_raw(),
266     G8_B8R8_2PLANE_444_UNORM = ash::vk::Format::G8_B8R8_2PLANE_444_UNORM.as_raw(),
267     G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 =
268         ash::vk::Format::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16.as_raw(),
269     G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 =
270         ash::vk::Format::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16.as_raw(),
271     G16_B16R16_2PLANE_444_UNORM = ash::vk::Format::G16_B16R16_2PLANE_444_UNORM.as_raw(),
272     A4R4G4B4_UNORM_PACK16 = ash::vk::Format::A4R4G4B4_UNORM_PACK16.as_raw(),
273     A4B4G4R4_UNORM_PACK16 = ash::vk::Format::A4B4G4R4_UNORM_PACK16.as_raw(),
274     R16G16_S10_5_NV = ash::vk::Format::R16G16_S10_5_NV.as_raw(),
275 }
276 impl Format {
277     #[doc = r" Returns the aspects that images of this format have."]
aspects(self) -> ImageAspects278     pub fn aspects(self) -> ImageAspects {
279         match self {
280             Self::R4G4_UNORM_PACK8 => crate::image::ImageAspects::COLOR,
281             Self::R4G4B4A4_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
282             Self::B4G4R4A4_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
283             Self::R5G6B5_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
284             Self::B5G6R5_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
285             Self::R5G5B5A1_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
286             Self::B5G5R5A1_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
287             Self::A1R5G5B5_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
288             Self::R8_UNORM => crate::image::ImageAspects::COLOR,
289             Self::R8_SNORM => crate::image::ImageAspects::COLOR,
290             Self::R8_USCALED => crate::image::ImageAspects::COLOR,
291             Self::R8_SSCALED => crate::image::ImageAspects::COLOR,
292             Self::R8_UINT => crate::image::ImageAspects::COLOR,
293             Self::R8_SINT => crate::image::ImageAspects::COLOR,
294             Self::R8_SRGB => crate::image::ImageAspects::COLOR,
295             Self::R8G8_UNORM => crate::image::ImageAspects::COLOR,
296             Self::R8G8_SNORM => crate::image::ImageAspects::COLOR,
297             Self::R8G8_USCALED => crate::image::ImageAspects::COLOR,
298             Self::R8G8_SSCALED => crate::image::ImageAspects::COLOR,
299             Self::R8G8_UINT => crate::image::ImageAspects::COLOR,
300             Self::R8G8_SINT => crate::image::ImageAspects::COLOR,
301             Self::R8G8_SRGB => crate::image::ImageAspects::COLOR,
302             Self::R8G8B8_UNORM => crate::image::ImageAspects::COLOR,
303             Self::R8G8B8_SNORM => crate::image::ImageAspects::COLOR,
304             Self::R8G8B8_USCALED => crate::image::ImageAspects::COLOR,
305             Self::R8G8B8_SSCALED => crate::image::ImageAspects::COLOR,
306             Self::R8G8B8_UINT => crate::image::ImageAspects::COLOR,
307             Self::R8G8B8_SINT => crate::image::ImageAspects::COLOR,
308             Self::R8G8B8_SRGB => crate::image::ImageAspects::COLOR,
309             Self::B8G8R8_UNORM => crate::image::ImageAspects::COLOR,
310             Self::B8G8R8_SNORM => crate::image::ImageAspects::COLOR,
311             Self::B8G8R8_USCALED => crate::image::ImageAspects::COLOR,
312             Self::B8G8R8_SSCALED => crate::image::ImageAspects::COLOR,
313             Self::B8G8R8_UINT => crate::image::ImageAspects::COLOR,
314             Self::B8G8R8_SINT => crate::image::ImageAspects::COLOR,
315             Self::B8G8R8_SRGB => crate::image::ImageAspects::COLOR,
316             Self::R8G8B8A8_UNORM => crate::image::ImageAspects::COLOR,
317             Self::R8G8B8A8_SNORM => crate::image::ImageAspects::COLOR,
318             Self::R8G8B8A8_USCALED => crate::image::ImageAspects::COLOR,
319             Self::R8G8B8A8_SSCALED => crate::image::ImageAspects::COLOR,
320             Self::R8G8B8A8_UINT => crate::image::ImageAspects::COLOR,
321             Self::R8G8B8A8_SINT => crate::image::ImageAspects::COLOR,
322             Self::R8G8B8A8_SRGB => crate::image::ImageAspects::COLOR,
323             Self::B8G8R8A8_UNORM => crate::image::ImageAspects::COLOR,
324             Self::B8G8R8A8_SNORM => crate::image::ImageAspects::COLOR,
325             Self::B8G8R8A8_USCALED => crate::image::ImageAspects::COLOR,
326             Self::B8G8R8A8_SSCALED => crate::image::ImageAspects::COLOR,
327             Self::B8G8R8A8_UINT => crate::image::ImageAspects::COLOR,
328             Self::B8G8R8A8_SINT => crate::image::ImageAspects::COLOR,
329             Self::B8G8R8A8_SRGB => crate::image::ImageAspects::COLOR,
330             Self::A8B8G8R8_UNORM_PACK32 => crate::image::ImageAspects::COLOR,
331             Self::A8B8G8R8_SNORM_PACK32 => crate::image::ImageAspects::COLOR,
332             Self::A8B8G8R8_USCALED_PACK32 => crate::image::ImageAspects::COLOR,
333             Self::A8B8G8R8_SSCALED_PACK32 => crate::image::ImageAspects::COLOR,
334             Self::A8B8G8R8_UINT_PACK32 => crate::image::ImageAspects::COLOR,
335             Self::A8B8G8R8_SINT_PACK32 => crate::image::ImageAspects::COLOR,
336             Self::A8B8G8R8_SRGB_PACK32 => crate::image::ImageAspects::COLOR,
337             Self::A2R10G10B10_UNORM_PACK32 => crate::image::ImageAspects::COLOR,
338             Self::A2R10G10B10_SNORM_PACK32 => crate::image::ImageAspects::COLOR,
339             Self::A2R10G10B10_USCALED_PACK32 => crate::image::ImageAspects::COLOR,
340             Self::A2R10G10B10_SSCALED_PACK32 => crate::image::ImageAspects::COLOR,
341             Self::A2R10G10B10_UINT_PACK32 => crate::image::ImageAspects::COLOR,
342             Self::A2R10G10B10_SINT_PACK32 => crate::image::ImageAspects::COLOR,
343             Self::A2B10G10R10_UNORM_PACK32 => crate::image::ImageAspects::COLOR,
344             Self::A2B10G10R10_SNORM_PACK32 => crate::image::ImageAspects::COLOR,
345             Self::A2B10G10R10_USCALED_PACK32 => crate::image::ImageAspects::COLOR,
346             Self::A2B10G10R10_SSCALED_PACK32 => crate::image::ImageAspects::COLOR,
347             Self::A2B10G10R10_UINT_PACK32 => crate::image::ImageAspects::COLOR,
348             Self::A2B10G10R10_SINT_PACK32 => crate::image::ImageAspects::COLOR,
349             Self::R16_UNORM => crate::image::ImageAspects::COLOR,
350             Self::R16_SNORM => crate::image::ImageAspects::COLOR,
351             Self::R16_USCALED => crate::image::ImageAspects::COLOR,
352             Self::R16_SSCALED => crate::image::ImageAspects::COLOR,
353             Self::R16_UINT => crate::image::ImageAspects::COLOR,
354             Self::R16_SINT => crate::image::ImageAspects::COLOR,
355             Self::R16_SFLOAT => crate::image::ImageAspects::COLOR,
356             Self::R16G16_UNORM => crate::image::ImageAspects::COLOR,
357             Self::R16G16_SNORM => crate::image::ImageAspects::COLOR,
358             Self::R16G16_USCALED => crate::image::ImageAspects::COLOR,
359             Self::R16G16_SSCALED => crate::image::ImageAspects::COLOR,
360             Self::R16G16_UINT => crate::image::ImageAspects::COLOR,
361             Self::R16G16_SINT => crate::image::ImageAspects::COLOR,
362             Self::R16G16_SFLOAT => crate::image::ImageAspects::COLOR,
363             Self::R16G16B16_UNORM => crate::image::ImageAspects::COLOR,
364             Self::R16G16B16_SNORM => crate::image::ImageAspects::COLOR,
365             Self::R16G16B16_USCALED => crate::image::ImageAspects::COLOR,
366             Self::R16G16B16_SSCALED => crate::image::ImageAspects::COLOR,
367             Self::R16G16B16_UINT => crate::image::ImageAspects::COLOR,
368             Self::R16G16B16_SINT => crate::image::ImageAspects::COLOR,
369             Self::R16G16B16_SFLOAT => crate::image::ImageAspects::COLOR,
370             Self::R16G16B16A16_UNORM => crate::image::ImageAspects::COLOR,
371             Self::R16G16B16A16_SNORM => crate::image::ImageAspects::COLOR,
372             Self::R16G16B16A16_USCALED => crate::image::ImageAspects::COLOR,
373             Self::R16G16B16A16_SSCALED => crate::image::ImageAspects::COLOR,
374             Self::R16G16B16A16_UINT => crate::image::ImageAspects::COLOR,
375             Self::R16G16B16A16_SINT => crate::image::ImageAspects::COLOR,
376             Self::R16G16B16A16_SFLOAT => crate::image::ImageAspects::COLOR,
377             Self::R32_UINT => crate::image::ImageAspects::COLOR,
378             Self::R32_SINT => crate::image::ImageAspects::COLOR,
379             Self::R32_SFLOAT => crate::image::ImageAspects::COLOR,
380             Self::R32G32_UINT => crate::image::ImageAspects::COLOR,
381             Self::R32G32_SINT => crate::image::ImageAspects::COLOR,
382             Self::R32G32_SFLOAT => crate::image::ImageAspects::COLOR,
383             Self::R32G32B32_UINT => crate::image::ImageAspects::COLOR,
384             Self::R32G32B32_SINT => crate::image::ImageAspects::COLOR,
385             Self::R32G32B32_SFLOAT => crate::image::ImageAspects::COLOR,
386             Self::R32G32B32A32_UINT => crate::image::ImageAspects::COLOR,
387             Self::R32G32B32A32_SINT => crate::image::ImageAspects::COLOR,
388             Self::R32G32B32A32_SFLOAT => crate::image::ImageAspects::COLOR,
389             Self::R64_UINT => crate::image::ImageAspects::COLOR,
390             Self::R64_SINT => crate::image::ImageAspects::COLOR,
391             Self::R64_SFLOAT => crate::image::ImageAspects::COLOR,
392             Self::R64G64_UINT => crate::image::ImageAspects::COLOR,
393             Self::R64G64_SINT => crate::image::ImageAspects::COLOR,
394             Self::R64G64_SFLOAT => crate::image::ImageAspects::COLOR,
395             Self::R64G64B64_UINT => crate::image::ImageAspects::COLOR,
396             Self::R64G64B64_SINT => crate::image::ImageAspects::COLOR,
397             Self::R64G64B64_SFLOAT => crate::image::ImageAspects::COLOR,
398             Self::R64G64B64A64_UINT => crate::image::ImageAspects::COLOR,
399             Self::R64G64B64A64_SINT => crate::image::ImageAspects::COLOR,
400             Self::R64G64B64A64_SFLOAT => crate::image::ImageAspects::COLOR,
401             Self::B10G11R11_UFLOAT_PACK32 => crate::image::ImageAspects::COLOR,
402             Self::E5B9G9R9_UFLOAT_PACK32 => crate::image::ImageAspects::COLOR,
403             Self::D16_UNORM => crate::image::ImageAspects::DEPTH,
404             Self::X8_D24_UNORM_PACK32 => crate::image::ImageAspects::DEPTH,
405             Self::D32_SFLOAT => crate::image::ImageAspects::DEPTH,
406             Self::S8_UINT => crate::image::ImageAspects::STENCIL,
407             Self::D16_UNORM_S8_UINT => {
408                 crate::image::ImageAspects::DEPTH | crate::image::ImageAspects::STENCIL
409             }
410             Self::D24_UNORM_S8_UINT => {
411                 crate::image::ImageAspects::DEPTH | crate::image::ImageAspects::STENCIL
412             }
413             Self::D32_SFLOAT_S8_UINT => {
414                 crate::image::ImageAspects::DEPTH | crate::image::ImageAspects::STENCIL
415             }
416             Self::BC1_RGB_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
417             Self::BC1_RGB_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
418             Self::BC1_RGBA_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
419             Self::BC1_RGBA_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
420             Self::BC2_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
421             Self::BC2_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
422             Self::BC3_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
423             Self::BC3_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
424             Self::BC4_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
425             Self::BC4_SNORM_BLOCK => crate::image::ImageAspects::COLOR,
426             Self::BC5_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
427             Self::BC5_SNORM_BLOCK => crate::image::ImageAspects::COLOR,
428             Self::BC6H_UFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
429             Self::BC6H_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
430             Self::BC7_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
431             Self::BC7_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
432             Self::ETC2_R8G8B8_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
433             Self::ETC2_R8G8B8_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
434             Self::ETC2_R8G8B8A1_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
435             Self::ETC2_R8G8B8A1_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
436             Self::ETC2_R8G8B8A8_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
437             Self::ETC2_R8G8B8A8_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
438             Self::EAC_R11_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
439             Self::EAC_R11_SNORM_BLOCK => crate::image::ImageAspects::COLOR,
440             Self::EAC_R11G11_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
441             Self::EAC_R11G11_SNORM_BLOCK => crate::image::ImageAspects::COLOR,
442             Self::ASTC_4x4_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
443             Self::ASTC_4x4_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
444             Self::ASTC_5x4_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
445             Self::ASTC_5x4_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
446             Self::ASTC_5x5_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
447             Self::ASTC_5x5_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
448             Self::ASTC_6x5_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
449             Self::ASTC_6x5_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
450             Self::ASTC_6x6_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
451             Self::ASTC_6x6_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
452             Self::ASTC_8x5_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
453             Self::ASTC_8x5_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
454             Self::ASTC_8x6_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
455             Self::ASTC_8x6_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
456             Self::ASTC_8x8_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
457             Self::ASTC_8x8_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
458             Self::ASTC_10x5_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
459             Self::ASTC_10x5_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
460             Self::ASTC_10x6_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
461             Self::ASTC_10x6_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
462             Self::ASTC_10x8_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
463             Self::ASTC_10x8_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
464             Self::ASTC_10x10_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
465             Self::ASTC_10x10_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
466             Self::ASTC_12x10_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
467             Self::ASTC_12x10_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
468             Self::ASTC_12x12_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
469             Self::ASTC_12x12_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
470             Self::G8B8G8R8_422_UNORM => crate::image::ImageAspects::COLOR,
471             Self::B8G8R8G8_422_UNORM => crate::image::ImageAspects::COLOR,
472             Self::G8_B8_R8_3PLANE_420_UNORM => {
473                 crate::image::ImageAspects::COLOR
474                     | crate::image::ImageAspects::PLANE_0
475                     | crate::image::ImageAspects::PLANE_1
476                     | crate::image::ImageAspects::PLANE_2
477             }
478             Self::G8_B8R8_2PLANE_420_UNORM => {
479                 crate::image::ImageAspects::COLOR
480                     | crate::image::ImageAspects::PLANE_0
481                     | crate::image::ImageAspects::PLANE_1
482             }
483             Self::G8_B8_R8_3PLANE_422_UNORM => {
484                 crate::image::ImageAspects::COLOR
485                     | crate::image::ImageAspects::PLANE_0
486                     | crate::image::ImageAspects::PLANE_1
487                     | crate::image::ImageAspects::PLANE_2
488             }
489             Self::G8_B8R8_2PLANE_422_UNORM => {
490                 crate::image::ImageAspects::COLOR
491                     | crate::image::ImageAspects::PLANE_0
492                     | crate::image::ImageAspects::PLANE_1
493             }
494             Self::G8_B8_R8_3PLANE_444_UNORM => {
495                 crate::image::ImageAspects::COLOR
496                     | crate::image::ImageAspects::PLANE_0
497                     | crate::image::ImageAspects::PLANE_1
498                     | crate::image::ImageAspects::PLANE_2
499             }
500             Self::R10X6_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
501             Self::R10X6G10X6_UNORM_2PACK16 => crate::image::ImageAspects::COLOR,
502             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => crate::image::ImageAspects::COLOR,
503             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => crate::image::ImageAspects::COLOR,
504             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => crate::image::ImageAspects::COLOR,
505             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
506                 crate::image::ImageAspects::COLOR
507                     | crate::image::ImageAspects::PLANE_0
508                     | crate::image::ImageAspects::PLANE_1
509                     | crate::image::ImageAspects::PLANE_2
510             }
511             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
512                 crate::image::ImageAspects::COLOR
513                     | crate::image::ImageAspects::PLANE_0
514                     | crate::image::ImageAspects::PLANE_1
515             }
516             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
517                 crate::image::ImageAspects::COLOR
518                     | crate::image::ImageAspects::PLANE_0
519                     | crate::image::ImageAspects::PLANE_1
520                     | crate::image::ImageAspects::PLANE_2
521             }
522             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
523                 crate::image::ImageAspects::COLOR
524                     | crate::image::ImageAspects::PLANE_0
525                     | crate::image::ImageAspects::PLANE_1
526             }
527             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
528                 crate::image::ImageAspects::COLOR
529                     | crate::image::ImageAspects::PLANE_0
530                     | crate::image::ImageAspects::PLANE_1
531                     | crate::image::ImageAspects::PLANE_2
532             }
533             Self::R12X4_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
534             Self::R12X4G12X4_UNORM_2PACK16 => crate::image::ImageAspects::COLOR,
535             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => crate::image::ImageAspects::COLOR,
536             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => crate::image::ImageAspects::COLOR,
537             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => crate::image::ImageAspects::COLOR,
538             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
539                 crate::image::ImageAspects::COLOR
540                     | crate::image::ImageAspects::PLANE_0
541                     | crate::image::ImageAspects::PLANE_1
542                     | crate::image::ImageAspects::PLANE_2
543             }
544             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
545                 crate::image::ImageAspects::COLOR
546                     | crate::image::ImageAspects::PLANE_0
547                     | crate::image::ImageAspects::PLANE_1
548             }
549             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
550                 crate::image::ImageAspects::COLOR
551                     | crate::image::ImageAspects::PLANE_0
552                     | crate::image::ImageAspects::PLANE_1
553                     | crate::image::ImageAspects::PLANE_2
554             }
555             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
556                 crate::image::ImageAspects::COLOR
557                     | crate::image::ImageAspects::PLANE_0
558                     | crate::image::ImageAspects::PLANE_1
559             }
560             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
561                 crate::image::ImageAspects::COLOR
562                     | crate::image::ImageAspects::PLANE_0
563                     | crate::image::ImageAspects::PLANE_1
564                     | crate::image::ImageAspects::PLANE_2
565             }
566             Self::G16B16G16R16_422_UNORM => crate::image::ImageAspects::COLOR,
567             Self::B16G16R16G16_422_UNORM => crate::image::ImageAspects::COLOR,
568             Self::G16_B16_R16_3PLANE_420_UNORM => {
569                 crate::image::ImageAspects::COLOR
570                     | crate::image::ImageAspects::PLANE_0
571                     | crate::image::ImageAspects::PLANE_1
572                     | crate::image::ImageAspects::PLANE_2
573             }
574             Self::G16_B16R16_2PLANE_420_UNORM => {
575                 crate::image::ImageAspects::COLOR
576                     | crate::image::ImageAspects::PLANE_0
577                     | crate::image::ImageAspects::PLANE_1
578             }
579             Self::G16_B16_R16_3PLANE_422_UNORM => {
580                 crate::image::ImageAspects::COLOR
581                     | crate::image::ImageAspects::PLANE_0
582                     | crate::image::ImageAspects::PLANE_1
583                     | crate::image::ImageAspects::PLANE_2
584             }
585             Self::G16_B16R16_2PLANE_422_UNORM => {
586                 crate::image::ImageAspects::COLOR
587                     | crate::image::ImageAspects::PLANE_0
588                     | crate::image::ImageAspects::PLANE_1
589             }
590             Self::G16_B16_R16_3PLANE_444_UNORM => {
591                 crate::image::ImageAspects::COLOR
592                     | crate::image::ImageAspects::PLANE_0
593                     | crate::image::ImageAspects::PLANE_1
594                     | crate::image::ImageAspects::PLANE_2
595             }
596             Self::PVRTC1_2BPP_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
597             Self::PVRTC1_4BPP_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
598             Self::PVRTC2_2BPP_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
599             Self::PVRTC2_4BPP_UNORM_BLOCK => crate::image::ImageAspects::COLOR,
600             Self::PVRTC1_2BPP_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
601             Self::PVRTC1_4BPP_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
602             Self::PVRTC2_2BPP_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
603             Self::PVRTC2_4BPP_SRGB_BLOCK => crate::image::ImageAspects::COLOR,
604             Self::ASTC_4x4_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
605             Self::ASTC_5x4_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
606             Self::ASTC_5x5_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
607             Self::ASTC_6x5_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
608             Self::ASTC_6x6_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
609             Self::ASTC_8x5_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
610             Self::ASTC_8x6_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
611             Self::ASTC_8x8_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
612             Self::ASTC_10x5_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
613             Self::ASTC_10x6_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
614             Self::ASTC_10x8_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
615             Self::ASTC_10x10_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
616             Self::ASTC_12x10_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
617             Self::ASTC_12x12_SFLOAT_BLOCK => crate::image::ImageAspects::COLOR,
618             Self::G8_B8R8_2PLANE_444_UNORM => {
619                 crate::image::ImageAspects::COLOR
620                     | crate::image::ImageAspects::PLANE_0
621                     | crate::image::ImageAspects::PLANE_1
622             }
623             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
624                 crate::image::ImageAspects::COLOR
625                     | crate::image::ImageAspects::PLANE_0
626                     | crate::image::ImageAspects::PLANE_1
627             }
628             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
629                 crate::image::ImageAspects::COLOR
630                     | crate::image::ImageAspects::PLANE_0
631                     | crate::image::ImageAspects::PLANE_1
632             }
633             Self::G16_B16R16_2PLANE_444_UNORM => {
634                 crate::image::ImageAspects::COLOR
635                     | crate::image::ImageAspects::PLANE_0
636                     | crate::image::ImageAspects::PLANE_1
637             }
638             Self::A4R4G4B4_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
639             Self::A4B4G4R4_UNORM_PACK16 => crate::image::ImageAspects::COLOR,
640             Self::R16G16_S10_5_NV => crate::image::ImageAspects::COLOR,
641         }
642     }
643     #[doc = r" Returns the extent in texels (horizontally and vertically) of a single texel"]
644     #[doc = r" block of this format. A texel block is a rectangle of pixels that is represented by"]
645     #[doc = r" a single element of this format. It is also the minimum granularity of the extent of"]
646     #[doc = r" an image; images must always have an extent that's a multiple of the block extent."]
647     #[doc = r""]
648     #[doc = r" For normal formats, the block extent is [1, 1, 1], meaning that each element of the"]
649     #[doc = r" format represents one texel. Block-compressed formats encode multiple texels into"]
650     #[doc = r" a single element. The 422 and 420 YCbCr formats have a block extent of [2, 1, 1] and"]
651     #[doc = r" [2, 2, 1] respectively, as the red and blue components are shared across multiple"]
652     #[doc = r" texels."]
block_extent(self) -> [u32; 3]653     pub fn block_extent(self) -> [u32; 3] {
654         match self {
655             Self::BC1_RGB_UNORM_BLOCK => [4, 4, 1],
656             Self::BC1_RGB_SRGB_BLOCK => [4, 4, 1],
657             Self::BC1_RGBA_UNORM_BLOCK => [4, 4, 1],
658             Self::BC1_RGBA_SRGB_BLOCK => [4, 4, 1],
659             Self::BC2_UNORM_BLOCK => [4, 4, 1],
660             Self::BC2_SRGB_BLOCK => [4, 4, 1],
661             Self::BC3_UNORM_BLOCK => [4, 4, 1],
662             Self::BC3_SRGB_BLOCK => [4, 4, 1],
663             Self::BC4_UNORM_BLOCK => [4, 4, 1],
664             Self::BC4_SNORM_BLOCK => [4, 4, 1],
665             Self::BC5_UNORM_BLOCK => [4, 4, 1],
666             Self::BC5_SNORM_BLOCK => [4, 4, 1],
667             Self::BC6H_UFLOAT_BLOCK => [4, 4, 1],
668             Self::BC6H_SFLOAT_BLOCK => [4, 4, 1],
669             Self::BC7_UNORM_BLOCK => [4, 4, 1],
670             Self::BC7_SRGB_BLOCK => [4, 4, 1],
671             Self::ETC2_R8G8B8_UNORM_BLOCK => [4, 4, 1],
672             Self::ETC2_R8G8B8_SRGB_BLOCK => [4, 4, 1],
673             Self::ETC2_R8G8B8A1_UNORM_BLOCK => [4, 4, 1],
674             Self::ETC2_R8G8B8A1_SRGB_BLOCK => [4, 4, 1],
675             Self::ETC2_R8G8B8A8_UNORM_BLOCK => [4, 4, 1],
676             Self::ETC2_R8G8B8A8_SRGB_BLOCK => [4, 4, 1],
677             Self::EAC_R11_UNORM_BLOCK => [4, 4, 1],
678             Self::EAC_R11_SNORM_BLOCK => [4, 4, 1],
679             Self::EAC_R11G11_UNORM_BLOCK => [4, 4, 1],
680             Self::EAC_R11G11_SNORM_BLOCK => [4, 4, 1],
681             Self::ASTC_4x4_UNORM_BLOCK => [4, 4, 1],
682             Self::ASTC_4x4_SRGB_BLOCK => [4, 4, 1],
683             Self::ASTC_5x4_UNORM_BLOCK => [5, 4, 1],
684             Self::ASTC_5x4_SRGB_BLOCK => [5, 4, 1],
685             Self::ASTC_5x5_UNORM_BLOCK => [5, 5, 1],
686             Self::ASTC_5x5_SRGB_BLOCK => [5, 5, 1],
687             Self::ASTC_6x5_UNORM_BLOCK => [6, 5, 1],
688             Self::ASTC_6x5_SRGB_BLOCK => [6, 5, 1],
689             Self::ASTC_6x6_UNORM_BLOCK => [6, 6, 1],
690             Self::ASTC_6x6_SRGB_BLOCK => [6, 6, 1],
691             Self::ASTC_8x5_UNORM_BLOCK => [8, 5, 1],
692             Self::ASTC_8x5_SRGB_BLOCK => [8, 5, 1],
693             Self::ASTC_8x6_UNORM_BLOCK => [8, 6, 1],
694             Self::ASTC_8x6_SRGB_BLOCK => [8, 6, 1],
695             Self::ASTC_8x8_UNORM_BLOCK => [8, 8, 1],
696             Self::ASTC_8x8_SRGB_BLOCK => [8, 8, 1],
697             Self::ASTC_10x5_UNORM_BLOCK => [10, 5, 1],
698             Self::ASTC_10x5_SRGB_BLOCK => [10, 5, 1],
699             Self::ASTC_10x6_UNORM_BLOCK => [10, 6, 1],
700             Self::ASTC_10x6_SRGB_BLOCK => [10, 6, 1],
701             Self::ASTC_10x8_UNORM_BLOCK => [10, 8, 1],
702             Self::ASTC_10x8_SRGB_BLOCK => [10, 8, 1],
703             Self::ASTC_10x10_UNORM_BLOCK => [10, 10, 1],
704             Self::ASTC_10x10_SRGB_BLOCK => [10, 10, 1],
705             Self::ASTC_12x10_UNORM_BLOCK => [12, 10, 1],
706             Self::ASTC_12x10_SRGB_BLOCK => [12, 10, 1],
707             Self::ASTC_12x12_UNORM_BLOCK => [12, 12, 1],
708             Self::ASTC_12x12_SRGB_BLOCK => [12, 12, 1],
709             Self::G8B8G8R8_422_UNORM => [2, 1, 1],
710             Self::B8G8R8G8_422_UNORM => [2, 1, 1],
711             Self::G8_B8_R8_3PLANE_420_UNORM => [2, 2, 1],
712             Self::G8_B8R8_2PLANE_420_UNORM => [2, 2, 1],
713             Self::G8_B8_R8_3PLANE_422_UNORM => [2, 1, 1],
714             Self::G8_B8R8_2PLANE_422_UNORM => [2, 1, 1],
715             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => [2, 1, 1],
716             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => [2, 1, 1],
717             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => [2, 2, 1],
718             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => [2, 2, 1],
719             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => [2, 1, 1],
720             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => [2, 1, 1],
721             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => [2, 1, 1],
722             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => [2, 1, 1],
723             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => [2, 2, 1],
724             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => [2, 2, 1],
725             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => [2, 1, 1],
726             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => [2, 1, 1],
727             Self::G16B16G16R16_422_UNORM => [2, 1, 1],
728             Self::B16G16R16G16_422_UNORM => [2, 1, 1],
729             Self::G16_B16_R16_3PLANE_420_UNORM => [2, 2, 1],
730             Self::G16_B16R16_2PLANE_420_UNORM => [2, 2, 1],
731             Self::G16_B16_R16_3PLANE_422_UNORM => [2, 1, 1],
732             Self::G16_B16R16_2PLANE_422_UNORM => [2, 1, 1],
733             Self::PVRTC1_2BPP_UNORM_BLOCK => [8, 4, 1],
734             Self::PVRTC1_4BPP_UNORM_BLOCK => [4, 4, 1],
735             Self::PVRTC2_2BPP_UNORM_BLOCK => [8, 4, 1],
736             Self::PVRTC2_4BPP_UNORM_BLOCK => [4, 4, 1],
737             Self::PVRTC1_2BPP_SRGB_BLOCK => [8, 4, 1],
738             Self::PVRTC1_4BPP_SRGB_BLOCK => [4, 4, 1],
739             Self::PVRTC2_2BPP_SRGB_BLOCK => [8, 4, 1],
740             Self::PVRTC2_4BPP_SRGB_BLOCK => [4, 4, 1],
741             Self::ASTC_4x4_SFLOAT_BLOCK => [4, 4, 1],
742             Self::ASTC_5x4_SFLOAT_BLOCK => [5, 4, 1],
743             Self::ASTC_5x5_SFLOAT_BLOCK => [5, 5, 1],
744             Self::ASTC_6x5_SFLOAT_BLOCK => [6, 5, 1],
745             Self::ASTC_6x6_SFLOAT_BLOCK => [6, 6, 1],
746             Self::ASTC_8x5_SFLOAT_BLOCK => [8, 5, 1],
747             Self::ASTC_8x6_SFLOAT_BLOCK => [8, 6, 1],
748             Self::ASTC_8x8_SFLOAT_BLOCK => [8, 8, 1],
749             Self::ASTC_10x5_SFLOAT_BLOCK => [10, 5, 1],
750             Self::ASTC_10x6_SFLOAT_BLOCK => [10, 6, 1],
751             Self::ASTC_10x8_SFLOAT_BLOCK => [10, 8, 1],
752             Self::ASTC_10x10_SFLOAT_BLOCK => [10, 10, 1],
753             Self::ASTC_12x10_SFLOAT_BLOCK => [12, 10, 1],
754             Self::ASTC_12x12_SFLOAT_BLOCK => [12, 12, 1],
755             _ => [1, 1, 1],
756         }
757     }
758     #[doc = r" Returns the size in bytes of a single texel block of this format. Returns `None`"]
759     #[doc = r" if the texel block size is not well-defined for this format."]
760     #[doc = r""]
761     #[doc = r" For regular formats, this is the size of a single texel, but for more specialized"]
762     #[doc = r" formats this may be the size of multiple texels."]
763     #[doc = r""]
764     #[doc = r" Depth/stencil formats are considered to have an opaque memory representation, and do"]
765     #[doc = r" not have a well-defined size. Multi-planar formats store the color components"]
766     #[doc = r" disjointly in memory, and therefore do not have a well-defined size for all"]
767     #[doc = r" components as a whole. The individual planes do have a well-defined size."]
block_size(self) -> Option<DeviceSize>768     pub fn block_size(self) -> Option<DeviceSize> {
769         match self {
770             Self::R4G4_UNORM_PACK8 => Some(1),
771             Self::R4G4B4A4_UNORM_PACK16 => Some(2),
772             Self::B4G4R4A4_UNORM_PACK16 => Some(2),
773             Self::R5G6B5_UNORM_PACK16 => Some(2),
774             Self::B5G6R5_UNORM_PACK16 => Some(2),
775             Self::R5G5B5A1_UNORM_PACK16 => Some(2),
776             Self::B5G5R5A1_UNORM_PACK16 => Some(2),
777             Self::A1R5G5B5_UNORM_PACK16 => Some(2),
778             Self::R8_UNORM => Some(1),
779             Self::R8_SNORM => Some(1),
780             Self::R8_USCALED => Some(1),
781             Self::R8_SSCALED => Some(1),
782             Self::R8_UINT => Some(1),
783             Self::R8_SINT => Some(1),
784             Self::R8_SRGB => Some(1),
785             Self::R8G8_UNORM => Some(2),
786             Self::R8G8_SNORM => Some(2),
787             Self::R8G8_USCALED => Some(2),
788             Self::R8G8_SSCALED => Some(2),
789             Self::R8G8_UINT => Some(2),
790             Self::R8G8_SINT => Some(2),
791             Self::R8G8_SRGB => Some(2),
792             Self::R8G8B8_UNORM => Some(3),
793             Self::R8G8B8_SNORM => Some(3),
794             Self::R8G8B8_USCALED => Some(3),
795             Self::R8G8B8_SSCALED => Some(3),
796             Self::R8G8B8_UINT => Some(3),
797             Self::R8G8B8_SINT => Some(3),
798             Self::R8G8B8_SRGB => Some(3),
799             Self::B8G8R8_UNORM => Some(3),
800             Self::B8G8R8_SNORM => Some(3),
801             Self::B8G8R8_USCALED => Some(3),
802             Self::B8G8R8_SSCALED => Some(3),
803             Self::B8G8R8_UINT => Some(3),
804             Self::B8G8R8_SINT => Some(3),
805             Self::B8G8R8_SRGB => Some(3),
806             Self::R8G8B8A8_UNORM => Some(4),
807             Self::R8G8B8A8_SNORM => Some(4),
808             Self::R8G8B8A8_USCALED => Some(4),
809             Self::R8G8B8A8_SSCALED => Some(4),
810             Self::R8G8B8A8_UINT => Some(4),
811             Self::R8G8B8A8_SINT => Some(4),
812             Self::R8G8B8A8_SRGB => Some(4),
813             Self::B8G8R8A8_UNORM => Some(4),
814             Self::B8G8R8A8_SNORM => Some(4),
815             Self::B8G8R8A8_USCALED => Some(4),
816             Self::B8G8R8A8_SSCALED => Some(4),
817             Self::B8G8R8A8_UINT => Some(4),
818             Self::B8G8R8A8_SINT => Some(4),
819             Self::B8G8R8A8_SRGB => Some(4),
820             Self::A8B8G8R8_UNORM_PACK32 => Some(4),
821             Self::A8B8G8R8_SNORM_PACK32 => Some(4),
822             Self::A8B8G8R8_USCALED_PACK32 => Some(4),
823             Self::A8B8G8R8_SSCALED_PACK32 => Some(4),
824             Self::A8B8G8R8_UINT_PACK32 => Some(4),
825             Self::A8B8G8R8_SINT_PACK32 => Some(4),
826             Self::A8B8G8R8_SRGB_PACK32 => Some(4),
827             Self::A2R10G10B10_UNORM_PACK32 => Some(4),
828             Self::A2R10G10B10_SNORM_PACK32 => Some(4),
829             Self::A2R10G10B10_USCALED_PACK32 => Some(4),
830             Self::A2R10G10B10_SSCALED_PACK32 => Some(4),
831             Self::A2R10G10B10_UINT_PACK32 => Some(4),
832             Self::A2R10G10B10_SINT_PACK32 => Some(4),
833             Self::A2B10G10R10_UNORM_PACK32 => Some(4),
834             Self::A2B10G10R10_SNORM_PACK32 => Some(4),
835             Self::A2B10G10R10_USCALED_PACK32 => Some(4),
836             Self::A2B10G10R10_SSCALED_PACK32 => Some(4),
837             Self::A2B10G10R10_UINT_PACK32 => Some(4),
838             Self::A2B10G10R10_SINT_PACK32 => Some(4),
839             Self::R16_UNORM => Some(2),
840             Self::R16_SNORM => Some(2),
841             Self::R16_USCALED => Some(2),
842             Self::R16_SSCALED => Some(2),
843             Self::R16_UINT => Some(2),
844             Self::R16_SINT => Some(2),
845             Self::R16_SFLOAT => Some(2),
846             Self::R16G16_UNORM => Some(4),
847             Self::R16G16_SNORM => Some(4),
848             Self::R16G16_USCALED => Some(4),
849             Self::R16G16_SSCALED => Some(4),
850             Self::R16G16_UINT => Some(4),
851             Self::R16G16_SINT => Some(4),
852             Self::R16G16_SFLOAT => Some(4),
853             Self::R16G16B16_UNORM => Some(6),
854             Self::R16G16B16_SNORM => Some(6),
855             Self::R16G16B16_USCALED => Some(6),
856             Self::R16G16B16_SSCALED => Some(6),
857             Self::R16G16B16_UINT => Some(6),
858             Self::R16G16B16_SINT => Some(6),
859             Self::R16G16B16_SFLOAT => Some(6),
860             Self::R16G16B16A16_UNORM => Some(8),
861             Self::R16G16B16A16_SNORM => Some(8),
862             Self::R16G16B16A16_USCALED => Some(8),
863             Self::R16G16B16A16_SSCALED => Some(8),
864             Self::R16G16B16A16_UINT => Some(8),
865             Self::R16G16B16A16_SINT => Some(8),
866             Self::R16G16B16A16_SFLOAT => Some(8),
867             Self::R32_UINT => Some(4),
868             Self::R32_SINT => Some(4),
869             Self::R32_SFLOAT => Some(4),
870             Self::R32G32_UINT => Some(8),
871             Self::R32G32_SINT => Some(8),
872             Self::R32G32_SFLOAT => Some(8),
873             Self::R32G32B32_UINT => Some(12),
874             Self::R32G32B32_SINT => Some(12),
875             Self::R32G32B32_SFLOAT => Some(12),
876             Self::R32G32B32A32_UINT => Some(16),
877             Self::R32G32B32A32_SINT => Some(16),
878             Self::R32G32B32A32_SFLOAT => Some(16),
879             Self::R64_UINT => Some(8),
880             Self::R64_SINT => Some(8),
881             Self::R64_SFLOAT => Some(8),
882             Self::R64G64_UINT => Some(16),
883             Self::R64G64_SINT => Some(16),
884             Self::R64G64_SFLOAT => Some(16),
885             Self::R64G64B64_UINT => Some(24),
886             Self::R64G64B64_SINT => Some(24),
887             Self::R64G64B64_SFLOAT => Some(24),
888             Self::R64G64B64A64_UINT => Some(32),
889             Self::R64G64B64A64_SINT => Some(32),
890             Self::R64G64B64A64_SFLOAT => Some(32),
891             Self::B10G11R11_UFLOAT_PACK32 => Some(4),
892             Self::E5B9G9R9_UFLOAT_PACK32 => Some(4),
893             Self::BC1_RGB_UNORM_BLOCK => Some(8),
894             Self::BC1_RGB_SRGB_BLOCK => Some(8),
895             Self::BC1_RGBA_UNORM_BLOCK => Some(8),
896             Self::BC1_RGBA_SRGB_BLOCK => Some(8),
897             Self::BC2_UNORM_BLOCK => Some(16),
898             Self::BC2_SRGB_BLOCK => Some(16),
899             Self::BC3_UNORM_BLOCK => Some(16),
900             Self::BC3_SRGB_BLOCK => Some(16),
901             Self::BC4_UNORM_BLOCK => Some(8),
902             Self::BC4_SNORM_BLOCK => Some(8),
903             Self::BC5_UNORM_BLOCK => Some(16),
904             Self::BC5_SNORM_BLOCK => Some(16),
905             Self::BC6H_UFLOAT_BLOCK => Some(16),
906             Self::BC6H_SFLOAT_BLOCK => Some(16),
907             Self::BC7_UNORM_BLOCK => Some(16),
908             Self::BC7_SRGB_BLOCK => Some(16),
909             Self::ETC2_R8G8B8_UNORM_BLOCK => Some(8),
910             Self::ETC2_R8G8B8_SRGB_BLOCK => Some(8),
911             Self::ETC2_R8G8B8A1_UNORM_BLOCK => Some(8),
912             Self::ETC2_R8G8B8A1_SRGB_BLOCK => Some(8),
913             Self::ETC2_R8G8B8A8_UNORM_BLOCK => Some(16),
914             Self::ETC2_R8G8B8A8_SRGB_BLOCK => Some(16),
915             Self::EAC_R11_UNORM_BLOCK => Some(8),
916             Self::EAC_R11_SNORM_BLOCK => Some(8),
917             Self::EAC_R11G11_UNORM_BLOCK => Some(16),
918             Self::EAC_R11G11_SNORM_BLOCK => Some(16),
919             Self::ASTC_4x4_UNORM_BLOCK => Some(16),
920             Self::ASTC_4x4_SRGB_BLOCK => Some(16),
921             Self::ASTC_5x4_UNORM_BLOCK => Some(16),
922             Self::ASTC_5x4_SRGB_BLOCK => Some(16),
923             Self::ASTC_5x5_UNORM_BLOCK => Some(16),
924             Self::ASTC_5x5_SRGB_BLOCK => Some(16),
925             Self::ASTC_6x5_UNORM_BLOCK => Some(16),
926             Self::ASTC_6x5_SRGB_BLOCK => Some(16),
927             Self::ASTC_6x6_UNORM_BLOCK => Some(16),
928             Self::ASTC_6x6_SRGB_BLOCK => Some(16),
929             Self::ASTC_8x5_UNORM_BLOCK => Some(16),
930             Self::ASTC_8x5_SRGB_BLOCK => Some(16),
931             Self::ASTC_8x6_UNORM_BLOCK => Some(16),
932             Self::ASTC_8x6_SRGB_BLOCK => Some(16),
933             Self::ASTC_8x8_UNORM_BLOCK => Some(16),
934             Self::ASTC_8x8_SRGB_BLOCK => Some(16),
935             Self::ASTC_10x5_UNORM_BLOCK => Some(16),
936             Self::ASTC_10x5_SRGB_BLOCK => Some(16),
937             Self::ASTC_10x6_UNORM_BLOCK => Some(16),
938             Self::ASTC_10x6_SRGB_BLOCK => Some(16),
939             Self::ASTC_10x8_UNORM_BLOCK => Some(16),
940             Self::ASTC_10x8_SRGB_BLOCK => Some(16),
941             Self::ASTC_10x10_UNORM_BLOCK => Some(16),
942             Self::ASTC_10x10_SRGB_BLOCK => Some(16),
943             Self::ASTC_12x10_UNORM_BLOCK => Some(16),
944             Self::ASTC_12x10_SRGB_BLOCK => Some(16),
945             Self::ASTC_12x12_UNORM_BLOCK => Some(16),
946             Self::ASTC_12x12_SRGB_BLOCK => Some(16),
947             Self::G8B8G8R8_422_UNORM => Some(4),
948             Self::B8G8R8G8_422_UNORM => Some(4),
949             Self::R10X6_UNORM_PACK16 => Some(2),
950             Self::R10X6G10X6_UNORM_2PACK16 => Some(4),
951             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => Some(8),
952             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => Some(8),
953             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => Some(8),
954             Self::R12X4_UNORM_PACK16 => Some(2),
955             Self::R12X4G12X4_UNORM_2PACK16 => Some(4),
956             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => Some(8),
957             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => Some(8),
958             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => Some(8),
959             Self::G16B16G16R16_422_UNORM => Some(8),
960             Self::B16G16R16G16_422_UNORM => Some(8),
961             Self::PVRTC1_2BPP_UNORM_BLOCK => Some(8),
962             Self::PVRTC1_4BPP_UNORM_BLOCK => Some(8),
963             Self::PVRTC2_2BPP_UNORM_BLOCK => Some(8),
964             Self::PVRTC2_4BPP_UNORM_BLOCK => Some(8),
965             Self::PVRTC1_2BPP_SRGB_BLOCK => Some(8),
966             Self::PVRTC1_4BPP_SRGB_BLOCK => Some(8),
967             Self::PVRTC2_2BPP_SRGB_BLOCK => Some(8),
968             Self::PVRTC2_4BPP_SRGB_BLOCK => Some(8),
969             Self::ASTC_4x4_SFLOAT_BLOCK => Some(16),
970             Self::ASTC_5x4_SFLOAT_BLOCK => Some(16),
971             Self::ASTC_5x5_SFLOAT_BLOCK => Some(16),
972             Self::ASTC_6x5_SFLOAT_BLOCK => Some(16),
973             Self::ASTC_6x6_SFLOAT_BLOCK => Some(16),
974             Self::ASTC_8x5_SFLOAT_BLOCK => Some(16),
975             Self::ASTC_8x6_SFLOAT_BLOCK => Some(16),
976             Self::ASTC_8x8_SFLOAT_BLOCK => Some(16),
977             Self::ASTC_10x5_SFLOAT_BLOCK => Some(16),
978             Self::ASTC_10x6_SFLOAT_BLOCK => Some(16),
979             Self::ASTC_10x8_SFLOAT_BLOCK => Some(16),
980             Self::ASTC_10x10_SFLOAT_BLOCK => Some(16),
981             Self::ASTC_12x10_SFLOAT_BLOCK => Some(16),
982             Self::ASTC_12x12_SFLOAT_BLOCK => Some(16),
983             Self::A4R4G4B4_UNORM_PACK16 => Some(2),
984             Self::A4B4G4R4_UNORM_PACK16 => Some(2),
985             Self::R16G16_S10_5_NV => Some(4),
986             _ => None,
987         }
988     }
989     #[doc = r" Returns the an opaque object representing the compatibility class of the format."]
990     #[doc = r" This can be used to determine whether two formats are compatible for the purposes"]
991     #[doc = r" of certain Vulkan operations, such as image copying."]
compatibility(self) -> FormatCompatibility992     pub fn compatibility(self) -> FormatCompatibility {
993         FormatCompatibility(match self {
994             Self::R4G4_UNORM_PACK8 => &FormatCompatibilityInner::Class_8bit,
995             Self::R4G4B4A4_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
996             Self::B4G4R4A4_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
997             Self::R5G6B5_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
998             Self::B5G6R5_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
999             Self::R5G5B5A1_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1000             Self::B5G5R5A1_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1001             Self::A1R5G5B5_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1002             Self::R8_UNORM => &FormatCompatibilityInner::Class_8bit,
1003             Self::R8_SNORM => &FormatCompatibilityInner::Class_8bit,
1004             Self::R8_USCALED => &FormatCompatibilityInner::Class_8bit,
1005             Self::R8_SSCALED => &FormatCompatibilityInner::Class_8bit,
1006             Self::R8_UINT => &FormatCompatibilityInner::Class_8bit,
1007             Self::R8_SINT => &FormatCompatibilityInner::Class_8bit,
1008             Self::R8_SRGB => &FormatCompatibilityInner::Class_8bit,
1009             Self::R8G8_UNORM => &FormatCompatibilityInner::Class_16bit,
1010             Self::R8G8_SNORM => &FormatCompatibilityInner::Class_16bit,
1011             Self::R8G8_USCALED => &FormatCompatibilityInner::Class_16bit,
1012             Self::R8G8_SSCALED => &FormatCompatibilityInner::Class_16bit,
1013             Self::R8G8_UINT => &FormatCompatibilityInner::Class_16bit,
1014             Self::R8G8_SINT => &FormatCompatibilityInner::Class_16bit,
1015             Self::R8G8_SRGB => &FormatCompatibilityInner::Class_16bit,
1016             Self::R8G8B8_UNORM => &FormatCompatibilityInner::Class_24bit,
1017             Self::R8G8B8_SNORM => &FormatCompatibilityInner::Class_24bit,
1018             Self::R8G8B8_USCALED => &FormatCompatibilityInner::Class_24bit,
1019             Self::R8G8B8_SSCALED => &FormatCompatibilityInner::Class_24bit,
1020             Self::R8G8B8_UINT => &FormatCompatibilityInner::Class_24bit,
1021             Self::R8G8B8_SINT => &FormatCompatibilityInner::Class_24bit,
1022             Self::R8G8B8_SRGB => &FormatCompatibilityInner::Class_24bit,
1023             Self::B8G8R8_UNORM => &FormatCompatibilityInner::Class_24bit,
1024             Self::B8G8R8_SNORM => &FormatCompatibilityInner::Class_24bit,
1025             Self::B8G8R8_USCALED => &FormatCompatibilityInner::Class_24bit,
1026             Self::B8G8R8_SSCALED => &FormatCompatibilityInner::Class_24bit,
1027             Self::B8G8R8_UINT => &FormatCompatibilityInner::Class_24bit,
1028             Self::B8G8R8_SINT => &FormatCompatibilityInner::Class_24bit,
1029             Self::B8G8R8_SRGB => &FormatCompatibilityInner::Class_24bit,
1030             Self::R8G8B8A8_UNORM => &FormatCompatibilityInner::Class_32bit,
1031             Self::R8G8B8A8_SNORM => &FormatCompatibilityInner::Class_32bit,
1032             Self::R8G8B8A8_USCALED => &FormatCompatibilityInner::Class_32bit,
1033             Self::R8G8B8A8_SSCALED => &FormatCompatibilityInner::Class_32bit,
1034             Self::R8G8B8A8_UINT => &FormatCompatibilityInner::Class_32bit,
1035             Self::R8G8B8A8_SINT => &FormatCompatibilityInner::Class_32bit,
1036             Self::R8G8B8A8_SRGB => &FormatCompatibilityInner::Class_32bit,
1037             Self::B8G8R8A8_UNORM => &FormatCompatibilityInner::Class_32bit,
1038             Self::B8G8R8A8_SNORM => &FormatCompatibilityInner::Class_32bit,
1039             Self::B8G8R8A8_USCALED => &FormatCompatibilityInner::Class_32bit,
1040             Self::B8G8R8A8_SSCALED => &FormatCompatibilityInner::Class_32bit,
1041             Self::B8G8R8A8_UINT => &FormatCompatibilityInner::Class_32bit,
1042             Self::B8G8R8A8_SINT => &FormatCompatibilityInner::Class_32bit,
1043             Self::B8G8R8A8_SRGB => &FormatCompatibilityInner::Class_32bit,
1044             Self::A8B8G8R8_UNORM_PACK32 => &FormatCompatibilityInner::Class_32bit,
1045             Self::A8B8G8R8_SNORM_PACK32 => &FormatCompatibilityInner::Class_32bit,
1046             Self::A8B8G8R8_USCALED_PACK32 => &FormatCompatibilityInner::Class_32bit,
1047             Self::A8B8G8R8_SSCALED_PACK32 => &FormatCompatibilityInner::Class_32bit,
1048             Self::A8B8G8R8_UINT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1049             Self::A8B8G8R8_SINT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1050             Self::A8B8G8R8_SRGB_PACK32 => &FormatCompatibilityInner::Class_32bit,
1051             Self::A2R10G10B10_UNORM_PACK32 => &FormatCompatibilityInner::Class_32bit,
1052             Self::A2R10G10B10_SNORM_PACK32 => &FormatCompatibilityInner::Class_32bit,
1053             Self::A2R10G10B10_USCALED_PACK32 => &FormatCompatibilityInner::Class_32bit,
1054             Self::A2R10G10B10_SSCALED_PACK32 => &FormatCompatibilityInner::Class_32bit,
1055             Self::A2R10G10B10_UINT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1056             Self::A2R10G10B10_SINT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1057             Self::A2B10G10R10_UNORM_PACK32 => &FormatCompatibilityInner::Class_32bit,
1058             Self::A2B10G10R10_SNORM_PACK32 => &FormatCompatibilityInner::Class_32bit,
1059             Self::A2B10G10R10_USCALED_PACK32 => &FormatCompatibilityInner::Class_32bit,
1060             Self::A2B10G10R10_SSCALED_PACK32 => &FormatCompatibilityInner::Class_32bit,
1061             Self::A2B10G10R10_UINT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1062             Self::A2B10G10R10_SINT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1063             Self::R16_UNORM => &FormatCompatibilityInner::Class_16bit,
1064             Self::R16_SNORM => &FormatCompatibilityInner::Class_16bit,
1065             Self::R16_USCALED => &FormatCompatibilityInner::Class_16bit,
1066             Self::R16_SSCALED => &FormatCompatibilityInner::Class_16bit,
1067             Self::R16_UINT => &FormatCompatibilityInner::Class_16bit,
1068             Self::R16_SINT => &FormatCompatibilityInner::Class_16bit,
1069             Self::R16_SFLOAT => &FormatCompatibilityInner::Class_16bit,
1070             Self::R16G16_UNORM => &FormatCompatibilityInner::Class_32bit,
1071             Self::R16G16_SNORM => &FormatCompatibilityInner::Class_32bit,
1072             Self::R16G16_USCALED => &FormatCompatibilityInner::Class_32bit,
1073             Self::R16G16_SSCALED => &FormatCompatibilityInner::Class_32bit,
1074             Self::R16G16_UINT => &FormatCompatibilityInner::Class_32bit,
1075             Self::R16G16_SINT => &FormatCompatibilityInner::Class_32bit,
1076             Self::R16G16_SFLOAT => &FormatCompatibilityInner::Class_32bit,
1077             Self::R16G16B16_UNORM => &FormatCompatibilityInner::Class_48bit,
1078             Self::R16G16B16_SNORM => &FormatCompatibilityInner::Class_48bit,
1079             Self::R16G16B16_USCALED => &FormatCompatibilityInner::Class_48bit,
1080             Self::R16G16B16_SSCALED => &FormatCompatibilityInner::Class_48bit,
1081             Self::R16G16B16_UINT => &FormatCompatibilityInner::Class_48bit,
1082             Self::R16G16B16_SINT => &FormatCompatibilityInner::Class_48bit,
1083             Self::R16G16B16_SFLOAT => &FormatCompatibilityInner::Class_48bit,
1084             Self::R16G16B16A16_UNORM => &FormatCompatibilityInner::Class_64bit,
1085             Self::R16G16B16A16_SNORM => &FormatCompatibilityInner::Class_64bit,
1086             Self::R16G16B16A16_USCALED => &FormatCompatibilityInner::Class_64bit,
1087             Self::R16G16B16A16_SSCALED => &FormatCompatibilityInner::Class_64bit,
1088             Self::R16G16B16A16_UINT => &FormatCompatibilityInner::Class_64bit,
1089             Self::R16G16B16A16_SINT => &FormatCompatibilityInner::Class_64bit,
1090             Self::R16G16B16A16_SFLOAT => &FormatCompatibilityInner::Class_64bit,
1091             Self::R32_UINT => &FormatCompatibilityInner::Class_32bit,
1092             Self::R32_SINT => &FormatCompatibilityInner::Class_32bit,
1093             Self::R32_SFLOAT => &FormatCompatibilityInner::Class_32bit,
1094             Self::R32G32_UINT => &FormatCompatibilityInner::Class_64bit,
1095             Self::R32G32_SINT => &FormatCompatibilityInner::Class_64bit,
1096             Self::R32G32_SFLOAT => &FormatCompatibilityInner::Class_64bit,
1097             Self::R32G32B32_UINT => &FormatCompatibilityInner::Class_96bit,
1098             Self::R32G32B32_SINT => &FormatCompatibilityInner::Class_96bit,
1099             Self::R32G32B32_SFLOAT => &FormatCompatibilityInner::Class_96bit,
1100             Self::R32G32B32A32_UINT => &FormatCompatibilityInner::Class_128bit,
1101             Self::R32G32B32A32_SINT => &FormatCompatibilityInner::Class_128bit,
1102             Self::R32G32B32A32_SFLOAT => &FormatCompatibilityInner::Class_128bit,
1103             Self::R64_UINT => &FormatCompatibilityInner::Class_64bit,
1104             Self::R64_SINT => &FormatCompatibilityInner::Class_64bit,
1105             Self::R64_SFLOAT => &FormatCompatibilityInner::Class_64bit,
1106             Self::R64G64_UINT => &FormatCompatibilityInner::Class_128bit,
1107             Self::R64G64_SINT => &FormatCompatibilityInner::Class_128bit,
1108             Self::R64G64_SFLOAT => &FormatCompatibilityInner::Class_128bit,
1109             Self::R64G64B64_UINT => &FormatCompatibilityInner::Class_192bit,
1110             Self::R64G64B64_SINT => &FormatCompatibilityInner::Class_192bit,
1111             Self::R64G64B64_SFLOAT => &FormatCompatibilityInner::Class_192bit,
1112             Self::R64G64B64A64_UINT => &FormatCompatibilityInner::Class_256bit,
1113             Self::R64G64B64A64_SINT => &FormatCompatibilityInner::Class_256bit,
1114             Self::R64G64B64A64_SFLOAT => &FormatCompatibilityInner::Class_256bit,
1115             Self::B10G11R11_UFLOAT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1116             Self::E5B9G9R9_UFLOAT_PACK32 => &FormatCompatibilityInner::Class_32bit,
1117             Self::D16_UNORM => &FormatCompatibilityInner::Class_D16,
1118             Self::X8_D24_UNORM_PACK32 => &FormatCompatibilityInner::Class_D24,
1119             Self::D32_SFLOAT => &FormatCompatibilityInner::Class_D32,
1120             Self::S8_UINT => &FormatCompatibilityInner::Class_S8,
1121             Self::D16_UNORM_S8_UINT => &FormatCompatibilityInner::Class_D16S8,
1122             Self::D24_UNORM_S8_UINT => &FormatCompatibilityInner::Class_D24S8,
1123             Self::D32_SFLOAT_S8_UINT => &FormatCompatibilityInner::Class_D32S8,
1124             Self::BC1_RGB_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC1_RGB,
1125             Self::BC1_RGB_SRGB_BLOCK => &FormatCompatibilityInner::Class_BC1_RGB,
1126             Self::BC1_RGBA_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC1_RGBA,
1127             Self::BC1_RGBA_SRGB_BLOCK => &FormatCompatibilityInner::Class_BC1_RGBA,
1128             Self::BC2_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC2,
1129             Self::BC2_SRGB_BLOCK => &FormatCompatibilityInner::Class_BC2,
1130             Self::BC3_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC3,
1131             Self::BC3_SRGB_BLOCK => &FormatCompatibilityInner::Class_BC3,
1132             Self::BC4_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC4,
1133             Self::BC4_SNORM_BLOCK => &FormatCompatibilityInner::Class_BC4,
1134             Self::BC5_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC5,
1135             Self::BC5_SNORM_BLOCK => &FormatCompatibilityInner::Class_BC5,
1136             Self::BC6H_UFLOAT_BLOCK => &FormatCompatibilityInner::Class_BC6H,
1137             Self::BC6H_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_BC6H,
1138             Self::BC7_UNORM_BLOCK => &FormatCompatibilityInner::Class_BC7,
1139             Self::BC7_SRGB_BLOCK => &FormatCompatibilityInner::Class_BC7,
1140             Self::ETC2_R8G8B8_UNORM_BLOCK => &FormatCompatibilityInner::Class_ETC2_RGB,
1141             Self::ETC2_R8G8B8_SRGB_BLOCK => &FormatCompatibilityInner::Class_ETC2_RGB,
1142             Self::ETC2_R8G8B8A1_UNORM_BLOCK => &FormatCompatibilityInner::Class_ETC2_RGBA,
1143             Self::ETC2_R8G8B8A1_SRGB_BLOCK => &FormatCompatibilityInner::Class_ETC2_RGBA,
1144             Self::ETC2_R8G8B8A8_UNORM_BLOCK => &FormatCompatibilityInner::Class_ETC2_EAC_RGBA,
1145             Self::ETC2_R8G8B8A8_SRGB_BLOCK => &FormatCompatibilityInner::Class_ETC2_EAC_RGBA,
1146             Self::EAC_R11_UNORM_BLOCK => &FormatCompatibilityInner::Class_EAC_R,
1147             Self::EAC_R11_SNORM_BLOCK => &FormatCompatibilityInner::Class_EAC_R,
1148             Self::EAC_R11G11_UNORM_BLOCK => &FormatCompatibilityInner::Class_EAC_RG,
1149             Self::EAC_R11G11_SNORM_BLOCK => &FormatCompatibilityInner::Class_EAC_RG,
1150             Self::ASTC_4x4_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_4x4,
1151             Self::ASTC_4x4_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_4x4,
1152             Self::ASTC_5x4_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_5x4,
1153             Self::ASTC_5x4_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_5x4,
1154             Self::ASTC_5x5_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_5x5,
1155             Self::ASTC_5x5_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_5x5,
1156             Self::ASTC_6x5_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_6x5,
1157             Self::ASTC_6x5_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_6x5,
1158             Self::ASTC_6x6_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_6x6,
1159             Self::ASTC_6x6_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_6x6,
1160             Self::ASTC_8x5_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x5,
1161             Self::ASTC_8x5_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x5,
1162             Self::ASTC_8x6_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x6,
1163             Self::ASTC_8x6_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x6,
1164             Self::ASTC_8x8_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x8,
1165             Self::ASTC_8x8_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x8,
1166             Self::ASTC_10x5_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x5,
1167             Self::ASTC_10x5_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x5,
1168             Self::ASTC_10x6_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x6,
1169             Self::ASTC_10x6_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x6,
1170             Self::ASTC_10x8_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x8,
1171             Self::ASTC_10x8_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x8,
1172             Self::ASTC_10x10_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x10,
1173             Self::ASTC_10x10_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x10,
1174             Self::ASTC_12x10_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_12x10,
1175             Self::ASTC_12x10_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_12x10,
1176             Self::ASTC_12x12_UNORM_BLOCK => &FormatCompatibilityInner::Class_ASTC_12x12,
1177             Self::ASTC_12x12_SRGB_BLOCK => &FormatCompatibilityInner::Class_ASTC_12x12,
1178             Self::G8B8G8R8_422_UNORM => &FormatCompatibilityInner::Class_32bit_G8B8G8R8,
1179             Self::B8G8R8G8_422_UNORM => &FormatCompatibilityInner::Class_32bit_B8G8R8G8,
1180             Self::G8_B8_R8_3PLANE_420_UNORM => &FormatCompatibilityInner::Class_8bit_3plane_420,
1181             Self::G8_B8R8_2PLANE_420_UNORM => &FormatCompatibilityInner::Class_8bit_2plane_420,
1182             Self::G8_B8_R8_3PLANE_422_UNORM => &FormatCompatibilityInner::Class_8bit_3plane_422,
1183             Self::G8_B8R8_2PLANE_422_UNORM => &FormatCompatibilityInner::Class_8bit_2plane_422,
1184             Self::G8_B8_R8_3PLANE_444_UNORM => &FormatCompatibilityInner::Class_8bit_3plane_444,
1185             Self::R10X6_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1186             Self::R10X6G10X6_UNORM_2PACK16 => &FormatCompatibilityInner::Class_32bit,
1187             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => {
1188                 &FormatCompatibilityInner::Class_64bit_R10G10B10A10
1189             }
1190             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => {
1191                 &FormatCompatibilityInner::Class_64bit_G10B10G10R10
1192             }
1193             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => {
1194                 &FormatCompatibilityInner::Class_64bit_B10G10R10G10
1195             }
1196             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
1197                 &FormatCompatibilityInner::Class_10bit_3plane_420
1198             }
1199             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
1200                 &FormatCompatibilityInner::Class_10bit_2plane_420
1201             }
1202             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
1203                 &FormatCompatibilityInner::Class_10bit_3plane_422
1204             }
1205             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
1206                 &FormatCompatibilityInner::Class_10bit_2plane_422
1207             }
1208             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
1209                 &FormatCompatibilityInner::Class_10bit_3plane_444
1210             }
1211             Self::R12X4_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1212             Self::R12X4G12X4_UNORM_2PACK16 => &FormatCompatibilityInner::Class_32bit,
1213             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => {
1214                 &FormatCompatibilityInner::Class_64bit_R12G12B12A12
1215             }
1216             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => {
1217                 &FormatCompatibilityInner::Class_64bit_G12B12G12R12
1218             }
1219             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => {
1220                 &FormatCompatibilityInner::Class_64bit_B12G12R12G12
1221             }
1222             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
1223                 &FormatCompatibilityInner::Class_12bit_3plane_420
1224             }
1225             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
1226                 &FormatCompatibilityInner::Class_12bit_2plane_420
1227             }
1228             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
1229                 &FormatCompatibilityInner::Class_12bit_3plane_422
1230             }
1231             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
1232                 &FormatCompatibilityInner::Class_12bit_2plane_422
1233             }
1234             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
1235                 &FormatCompatibilityInner::Class_12bit_3plane_444
1236             }
1237             Self::G16B16G16R16_422_UNORM => &FormatCompatibilityInner::Class_64bit_G16B16G16R16,
1238             Self::B16G16R16G16_422_UNORM => &FormatCompatibilityInner::Class_64bit_B16G16R16G16,
1239             Self::G16_B16_R16_3PLANE_420_UNORM => &FormatCompatibilityInner::Class_16bit_3plane_420,
1240             Self::G16_B16R16_2PLANE_420_UNORM => &FormatCompatibilityInner::Class_16bit_2plane_420,
1241             Self::G16_B16_R16_3PLANE_422_UNORM => &FormatCompatibilityInner::Class_16bit_3plane_422,
1242             Self::G16_B16R16_2PLANE_422_UNORM => &FormatCompatibilityInner::Class_16bit_2plane_422,
1243             Self::G16_B16_R16_3PLANE_444_UNORM => &FormatCompatibilityInner::Class_16bit_3plane_444,
1244             Self::PVRTC1_2BPP_UNORM_BLOCK => &FormatCompatibilityInner::Class_PVRTC1_2BPP,
1245             Self::PVRTC1_4BPP_UNORM_BLOCK => &FormatCompatibilityInner::Class_PVRTC1_4BPP,
1246             Self::PVRTC2_2BPP_UNORM_BLOCK => &FormatCompatibilityInner::Class_PVRTC2_2BPP,
1247             Self::PVRTC2_4BPP_UNORM_BLOCK => &FormatCompatibilityInner::Class_PVRTC2_4BPP,
1248             Self::PVRTC1_2BPP_SRGB_BLOCK => &FormatCompatibilityInner::Class_PVRTC1_2BPP,
1249             Self::PVRTC1_4BPP_SRGB_BLOCK => &FormatCompatibilityInner::Class_PVRTC1_4BPP,
1250             Self::PVRTC2_2BPP_SRGB_BLOCK => &FormatCompatibilityInner::Class_PVRTC2_2BPP,
1251             Self::PVRTC2_4BPP_SRGB_BLOCK => &FormatCompatibilityInner::Class_PVRTC2_4BPP,
1252             Self::ASTC_4x4_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_4x4,
1253             Self::ASTC_5x4_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_5x4,
1254             Self::ASTC_5x5_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_5x5,
1255             Self::ASTC_6x5_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_6x5,
1256             Self::ASTC_6x6_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_6x6,
1257             Self::ASTC_8x5_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x5,
1258             Self::ASTC_8x6_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x6,
1259             Self::ASTC_8x8_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_8x8,
1260             Self::ASTC_10x5_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x5,
1261             Self::ASTC_10x6_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x6,
1262             Self::ASTC_10x8_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x8,
1263             Self::ASTC_10x10_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_10x10,
1264             Self::ASTC_12x10_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_12x10,
1265             Self::ASTC_12x12_SFLOAT_BLOCK => &FormatCompatibilityInner::Class_ASTC_12x12,
1266             Self::G8_B8R8_2PLANE_444_UNORM => &FormatCompatibilityInner::Class_8bit_2plane_444,
1267             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
1268                 &FormatCompatibilityInner::Class_10bit_2plane_444
1269             }
1270             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
1271                 &FormatCompatibilityInner::Class_12bit_2plane_444
1272             }
1273             Self::G16_B16R16_2PLANE_444_UNORM => &FormatCompatibilityInner::Class_16bit_2plane_444,
1274             Self::A4R4G4B4_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1275             Self::A4B4G4R4_UNORM_PACK16 => &FormatCompatibilityInner::Class_16bit,
1276             Self::R16G16_S10_5_NV => &FormatCompatibilityInner::Class_32bit,
1277         })
1278     }
1279     #[doc = r" Returns the number of bits per texel block that each component (R, G, B, A) is"]
1280     #[doc = r" represented with. Components that are not present in the format have 0 bits."]
1281     #[doc = r""]
1282     #[doc = r" For depth/stencil formats, the depth component is the first, stencil the second. For"]
1283     #[doc = r" multi-planar formats, this is the number of bits across all planes."]
1284     #[doc = r""]
1285     #[doc = r" For block-compressed formats, the number of bits in individual components is not"]
1286     #[doc = r" well-defined, and the return value is merely binary: 1 indicates a component"]
1287     #[doc = r" that is present in the format, 0 indicates one that is absent."]
components(self) -> [u8; 4]1288     pub fn components(self) -> [u8; 4] {
1289         match self {
1290             Self::R4G4_UNORM_PACK8 => [4, 4, 0, 0],
1291             Self::R4G4B4A4_UNORM_PACK16 => [4, 4, 4, 4],
1292             Self::B4G4R4A4_UNORM_PACK16 => [4, 4, 4, 4],
1293             Self::R5G6B5_UNORM_PACK16 => [5, 6, 5, 0],
1294             Self::B5G6R5_UNORM_PACK16 => [5, 6, 5, 0],
1295             Self::R5G5B5A1_UNORM_PACK16 => [5, 5, 5, 1],
1296             Self::B5G5R5A1_UNORM_PACK16 => [5, 5, 5, 1],
1297             Self::A1R5G5B5_UNORM_PACK16 => [5, 5, 5, 1],
1298             Self::R8_UNORM => [8, 0, 0, 0],
1299             Self::R8_SNORM => [8, 0, 0, 0],
1300             Self::R8_USCALED => [8, 0, 0, 0],
1301             Self::R8_SSCALED => [8, 0, 0, 0],
1302             Self::R8_UINT => [8, 0, 0, 0],
1303             Self::R8_SINT => [8, 0, 0, 0],
1304             Self::R8_SRGB => [8, 0, 0, 0],
1305             Self::R8G8_UNORM => [8, 8, 0, 0],
1306             Self::R8G8_SNORM => [8, 8, 0, 0],
1307             Self::R8G8_USCALED => [8, 8, 0, 0],
1308             Self::R8G8_SSCALED => [8, 8, 0, 0],
1309             Self::R8G8_UINT => [8, 8, 0, 0],
1310             Self::R8G8_SINT => [8, 8, 0, 0],
1311             Self::R8G8_SRGB => [8, 8, 0, 0],
1312             Self::R8G8B8_UNORM => [8, 8, 8, 0],
1313             Self::R8G8B8_SNORM => [8, 8, 8, 0],
1314             Self::R8G8B8_USCALED => [8, 8, 8, 0],
1315             Self::R8G8B8_SSCALED => [8, 8, 8, 0],
1316             Self::R8G8B8_UINT => [8, 8, 8, 0],
1317             Self::R8G8B8_SINT => [8, 8, 8, 0],
1318             Self::R8G8B8_SRGB => [8, 8, 8, 0],
1319             Self::B8G8R8_UNORM => [8, 8, 8, 0],
1320             Self::B8G8R8_SNORM => [8, 8, 8, 0],
1321             Self::B8G8R8_USCALED => [8, 8, 8, 0],
1322             Self::B8G8R8_SSCALED => [8, 8, 8, 0],
1323             Self::B8G8R8_UINT => [8, 8, 8, 0],
1324             Self::B8G8R8_SINT => [8, 8, 8, 0],
1325             Self::B8G8R8_SRGB => [8, 8, 8, 0],
1326             Self::R8G8B8A8_UNORM => [8, 8, 8, 8],
1327             Self::R8G8B8A8_SNORM => [8, 8, 8, 8],
1328             Self::R8G8B8A8_USCALED => [8, 8, 8, 8],
1329             Self::R8G8B8A8_SSCALED => [8, 8, 8, 8],
1330             Self::R8G8B8A8_UINT => [8, 8, 8, 8],
1331             Self::R8G8B8A8_SINT => [8, 8, 8, 8],
1332             Self::R8G8B8A8_SRGB => [8, 8, 8, 8],
1333             Self::B8G8R8A8_UNORM => [8, 8, 8, 8],
1334             Self::B8G8R8A8_SNORM => [8, 8, 8, 8],
1335             Self::B8G8R8A8_USCALED => [8, 8, 8, 8],
1336             Self::B8G8R8A8_SSCALED => [8, 8, 8, 8],
1337             Self::B8G8R8A8_UINT => [8, 8, 8, 8],
1338             Self::B8G8R8A8_SINT => [8, 8, 8, 8],
1339             Self::B8G8R8A8_SRGB => [8, 8, 8, 8],
1340             Self::A8B8G8R8_UNORM_PACK32 => [8, 8, 8, 8],
1341             Self::A8B8G8R8_SNORM_PACK32 => [8, 8, 8, 8],
1342             Self::A8B8G8R8_USCALED_PACK32 => [8, 8, 8, 8],
1343             Self::A8B8G8R8_SSCALED_PACK32 => [8, 8, 8, 8],
1344             Self::A8B8G8R8_UINT_PACK32 => [8, 8, 8, 8],
1345             Self::A8B8G8R8_SINT_PACK32 => [8, 8, 8, 8],
1346             Self::A8B8G8R8_SRGB_PACK32 => [8, 8, 8, 8],
1347             Self::A2R10G10B10_UNORM_PACK32 => [10, 10, 10, 2],
1348             Self::A2R10G10B10_SNORM_PACK32 => [10, 10, 10, 2],
1349             Self::A2R10G10B10_USCALED_PACK32 => [10, 10, 10, 2],
1350             Self::A2R10G10B10_SSCALED_PACK32 => [10, 10, 10, 2],
1351             Self::A2R10G10B10_UINT_PACK32 => [10, 10, 10, 2],
1352             Self::A2R10G10B10_SINT_PACK32 => [10, 10, 10, 2],
1353             Self::A2B10G10R10_UNORM_PACK32 => [10, 10, 10, 2],
1354             Self::A2B10G10R10_SNORM_PACK32 => [10, 10, 10, 2],
1355             Self::A2B10G10R10_USCALED_PACK32 => [10, 10, 10, 2],
1356             Self::A2B10G10R10_SSCALED_PACK32 => [10, 10, 10, 2],
1357             Self::A2B10G10R10_UINT_PACK32 => [10, 10, 10, 2],
1358             Self::A2B10G10R10_SINT_PACK32 => [10, 10, 10, 2],
1359             Self::R16_UNORM => [16, 0, 0, 0],
1360             Self::R16_SNORM => [16, 0, 0, 0],
1361             Self::R16_USCALED => [16, 0, 0, 0],
1362             Self::R16_SSCALED => [16, 0, 0, 0],
1363             Self::R16_UINT => [16, 0, 0, 0],
1364             Self::R16_SINT => [16, 0, 0, 0],
1365             Self::R16_SFLOAT => [16, 0, 0, 0],
1366             Self::R16G16_UNORM => [16, 16, 0, 0],
1367             Self::R16G16_SNORM => [16, 16, 0, 0],
1368             Self::R16G16_USCALED => [16, 16, 0, 0],
1369             Self::R16G16_SSCALED => [16, 16, 0, 0],
1370             Self::R16G16_UINT => [16, 16, 0, 0],
1371             Self::R16G16_SINT => [16, 16, 0, 0],
1372             Self::R16G16_SFLOAT => [16, 16, 0, 0],
1373             Self::R16G16B16_UNORM => [16, 16, 16, 0],
1374             Self::R16G16B16_SNORM => [16, 16, 16, 0],
1375             Self::R16G16B16_USCALED => [16, 16, 16, 0],
1376             Self::R16G16B16_SSCALED => [16, 16, 16, 0],
1377             Self::R16G16B16_UINT => [16, 16, 16, 0],
1378             Self::R16G16B16_SINT => [16, 16, 16, 0],
1379             Self::R16G16B16_SFLOAT => [16, 16, 16, 0],
1380             Self::R16G16B16A16_UNORM => [16, 16, 16, 16],
1381             Self::R16G16B16A16_SNORM => [16, 16, 16, 16],
1382             Self::R16G16B16A16_USCALED => [16, 16, 16, 16],
1383             Self::R16G16B16A16_SSCALED => [16, 16, 16, 16],
1384             Self::R16G16B16A16_UINT => [16, 16, 16, 16],
1385             Self::R16G16B16A16_SINT => [16, 16, 16, 16],
1386             Self::R16G16B16A16_SFLOAT => [16, 16, 16, 16],
1387             Self::R32_UINT => [32, 0, 0, 0],
1388             Self::R32_SINT => [32, 0, 0, 0],
1389             Self::R32_SFLOAT => [32, 0, 0, 0],
1390             Self::R32G32_UINT => [32, 32, 0, 0],
1391             Self::R32G32_SINT => [32, 32, 0, 0],
1392             Self::R32G32_SFLOAT => [32, 32, 0, 0],
1393             Self::R32G32B32_UINT => [32, 32, 32, 0],
1394             Self::R32G32B32_SINT => [32, 32, 32, 0],
1395             Self::R32G32B32_SFLOAT => [32, 32, 32, 0],
1396             Self::R32G32B32A32_UINT => [32, 32, 32, 32],
1397             Self::R32G32B32A32_SINT => [32, 32, 32, 32],
1398             Self::R32G32B32A32_SFLOAT => [32, 32, 32, 32],
1399             Self::R64_UINT => [64, 0, 0, 0],
1400             Self::R64_SINT => [64, 0, 0, 0],
1401             Self::R64_SFLOAT => [64, 0, 0, 0],
1402             Self::R64G64_UINT => [64, 0, 64, 0],
1403             Self::R64G64_SINT => [64, 0, 64, 0],
1404             Self::R64G64_SFLOAT => [64, 0, 64, 0],
1405             Self::R64G64B64_UINT => [64, 64, 64, 0],
1406             Self::R64G64B64_SINT => [64, 64, 64, 0],
1407             Self::R64G64B64_SFLOAT => [64, 64, 64, 0],
1408             Self::R64G64B64A64_UINT => [64, 64, 64, 64],
1409             Self::R64G64B64A64_SINT => [64, 64, 64, 64],
1410             Self::R64G64B64A64_SFLOAT => [64, 64, 64, 64],
1411             Self::B10G11R11_UFLOAT_PACK32 => [10, 11, 10, 0],
1412             Self::E5B9G9R9_UFLOAT_PACK32 => [9, 9, 9, 0],
1413             Self::D16_UNORM => [16, 0, 0, 0],
1414             Self::X8_D24_UNORM_PACK32 => [24, 0, 0, 0],
1415             Self::D32_SFLOAT => [32, 0, 0, 0],
1416             Self::S8_UINT => [0, 8, 0, 0],
1417             Self::D16_UNORM_S8_UINT => [16, 8, 0, 0],
1418             Self::D24_UNORM_S8_UINT => [24, 8, 0, 0],
1419             Self::D32_SFLOAT_S8_UINT => [32, 8, 0, 0],
1420             Self::BC1_RGB_UNORM_BLOCK => [1, 1, 1, 0],
1421             Self::BC1_RGB_SRGB_BLOCK => [1, 1, 1, 0],
1422             Self::BC1_RGBA_UNORM_BLOCK => [1, 1, 1, 1],
1423             Self::BC1_RGBA_SRGB_BLOCK => [1, 1, 1, 1],
1424             Self::BC2_UNORM_BLOCK => [1, 1, 1, 1],
1425             Self::BC2_SRGB_BLOCK => [1, 1, 1, 1],
1426             Self::BC3_UNORM_BLOCK => [1, 1, 1, 1],
1427             Self::BC3_SRGB_BLOCK => [1, 1, 1, 1],
1428             Self::BC4_UNORM_BLOCK => [1, 0, 0, 0],
1429             Self::BC4_SNORM_BLOCK => [1, 0, 0, 0],
1430             Self::BC5_UNORM_BLOCK => [1, 1, 0, 0],
1431             Self::BC5_SNORM_BLOCK => [1, 1, 0, 0],
1432             Self::BC6H_UFLOAT_BLOCK => [1, 1, 1, 0],
1433             Self::BC6H_SFLOAT_BLOCK => [1, 1, 1, 0],
1434             Self::BC7_UNORM_BLOCK => [1, 1, 1, 1],
1435             Self::BC7_SRGB_BLOCK => [1, 1, 1, 1],
1436             Self::ETC2_R8G8B8_UNORM_BLOCK => [1, 1, 1, 0],
1437             Self::ETC2_R8G8B8_SRGB_BLOCK => [1, 1, 1, 0],
1438             Self::ETC2_R8G8B8A1_UNORM_BLOCK => [1, 1, 1, 1],
1439             Self::ETC2_R8G8B8A1_SRGB_BLOCK => [1, 1, 1, 1],
1440             Self::ETC2_R8G8B8A8_UNORM_BLOCK => [1, 1, 1, 1],
1441             Self::ETC2_R8G8B8A8_SRGB_BLOCK => [1, 1, 1, 1],
1442             Self::EAC_R11_UNORM_BLOCK => [11, 0, 0, 0],
1443             Self::EAC_R11_SNORM_BLOCK => [11, 0, 0, 0],
1444             Self::EAC_R11G11_UNORM_BLOCK => [11, 11, 0, 0],
1445             Self::EAC_R11G11_SNORM_BLOCK => [11, 11, 0, 0],
1446             Self::ASTC_4x4_UNORM_BLOCK => [1, 1, 1, 1],
1447             Self::ASTC_4x4_SRGB_BLOCK => [1, 1, 1, 1],
1448             Self::ASTC_5x4_UNORM_BLOCK => [1, 1, 1, 1],
1449             Self::ASTC_5x4_SRGB_BLOCK => [1, 1, 1, 1],
1450             Self::ASTC_5x5_UNORM_BLOCK => [1, 1, 1, 1],
1451             Self::ASTC_5x5_SRGB_BLOCK => [1, 1, 1, 1],
1452             Self::ASTC_6x5_UNORM_BLOCK => [1, 1, 1, 1],
1453             Self::ASTC_6x5_SRGB_BLOCK => [1, 1, 1, 1],
1454             Self::ASTC_6x6_UNORM_BLOCK => [1, 1, 1, 1],
1455             Self::ASTC_6x6_SRGB_BLOCK => [1, 1, 1, 1],
1456             Self::ASTC_8x5_UNORM_BLOCK => [1, 1, 1, 1],
1457             Self::ASTC_8x5_SRGB_BLOCK => [1, 1, 1, 1],
1458             Self::ASTC_8x6_UNORM_BLOCK => [1, 1, 1, 1],
1459             Self::ASTC_8x6_SRGB_BLOCK => [1, 1, 1, 1],
1460             Self::ASTC_8x8_UNORM_BLOCK => [1, 1, 1, 1],
1461             Self::ASTC_8x8_SRGB_BLOCK => [1, 1, 1, 1],
1462             Self::ASTC_10x5_UNORM_BLOCK => [1, 1, 1, 1],
1463             Self::ASTC_10x5_SRGB_BLOCK => [1, 1, 1, 1],
1464             Self::ASTC_10x6_UNORM_BLOCK => [1, 1, 1, 1],
1465             Self::ASTC_10x6_SRGB_BLOCK => [1, 1, 1, 1],
1466             Self::ASTC_10x8_UNORM_BLOCK => [1, 1, 1, 1],
1467             Self::ASTC_10x8_SRGB_BLOCK => [1, 1, 1, 1],
1468             Self::ASTC_10x10_UNORM_BLOCK => [1, 1, 1, 1],
1469             Self::ASTC_10x10_SRGB_BLOCK => [1, 1, 1, 1],
1470             Self::ASTC_12x10_UNORM_BLOCK => [1, 1, 1, 1],
1471             Self::ASTC_12x10_SRGB_BLOCK => [1, 1, 1, 1],
1472             Self::ASTC_12x12_UNORM_BLOCK => [1, 1, 1, 1],
1473             Self::ASTC_12x12_SRGB_BLOCK => [1, 1, 1, 1],
1474             Self::G8B8G8R8_422_UNORM => [8, 16, 8, 0],
1475             Self::B8G8R8G8_422_UNORM => [8, 16, 8, 0],
1476             Self::G8_B8_R8_3PLANE_420_UNORM => [8, 8, 8, 0],
1477             Self::G8_B8R8_2PLANE_420_UNORM => [8, 8, 8, 0],
1478             Self::G8_B8_R8_3PLANE_422_UNORM => [8, 8, 8, 0],
1479             Self::G8_B8R8_2PLANE_422_UNORM => [8, 8, 8, 0],
1480             Self::G8_B8_R8_3PLANE_444_UNORM => [8, 8, 8, 0],
1481             Self::R10X6_UNORM_PACK16 => [10, 0, 0, 0],
1482             Self::R10X6G10X6_UNORM_2PACK16 => [10, 10, 0, 0],
1483             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => [10, 10, 10, 10],
1484             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => [10, 20, 10, 0],
1485             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => [10, 20, 10, 0],
1486             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => [10, 10, 10, 0],
1487             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => [10, 10, 10, 0],
1488             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => [10, 10, 10, 0],
1489             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => [10, 10, 10, 0],
1490             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => [10, 10, 10, 0],
1491             Self::R12X4_UNORM_PACK16 => [12, 0, 0, 0],
1492             Self::R12X4G12X4_UNORM_2PACK16 => [12, 12, 0, 0],
1493             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => [12, 12, 12, 12],
1494             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => [12, 24, 12, 0],
1495             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => [12, 24, 12, 0],
1496             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => [12, 12, 12, 0],
1497             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => [12, 12, 12, 0],
1498             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => [12, 12, 12, 0],
1499             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => [12, 12, 12, 0],
1500             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => [12, 12, 12, 0],
1501             Self::G16B16G16R16_422_UNORM => [16, 32, 16, 0],
1502             Self::B16G16R16G16_422_UNORM => [16, 32, 16, 0],
1503             Self::G16_B16_R16_3PLANE_420_UNORM => [16, 16, 16, 0],
1504             Self::G16_B16R16_2PLANE_420_UNORM => [16, 16, 16, 0],
1505             Self::G16_B16_R16_3PLANE_422_UNORM => [16, 16, 16, 0],
1506             Self::G16_B16R16_2PLANE_422_UNORM => [16, 16, 16, 0],
1507             Self::G16_B16_R16_3PLANE_444_UNORM => [16, 16, 16, 0],
1508             Self::PVRTC1_2BPP_UNORM_BLOCK => [1, 1, 1, 1],
1509             Self::PVRTC1_4BPP_UNORM_BLOCK => [1, 1, 1, 1],
1510             Self::PVRTC2_2BPP_UNORM_BLOCK => [1, 1, 1, 1],
1511             Self::PVRTC2_4BPP_UNORM_BLOCK => [1, 1, 1, 1],
1512             Self::PVRTC1_2BPP_SRGB_BLOCK => [1, 1, 1, 1],
1513             Self::PVRTC1_4BPP_SRGB_BLOCK => [1, 1, 1, 1],
1514             Self::PVRTC2_2BPP_SRGB_BLOCK => [1, 1, 1, 1],
1515             Self::PVRTC2_4BPP_SRGB_BLOCK => [1, 1, 1, 1],
1516             Self::ASTC_4x4_SFLOAT_BLOCK => [1, 1, 1, 1],
1517             Self::ASTC_5x4_SFLOAT_BLOCK => [1, 1, 1, 1],
1518             Self::ASTC_5x5_SFLOAT_BLOCK => [1, 1, 1, 1],
1519             Self::ASTC_6x5_SFLOAT_BLOCK => [1, 1, 1, 1],
1520             Self::ASTC_6x6_SFLOAT_BLOCK => [1, 1, 1, 1],
1521             Self::ASTC_8x5_SFLOAT_BLOCK => [1, 1, 1, 1],
1522             Self::ASTC_8x6_SFLOAT_BLOCK => [1, 1, 1, 1],
1523             Self::ASTC_8x8_SFLOAT_BLOCK => [1, 1, 1, 1],
1524             Self::ASTC_10x5_SFLOAT_BLOCK => [1, 1, 1, 1],
1525             Self::ASTC_10x6_SFLOAT_BLOCK => [1, 1, 1, 1],
1526             Self::ASTC_10x8_SFLOAT_BLOCK => [1, 1, 1, 1],
1527             Self::ASTC_10x10_SFLOAT_BLOCK => [1, 1, 1, 1],
1528             Self::ASTC_12x10_SFLOAT_BLOCK => [1, 1, 1, 1],
1529             Self::ASTC_12x12_SFLOAT_BLOCK => [1, 1, 1, 1],
1530             Self::G8_B8R8_2PLANE_444_UNORM => [8, 8, 8, 0],
1531             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => [10, 10, 10, 0],
1532             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => [12, 12, 12, 0],
1533             Self::G16_B16R16_2PLANE_444_UNORM => [16, 16, 16, 0],
1534             Self::A4R4G4B4_UNORM_PACK16 => [4, 4, 4, 4],
1535             Self::A4B4G4R4_UNORM_PACK16 => [4, 4, 4, 4],
1536             Self::R16G16_S10_5_NV => [16, 16, 0, 0],
1537         }
1538     }
1539     #[doc = r" Returns the block compression scheme used for this format, if any. Returns `None` if"]
1540     #[doc = r" the format does not use compression."]
compression(self) -> Option<CompressionType>1541     pub fn compression(self) -> Option<CompressionType> {
1542         match self {
1543             Self::BC1_RGB_UNORM_BLOCK => Some(CompressionType::BC),
1544             Self::BC1_RGB_SRGB_BLOCK => Some(CompressionType::BC),
1545             Self::BC1_RGBA_UNORM_BLOCK => Some(CompressionType::BC),
1546             Self::BC1_RGBA_SRGB_BLOCK => Some(CompressionType::BC),
1547             Self::BC2_UNORM_BLOCK => Some(CompressionType::BC),
1548             Self::BC2_SRGB_BLOCK => Some(CompressionType::BC),
1549             Self::BC3_UNORM_BLOCK => Some(CompressionType::BC),
1550             Self::BC3_SRGB_BLOCK => Some(CompressionType::BC),
1551             Self::BC4_UNORM_BLOCK => Some(CompressionType::BC),
1552             Self::BC4_SNORM_BLOCK => Some(CompressionType::BC),
1553             Self::BC5_UNORM_BLOCK => Some(CompressionType::BC),
1554             Self::BC5_SNORM_BLOCK => Some(CompressionType::BC),
1555             Self::BC6H_UFLOAT_BLOCK => Some(CompressionType::BC),
1556             Self::BC6H_SFLOAT_BLOCK => Some(CompressionType::BC),
1557             Self::BC7_UNORM_BLOCK => Some(CompressionType::BC),
1558             Self::BC7_SRGB_BLOCK => Some(CompressionType::BC),
1559             Self::ETC2_R8G8B8_UNORM_BLOCK => Some(CompressionType::ETC2),
1560             Self::ETC2_R8G8B8_SRGB_BLOCK => Some(CompressionType::ETC2),
1561             Self::ETC2_R8G8B8A1_UNORM_BLOCK => Some(CompressionType::ETC2),
1562             Self::ETC2_R8G8B8A1_SRGB_BLOCK => Some(CompressionType::ETC2),
1563             Self::ETC2_R8G8B8A8_UNORM_BLOCK => Some(CompressionType::ETC2),
1564             Self::ETC2_R8G8B8A8_SRGB_BLOCK => Some(CompressionType::ETC2),
1565             Self::EAC_R11_UNORM_BLOCK => Some(CompressionType::EAC),
1566             Self::EAC_R11_SNORM_BLOCK => Some(CompressionType::EAC),
1567             Self::EAC_R11G11_UNORM_BLOCK => Some(CompressionType::EAC),
1568             Self::EAC_R11G11_SNORM_BLOCK => Some(CompressionType::EAC),
1569             Self::ASTC_4x4_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1570             Self::ASTC_4x4_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1571             Self::ASTC_5x4_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1572             Self::ASTC_5x4_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1573             Self::ASTC_5x5_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1574             Self::ASTC_5x5_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1575             Self::ASTC_6x5_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1576             Self::ASTC_6x5_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1577             Self::ASTC_6x6_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1578             Self::ASTC_6x6_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1579             Self::ASTC_8x5_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1580             Self::ASTC_8x5_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1581             Self::ASTC_8x6_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1582             Self::ASTC_8x6_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1583             Self::ASTC_8x8_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1584             Self::ASTC_8x8_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1585             Self::ASTC_10x5_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1586             Self::ASTC_10x5_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1587             Self::ASTC_10x6_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1588             Self::ASTC_10x6_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1589             Self::ASTC_10x8_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1590             Self::ASTC_10x8_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1591             Self::ASTC_10x10_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1592             Self::ASTC_10x10_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1593             Self::ASTC_12x10_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1594             Self::ASTC_12x10_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1595             Self::ASTC_12x12_UNORM_BLOCK => Some(CompressionType::ASTC_LDR),
1596             Self::ASTC_12x12_SRGB_BLOCK => Some(CompressionType::ASTC_LDR),
1597             Self::PVRTC1_2BPP_UNORM_BLOCK => Some(CompressionType::PVRTC),
1598             Self::PVRTC1_4BPP_UNORM_BLOCK => Some(CompressionType::PVRTC),
1599             Self::PVRTC2_2BPP_UNORM_BLOCK => Some(CompressionType::PVRTC),
1600             Self::PVRTC2_4BPP_UNORM_BLOCK => Some(CompressionType::PVRTC),
1601             Self::PVRTC1_2BPP_SRGB_BLOCK => Some(CompressionType::PVRTC),
1602             Self::PVRTC1_4BPP_SRGB_BLOCK => Some(CompressionType::PVRTC),
1603             Self::PVRTC2_2BPP_SRGB_BLOCK => Some(CompressionType::PVRTC),
1604             Self::PVRTC2_4BPP_SRGB_BLOCK => Some(CompressionType::PVRTC),
1605             Self::ASTC_4x4_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1606             Self::ASTC_5x4_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1607             Self::ASTC_5x5_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1608             Self::ASTC_6x5_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1609             Self::ASTC_6x6_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1610             Self::ASTC_8x5_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1611             Self::ASTC_8x6_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1612             Self::ASTC_8x8_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1613             Self::ASTC_10x5_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1614             Self::ASTC_10x6_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1615             Self::ASTC_10x8_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1616             Self::ASTC_10x10_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1617             Self::ASTC_12x10_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1618             Self::ASTC_12x12_SFLOAT_BLOCK => Some(CompressionType::ASTC_HDR),
1619             _ => None,
1620         }
1621     }
1622     #[doc = r" For multi-planar formats, returns a slice of length 2 or 3, containing the"]
1623     #[doc = r" equivalent regular format of each plane."]
1624     #[doc = r""]
1625     #[doc = r" For non-planar formats, returns the empty slice."]
planes(self) -> &'static [Self]1626     pub fn planes(self) -> &'static [Self] {
1627         match self {
1628             Self::G8_B8_R8_3PLANE_420_UNORM => &[Self::R8_UNORM, Self::R8_UNORM, Self::R8_UNORM],
1629             Self::G8_B8R8_2PLANE_420_UNORM => &[Self::R8_UNORM, Self::R8G8_UNORM],
1630             Self::G8_B8_R8_3PLANE_422_UNORM => &[Self::R8_UNORM, Self::R8_UNORM, Self::R8_UNORM],
1631             Self::G8_B8R8_2PLANE_422_UNORM => &[Self::R8_UNORM, Self::R8G8_UNORM],
1632             Self::G8_B8_R8_3PLANE_444_UNORM => &[Self::R8_UNORM, Self::R8_UNORM, Self::R8_UNORM],
1633             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => &[
1634                 Self::R10X6_UNORM_PACK16,
1635                 Self::R10X6_UNORM_PACK16,
1636                 Self::R10X6_UNORM_PACK16,
1637             ],
1638             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
1639                 &[Self::R10X6_UNORM_PACK16, Self::R10X6G10X6_UNORM_2PACK16]
1640             }
1641             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => &[
1642                 Self::R10X6_UNORM_PACK16,
1643                 Self::R10X6_UNORM_PACK16,
1644                 Self::R10X6_UNORM_PACK16,
1645             ],
1646             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
1647                 &[Self::R10X6_UNORM_PACK16, Self::R10X6G10X6_UNORM_2PACK16]
1648             }
1649             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => &[
1650                 Self::R10X6_UNORM_PACK16,
1651                 Self::R10X6_UNORM_PACK16,
1652                 Self::R10X6_UNORM_PACK16,
1653             ],
1654             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => &[
1655                 Self::R12X4_UNORM_PACK16,
1656                 Self::R12X4_UNORM_PACK16,
1657                 Self::R12X4_UNORM_PACK16,
1658             ],
1659             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
1660                 &[Self::R12X4_UNORM_PACK16, Self::R12X4G12X4_UNORM_2PACK16]
1661             }
1662             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => &[
1663                 Self::R12X4_UNORM_PACK16,
1664                 Self::R12X4_UNORM_PACK16,
1665                 Self::R12X4_UNORM_PACK16,
1666             ],
1667             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
1668                 &[Self::R12X4_UNORM_PACK16, Self::R12X4G12X4_UNORM_2PACK16]
1669             }
1670             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => &[
1671                 Self::R12X4_UNORM_PACK16,
1672                 Self::R12X4_UNORM_PACK16,
1673                 Self::R12X4_UNORM_PACK16,
1674             ],
1675             Self::G16_B16_R16_3PLANE_420_UNORM => {
1676                 &[Self::R16_UNORM, Self::R16_UNORM, Self::R16_UNORM]
1677             }
1678             Self::G16_B16R16_2PLANE_420_UNORM => &[Self::R16_UNORM, Self::R16G16_UNORM],
1679             Self::G16_B16_R16_3PLANE_422_UNORM => {
1680                 &[Self::R16_UNORM, Self::R16_UNORM, Self::R16_UNORM]
1681             }
1682             Self::G16_B16R16_2PLANE_422_UNORM => &[Self::R16_UNORM, Self::R16G16_UNORM],
1683             Self::G16_B16_R16_3PLANE_444_UNORM => {
1684                 &[Self::R16_UNORM, Self::R16_UNORM, Self::R16_UNORM]
1685             }
1686             Self::G8_B8R8_2PLANE_444_UNORM => &[Self::R8_UNORM, Self::R8G8_UNORM],
1687             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
1688                 &[Self::R10X6_UNORM_PACK16, Self::R10X6G10X6_UNORM_2PACK16]
1689             }
1690             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
1691                 &[Self::R12X4_UNORM_PACK16, Self::R12X4G12X4_UNORM_2PACK16]
1692             }
1693             Self::G16_B16R16_2PLANE_444_UNORM => &[Self::R16_UNORM, Self::R16G16_UNORM],
1694             _ => &[],
1695         }
1696     }
1697     #[doc = r" Returns the number of texels for a single texel block. For most formats, this is"]
1698     #[doc = r" the product of the `block_extent` elements, but for some it differs."]
texels_per_block(self) -> u81699     pub fn texels_per_block(self) -> u8 {
1700         match self {
1701             Self::BC1_RGB_UNORM_BLOCK => 16,
1702             Self::BC1_RGB_SRGB_BLOCK => 16,
1703             Self::BC1_RGBA_UNORM_BLOCK => 16,
1704             Self::BC1_RGBA_SRGB_BLOCK => 16,
1705             Self::BC2_UNORM_BLOCK => 16,
1706             Self::BC2_SRGB_BLOCK => 16,
1707             Self::BC3_UNORM_BLOCK => 16,
1708             Self::BC3_SRGB_BLOCK => 16,
1709             Self::BC4_UNORM_BLOCK => 16,
1710             Self::BC4_SNORM_BLOCK => 16,
1711             Self::BC5_UNORM_BLOCK => 16,
1712             Self::BC5_SNORM_BLOCK => 16,
1713             Self::BC6H_UFLOAT_BLOCK => 16,
1714             Self::BC6H_SFLOAT_BLOCK => 16,
1715             Self::BC7_UNORM_BLOCK => 16,
1716             Self::BC7_SRGB_BLOCK => 16,
1717             Self::ETC2_R8G8B8_UNORM_BLOCK => 16,
1718             Self::ETC2_R8G8B8_SRGB_BLOCK => 16,
1719             Self::ETC2_R8G8B8A1_UNORM_BLOCK => 16,
1720             Self::ETC2_R8G8B8A1_SRGB_BLOCK => 16,
1721             Self::ETC2_R8G8B8A8_UNORM_BLOCK => 16,
1722             Self::ETC2_R8G8B8A8_SRGB_BLOCK => 16,
1723             Self::EAC_R11_UNORM_BLOCK => 16,
1724             Self::EAC_R11_SNORM_BLOCK => 16,
1725             Self::EAC_R11G11_UNORM_BLOCK => 16,
1726             Self::EAC_R11G11_SNORM_BLOCK => 16,
1727             Self::ASTC_4x4_UNORM_BLOCK => 16,
1728             Self::ASTC_4x4_SRGB_BLOCK => 16,
1729             Self::ASTC_5x4_UNORM_BLOCK => 20,
1730             Self::ASTC_5x4_SRGB_BLOCK => 20,
1731             Self::ASTC_5x5_UNORM_BLOCK => 25,
1732             Self::ASTC_5x5_SRGB_BLOCK => 25,
1733             Self::ASTC_6x5_UNORM_BLOCK => 30,
1734             Self::ASTC_6x5_SRGB_BLOCK => 30,
1735             Self::ASTC_6x6_UNORM_BLOCK => 36,
1736             Self::ASTC_6x6_SRGB_BLOCK => 36,
1737             Self::ASTC_8x5_UNORM_BLOCK => 40,
1738             Self::ASTC_8x5_SRGB_BLOCK => 40,
1739             Self::ASTC_8x6_UNORM_BLOCK => 48,
1740             Self::ASTC_8x6_SRGB_BLOCK => 48,
1741             Self::ASTC_8x8_UNORM_BLOCK => 64,
1742             Self::ASTC_8x8_SRGB_BLOCK => 64,
1743             Self::ASTC_10x5_UNORM_BLOCK => 50,
1744             Self::ASTC_10x5_SRGB_BLOCK => 50,
1745             Self::ASTC_10x6_UNORM_BLOCK => 60,
1746             Self::ASTC_10x6_SRGB_BLOCK => 60,
1747             Self::ASTC_10x8_UNORM_BLOCK => 80,
1748             Self::ASTC_10x8_SRGB_BLOCK => 80,
1749             Self::ASTC_10x10_UNORM_BLOCK => 100,
1750             Self::ASTC_10x10_SRGB_BLOCK => 100,
1751             Self::ASTC_12x10_UNORM_BLOCK => 120,
1752             Self::ASTC_12x10_SRGB_BLOCK => 120,
1753             Self::ASTC_12x12_UNORM_BLOCK => 144,
1754             Self::ASTC_12x12_SRGB_BLOCK => 144,
1755             Self::ASTC_4x4_SFLOAT_BLOCK => 16,
1756             Self::ASTC_5x4_SFLOAT_BLOCK => 20,
1757             Self::ASTC_5x5_SFLOAT_BLOCK => 25,
1758             Self::ASTC_6x5_SFLOAT_BLOCK => 30,
1759             Self::ASTC_6x6_SFLOAT_BLOCK => 36,
1760             Self::ASTC_8x5_SFLOAT_BLOCK => 40,
1761             Self::ASTC_8x6_SFLOAT_BLOCK => 48,
1762             Self::ASTC_8x8_SFLOAT_BLOCK => 64,
1763             Self::ASTC_10x5_SFLOAT_BLOCK => 50,
1764             Self::ASTC_10x6_SFLOAT_BLOCK => 60,
1765             Self::ASTC_10x8_SFLOAT_BLOCK => 80,
1766             Self::ASTC_10x10_SFLOAT_BLOCK => 100,
1767             Self::ASTC_12x10_SFLOAT_BLOCK => 120,
1768             Self::ASTC_12x12_SFLOAT_BLOCK => 144,
1769             _ => 1,
1770         }
1771     }
1772     #[doc = r" Returns the numeric data type of the color aspect of this format. Returns `None`"]
1773     #[doc = r" for depth/stencil formats."]
type_color(self) -> Option<NumericType>1774     pub fn type_color(self) -> Option<NumericType> {
1775         match self {
1776             Self::R4G4_UNORM_PACK8 => Some(NumericType::UNORM),
1777             Self::R4G4B4A4_UNORM_PACK16 => Some(NumericType::UNORM),
1778             Self::B4G4R4A4_UNORM_PACK16 => Some(NumericType::UNORM),
1779             Self::R5G6B5_UNORM_PACK16 => Some(NumericType::UNORM),
1780             Self::B5G6R5_UNORM_PACK16 => Some(NumericType::UNORM),
1781             Self::R5G5B5A1_UNORM_PACK16 => Some(NumericType::UNORM),
1782             Self::B5G5R5A1_UNORM_PACK16 => Some(NumericType::UNORM),
1783             Self::A1R5G5B5_UNORM_PACK16 => Some(NumericType::UNORM),
1784             Self::R8_UNORM => Some(NumericType::UNORM),
1785             Self::R8_SNORM => Some(NumericType::SNORM),
1786             Self::R8_USCALED => Some(NumericType::USCALED),
1787             Self::R8_SSCALED => Some(NumericType::SSCALED),
1788             Self::R8_UINT => Some(NumericType::UINT),
1789             Self::R8_SINT => Some(NumericType::SINT),
1790             Self::R8_SRGB => Some(NumericType::SRGB),
1791             Self::R8G8_UNORM => Some(NumericType::UNORM),
1792             Self::R8G8_SNORM => Some(NumericType::SNORM),
1793             Self::R8G8_USCALED => Some(NumericType::USCALED),
1794             Self::R8G8_SSCALED => Some(NumericType::SSCALED),
1795             Self::R8G8_UINT => Some(NumericType::UINT),
1796             Self::R8G8_SINT => Some(NumericType::SINT),
1797             Self::R8G8_SRGB => Some(NumericType::SRGB),
1798             Self::R8G8B8_UNORM => Some(NumericType::UNORM),
1799             Self::R8G8B8_SNORM => Some(NumericType::SNORM),
1800             Self::R8G8B8_USCALED => Some(NumericType::USCALED),
1801             Self::R8G8B8_SSCALED => Some(NumericType::SSCALED),
1802             Self::R8G8B8_UINT => Some(NumericType::UINT),
1803             Self::R8G8B8_SINT => Some(NumericType::SINT),
1804             Self::R8G8B8_SRGB => Some(NumericType::SRGB),
1805             Self::B8G8R8_UNORM => Some(NumericType::UNORM),
1806             Self::B8G8R8_SNORM => Some(NumericType::SNORM),
1807             Self::B8G8R8_USCALED => Some(NumericType::USCALED),
1808             Self::B8G8R8_SSCALED => Some(NumericType::SSCALED),
1809             Self::B8G8R8_UINT => Some(NumericType::UINT),
1810             Self::B8G8R8_SINT => Some(NumericType::SINT),
1811             Self::B8G8R8_SRGB => Some(NumericType::SRGB),
1812             Self::R8G8B8A8_UNORM => Some(NumericType::UNORM),
1813             Self::R8G8B8A8_SNORM => Some(NumericType::SNORM),
1814             Self::R8G8B8A8_USCALED => Some(NumericType::USCALED),
1815             Self::R8G8B8A8_SSCALED => Some(NumericType::SSCALED),
1816             Self::R8G8B8A8_UINT => Some(NumericType::UINT),
1817             Self::R8G8B8A8_SINT => Some(NumericType::SINT),
1818             Self::R8G8B8A8_SRGB => Some(NumericType::SRGB),
1819             Self::B8G8R8A8_UNORM => Some(NumericType::UNORM),
1820             Self::B8G8R8A8_SNORM => Some(NumericType::SNORM),
1821             Self::B8G8R8A8_USCALED => Some(NumericType::USCALED),
1822             Self::B8G8R8A8_SSCALED => Some(NumericType::SSCALED),
1823             Self::B8G8R8A8_UINT => Some(NumericType::UINT),
1824             Self::B8G8R8A8_SINT => Some(NumericType::SINT),
1825             Self::B8G8R8A8_SRGB => Some(NumericType::SRGB),
1826             Self::A8B8G8R8_UNORM_PACK32 => Some(NumericType::UNORM),
1827             Self::A8B8G8R8_SNORM_PACK32 => Some(NumericType::SNORM),
1828             Self::A8B8G8R8_USCALED_PACK32 => Some(NumericType::USCALED),
1829             Self::A8B8G8R8_SSCALED_PACK32 => Some(NumericType::SSCALED),
1830             Self::A8B8G8R8_UINT_PACK32 => Some(NumericType::UINT),
1831             Self::A8B8G8R8_SINT_PACK32 => Some(NumericType::SINT),
1832             Self::A8B8G8R8_SRGB_PACK32 => Some(NumericType::SRGB),
1833             Self::A2R10G10B10_UNORM_PACK32 => Some(NumericType::UNORM),
1834             Self::A2R10G10B10_SNORM_PACK32 => Some(NumericType::SNORM),
1835             Self::A2R10G10B10_USCALED_PACK32 => Some(NumericType::USCALED),
1836             Self::A2R10G10B10_SSCALED_PACK32 => Some(NumericType::SSCALED),
1837             Self::A2R10G10B10_UINT_PACK32 => Some(NumericType::UINT),
1838             Self::A2R10G10B10_SINT_PACK32 => Some(NumericType::SINT),
1839             Self::A2B10G10R10_UNORM_PACK32 => Some(NumericType::UNORM),
1840             Self::A2B10G10R10_SNORM_PACK32 => Some(NumericType::SNORM),
1841             Self::A2B10G10R10_USCALED_PACK32 => Some(NumericType::USCALED),
1842             Self::A2B10G10R10_SSCALED_PACK32 => Some(NumericType::SSCALED),
1843             Self::A2B10G10R10_UINT_PACK32 => Some(NumericType::UINT),
1844             Self::A2B10G10R10_SINT_PACK32 => Some(NumericType::SINT),
1845             Self::R16_UNORM => Some(NumericType::UNORM),
1846             Self::R16_SNORM => Some(NumericType::SNORM),
1847             Self::R16_USCALED => Some(NumericType::USCALED),
1848             Self::R16_SSCALED => Some(NumericType::SSCALED),
1849             Self::R16_UINT => Some(NumericType::UINT),
1850             Self::R16_SINT => Some(NumericType::SINT),
1851             Self::R16_SFLOAT => Some(NumericType::SFLOAT),
1852             Self::R16G16_UNORM => Some(NumericType::UNORM),
1853             Self::R16G16_SNORM => Some(NumericType::SNORM),
1854             Self::R16G16_USCALED => Some(NumericType::USCALED),
1855             Self::R16G16_SSCALED => Some(NumericType::SSCALED),
1856             Self::R16G16_UINT => Some(NumericType::UINT),
1857             Self::R16G16_SINT => Some(NumericType::SINT),
1858             Self::R16G16_SFLOAT => Some(NumericType::SFLOAT),
1859             Self::R16G16B16_UNORM => Some(NumericType::UNORM),
1860             Self::R16G16B16_SNORM => Some(NumericType::SNORM),
1861             Self::R16G16B16_USCALED => Some(NumericType::USCALED),
1862             Self::R16G16B16_SSCALED => Some(NumericType::SSCALED),
1863             Self::R16G16B16_UINT => Some(NumericType::UINT),
1864             Self::R16G16B16_SINT => Some(NumericType::SINT),
1865             Self::R16G16B16_SFLOAT => Some(NumericType::SFLOAT),
1866             Self::R16G16B16A16_UNORM => Some(NumericType::UNORM),
1867             Self::R16G16B16A16_SNORM => Some(NumericType::SNORM),
1868             Self::R16G16B16A16_USCALED => Some(NumericType::USCALED),
1869             Self::R16G16B16A16_SSCALED => Some(NumericType::SSCALED),
1870             Self::R16G16B16A16_UINT => Some(NumericType::UINT),
1871             Self::R16G16B16A16_SINT => Some(NumericType::SINT),
1872             Self::R16G16B16A16_SFLOAT => Some(NumericType::SFLOAT),
1873             Self::R32_UINT => Some(NumericType::UINT),
1874             Self::R32_SINT => Some(NumericType::SINT),
1875             Self::R32_SFLOAT => Some(NumericType::SFLOAT),
1876             Self::R32G32_UINT => Some(NumericType::UINT),
1877             Self::R32G32_SINT => Some(NumericType::SINT),
1878             Self::R32G32_SFLOAT => Some(NumericType::SFLOAT),
1879             Self::R32G32B32_UINT => Some(NumericType::UINT),
1880             Self::R32G32B32_SINT => Some(NumericType::SINT),
1881             Self::R32G32B32_SFLOAT => Some(NumericType::SFLOAT),
1882             Self::R32G32B32A32_UINT => Some(NumericType::UINT),
1883             Self::R32G32B32A32_SINT => Some(NumericType::SINT),
1884             Self::R32G32B32A32_SFLOAT => Some(NumericType::SFLOAT),
1885             Self::R64_UINT => Some(NumericType::UINT),
1886             Self::R64_SINT => Some(NumericType::SINT),
1887             Self::R64_SFLOAT => Some(NumericType::SFLOAT),
1888             Self::R64G64_UINT => Some(NumericType::UINT),
1889             Self::R64G64_SINT => Some(NumericType::SINT),
1890             Self::R64G64_SFLOAT => Some(NumericType::SFLOAT),
1891             Self::R64G64B64_UINT => Some(NumericType::UINT),
1892             Self::R64G64B64_SINT => Some(NumericType::SINT),
1893             Self::R64G64B64_SFLOAT => Some(NumericType::SFLOAT),
1894             Self::R64G64B64A64_UINT => Some(NumericType::UINT),
1895             Self::R64G64B64A64_SINT => Some(NumericType::SINT),
1896             Self::R64G64B64A64_SFLOAT => Some(NumericType::SFLOAT),
1897             Self::B10G11R11_UFLOAT_PACK32 => Some(NumericType::UFLOAT),
1898             Self::E5B9G9R9_UFLOAT_PACK32 => Some(NumericType::UFLOAT),
1899             Self::BC1_RGB_UNORM_BLOCK => Some(NumericType::UNORM),
1900             Self::BC1_RGB_SRGB_BLOCK => Some(NumericType::SRGB),
1901             Self::BC1_RGBA_UNORM_BLOCK => Some(NumericType::UNORM),
1902             Self::BC1_RGBA_SRGB_BLOCK => Some(NumericType::SRGB),
1903             Self::BC2_UNORM_BLOCK => Some(NumericType::UNORM),
1904             Self::BC2_SRGB_BLOCK => Some(NumericType::SRGB),
1905             Self::BC3_UNORM_BLOCK => Some(NumericType::UNORM),
1906             Self::BC3_SRGB_BLOCK => Some(NumericType::SRGB),
1907             Self::BC4_UNORM_BLOCK => Some(NumericType::UNORM),
1908             Self::BC4_SNORM_BLOCK => Some(NumericType::SRGB),
1909             Self::BC5_UNORM_BLOCK => Some(NumericType::UNORM),
1910             Self::BC5_SNORM_BLOCK => Some(NumericType::SRGB),
1911             Self::BC6H_UFLOAT_BLOCK => Some(NumericType::UFLOAT),
1912             Self::BC6H_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
1913             Self::BC7_UNORM_BLOCK => Some(NumericType::UNORM),
1914             Self::BC7_SRGB_BLOCK => Some(NumericType::SRGB),
1915             Self::ETC2_R8G8B8_UNORM_BLOCK => Some(NumericType::UNORM),
1916             Self::ETC2_R8G8B8_SRGB_BLOCK => Some(NumericType::SRGB),
1917             Self::ETC2_R8G8B8A1_UNORM_BLOCK => Some(NumericType::UNORM),
1918             Self::ETC2_R8G8B8A1_SRGB_BLOCK => Some(NumericType::SRGB),
1919             Self::ETC2_R8G8B8A8_UNORM_BLOCK => Some(NumericType::UNORM),
1920             Self::ETC2_R8G8B8A8_SRGB_BLOCK => Some(NumericType::SRGB),
1921             Self::EAC_R11_UNORM_BLOCK => Some(NumericType::UNORM),
1922             Self::EAC_R11_SNORM_BLOCK => Some(NumericType::SNORM),
1923             Self::EAC_R11G11_UNORM_BLOCK => Some(NumericType::UNORM),
1924             Self::EAC_R11G11_SNORM_BLOCK => Some(NumericType::SNORM),
1925             Self::ASTC_4x4_UNORM_BLOCK => Some(NumericType::UNORM),
1926             Self::ASTC_4x4_SRGB_BLOCK => Some(NumericType::SRGB),
1927             Self::ASTC_5x4_UNORM_BLOCK => Some(NumericType::UNORM),
1928             Self::ASTC_5x4_SRGB_BLOCK => Some(NumericType::SRGB),
1929             Self::ASTC_5x5_UNORM_BLOCK => Some(NumericType::UNORM),
1930             Self::ASTC_5x5_SRGB_BLOCK => Some(NumericType::SRGB),
1931             Self::ASTC_6x5_UNORM_BLOCK => Some(NumericType::UNORM),
1932             Self::ASTC_6x5_SRGB_BLOCK => Some(NumericType::SRGB),
1933             Self::ASTC_6x6_UNORM_BLOCK => Some(NumericType::UNORM),
1934             Self::ASTC_6x6_SRGB_BLOCK => Some(NumericType::SRGB),
1935             Self::ASTC_8x5_UNORM_BLOCK => Some(NumericType::UNORM),
1936             Self::ASTC_8x5_SRGB_BLOCK => Some(NumericType::SRGB),
1937             Self::ASTC_8x6_UNORM_BLOCK => Some(NumericType::UNORM),
1938             Self::ASTC_8x6_SRGB_BLOCK => Some(NumericType::SRGB),
1939             Self::ASTC_8x8_UNORM_BLOCK => Some(NumericType::UNORM),
1940             Self::ASTC_8x8_SRGB_BLOCK => Some(NumericType::SRGB),
1941             Self::ASTC_10x5_UNORM_BLOCK => Some(NumericType::UNORM),
1942             Self::ASTC_10x5_SRGB_BLOCK => Some(NumericType::SRGB),
1943             Self::ASTC_10x6_UNORM_BLOCK => Some(NumericType::UNORM),
1944             Self::ASTC_10x6_SRGB_BLOCK => Some(NumericType::SRGB),
1945             Self::ASTC_10x8_UNORM_BLOCK => Some(NumericType::UNORM),
1946             Self::ASTC_10x8_SRGB_BLOCK => Some(NumericType::SRGB),
1947             Self::ASTC_10x10_UNORM_BLOCK => Some(NumericType::UNORM),
1948             Self::ASTC_10x10_SRGB_BLOCK => Some(NumericType::SRGB),
1949             Self::ASTC_12x10_UNORM_BLOCK => Some(NumericType::UNORM),
1950             Self::ASTC_12x10_SRGB_BLOCK => Some(NumericType::SRGB),
1951             Self::ASTC_12x12_UNORM_BLOCK => Some(NumericType::UNORM),
1952             Self::ASTC_12x12_SRGB_BLOCK => Some(NumericType::SRGB),
1953             Self::G8B8G8R8_422_UNORM => Some(NumericType::UNORM),
1954             Self::B8G8R8G8_422_UNORM => Some(NumericType::UNORM),
1955             Self::G8_B8_R8_3PLANE_420_UNORM => Some(NumericType::UNORM),
1956             Self::G8_B8R8_2PLANE_420_UNORM => Some(NumericType::UNORM),
1957             Self::G8_B8_R8_3PLANE_422_UNORM => Some(NumericType::UNORM),
1958             Self::G8_B8R8_2PLANE_422_UNORM => Some(NumericType::UNORM),
1959             Self::G8_B8_R8_3PLANE_444_UNORM => Some(NumericType::UNORM),
1960             Self::R10X6_UNORM_PACK16 => Some(NumericType::UNORM),
1961             Self::R10X6G10X6_UNORM_2PACK16 => Some(NumericType::UNORM),
1962             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => Some(NumericType::UNORM),
1963             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => Some(NumericType::UNORM),
1964             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => Some(NumericType::UNORM),
1965             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => Some(NumericType::UNORM),
1966             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => Some(NumericType::UNORM),
1967             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => Some(NumericType::UNORM),
1968             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => Some(NumericType::UNORM),
1969             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => Some(NumericType::UNORM),
1970             Self::R12X4_UNORM_PACK16 => Some(NumericType::UNORM),
1971             Self::R12X4G12X4_UNORM_2PACK16 => Some(NumericType::UNORM),
1972             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => Some(NumericType::UNORM),
1973             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => Some(NumericType::UNORM),
1974             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => Some(NumericType::UNORM),
1975             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => Some(NumericType::UNORM),
1976             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => Some(NumericType::UNORM),
1977             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => Some(NumericType::UNORM),
1978             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => Some(NumericType::UNORM),
1979             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => Some(NumericType::UNORM),
1980             Self::G16B16G16R16_422_UNORM => Some(NumericType::UNORM),
1981             Self::B16G16R16G16_422_UNORM => Some(NumericType::UNORM),
1982             Self::G16_B16_R16_3PLANE_420_UNORM => Some(NumericType::UNORM),
1983             Self::G16_B16R16_2PLANE_420_UNORM => Some(NumericType::UNORM),
1984             Self::G16_B16_R16_3PLANE_422_UNORM => Some(NumericType::UNORM),
1985             Self::G16_B16R16_2PLANE_422_UNORM => Some(NumericType::UNORM),
1986             Self::G16_B16_R16_3PLANE_444_UNORM => Some(NumericType::UNORM),
1987             Self::PVRTC1_2BPP_UNORM_BLOCK => Some(NumericType::UNORM),
1988             Self::PVRTC1_4BPP_UNORM_BLOCK => Some(NumericType::UNORM),
1989             Self::PVRTC2_2BPP_UNORM_BLOCK => Some(NumericType::UNORM),
1990             Self::PVRTC2_4BPP_UNORM_BLOCK => Some(NumericType::UNORM),
1991             Self::PVRTC1_2BPP_SRGB_BLOCK => Some(NumericType::SRGB),
1992             Self::PVRTC1_4BPP_SRGB_BLOCK => Some(NumericType::SRGB),
1993             Self::PVRTC2_2BPP_SRGB_BLOCK => Some(NumericType::SRGB),
1994             Self::PVRTC2_4BPP_SRGB_BLOCK => Some(NumericType::SRGB),
1995             Self::ASTC_4x4_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
1996             Self::ASTC_5x4_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
1997             Self::ASTC_5x5_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
1998             Self::ASTC_6x5_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
1999             Self::ASTC_6x6_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2000             Self::ASTC_8x5_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2001             Self::ASTC_8x6_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2002             Self::ASTC_8x8_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2003             Self::ASTC_10x5_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2004             Self::ASTC_10x6_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2005             Self::ASTC_10x8_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2006             Self::ASTC_10x10_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2007             Self::ASTC_12x10_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2008             Self::ASTC_12x12_SFLOAT_BLOCK => Some(NumericType::SFLOAT),
2009             Self::G8_B8R8_2PLANE_444_UNORM => Some(NumericType::UNORM),
2010             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => Some(NumericType::UNORM),
2011             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => Some(NumericType::UNORM),
2012             Self::G16_B16R16_2PLANE_444_UNORM => Some(NumericType::UNORM),
2013             Self::A4R4G4B4_UNORM_PACK16 => Some(NumericType::UNORM),
2014             Self::A4B4G4R4_UNORM_PACK16 => Some(NumericType::UNORM),
2015             Self::R16G16_S10_5_NV => Some(NumericType::SINT),
2016             _ => None,
2017         }
2018     }
2019     #[doc = r" Returns the numeric data type of the depth aspect of this format. Returns `None`"]
2020     #[doc = r" color and stencil-only formats."]
type_depth(self) -> Option<NumericType>2021     pub fn type_depth(self) -> Option<NumericType> {
2022         match self {
2023             Self::D16_UNORM => Some(NumericType::UNORM),
2024             Self::X8_D24_UNORM_PACK32 => Some(NumericType::UNORM),
2025             Self::D32_SFLOAT => Some(NumericType::SFLOAT),
2026             Self::D16_UNORM_S8_UINT => Some(NumericType::UNORM),
2027             Self::D24_UNORM_S8_UINT => Some(NumericType::UNORM),
2028             Self::D32_SFLOAT_S8_UINT => Some(NumericType::SFLOAT),
2029             _ => None,
2030         }
2031     }
2032     #[doc = r" Returns the numeric data type of the stencil aspect of this format. Returns `None`"]
2033     #[doc = r" for color and depth-only formats."]
type_stencil(self) -> Option<NumericType>2034     pub fn type_stencil(self) -> Option<NumericType> {
2035         match self {
2036             Self::S8_UINT => Some(NumericType::UINT),
2037             Self::D16_UNORM_S8_UINT => Some(NumericType::UINT),
2038             Self::D24_UNORM_S8_UINT => Some(NumericType::UINT),
2039             Self::D32_SFLOAT_S8_UINT => Some(NumericType::UINT),
2040             _ => None,
2041         }
2042     }
2043     #[doc = r" For YCbCr (YUV) formats, returns the way in which the chroma components are"]
2044     #[doc = r" represented. Returns `None` for non-YCbCr formats."]
2045     #[doc = r""]
2046     #[doc = r" If an image view is created for one of the formats for which this function returns"]
2047     #[doc = r" `Some`, with the `color` aspect selected, then the view and any samplers that sample"]
2048     #[doc = r" it must be created with an attached sampler YCbCr conversion object."]
ycbcr_chroma_sampling(self) -> Option<ChromaSampling>2049     pub fn ycbcr_chroma_sampling(self) -> Option<ChromaSampling> {
2050         match self {
2051             Self::G8B8G8R8_422_UNORM => Some(ChromaSampling::Mode422),
2052             Self::B8G8R8G8_422_UNORM => Some(ChromaSampling::Mode422),
2053             Self::G8_B8_R8_3PLANE_420_UNORM => Some(ChromaSampling::Mode420),
2054             Self::G8_B8R8_2PLANE_420_UNORM => Some(ChromaSampling::Mode420),
2055             Self::G8_B8_R8_3PLANE_422_UNORM => Some(ChromaSampling::Mode422),
2056             Self::G8_B8R8_2PLANE_422_UNORM => Some(ChromaSampling::Mode422),
2057             Self::G8_B8_R8_3PLANE_444_UNORM => Some(ChromaSampling::Mode444),
2058             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => Some(ChromaSampling::Mode444),
2059             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => Some(ChromaSampling::Mode422),
2060             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => Some(ChromaSampling::Mode422),
2061             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => Some(ChromaSampling::Mode420),
2062             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => Some(ChromaSampling::Mode420),
2063             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => Some(ChromaSampling::Mode422),
2064             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => Some(ChromaSampling::Mode422),
2065             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => Some(ChromaSampling::Mode444),
2066             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => Some(ChromaSampling::Mode444),
2067             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => Some(ChromaSampling::Mode422),
2068             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => Some(ChromaSampling::Mode422),
2069             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => Some(ChromaSampling::Mode420),
2070             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => Some(ChromaSampling::Mode420),
2071             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => Some(ChromaSampling::Mode422),
2072             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => Some(ChromaSampling::Mode422),
2073             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => Some(ChromaSampling::Mode444),
2074             Self::G16B16G16R16_422_UNORM => Some(ChromaSampling::Mode422),
2075             Self::B16G16R16G16_422_UNORM => Some(ChromaSampling::Mode422),
2076             Self::G16_B16_R16_3PLANE_420_UNORM => Some(ChromaSampling::Mode420),
2077             Self::G16_B16R16_2PLANE_420_UNORM => Some(ChromaSampling::Mode420),
2078             Self::G16_B16_R16_3PLANE_422_UNORM => Some(ChromaSampling::Mode422),
2079             Self::G16_B16R16_2PLANE_422_UNORM => Some(ChromaSampling::Mode422),
2080             Self::G16_B16_R16_3PLANE_444_UNORM => Some(ChromaSampling::Mode444),
2081             Self::G8_B8R8_2PLANE_444_UNORM => Some(ChromaSampling::Mode444),
2082             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => Some(ChromaSampling::Mode444),
2083             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => Some(ChromaSampling::Mode444),
2084             Self::G16_B16R16_2PLANE_444_UNORM => Some(ChromaSampling::Mode444),
2085             _ => None,
2086         }
2087     }
2088     #[allow(dead_code)]
validate_device( self, #[allow(unused_variables)] device: &crate::device::Device, ) -> Result<(), crate::RequirementNotMet>2089     pub(crate) fn validate_device(
2090         self,
2091         #[allow(unused_variables)] device: &crate::device::Device,
2092     ) -> Result<(), crate::RequirementNotMet> {
2093         match self {
2094             Self::R4G4_UNORM_PACK8 => {}
2095             Self::R4G4B4A4_UNORM_PACK16 => {}
2096             Self::B4G4R4A4_UNORM_PACK16 => {}
2097             Self::R5G6B5_UNORM_PACK16 => {}
2098             Self::B5G6R5_UNORM_PACK16 => {}
2099             Self::R5G5B5A1_UNORM_PACK16 => {}
2100             Self::B5G5R5A1_UNORM_PACK16 => {}
2101             Self::A1R5G5B5_UNORM_PACK16 => {}
2102             Self::R8_UNORM => {}
2103             Self::R8_SNORM => {}
2104             Self::R8_USCALED => {}
2105             Self::R8_SSCALED => {}
2106             Self::R8_UINT => {}
2107             Self::R8_SINT => {}
2108             Self::R8_SRGB => {}
2109             Self::R8G8_UNORM => {}
2110             Self::R8G8_SNORM => {}
2111             Self::R8G8_USCALED => {}
2112             Self::R8G8_SSCALED => {}
2113             Self::R8G8_UINT => {}
2114             Self::R8G8_SINT => {}
2115             Self::R8G8_SRGB => {}
2116             Self::R8G8B8_UNORM => {}
2117             Self::R8G8B8_SNORM => {}
2118             Self::R8G8B8_USCALED => {}
2119             Self::R8G8B8_SSCALED => {}
2120             Self::R8G8B8_UINT => {}
2121             Self::R8G8B8_SINT => {}
2122             Self::R8G8B8_SRGB => {}
2123             Self::B8G8R8_UNORM => {}
2124             Self::B8G8R8_SNORM => {}
2125             Self::B8G8R8_USCALED => {}
2126             Self::B8G8R8_SSCALED => {}
2127             Self::B8G8R8_UINT => {}
2128             Self::B8G8R8_SINT => {}
2129             Self::B8G8R8_SRGB => {}
2130             Self::R8G8B8A8_UNORM => {}
2131             Self::R8G8B8A8_SNORM => {}
2132             Self::R8G8B8A8_USCALED => {}
2133             Self::R8G8B8A8_SSCALED => {}
2134             Self::R8G8B8A8_UINT => {}
2135             Self::R8G8B8A8_SINT => {}
2136             Self::R8G8B8A8_SRGB => {}
2137             Self::B8G8R8A8_UNORM => {}
2138             Self::B8G8R8A8_SNORM => {}
2139             Self::B8G8R8A8_USCALED => {}
2140             Self::B8G8R8A8_SSCALED => {}
2141             Self::B8G8R8A8_UINT => {}
2142             Self::B8G8R8A8_SINT => {}
2143             Self::B8G8R8A8_SRGB => {}
2144             Self::A8B8G8R8_UNORM_PACK32 => {}
2145             Self::A8B8G8R8_SNORM_PACK32 => {}
2146             Self::A8B8G8R8_USCALED_PACK32 => {}
2147             Self::A8B8G8R8_SSCALED_PACK32 => {}
2148             Self::A8B8G8R8_UINT_PACK32 => {}
2149             Self::A8B8G8R8_SINT_PACK32 => {}
2150             Self::A8B8G8R8_SRGB_PACK32 => {}
2151             Self::A2R10G10B10_UNORM_PACK32 => {}
2152             Self::A2R10G10B10_SNORM_PACK32 => {}
2153             Self::A2R10G10B10_USCALED_PACK32 => {}
2154             Self::A2R10G10B10_SSCALED_PACK32 => {}
2155             Self::A2R10G10B10_UINT_PACK32 => {}
2156             Self::A2R10G10B10_SINT_PACK32 => {}
2157             Self::A2B10G10R10_UNORM_PACK32 => {}
2158             Self::A2B10G10R10_SNORM_PACK32 => {}
2159             Self::A2B10G10R10_USCALED_PACK32 => {}
2160             Self::A2B10G10R10_SSCALED_PACK32 => {}
2161             Self::A2B10G10R10_UINT_PACK32 => {}
2162             Self::A2B10G10R10_SINT_PACK32 => {}
2163             Self::R16_UNORM => {}
2164             Self::R16_SNORM => {}
2165             Self::R16_USCALED => {}
2166             Self::R16_SSCALED => {}
2167             Self::R16_UINT => {}
2168             Self::R16_SINT => {}
2169             Self::R16_SFLOAT => {}
2170             Self::R16G16_UNORM => {}
2171             Self::R16G16_SNORM => {}
2172             Self::R16G16_USCALED => {}
2173             Self::R16G16_SSCALED => {}
2174             Self::R16G16_UINT => {}
2175             Self::R16G16_SINT => {}
2176             Self::R16G16_SFLOAT => {}
2177             Self::R16G16B16_UNORM => {}
2178             Self::R16G16B16_SNORM => {}
2179             Self::R16G16B16_USCALED => {}
2180             Self::R16G16B16_SSCALED => {}
2181             Self::R16G16B16_UINT => {}
2182             Self::R16G16B16_SINT => {}
2183             Self::R16G16B16_SFLOAT => {}
2184             Self::R16G16B16A16_UNORM => {}
2185             Self::R16G16B16A16_SNORM => {}
2186             Self::R16G16B16A16_USCALED => {}
2187             Self::R16G16B16A16_SSCALED => {}
2188             Self::R16G16B16A16_UINT => {}
2189             Self::R16G16B16A16_SINT => {}
2190             Self::R16G16B16A16_SFLOAT => {}
2191             Self::R32_UINT => {}
2192             Self::R32_SINT => {}
2193             Self::R32_SFLOAT => {}
2194             Self::R32G32_UINT => {}
2195             Self::R32G32_SINT => {}
2196             Self::R32G32_SFLOAT => {}
2197             Self::R32G32B32_UINT => {}
2198             Self::R32G32B32_SINT => {}
2199             Self::R32G32B32_SFLOAT => {}
2200             Self::R32G32B32A32_UINT => {}
2201             Self::R32G32B32A32_SINT => {}
2202             Self::R32G32B32A32_SFLOAT => {}
2203             Self::R64_UINT => {}
2204             Self::R64_SINT => {}
2205             Self::R64_SFLOAT => {}
2206             Self::R64G64_UINT => {}
2207             Self::R64G64_SINT => {}
2208             Self::R64G64_SFLOAT => {}
2209             Self::R64G64B64_UINT => {}
2210             Self::R64G64B64_SINT => {}
2211             Self::R64G64B64_SFLOAT => {}
2212             Self::R64G64B64A64_UINT => {}
2213             Self::R64G64B64A64_SINT => {}
2214             Self::R64G64B64A64_SFLOAT => {}
2215             Self::B10G11R11_UFLOAT_PACK32 => {}
2216             Self::E5B9G9R9_UFLOAT_PACK32 => {}
2217             Self::D16_UNORM => {}
2218             Self::X8_D24_UNORM_PACK32 => {}
2219             Self::D32_SFLOAT => {}
2220             Self::S8_UINT => {}
2221             Self::D16_UNORM_S8_UINT => {}
2222             Self::D24_UNORM_S8_UINT => {}
2223             Self::D32_SFLOAT_S8_UINT => {}
2224             Self::BC1_RGB_UNORM_BLOCK => {}
2225             Self::BC1_RGB_SRGB_BLOCK => {}
2226             Self::BC1_RGBA_UNORM_BLOCK => {}
2227             Self::BC1_RGBA_SRGB_BLOCK => {}
2228             Self::BC2_UNORM_BLOCK => {}
2229             Self::BC2_SRGB_BLOCK => {}
2230             Self::BC3_UNORM_BLOCK => {}
2231             Self::BC3_SRGB_BLOCK => {}
2232             Self::BC4_UNORM_BLOCK => {}
2233             Self::BC4_SNORM_BLOCK => {}
2234             Self::BC5_UNORM_BLOCK => {}
2235             Self::BC5_SNORM_BLOCK => {}
2236             Self::BC6H_UFLOAT_BLOCK => {}
2237             Self::BC6H_SFLOAT_BLOCK => {}
2238             Self::BC7_UNORM_BLOCK => {}
2239             Self::BC7_SRGB_BLOCK => {}
2240             Self::ETC2_R8G8B8_UNORM_BLOCK => {}
2241             Self::ETC2_R8G8B8_SRGB_BLOCK => {}
2242             Self::ETC2_R8G8B8A1_UNORM_BLOCK => {}
2243             Self::ETC2_R8G8B8A1_SRGB_BLOCK => {}
2244             Self::ETC2_R8G8B8A8_UNORM_BLOCK => {}
2245             Self::ETC2_R8G8B8A8_SRGB_BLOCK => {}
2246             Self::EAC_R11_UNORM_BLOCK => {}
2247             Self::EAC_R11_SNORM_BLOCK => {}
2248             Self::EAC_R11G11_UNORM_BLOCK => {}
2249             Self::EAC_R11G11_SNORM_BLOCK => {}
2250             Self::ASTC_4x4_UNORM_BLOCK => {}
2251             Self::ASTC_4x4_SRGB_BLOCK => {}
2252             Self::ASTC_5x4_UNORM_BLOCK => {}
2253             Self::ASTC_5x4_SRGB_BLOCK => {}
2254             Self::ASTC_5x5_UNORM_BLOCK => {}
2255             Self::ASTC_5x5_SRGB_BLOCK => {}
2256             Self::ASTC_6x5_UNORM_BLOCK => {}
2257             Self::ASTC_6x5_SRGB_BLOCK => {}
2258             Self::ASTC_6x6_UNORM_BLOCK => {}
2259             Self::ASTC_6x6_SRGB_BLOCK => {}
2260             Self::ASTC_8x5_UNORM_BLOCK => {}
2261             Self::ASTC_8x5_SRGB_BLOCK => {}
2262             Self::ASTC_8x6_UNORM_BLOCK => {}
2263             Self::ASTC_8x6_SRGB_BLOCK => {}
2264             Self::ASTC_8x8_UNORM_BLOCK => {}
2265             Self::ASTC_8x8_SRGB_BLOCK => {}
2266             Self::ASTC_10x5_UNORM_BLOCK => {}
2267             Self::ASTC_10x5_SRGB_BLOCK => {}
2268             Self::ASTC_10x6_UNORM_BLOCK => {}
2269             Self::ASTC_10x6_SRGB_BLOCK => {}
2270             Self::ASTC_10x8_UNORM_BLOCK => {}
2271             Self::ASTC_10x8_SRGB_BLOCK => {}
2272             Self::ASTC_10x10_UNORM_BLOCK => {}
2273             Self::ASTC_10x10_SRGB_BLOCK => {}
2274             Self::ASTC_12x10_UNORM_BLOCK => {}
2275             Self::ASTC_12x10_SRGB_BLOCK => {}
2276             Self::ASTC_12x12_UNORM_BLOCK => {}
2277             Self::ASTC_12x12_SRGB_BLOCK => {}
2278             Self::G8B8G8R8_422_UNORM => {
2279                 if !(device.api_version() >= crate::Version::V1_1
2280                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2281                 {
2282                     return Err(crate::RequirementNotMet {
2283                         required_for: "`Format::G8B8G8R8_422_UNORM`",
2284                         requires_one_of: crate::RequiresOneOf {
2285                             api_version: Some(crate::Version::V1_1),
2286                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2287                             ..Default::default()
2288                         },
2289                     });
2290                 }
2291             }
2292             Self::B8G8R8G8_422_UNORM => {
2293                 if !(device.api_version() >= crate::Version::V1_1
2294                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2295                 {
2296                     return Err(crate::RequirementNotMet {
2297                         required_for: "`Format::B8G8R8G8_422_UNORM`",
2298                         requires_one_of: crate::RequiresOneOf {
2299                             api_version: Some(crate::Version::V1_1),
2300                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2301                             ..Default::default()
2302                         },
2303                     });
2304                 }
2305             }
2306             Self::G8_B8_R8_3PLANE_420_UNORM => {
2307                 if !(device.api_version() >= crate::Version::V1_1
2308                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2309                 {
2310                     return Err(crate::RequirementNotMet {
2311                         required_for: "`Format::G8_B8_R8_3PLANE_420_UNORM`",
2312                         requires_one_of: crate::RequiresOneOf {
2313                             api_version: Some(crate::Version::V1_1),
2314                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2315                             ..Default::default()
2316                         },
2317                     });
2318                 }
2319             }
2320             Self::G8_B8R8_2PLANE_420_UNORM => {
2321                 if !(device.api_version() >= crate::Version::V1_1
2322                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2323                 {
2324                     return Err(crate::RequirementNotMet {
2325                         required_for: "`Format::G8_B8R8_2PLANE_420_UNORM`",
2326                         requires_one_of: crate::RequiresOneOf {
2327                             api_version: Some(crate::Version::V1_1),
2328                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2329                             ..Default::default()
2330                         },
2331                     });
2332                 }
2333             }
2334             Self::G8_B8_R8_3PLANE_422_UNORM => {
2335                 if !(device.api_version() >= crate::Version::V1_1
2336                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2337                 {
2338                     return Err(crate::RequirementNotMet {
2339                         required_for: "`Format::G8_B8_R8_3PLANE_422_UNORM`",
2340                         requires_one_of: crate::RequiresOneOf {
2341                             api_version: Some(crate::Version::V1_1),
2342                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2343                             ..Default::default()
2344                         },
2345                     });
2346                 }
2347             }
2348             Self::G8_B8R8_2PLANE_422_UNORM => {
2349                 if !(device.api_version() >= crate::Version::V1_1
2350                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2351                 {
2352                     return Err(crate::RequirementNotMet {
2353                         required_for: "`Format::G8_B8R8_2PLANE_422_UNORM`",
2354                         requires_one_of: crate::RequiresOneOf {
2355                             api_version: Some(crate::Version::V1_1),
2356                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2357                             ..Default::default()
2358                         },
2359                     });
2360                 }
2361             }
2362             Self::G8_B8_R8_3PLANE_444_UNORM => {
2363                 if !(device.api_version() >= crate::Version::V1_1
2364                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2365                 {
2366                     return Err(crate::RequirementNotMet {
2367                         required_for: "`Format::G8_B8_R8_3PLANE_444_UNORM`",
2368                         requires_one_of: crate::RequiresOneOf {
2369                             api_version: Some(crate::Version::V1_1),
2370                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2371                             ..Default::default()
2372                         },
2373                     });
2374                 }
2375             }
2376             Self::R10X6_UNORM_PACK16 => {
2377                 if !(device.api_version() >= crate::Version::V1_1
2378                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2379                 {
2380                     return Err(crate::RequirementNotMet {
2381                         required_for: "`Format::R10X6_UNORM_PACK16`",
2382                         requires_one_of: crate::RequiresOneOf {
2383                             api_version: Some(crate::Version::V1_1),
2384                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2385                             ..Default::default()
2386                         },
2387                     });
2388                 }
2389             }
2390             Self::R10X6G10X6_UNORM_2PACK16 => {
2391                 if !(device.api_version() >= crate::Version::V1_1
2392                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2393                 {
2394                     return Err(crate::RequirementNotMet {
2395                         required_for: "`Format::R10X6G10X6_UNORM_2PACK16`",
2396                         requires_one_of: crate::RequiresOneOf {
2397                             api_version: Some(crate::Version::V1_1),
2398                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2399                             ..Default::default()
2400                         },
2401                     });
2402                 }
2403             }
2404             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => {
2405                 if !(device.api_version() >= crate::Version::V1_1
2406                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2407                 {
2408                     return Err(crate::RequirementNotMet {
2409                         required_for: "`Format::R10X6G10X6B10X6A10X6_UNORM_4PACK16`",
2410                         requires_one_of: crate::RequiresOneOf {
2411                             api_version: Some(crate::Version::V1_1),
2412                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2413                             ..Default::default()
2414                         },
2415                     });
2416                 }
2417             }
2418             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => {
2419                 if !(device.api_version() >= crate::Version::V1_1
2420                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2421                 {
2422                     return Err(crate::RequirementNotMet {
2423                         required_for: "`Format::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16`",
2424                         requires_one_of: crate::RequiresOneOf {
2425                             api_version: Some(crate::Version::V1_1),
2426                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2427                             ..Default::default()
2428                         },
2429                     });
2430                 }
2431             }
2432             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => {
2433                 if !(device.api_version() >= crate::Version::V1_1
2434                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2435                 {
2436                     return Err(crate::RequirementNotMet {
2437                         required_for: "`Format::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16`",
2438                         requires_one_of: crate::RequiresOneOf {
2439                             api_version: Some(crate::Version::V1_1),
2440                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2441                             ..Default::default()
2442                         },
2443                     });
2444                 }
2445             }
2446             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
2447                 if !(device.api_version() >= crate::Version::V1_1
2448                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2449                 {
2450                     return Err(crate::RequirementNotMet {
2451                         required_for: "`Format::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16`",
2452                         requires_one_of: crate::RequiresOneOf {
2453                             api_version: Some(crate::Version::V1_1),
2454                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2455                             ..Default::default()
2456                         },
2457                     });
2458                 }
2459             }
2460             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
2461                 if !(device.api_version() >= crate::Version::V1_1
2462                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2463                 {
2464                     return Err(crate::RequirementNotMet {
2465                         required_for: "`Format::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16`",
2466                         requires_one_of: crate::RequiresOneOf {
2467                             api_version: Some(crate::Version::V1_1),
2468                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2469                             ..Default::default()
2470                         },
2471                     });
2472                 }
2473             }
2474             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
2475                 if !(device.api_version() >= crate::Version::V1_1
2476                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2477                 {
2478                     return Err(crate::RequirementNotMet {
2479                         required_for: "`Format::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16`",
2480                         requires_one_of: crate::RequiresOneOf {
2481                             api_version: Some(crate::Version::V1_1),
2482                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2483                             ..Default::default()
2484                         },
2485                     });
2486                 }
2487             }
2488             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
2489                 if !(device.api_version() >= crate::Version::V1_1
2490                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2491                 {
2492                     return Err(crate::RequirementNotMet {
2493                         required_for: "`Format::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16`",
2494                         requires_one_of: crate::RequiresOneOf {
2495                             api_version: Some(crate::Version::V1_1),
2496                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2497                             ..Default::default()
2498                         },
2499                     });
2500                 }
2501             }
2502             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
2503                 if !(device.api_version() >= crate::Version::V1_1
2504                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2505                 {
2506                     return Err(crate::RequirementNotMet {
2507                         required_for: "`Format::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16`",
2508                         requires_one_of: crate::RequiresOneOf {
2509                             api_version: Some(crate::Version::V1_1),
2510                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2511                             ..Default::default()
2512                         },
2513                     });
2514                 }
2515             }
2516             Self::R12X4_UNORM_PACK16 => {
2517                 if !(device.api_version() >= crate::Version::V1_1
2518                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2519                 {
2520                     return Err(crate::RequirementNotMet {
2521                         required_for: "`Format::R12X4_UNORM_PACK16`",
2522                         requires_one_of: crate::RequiresOneOf {
2523                             api_version: Some(crate::Version::V1_1),
2524                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2525                             ..Default::default()
2526                         },
2527                     });
2528                 }
2529             }
2530             Self::R12X4G12X4_UNORM_2PACK16 => {
2531                 if !(device.api_version() >= crate::Version::V1_1
2532                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2533                 {
2534                     return Err(crate::RequirementNotMet {
2535                         required_for: "`Format::R12X4G12X4_UNORM_2PACK16`",
2536                         requires_one_of: crate::RequiresOneOf {
2537                             api_version: Some(crate::Version::V1_1),
2538                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2539                             ..Default::default()
2540                         },
2541                     });
2542                 }
2543             }
2544             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => {
2545                 if !(device.api_version() >= crate::Version::V1_1
2546                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2547                 {
2548                     return Err(crate::RequirementNotMet {
2549                         required_for: "`Format::R12X4G12X4B12X4A12X4_UNORM_4PACK16`",
2550                         requires_one_of: crate::RequiresOneOf {
2551                             api_version: Some(crate::Version::V1_1),
2552                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2553                             ..Default::default()
2554                         },
2555                     });
2556                 }
2557             }
2558             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => {
2559                 if !(device.api_version() >= crate::Version::V1_1
2560                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2561                 {
2562                     return Err(crate::RequirementNotMet {
2563                         required_for: "`Format::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16`",
2564                         requires_one_of: crate::RequiresOneOf {
2565                             api_version: Some(crate::Version::V1_1),
2566                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2567                             ..Default::default()
2568                         },
2569                     });
2570                 }
2571             }
2572             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => {
2573                 if !(device.api_version() >= crate::Version::V1_1
2574                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2575                 {
2576                     return Err(crate::RequirementNotMet {
2577                         required_for: "`Format::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16`",
2578                         requires_one_of: crate::RequiresOneOf {
2579                             api_version: Some(crate::Version::V1_1),
2580                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2581                             ..Default::default()
2582                         },
2583                     });
2584                 }
2585             }
2586             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
2587                 if !(device.api_version() >= crate::Version::V1_1
2588                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2589                 {
2590                     return Err(crate::RequirementNotMet {
2591                         required_for: "`Format::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16`",
2592                         requires_one_of: crate::RequiresOneOf {
2593                             api_version: Some(crate::Version::V1_1),
2594                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2595                             ..Default::default()
2596                         },
2597                     });
2598                 }
2599             }
2600             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
2601                 if !(device.api_version() >= crate::Version::V1_1
2602                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2603                 {
2604                     return Err(crate::RequirementNotMet {
2605                         required_for: "`Format::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16`",
2606                         requires_one_of: crate::RequiresOneOf {
2607                             api_version: Some(crate::Version::V1_1),
2608                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2609                             ..Default::default()
2610                         },
2611                     });
2612                 }
2613             }
2614             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
2615                 if !(device.api_version() >= crate::Version::V1_1
2616                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2617                 {
2618                     return Err(crate::RequirementNotMet {
2619                         required_for: "`Format::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16`",
2620                         requires_one_of: crate::RequiresOneOf {
2621                             api_version: Some(crate::Version::V1_1),
2622                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2623                             ..Default::default()
2624                         },
2625                     });
2626                 }
2627             }
2628             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
2629                 if !(device.api_version() >= crate::Version::V1_1
2630                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2631                 {
2632                     return Err(crate::RequirementNotMet {
2633                         required_for: "`Format::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16`",
2634                         requires_one_of: crate::RequiresOneOf {
2635                             api_version: Some(crate::Version::V1_1),
2636                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2637                             ..Default::default()
2638                         },
2639                     });
2640                 }
2641             }
2642             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
2643                 if !(device.api_version() >= crate::Version::V1_1
2644                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2645                 {
2646                     return Err(crate::RequirementNotMet {
2647                         required_for: "`Format::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16`",
2648                         requires_one_of: crate::RequiresOneOf {
2649                             api_version: Some(crate::Version::V1_1),
2650                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2651                             ..Default::default()
2652                         },
2653                     });
2654                 }
2655             }
2656             Self::G16B16G16R16_422_UNORM => {
2657                 if !(device.api_version() >= crate::Version::V1_1
2658                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2659                 {
2660                     return Err(crate::RequirementNotMet {
2661                         required_for: "`Format::G16B16G16R16_422_UNORM`",
2662                         requires_one_of: crate::RequiresOneOf {
2663                             api_version: Some(crate::Version::V1_1),
2664                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2665                             ..Default::default()
2666                         },
2667                     });
2668                 }
2669             }
2670             Self::B16G16R16G16_422_UNORM => {
2671                 if !(device.api_version() >= crate::Version::V1_1
2672                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2673                 {
2674                     return Err(crate::RequirementNotMet {
2675                         required_for: "`Format::B16G16R16G16_422_UNORM`",
2676                         requires_one_of: crate::RequiresOneOf {
2677                             api_version: Some(crate::Version::V1_1),
2678                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2679                             ..Default::default()
2680                         },
2681                     });
2682                 }
2683             }
2684             Self::G16_B16_R16_3PLANE_420_UNORM => {
2685                 if !(device.api_version() >= crate::Version::V1_1
2686                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2687                 {
2688                     return Err(crate::RequirementNotMet {
2689                         required_for: "`Format::G16_B16_R16_3PLANE_420_UNORM`",
2690                         requires_one_of: crate::RequiresOneOf {
2691                             api_version: Some(crate::Version::V1_1),
2692                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2693                             ..Default::default()
2694                         },
2695                     });
2696                 }
2697             }
2698             Self::G16_B16R16_2PLANE_420_UNORM => {
2699                 if !(device.api_version() >= crate::Version::V1_1
2700                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2701                 {
2702                     return Err(crate::RequirementNotMet {
2703                         required_for: "`Format::G16_B16R16_2PLANE_420_UNORM`",
2704                         requires_one_of: crate::RequiresOneOf {
2705                             api_version: Some(crate::Version::V1_1),
2706                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2707                             ..Default::default()
2708                         },
2709                     });
2710                 }
2711             }
2712             Self::G16_B16_R16_3PLANE_422_UNORM => {
2713                 if !(device.api_version() >= crate::Version::V1_1
2714                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2715                 {
2716                     return Err(crate::RequirementNotMet {
2717                         required_for: "`Format::G16_B16_R16_3PLANE_422_UNORM`",
2718                         requires_one_of: crate::RequiresOneOf {
2719                             api_version: Some(crate::Version::V1_1),
2720                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2721                             ..Default::default()
2722                         },
2723                     });
2724                 }
2725             }
2726             Self::G16_B16R16_2PLANE_422_UNORM => {
2727                 if !(device.api_version() >= crate::Version::V1_1
2728                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2729                 {
2730                     return Err(crate::RequirementNotMet {
2731                         required_for: "`Format::G16_B16R16_2PLANE_422_UNORM`",
2732                         requires_one_of: crate::RequiresOneOf {
2733                             api_version: Some(crate::Version::V1_1),
2734                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2735                             ..Default::default()
2736                         },
2737                     });
2738                 }
2739             }
2740             Self::G16_B16_R16_3PLANE_444_UNORM => {
2741                 if !(device.api_version() >= crate::Version::V1_1
2742                     || device.enabled_extensions().khr_sampler_ycbcr_conversion)
2743                 {
2744                     return Err(crate::RequirementNotMet {
2745                         required_for: "`Format::G16_B16_R16_3PLANE_444_UNORM`",
2746                         requires_one_of: crate::RequiresOneOf {
2747                             api_version: Some(crate::Version::V1_1),
2748                             device_extensions: &["khr_sampler_ycbcr_conversion"],
2749                             ..Default::default()
2750                         },
2751                     });
2752                 }
2753             }
2754             Self::PVRTC1_2BPP_UNORM_BLOCK => {
2755                 if !(device.enabled_extensions().img_format_pvrtc) {
2756                     return Err(crate::RequirementNotMet {
2757                         required_for: "`Format::PVRTC1_2BPP_UNORM_BLOCK`",
2758                         requires_one_of: crate::RequiresOneOf {
2759                             device_extensions: &["img_format_pvrtc"],
2760                             ..Default::default()
2761                         },
2762                     });
2763                 }
2764             }
2765             Self::PVRTC1_4BPP_UNORM_BLOCK => {
2766                 if !(device.enabled_extensions().img_format_pvrtc) {
2767                     return Err(crate::RequirementNotMet {
2768                         required_for: "`Format::PVRTC1_4BPP_UNORM_BLOCK`",
2769                         requires_one_of: crate::RequiresOneOf {
2770                             device_extensions: &["img_format_pvrtc"],
2771                             ..Default::default()
2772                         },
2773                     });
2774                 }
2775             }
2776             Self::PVRTC2_2BPP_UNORM_BLOCK => {
2777                 if !(device.enabled_extensions().img_format_pvrtc) {
2778                     return Err(crate::RequirementNotMet {
2779                         required_for: "`Format::PVRTC2_2BPP_UNORM_BLOCK`",
2780                         requires_one_of: crate::RequiresOneOf {
2781                             device_extensions: &["img_format_pvrtc"],
2782                             ..Default::default()
2783                         },
2784                     });
2785                 }
2786             }
2787             Self::PVRTC2_4BPP_UNORM_BLOCK => {
2788                 if !(device.enabled_extensions().img_format_pvrtc) {
2789                     return Err(crate::RequirementNotMet {
2790                         required_for: "`Format::PVRTC2_4BPP_UNORM_BLOCK`",
2791                         requires_one_of: crate::RequiresOneOf {
2792                             device_extensions: &["img_format_pvrtc"],
2793                             ..Default::default()
2794                         },
2795                     });
2796                 }
2797             }
2798             Self::PVRTC1_2BPP_SRGB_BLOCK => {
2799                 if !(device.enabled_extensions().img_format_pvrtc) {
2800                     return Err(crate::RequirementNotMet {
2801                         required_for: "`Format::PVRTC1_2BPP_SRGB_BLOCK`",
2802                         requires_one_of: crate::RequiresOneOf {
2803                             device_extensions: &["img_format_pvrtc"],
2804                             ..Default::default()
2805                         },
2806                     });
2807                 }
2808             }
2809             Self::PVRTC1_4BPP_SRGB_BLOCK => {
2810                 if !(device.enabled_extensions().img_format_pvrtc) {
2811                     return Err(crate::RequirementNotMet {
2812                         required_for: "`Format::PVRTC1_4BPP_SRGB_BLOCK`",
2813                         requires_one_of: crate::RequiresOneOf {
2814                             device_extensions: &["img_format_pvrtc"],
2815                             ..Default::default()
2816                         },
2817                     });
2818                 }
2819             }
2820             Self::PVRTC2_2BPP_SRGB_BLOCK => {
2821                 if !(device.enabled_extensions().img_format_pvrtc) {
2822                     return Err(crate::RequirementNotMet {
2823                         required_for: "`Format::PVRTC2_2BPP_SRGB_BLOCK`",
2824                         requires_one_of: crate::RequiresOneOf {
2825                             device_extensions: &["img_format_pvrtc"],
2826                             ..Default::default()
2827                         },
2828                     });
2829                 }
2830             }
2831             Self::PVRTC2_4BPP_SRGB_BLOCK => {
2832                 if !(device.enabled_extensions().img_format_pvrtc) {
2833                     return Err(crate::RequirementNotMet {
2834                         required_for: "`Format::PVRTC2_4BPP_SRGB_BLOCK`",
2835                         requires_one_of: crate::RequiresOneOf {
2836                             device_extensions: &["img_format_pvrtc"],
2837                             ..Default::default()
2838                         },
2839                     });
2840                 }
2841             }
2842             Self::ASTC_4x4_SFLOAT_BLOCK => {
2843                 if !(device.api_version() >= crate::Version::V1_3
2844                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2845                 {
2846                     return Err(crate::RequirementNotMet {
2847                         required_for: "`Format::ASTC_4x4_SFLOAT_BLOCK`",
2848                         requires_one_of: crate::RequiresOneOf {
2849                             api_version: Some(crate::Version::V1_3),
2850                             device_extensions: &["ext_texture_compression_astc_hdr"],
2851                             ..Default::default()
2852                         },
2853                     });
2854                 }
2855             }
2856             Self::ASTC_5x4_SFLOAT_BLOCK => {
2857                 if !(device.api_version() >= crate::Version::V1_3
2858                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2859                 {
2860                     return Err(crate::RequirementNotMet {
2861                         required_for: "`Format::ASTC_5x4_SFLOAT_BLOCK`",
2862                         requires_one_of: crate::RequiresOneOf {
2863                             api_version: Some(crate::Version::V1_3),
2864                             device_extensions: &["ext_texture_compression_astc_hdr"],
2865                             ..Default::default()
2866                         },
2867                     });
2868                 }
2869             }
2870             Self::ASTC_5x5_SFLOAT_BLOCK => {
2871                 if !(device.api_version() >= crate::Version::V1_3
2872                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2873                 {
2874                     return Err(crate::RequirementNotMet {
2875                         required_for: "`Format::ASTC_5x5_SFLOAT_BLOCK`",
2876                         requires_one_of: crate::RequiresOneOf {
2877                             api_version: Some(crate::Version::V1_3),
2878                             device_extensions: &["ext_texture_compression_astc_hdr"],
2879                             ..Default::default()
2880                         },
2881                     });
2882                 }
2883             }
2884             Self::ASTC_6x5_SFLOAT_BLOCK => {
2885                 if !(device.api_version() >= crate::Version::V1_3
2886                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2887                 {
2888                     return Err(crate::RequirementNotMet {
2889                         required_for: "`Format::ASTC_6x5_SFLOAT_BLOCK`",
2890                         requires_one_of: crate::RequiresOneOf {
2891                             api_version: Some(crate::Version::V1_3),
2892                             device_extensions: &["ext_texture_compression_astc_hdr"],
2893                             ..Default::default()
2894                         },
2895                     });
2896                 }
2897             }
2898             Self::ASTC_6x6_SFLOAT_BLOCK => {
2899                 if !(device.api_version() >= crate::Version::V1_3
2900                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2901                 {
2902                     return Err(crate::RequirementNotMet {
2903                         required_for: "`Format::ASTC_6x6_SFLOAT_BLOCK`",
2904                         requires_one_of: crate::RequiresOneOf {
2905                             api_version: Some(crate::Version::V1_3),
2906                             device_extensions: &["ext_texture_compression_astc_hdr"],
2907                             ..Default::default()
2908                         },
2909                     });
2910                 }
2911             }
2912             Self::ASTC_8x5_SFLOAT_BLOCK => {
2913                 if !(device.api_version() >= crate::Version::V1_3
2914                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2915                 {
2916                     return Err(crate::RequirementNotMet {
2917                         required_for: "`Format::ASTC_8x5_SFLOAT_BLOCK`",
2918                         requires_one_of: crate::RequiresOneOf {
2919                             api_version: Some(crate::Version::V1_3),
2920                             device_extensions: &["ext_texture_compression_astc_hdr"],
2921                             ..Default::default()
2922                         },
2923                     });
2924                 }
2925             }
2926             Self::ASTC_8x6_SFLOAT_BLOCK => {
2927                 if !(device.api_version() >= crate::Version::V1_3
2928                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2929                 {
2930                     return Err(crate::RequirementNotMet {
2931                         required_for: "`Format::ASTC_8x6_SFLOAT_BLOCK`",
2932                         requires_one_of: crate::RequiresOneOf {
2933                             api_version: Some(crate::Version::V1_3),
2934                             device_extensions: &["ext_texture_compression_astc_hdr"],
2935                             ..Default::default()
2936                         },
2937                     });
2938                 }
2939             }
2940             Self::ASTC_8x8_SFLOAT_BLOCK => {
2941                 if !(device.api_version() >= crate::Version::V1_3
2942                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2943                 {
2944                     return Err(crate::RequirementNotMet {
2945                         required_for: "`Format::ASTC_8x8_SFLOAT_BLOCK`",
2946                         requires_one_of: crate::RequiresOneOf {
2947                             api_version: Some(crate::Version::V1_3),
2948                             device_extensions: &["ext_texture_compression_astc_hdr"],
2949                             ..Default::default()
2950                         },
2951                     });
2952                 }
2953             }
2954             Self::ASTC_10x5_SFLOAT_BLOCK => {
2955                 if !(device.api_version() >= crate::Version::V1_3
2956                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2957                 {
2958                     return Err(crate::RequirementNotMet {
2959                         required_for: "`Format::ASTC_10x5_SFLOAT_BLOCK`",
2960                         requires_one_of: crate::RequiresOneOf {
2961                             api_version: Some(crate::Version::V1_3),
2962                             device_extensions: &["ext_texture_compression_astc_hdr"],
2963                             ..Default::default()
2964                         },
2965                     });
2966                 }
2967             }
2968             Self::ASTC_10x6_SFLOAT_BLOCK => {
2969                 if !(device.api_version() >= crate::Version::V1_3
2970                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2971                 {
2972                     return Err(crate::RequirementNotMet {
2973                         required_for: "`Format::ASTC_10x6_SFLOAT_BLOCK`",
2974                         requires_one_of: crate::RequiresOneOf {
2975                             api_version: Some(crate::Version::V1_3),
2976                             device_extensions: &["ext_texture_compression_astc_hdr"],
2977                             ..Default::default()
2978                         },
2979                     });
2980                 }
2981             }
2982             Self::ASTC_10x8_SFLOAT_BLOCK => {
2983                 if !(device.api_version() >= crate::Version::V1_3
2984                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2985                 {
2986                     return Err(crate::RequirementNotMet {
2987                         required_for: "`Format::ASTC_10x8_SFLOAT_BLOCK`",
2988                         requires_one_of: crate::RequiresOneOf {
2989                             api_version: Some(crate::Version::V1_3),
2990                             device_extensions: &["ext_texture_compression_astc_hdr"],
2991                             ..Default::default()
2992                         },
2993                     });
2994                 }
2995             }
2996             Self::ASTC_10x10_SFLOAT_BLOCK => {
2997                 if !(device.api_version() >= crate::Version::V1_3
2998                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
2999                 {
3000                     return Err(crate::RequirementNotMet {
3001                         required_for: "`Format::ASTC_10x10_SFLOAT_BLOCK`",
3002                         requires_one_of: crate::RequiresOneOf {
3003                             api_version: Some(crate::Version::V1_3),
3004                             device_extensions: &["ext_texture_compression_astc_hdr"],
3005                             ..Default::default()
3006                         },
3007                     });
3008                 }
3009             }
3010             Self::ASTC_12x10_SFLOAT_BLOCK => {
3011                 if !(device.api_version() >= crate::Version::V1_3
3012                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
3013                 {
3014                     return Err(crate::RequirementNotMet {
3015                         required_for: "`Format::ASTC_12x10_SFLOAT_BLOCK`",
3016                         requires_one_of: crate::RequiresOneOf {
3017                             api_version: Some(crate::Version::V1_3),
3018                             device_extensions: &["ext_texture_compression_astc_hdr"],
3019                             ..Default::default()
3020                         },
3021                     });
3022                 }
3023             }
3024             Self::ASTC_12x12_SFLOAT_BLOCK => {
3025                 if !(device.api_version() >= crate::Version::V1_3
3026                     || device.enabled_extensions().ext_texture_compression_astc_hdr)
3027                 {
3028                     return Err(crate::RequirementNotMet {
3029                         required_for: "`Format::ASTC_12x12_SFLOAT_BLOCK`",
3030                         requires_one_of: crate::RequiresOneOf {
3031                             api_version: Some(crate::Version::V1_3),
3032                             device_extensions: &["ext_texture_compression_astc_hdr"],
3033                             ..Default::default()
3034                         },
3035                     });
3036                 }
3037             }
3038             Self::G8_B8R8_2PLANE_444_UNORM => {
3039                 if !(device.api_version() >= crate::Version::V1_3
3040                     || device.enabled_extensions().ext_ycbcr_2plane_444_formats)
3041                 {
3042                     return Err(crate::RequirementNotMet {
3043                         required_for: "`Format::G8_B8R8_2PLANE_444_UNORM`",
3044                         requires_one_of: crate::RequiresOneOf {
3045                             api_version: Some(crate::Version::V1_3),
3046                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
3047                             ..Default::default()
3048                         },
3049                     });
3050                 }
3051             }
3052             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
3053                 if !(device.api_version() >= crate::Version::V1_3
3054                     || device.enabled_extensions().ext_ycbcr_2plane_444_formats)
3055                 {
3056                     return Err(crate::RequirementNotMet {
3057                         required_for: "`Format::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16`",
3058                         requires_one_of: crate::RequiresOneOf {
3059                             api_version: Some(crate::Version::V1_3),
3060                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
3061                             ..Default::default()
3062                         },
3063                     });
3064                 }
3065             }
3066             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
3067                 if !(device.api_version() >= crate::Version::V1_3
3068                     || device.enabled_extensions().ext_ycbcr_2plane_444_formats)
3069                 {
3070                     return Err(crate::RequirementNotMet {
3071                         required_for: "`Format::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16`",
3072                         requires_one_of: crate::RequiresOneOf {
3073                             api_version: Some(crate::Version::V1_3),
3074                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
3075                             ..Default::default()
3076                         },
3077                     });
3078                 }
3079             }
3080             Self::G16_B16R16_2PLANE_444_UNORM => {
3081                 if !(device.api_version() >= crate::Version::V1_3
3082                     || device.enabled_extensions().ext_ycbcr_2plane_444_formats)
3083                 {
3084                     return Err(crate::RequirementNotMet {
3085                         required_for: "`Format::G16_B16R16_2PLANE_444_UNORM`",
3086                         requires_one_of: crate::RequiresOneOf {
3087                             api_version: Some(crate::Version::V1_3),
3088                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
3089                             ..Default::default()
3090                         },
3091                     });
3092                 }
3093             }
3094             Self::A4R4G4B4_UNORM_PACK16 => {
3095                 if !(device.api_version() >= crate::Version::V1_3
3096                     || device.enabled_extensions().ext_4444_formats)
3097                 {
3098                     return Err(crate::RequirementNotMet {
3099                         required_for: "`Format::A4R4G4B4_UNORM_PACK16`",
3100                         requires_one_of: crate::RequiresOneOf {
3101                             api_version: Some(crate::Version::V1_3),
3102                             device_extensions: &["ext_4444_formats"],
3103                             ..Default::default()
3104                         },
3105                     });
3106                 }
3107             }
3108             Self::A4B4G4R4_UNORM_PACK16 => {
3109                 if !(device.api_version() >= crate::Version::V1_3
3110                     || device.enabled_extensions().ext_4444_formats)
3111                 {
3112                     return Err(crate::RequirementNotMet {
3113                         required_for: "`Format::A4B4G4R4_UNORM_PACK16`",
3114                         requires_one_of: crate::RequiresOneOf {
3115                             api_version: Some(crate::Version::V1_3),
3116                             device_extensions: &["ext_4444_formats"],
3117                             ..Default::default()
3118                         },
3119                     });
3120                 }
3121             }
3122             Self::R16G16_S10_5_NV => {
3123                 if !(device.enabled_extensions().nv_optical_flow) {
3124                     return Err(crate::RequirementNotMet {
3125                         required_for: "`Format::R16G16_S10_5_NV`",
3126                         requires_one_of: crate::RequiresOneOf {
3127                             device_extensions: &["nv_optical_flow"],
3128                             ..Default::default()
3129                         },
3130                     });
3131                 }
3132             }
3133         }
3134         Ok(())
3135     }
3136     #[allow(dead_code)]
validate_physical_device( self, #[allow(unused_variables)] physical_device: &crate::device::physical::PhysicalDevice, ) -> Result<(), crate::RequirementNotMet>3137     pub(crate) fn validate_physical_device(
3138         self,
3139         #[allow(unused_variables)] physical_device: &crate::device::physical::PhysicalDevice,
3140     ) -> Result<(), crate::RequirementNotMet> {
3141         match self {
3142             Self::R4G4_UNORM_PACK8 => {}
3143             Self::R4G4B4A4_UNORM_PACK16 => {}
3144             Self::B4G4R4A4_UNORM_PACK16 => {}
3145             Self::R5G6B5_UNORM_PACK16 => {}
3146             Self::B5G6R5_UNORM_PACK16 => {}
3147             Self::R5G5B5A1_UNORM_PACK16 => {}
3148             Self::B5G5R5A1_UNORM_PACK16 => {}
3149             Self::A1R5G5B5_UNORM_PACK16 => {}
3150             Self::R8_UNORM => {}
3151             Self::R8_SNORM => {}
3152             Self::R8_USCALED => {}
3153             Self::R8_SSCALED => {}
3154             Self::R8_UINT => {}
3155             Self::R8_SINT => {}
3156             Self::R8_SRGB => {}
3157             Self::R8G8_UNORM => {}
3158             Self::R8G8_SNORM => {}
3159             Self::R8G8_USCALED => {}
3160             Self::R8G8_SSCALED => {}
3161             Self::R8G8_UINT => {}
3162             Self::R8G8_SINT => {}
3163             Self::R8G8_SRGB => {}
3164             Self::R8G8B8_UNORM => {}
3165             Self::R8G8B8_SNORM => {}
3166             Self::R8G8B8_USCALED => {}
3167             Self::R8G8B8_SSCALED => {}
3168             Self::R8G8B8_UINT => {}
3169             Self::R8G8B8_SINT => {}
3170             Self::R8G8B8_SRGB => {}
3171             Self::B8G8R8_UNORM => {}
3172             Self::B8G8R8_SNORM => {}
3173             Self::B8G8R8_USCALED => {}
3174             Self::B8G8R8_SSCALED => {}
3175             Self::B8G8R8_UINT => {}
3176             Self::B8G8R8_SINT => {}
3177             Self::B8G8R8_SRGB => {}
3178             Self::R8G8B8A8_UNORM => {}
3179             Self::R8G8B8A8_SNORM => {}
3180             Self::R8G8B8A8_USCALED => {}
3181             Self::R8G8B8A8_SSCALED => {}
3182             Self::R8G8B8A8_UINT => {}
3183             Self::R8G8B8A8_SINT => {}
3184             Self::R8G8B8A8_SRGB => {}
3185             Self::B8G8R8A8_UNORM => {}
3186             Self::B8G8R8A8_SNORM => {}
3187             Self::B8G8R8A8_USCALED => {}
3188             Self::B8G8R8A8_SSCALED => {}
3189             Self::B8G8R8A8_UINT => {}
3190             Self::B8G8R8A8_SINT => {}
3191             Self::B8G8R8A8_SRGB => {}
3192             Self::A8B8G8R8_UNORM_PACK32 => {}
3193             Self::A8B8G8R8_SNORM_PACK32 => {}
3194             Self::A8B8G8R8_USCALED_PACK32 => {}
3195             Self::A8B8G8R8_SSCALED_PACK32 => {}
3196             Self::A8B8G8R8_UINT_PACK32 => {}
3197             Self::A8B8G8R8_SINT_PACK32 => {}
3198             Self::A8B8G8R8_SRGB_PACK32 => {}
3199             Self::A2R10G10B10_UNORM_PACK32 => {}
3200             Self::A2R10G10B10_SNORM_PACK32 => {}
3201             Self::A2R10G10B10_USCALED_PACK32 => {}
3202             Self::A2R10G10B10_SSCALED_PACK32 => {}
3203             Self::A2R10G10B10_UINT_PACK32 => {}
3204             Self::A2R10G10B10_SINT_PACK32 => {}
3205             Self::A2B10G10R10_UNORM_PACK32 => {}
3206             Self::A2B10G10R10_SNORM_PACK32 => {}
3207             Self::A2B10G10R10_USCALED_PACK32 => {}
3208             Self::A2B10G10R10_SSCALED_PACK32 => {}
3209             Self::A2B10G10R10_UINT_PACK32 => {}
3210             Self::A2B10G10R10_SINT_PACK32 => {}
3211             Self::R16_UNORM => {}
3212             Self::R16_SNORM => {}
3213             Self::R16_USCALED => {}
3214             Self::R16_SSCALED => {}
3215             Self::R16_UINT => {}
3216             Self::R16_SINT => {}
3217             Self::R16_SFLOAT => {}
3218             Self::R16G16_UNORM => {}
3219             Self::R16G16_SNORM => {}
3220             Self::R16G16_USCALED => {}
3221             Self::R16G16_SSCALED => {}
3222             Self::R16G16_UINT => {}
3223             Self::R16G16_SINT => {}
3224             Self::R16G16_SFLOAT => {}
3225             Self::R16G16B16_UNORM => {}
3226             Self::R16G16B16_SNORM => {}
3227             Self::R16G16B16_USCALED => {}
3228             Self::R16G16B16_SSCALED => {}
3229             Self::R16G16B16_UINT => {}
3230             Self::R16G16B16_SINT => {}
3231             Self::R16G16B16_SFLOAT => {}
3232             Self::R16G16B16A16_UNORM => {}
3233             Self::R16G16B16A16_SNORM => {}
3234             Self::R16G16B16A16_USCALED => {}
3235             Self::R16G16B16A16_SSCALED => {}
3236             Self::R16G16B16A16_UINT => {}
3237             Self::R16G16B16A16_SINT => {}
3238             Self::R16G16B16A16_SFLOAT => {}
3239             Self::R32_UINT => {}
3240             Self::R32_SINT => {}
3241             Self::R32_SFLOAT => {}
3242             Self::R32G32_UINT => {}
3243             Self::R32G32_SINT => {}
3244             Self::R32G32_SFLOAT => {}
3245             Self::R32G32B32_UINT => {}
3246             Self::R32G32B32_SINT => {}
3247             Self::R32G32B32_SFLOAT => {}
3248             Self::R32G32B32A32_UINT => {}
3249             Self::R32G32B32A32_SINT => {}
3250             Self::R32G32B32A32_SFLOAT => {}
3251             Self::R64_UINT => {}
3252             Self::R64_SINT => {}
3253             Self::R64_SFLOAT => {}
3254             Self::R64G64_UINT => {}
3255             Self::R64G64_SINT => {}
3256             Self::R64G64_SFLOAT => {}
3257             Self::R64G64B64_UINT => {}
3258             Self::R64G64B64_SINT => {}
3259             Self::R64G64B64_SFLOAT => {}
3260             Self::R64G64B64A64_UINT => {}
3261             Self::R64G64B64A64_SINT => {}
3262             Self::R64G64B64A64_SFLOAT => {}
3263             Self::B10G11R11_UFLOAT_PACK32 => {}
3264             Self::E5B9G9R9_UFLOAT_PACK32 => {}
3265             Self::D16_UNORM => {}
3266             Self::X8_D24_UNORM_PACK32 => {}
3267             Self::D32_SFLOAT => {}
3268             Self::S8_UINT => {}
3269             Self::D16_UNORM_S8_UINT => {}
3270             Self::D24_UNORM_S8_UINT => {}
3271             Self::D32_SFLOAT_S8_UINT => {}
3272             Self::BC1_RGB_UNORM_BLOCK => {}
3273             Self::BC1_RGB_SRGB_BLOCK => {}
3274             Self::BC1_RGBA_UNORM_BLOCK => {}
3275             Self::BC1_RGBA_SRGB_BLOCK => {}
3276             Self::BC2_UNORM_BLOCK => {}
3277             Self::BC2_SRGB_BLOCK => {}
3278             Self::BC3_UNORM_BLOCK => {}
3279             Self::BC3_SRGB_BLOCK => {}
3280             Self::BC4_UNORM_BLOCK => {}
3281             Self::BC4_SNORM_BLOCK => {}
3282             Self::BC5_UNORM_BLOCK => {}
3283             Self::BC5_SNORM_BLOCK => {}
3284             Self::BC6H_UFLOAT_BLOCK => {}
3285             Self::BC6H_SFLOAT_BLOCK => {}
3286             Self::BC7_UNORM_BLOCK => {}
3287             Self::BC7_SRGB_BLOCK => {}
3288             Self::ETC2_R8G8B8_UNORM_BLOCK => {}
3289             Self::ETC2_R8G8B8_SRGB_BLOCK => {}
3290             Self::ETC2_R8G8B8A1_UNORM_BLOCK => {}
3291             Self::ETC2_R8G8B8A1_SRGB_BLOCK => {}
3292             Self::ETC2_R8G8B8A8_UNORM_BLOCK => {}
3293             Self::ETC2_R8G8B8A8_SRGB_BLOCK => {}
3294             Self::EAC_R11_UNORM_BLOCK => {}
3295             Self::EAC_R11_SNORM_BLOCK => {}
3296             Self::EAC_R11G11_UNORM_BLOCK => {}
3297             Self::EAC_R11G11_SNORM_BLOCK => {}
3298             Self::ASTC_4x4_UNORM_BLOCK => {}
3299             Self::ASTC_4x4_SRGB_BLOCK => {}
3300             Self::ASTC_5x4_UNORM_BLOCK => {}
3301             Self::ASTC_5x4_SRGB_BLOCK => {}
3302             Self::ASTC_5x5_UNORM_BLOCK => {}
3303             Self::ASTC_5x5_SRGB_BLOCK => {}
3304             Self::ASTC_6x5_UNORM_BLOCK => {}
3305             Self::ASTC_6x5_SRGB_BLOCK => {}
3306             Self::ASTC_6x6_UNORM_BLOCK => {}
3307             Self::ASTC_6x6_SRGB_BLOCK => {}
3308             Self::ASTC_8x5_UNORM_BLOCK => {}
3309             Self::ASTC_8x5_SRGB_BLOCK => {}
3310             Self::ASTC_8x6_UNORM_BLOCK => {}
3311             Self::ASTC_8x6_SRGB_BLOCK => {}
3312             Self::ASTC_8x8_UNORM_BLOCK => {}
3313             Self::ASTC_8x8_SRGB_BLOCK => {}
3314             Self::ASTC_10x5_UNORM_BLOCK => {}
3315             Self::ASTC_10x5_SRGB_BLOCK => {}
3316             Self::ASTC_10x6_UNORM_BLOCK => {}
3317             Self::ASTC_10x6_SRGB_BLOCK => {}
3318             Self::ASTC_10x8_UNORM_BLOCK => {}
3319             Self::ASTC_10x8_SRGB_BLOCK => {}
3320             Self::ASTC_10x10_UNORM_BLOCK => {}
3321             Self::ASTC_10x10_SRGB_BLOCK => {}
3322             Self::ASTC_12x10_UNORM_BLOCK => {}
3323             Self::ASTC_12x10_SRGB_BLOCK => {}
3324             Self::ASTC_12x12_UNORM_BLOCK => {}
3325             Self::ASTC_12x12_SRGB_BLOCK => {}
3326             Self::G8B8G8R8_422_UNORM => {
3327                 if !(physical_device.api_version() >= crate::Version::V1_1
3328                     || physical_device
3329                         .supported_extensions()
3330                         .khr_sampler_ycbcr_conversion)
3331                 {
3332                     return Err(crate::RequirementNotMet {
3333                         required_for: "`Format::G8B8G8R8_422_UNORM`",
3334                         requires_one_of: crate::RequiresOneOf {
3335                             api_version: Some(crate::Version::V1_1),
3336                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3337                             ..Default::default()
3338                         },
3339                     });
3340                 }
3341             }
3342             Self::B8G8R8G8_422_UNORM => {
3343                 if !(physical_device.api_version() >= crate::Version::V1_1
3344                     || physical_device
3345                         .supported_extensions()
3346                         .khr_sampler_ycbcr_conversion)
3347                 {
3348                     return Err(crate::RequirementNotMet {
3349                         required_for: "`Format::B8G8R8G8_422_UNORM`",
3350                         requires_one_of: crate::RequiresOneOf {
3351                             api_version: Some(crate::Version::V1_1),
3352                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3353                             ..Default::default()
3354                         },
3355                     });
3356                 }
3357             }
3358             Self::G8_B8_R8_3PLANE_420_UNORM => {
3359                 if !(physical_device.api_version() >= crate::Version::V1_1
3360                     || physical_device
3361                         .supported_extensions()
3362                         .khr_sampler_ycbcr_conversion)
3363                 {
3364                     return Err(crate::RequirementNotMet {
3365                         required_for: "`Format::G8_B8_R8_3PLANE_420_UNORM`",
3366                         requires_one_of: crate::RequiresOneOf {
3367                             api_version: Some(crate::Version::V1_1),
3368                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3369                             ..Default::default()
3370                         },
3371                     });
3372                 }
3373             }
3374             Self::G8_B8R8_2PLANE_420_UNORM => {
3375                 if !(physical_device.api_version() >= crate::Version::V1_1
3376                     || physical_device
3377                         .supported_extensions()
3378                         .khr_sampler_ycbcr_conversion)
3379                 {
3380                     return Err(crate::RequirementNotMet {
3381                         required_for: "`Format::G8_B8R8_2PLANE_420_UNORM`",
3382                         requires_one_of: crate::RequiresOneOf {
3383                             api_version: Some(crate::Version::V1_1),
3384                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3385                             ..Default::default()
3386                         },
3387                     });
3388                 }
3389             }
3390             Self::G8_B8_R8_3PLANE_422_UNORM => {
3391                 if !(physical_device.api_version() >= crate::Version::V1_1
3392                     || physical_device
3393                         .supported_extensions()
3394                         .khr_sampler_ycbcr_conversion)
3395                 {
3396                     return Err(crate::RequirementNotMet {
3397                         required_for: "`Format::G8_B8_R8_3PLANE_422_UNORM`",
3398                         requires_one_of: crate::RequiresOneOf {
3399                             api_version: Some(crate::Version::V1_1),
3400                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3401                             ..Default::default()
3402                         },
3403                     });
3404                 }
3405             }
3406             Self::G8_B8R8_2PLANE_422_UNORM => {
3407                 if !(physical_device.api_version() >= crate::Version::V1_1
3408                     || physical_device
3409                         .supported_extensions()
3410                         .khr_sampler_ycbcr_conversion)
3411                 {
3412                     return Err(crate::RequirementNotMet {
3413                         required_for: "`Format::G8_B8R8_2PLANE_422_UNORM`",
3414                         requires_one_of: crate::RequiresOneOf {
3415                             api_version: Some(crate::Version::V1_1),
3416                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3417                             ..Default::default()
3418                         },
3419                     });
3420                 }
3421             }
3422             Self::G8_B8_R8_3PLANE_444_UNORM => {
3423                 if !(physical_device.api_version() >= crate::Version::V1_1
3424                     || physical_device
3425                         .supported_extensions()
3426                         .khr_sampler_ycbcr_conversion)
3427                 {
3428                     return Err(crate::RequirementNotMet {
3429                         required_for: "`Format::G8_B8_R8_3PLANE_444_UNORM`",
3430                         requires_one_of: crate::RequiresOneOf {
3431                             api_version: Some(crate::Version::V1_1),
3432                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3433                             ..Default::default()
3434                         },
3435                     });
3436                 }
3437             }
3438             Self::R10X6_UNORM_PACK16 => {
3439                 if !(physical_device.api_version() >= crate::Version::V1_1
3440                     || physical_device
3441                         .supported_extensions()
3442                         .khr_sampler_ycbcr_conversion)
3443                 {
3444                     return Err(crate::RequirementNotMet {
3445                         required_for: "`Format::R10X6_UNORM_PACK16`",
3446                         requires_one_of: crate::RequiresOneOf {
3447                             api_version: Some(crate::Version::V1_1),
3448                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3449                             ..Default::default()
3450                         },
3451                     });
3452                 }
3453             }
3454             Self::R10X6G10X6_UNORM_2PACK16 => {
3455                 if !(physical_device.api_version() >= crate::Version::V1_1
3456                     || physical_device
3457                         .supported_extensions()
3458                         .khr_sampler_ycbcr_conversion)
3459                 {
3460                     return Err(crate::RequirementNotMet {
3461                         required_for: "`Format::R10X6G10X6_UNORM_2PACK16`",
3462                         requires_one_of: crate::RequiresOneOf {
3463                             api_version: Some(crate::Version::V1_1),
3464                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3465                             ..Default::default()
3466                         },
3467                     });
3468                 }
3469             }
3470             Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => {
3471                 if !(physical_device.api_version() >= crate::Version::V1_1
3472                     || physical_device
3473                         .supported_extensions()
3474                         .khr_sampler_ycbcr_conversion)
3475                 {
3476                     return Err(crate::RequirementNotMet {
3477                         required_for: "`Format::R10X6G10X6B10X6A10X6_UNORM_4PACK16`",
3478                         requires_one_of: crate::RequiresOneOf {
3479                             api_version: Some(crate::Version::V1_1),
3480                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3481                             ..Default::default()
3482                         },
3483                     });
3484                 }
3485             }
3486             Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => {
3487                 if !(physical_device.api_version() >= crate::Version::V1_1
3488                     || physical_device
3489                         .supported_extensions()
3490                         .khr_sampler_ycbcr_conversion)
3491                 {
3492                     return Err(crate::RequirementNotMet {
3493                         required_for: "`Format::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16`",
3494                         requires_one_of: crate::RequiresOneOf {
3495                             api_version: Some(crate::Version::V1_1),
3496                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3497                             ..Default::default()
3498                         },
3499                     });
3500                 }
3501             }
3502             Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => {
3503                 if !(physical_device.api_version() >= crate::Version::V1_1
3504                     || physical_device
3505                         .supported_extensions()
3506                         .khr_sampler_ycbcr_conversion)
3507                 {
3508                     return Err(crate::RequirementNotMet {
3509                         required_for: "`Format::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16`",
3510                         requires_one_of: crate::RequiresOneOf {
3511                             api_version: Some(crate::Version::V1_1),
3512                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3513                             ..Default::default()
3514                         },
3515                     });
3516                 }
3517             }
3518             Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
3519                 if !(physical_device.api_version() >= crate::Version::V1_1
3520                     || physical_device
3521                         .supported_extensions()
3522                         .khr_sampler_ycbcr_conversion)
3523                 {
3524                     return Err(crate::RequirementNotMet {
3525                         required_for: "`Format::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16`",
3526                         requires_one_of: crate::RequiresOneOf {
3527                             api_version: Some(crate::Version::V1_1),
3528                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3529                             ..Default::default()
3530                         },
3531                     });
3532                 }
3533             }
3534             Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
3535                 if !(physical_device.api_version() >= crate::Version::V1_1
3536                     || physical_device
3537                         .supported_extensions()
3538                         .khr_sampler_ycbcr_conversion)
3539                 {
3540                     return Err(crate::RequirementNotMet {
3541                         required_for: "`Format::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16`",
3542                         requires_one_of: crate::RequiresOneOf {
3543                             api_version: Some(crate::Version::V1_1),
3544                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3545                             ..Default::default()
3546                         },
3547                     });
3548                 }
3549             }
3550             Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
3551                 if !(physical_device.api_version() >= crate::Version::V1_1
3552                     || physical_device
3553                         .supported_extensions()
3554                         .khr_sampler_ycbcr_conversion)
3555                 {
3556                     return Err(crate::RequirementNotMet {
3557                         required_for: "`Format::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16`",
3558                         requires_one_of: crate::RequiresOneOf {
3559                             api_version: Some(crate::Version::V1_1),
3560                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3561                             ..Default::default()
3562                         },
3563                     });
3564                 }
3565             }
3566             Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
3567                 if !(physical_device.api_version() >= crate::Version::V1_1
3568                     || physical_device
3569                         .supported_extensions()
3570                         .khr_sampler_ycbcr_conversion)
3571                 {
3572                     return Err(crate::RequirementNotMet {
3573                         required_for: "`Format::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16`",
3574                         requires_one_of: crate::RequiresOneOf {
3575                             api_version: Some(crate::Version::V1_1),
3576                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3577                             ..Default::default()
3578                         },
3579                     });
3580                 }
3581             }
3582             Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
3583                 if !(physical_device.api_version() >= crate::Version::V1_1
3584                     || physical_device
3585                         .supported_extensions()
3586                         .khr_sampler_ycbcr_conversion)
3587                 {
3588                     return Err(crate::RequirementNotMet {
3589                         required_for: "`Format::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16`",
3590                         requires_one_of: crate::RequiresOneOf {
3591                             api_version: Some(crate::Version::V1_1),
3592                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3593                             ..Default::default()
3594                         },
3595                     });
3596                 }
3597             }
3598             Self::R12X4_UNORM_PACK16 => {
3599                 if !(physical_device.api_version() >= crate::Version::V1_1
3600                     || physical_device
3601                         .supported_extensions()
3602                         .khr_sampler_ycbcr_conversion)
3603                 {
3604                     return Err(crate::RequirementNotMet {
3605                         required_for: "`Format::R12X4_UNORM_PACK16`",
3606                         requires_one_of: crate::RequiresOneOf {
3607                             api_version: Some(crate::Version::V1_1),
3608                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3609                             ..Default::default()
3610                         },
3611                     });
3612                 }
3613             }
3614             Self::R12X4G12X4_UNORM_2PACK16 => {
3615                 if !(physical_device.api_version() >= crate::Version::V1_1
3616                     || physical_device
3617                         .supported_extensions()
3618                         .khr_sampler_ycbcr_conversion)
3619                 {
3620                     return Err(crate::RequirementNotMet {
3621                         required_for: "`Format::R12X4G12X4_UNORM_2PACK16`",
3622                         requires_one_of: crate::RequiresOneOf {
3623                             api_version: Some(crate::Version::V1_1),
3624                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3625                             ..Default::default()
3626                         },
3627                     });
3628                 }
3629             }
3630             Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => {
3631                 if !(physical_device.api_version() >= crate::Version::V1_1
3632                     || physical_device
3633                         .supported_extensions()
3634                         .khr_sampler_ycbcr_conversion)
3635                 {
3636                     return Err(crate::RequirementNotMet {
3637                         required_for: "`Format::R12X4G12X4B12X4A12X4_UNORM_4PACK16`",
3638                         requires_one_of: crate::RequiresOneOf {
3639                             api_version: Some(crate::Version::V1_1),
3640                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3641                             ..Default::default()
3642                         },
3643                     });
3644                 }
3645             }
3646             Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => {
3647                 if !(physical_device.api_version() >= crate::Version::V1_1
3648                     || physical_device
3649                         .supported_extensions()
3650                         .khr_sampler_ycbcr_conversion)
3651                 {
3652                     return Err(crate::RequirementNotMet {
3653                         required_for: "`Format::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16`",
3654                         requires_one_of: crate::RequiresOneOf {
3655                             api_version: Some(crate::Version::V1_1),
3656                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3657                             ..Default::default()
3658                         },
3659                     });
3660                 }
3661             }
3662             Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => {
3663                 if !(physical_device.api_version() >= crate::Version::V1_1
3664                     || physical_device
3665                         .supported_extensions()
3666                         .khr_sampler_ycbcr_conversion)
3667                 {
3668                     return Err(crate::RequirementNotMet {
3669                         required_for: "`Format::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16`",
3670                         requires_one_of: crate::RequiresOneOf {
3671                             api_version: Some(crate::Version::V1_1),
3672                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3673                             ..Default::default()
3674                         },
3675                     });
3676                 }
3677             }
3678             Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
3679                 if !(physical_device.api_version() >= crate::Version::V1_1
3680                     || physical_device
3681                         .supported_extensions()
3682                         .khr_sampler_ycbcr_conversion)
3683                 {
3684                     return Err(crate::RequirementNotMet {
3685                         required_for: "`Format::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16`",
3686                         requires_one_of: crate::RequiresOneOf {
3687                             api_version: Some(crate::Version::V1_1),
3688                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3689                             ..Default::default()
3690                         },
3691                     });
3692                 }
3693             }
3694             Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
3695                 if !(physical_device.api_version() >= crate::Version::V1_1
3696                     || physical_device
3697                         .supported_extensions()
3698                         .khr_sampler_ycbcr_conversion)
3699                 {
3700                     return Err(crate::RequirementNotMet {
3701                         required_for: "`Format::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16`",
3702                         requires_one_of: crate::RequiresOneOf {
3703                             api_version: Some(crate::Version::V1_1),
3704                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3705                             ..Default::default()
3706                         },
3707                     });
3708                 }
3709             }
3710             Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
3711                 if !(physical_device.api_version() >= crate::Version::V1_1
3712                     || physical_device
3713                         .supported_extensions()
3714                         .khr_sampler_ycbcr_conversion)
3715                 {
3716                     return Err(crate::RequirementNotMet {
3717                         required_for: "`Format::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16`",
3718                         requires_one_of: crate::RequiresOneOf {
3719                             api_version: Some(crate::Version::V1_1),
3720                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3721                             ..Default::default()
3722                         },
3723                     });
3724                 }
3725             }
3726             Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
3727                 if !(physical_device.api_version() >= crate::Version::V1_1
3728                     || physical_device
3729                         .supported_extensions()
3730                         .khr_sampler_ycbcr_conversion)
3731                 {
3732                     return Err(crate::RequirementNotMet {
3733                         required_for: "`Format::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16`",
3734                         requires_one_of: crate::RequiresOneOf {
3735                             api_version: Some(crate::Version::V1_1),
3736                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3737                             ..Default::default()
3738                         },
3739                     });
3740                 }
3741             }
3742             Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
3743                 if !(physical_device.api_version() >= crate::Version::V1_1
3744                     || physical_device
3745                         .supported_extensions()
3746                         .khr_sampler_ycbcr_conversion)
3747                 {
3748                     return Err(crate::RequirementNotMet {
3749                         required_for: "`Format::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16`",
3750                         requires_one_of: crate::RequiresOneOf {
3751                             api_version: Some(crate::Version::V1_1),
3752                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3753                             ..Default::default()
3754                         },
3755                     });
3756                 }
3757             }
3758             Self::G16B16G16R16_422_UNORM => {
3759                 if !(physical_device.api_version() >= crate::Version::V1_1
3760                     || physical_device
3761                         .supported_extensions()
3762                         .khr_sampler_ycbcr_conversion)
3763                 {
3764                     return Err(crate::RequirementNotMet {
3765                         required_for: "`Format::G16B16G16R16_422_UNORM`",
3766                         requires_one_of: crate::RequiresOneOf {
3767                             api_version: Some(crate::Version::V1_1),
3768                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3769                             ..Default::default()
3770                         },
3771                     });
3772                 }
3773             }
3774             Self::B16G16R16G16_422_UNORM => {
3775                 if !(physical_device.api_version() >= crate::Version::V1_1
3776                     || physical_device
3777                         .supported_extensions()
3778                         .khr_sampler_ycbcr_conversion)
3779                 {
3780                     return Err(crate::RequirementNotMet {
3781                         required_for: "`Format::B16G16R16G16_422_UNORM`",
3782                         requires_one_of: crate::RequiresOneOf {
3783                             api_version: Some(crate::Version::V1_1),
3784                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3785                             ..Default::default()
3786                         },
3787                     });
3788                 }
3789             }
3790             Self::G16_B16_R16_3PLANE_420_UNORM => {
3791                 if !(physical_device.api_version() >= crate::Version::V1_1
3792                     || physical_device
3793                         .supported_extensions()
3794                         .khr_sampler_ycbcr_conversion)
3795                 {
3796                     return Err(crate::RequirementNotMet {
3797                         required_for: "`Format::G16_B16_R16_3PLANE_420_UNORM`",
3798                         requires_one_of: crate::RequiresOneOf {
3799                             api_version: Some(crate::Version::V1_1),
3800                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3801                             ..Default::default()
3802                         },
3803                     });
3804                 }
3805             }
3806             Self::G16_B16R16_2PLANE_420_UNORM => {
3807                 if !(physical_device.api_version() >= crate::Version::V1_1
3808                     || physical_device
3809                         .supported_extensions()
3810                         .khr_sampler_ycbcr_conversion)
3811                 {
3812                     return Err(crate::RequirementNotMet {
3813                         required_for: "`Format::G16_B16R16_2PLANE_420_UNORM`",
3814                         requires_one_of: crate::RequiresOneOf {
3815                             api_version: Some(crate::Version::V1_1),
3816                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3817                             ..Default::default()
3818                         },
3819                     });
3820                 }
3821             }
3822             Self::G16_B16_R16_3PLANE_422_UNORM => {
3823                 if !(physical_device.api_version() >= crate::Version::V1_1
3824                     || physical_device
3825                         .supported_extensions()
3826                         .khr_sampler_ycbcr_conversion)
3827                 {
3828                     return Err(crate::RequirementNotMet {
3829                         required_for: "`Format::G16_B16_R16_3PLANE_422_UNORM`",
3830                         requires_one_of: crate::RequiresOneOf {
3831                             api_version: Some(crate::Version::V1_1),
3832                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3833                             ..Default::default()
3834                         },
3835                     });
3836                 }
3837             }
3838             Self::G16_B16R16_2PLANE_422_UNORM => {
3839                 if !(physical_device.api_version() >= crate::Version::V1_1
3840                     || physical_device
3841                         .supported_extensions()
3842                         .khr_sampler_ycbcr_conversion)
3843                 {
3844                     return Err(crate::RequirementNotMet {
3845                         required_for: "`Format::G16_B16R16_2PLANE_422_UNORM`",
3846                         requires_one_of: crate::RequiresOneOf {
3847                             api_version: Some(crate::Version::V1_1),
3848                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3849                             ..Default::default()
3850                         },
3851                     });
3852                 }
3853             }
3854             Self::G16_B16_R16_3PLANE_444_UNORM => {
3855                 if !(physical_device.api_version() >= crate::Version::V1_1
3856                     || physical_device
3857                         .supported_extensions()
3858                         .khr_sampler_ycbcr_conversion)
3859                 {
3860                     return Err(crate::RequirementNotMet {
3861                         required_for: "`Format::G16_B16_R16_3PLANE_444_UNORM`",
3862                         requires_one_of: crate::RequiresOneOf {
3863                             api_version: Some(crate::Version::V1_1),
3864                             device_extensions: &["khr_sampler_ycbcr_conversion"],
3865                             ..Default::default()
3866                         },
3867                     });
3868                 }
3869             }
3870             Self::PVRTC1_2BPP_UNORM_BLOCK => {
3871                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3872                     return Err(crate::RequirementNotMet {
3873                         required_for: "`Format::PVRTC1_2BPP_UNORM_BLOCK`",
3874                         requires_one_of: crate::RequiresOneOf {
3875                             device_extensions: &["img_format_pvrtc"],
3876                             ..Default::default()
3877                         },
3878                     });
3879                 }
3880             }
3881             Self::PVRTC1_4BPP_UNORM_BLOCK => {
3882                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3883                     return Err(crate::RequirementNotMet {
3884                         required_for: "`Format::PVRTC1_4BPP_UNORM_BLOCK`",
3885                         requires_one_of: crate::RequiresOneOf {
3886                             device_extensions: &["img_format_pvrtc"],
3887                             ..Default::default()
3888                         },
3889                     });
3890                 }
3891             }
3892             Self::PVRTC2_2BPP_UNORM_BLOCK => {
3893                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3894                     return Err(crate::RequirementNotMet {
3895                         required_for: "`Format::PVRTC2_2BPP_UNORM_BLOCK`",
3896                         requires_one_of: crate::RequiresOneOf {
3897                             device_extensions: &["img_format_pvrtc"],
3898                             ..Default::default()
3899                         },
3900                     });
3901                 }
3902             }
3903             Self::PVRTC2_4BPP_UNORM_BLOCK => {
3904                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3905                     return Err(crate::RequirementNotMet {
3906                         required_for: "`Format::PVRTC2_4BPP_UNORM_BLOCK`",
3907                         requires_one_of: crate::RequiresOneOf {
3908                             device_extensions: &["img_format_pvrtc"],
3909                             ..Default::default()
3910                         },
3911                     });
3912                 }
3913             }
3914             Self::PVRTC1_2BPP_SRGB_BLOCK => {
3915                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3916                     return Err(crate::RequirementNotMet {
3917                         required_for: "`Format::PVRTC1_2BPP_SRGB_BLOCK`",
3918                         requires_one_of: crate::RequiresOneOf {
3919                             device_extensions: &["img_format_pvrtc"],
3920                             ..Default::default()
3921                         },
3922                     });
3923                 }
3924             }
3925             Self::PVRTC1_4BPP_SRGB_BLOCK => {
3926                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3927                     return Err(crate::RequirementNotMet {
3928                         required_for: "`Format::PVRTC1_4BPP_SRGB_BLOCK`",
3929                         requires_one_of: crate::RequiresOneOf {
3930                             device_extensions: &["img_format_pvrtc"],
3931                             ..Default::default()
3932                         },
3933                     });
3934                 }
3935             }
3936             Self::PVRTC2_2BPP_SRGB_BLOCK => {
3937                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3938                     return Err(crate::RequirementNotMet {
3939                         required_for: "`Format::PVRTC2_2BPP_SRGB_BLOCK`",
3940                         requires_one_of: crate::RequiresOneOf {
3941                             device_extensions: &["img_format_pvrtc"],
3942                             ..Default::default()
3943                         },
3944                     });
3945                 }
3946             }
3947             Self::PVRTC2_4BPP_SRGB_BLOCK => {
3948                 if !(physical_device.supported_extensions().img_format_pvrtc) {
3949                     return Err(crate::RequirementNotMet {
3950                         required_for: "`Format::PVRTC2_4BPP_SRGB_BLOCK`",
3951                         requires_one_of: crate::RequiresOneOf {
3952                             device_extensions: &["img_format_pvrtc"],
3953                             ..Default::default()
3954                         },
3955                     });
3956                 }
3957             }
3958             Self::ASTC_4x4_SFLOAT_BLOCK => {
3959                 if !(physical_device.api_version() >= crate::Version::V1_3
3960                     || physical_device
3961                         .supported_extensions()
3962                         .ext_texture_compression_astc_hdr)
3963                 {
3964                     return Err(crate::RequirementNotMet {
3965                         required_for: "`Format::ASTC_4x4_SFLOAT_BLOCK`",
3966                         requires_one_of: crate::RequiresOneOf {
3967                             api_version: Some(crate::Version::V1_3),
3968                             device_extensions: &["ext_texture_compression_astc_hdr"],
3969                             ..Default::default()
3970                         },
3971                     });
3972                 }
3973             }
3974             Self::ASTC_5x4_SFLOAT_BLOCK => {
3975                 if !(physical_device.api_version() >= crate::Version::V1_3
3976                     || physical_device
3977                         .supported_extensions()
3978                         .ext_texture_compression_astc_hdr)
3979                 {
3980                     return Err(crate::RequirementNotMet {
3981                         required_for: "`Format::ASTC_5x4_SFLOAT_BLOCK`",
3982                         requires_one_of: crate::RequiresOneOf {
3983                             api_version: Some(crate::Version::V1_3),
3984                             device_extensions: &["ext_texture_compression_astc_hdr"],
3985                             ..Default::default()
3986                         },
3987                     });
3988                 }
3989             }
3990             Self::ASTC_5x5_SFLOAT_BLOCK => {
3991                 if !(physical_device.api_version() >= crate::Version::V1_3
3992                     || physical_device
3993                         .supported_extensions()
3994                         .ext_texture_compression_astc_hdr)
3995                 {
3996                     return Err(crate::RequirementNotMet {
3997                         required_for: "`Format::ASTC_5x5_SFLOAT_BLOCK`",
3998                         requires_one_of: crate::RequiresOneOf {
3999                             api_version: Some(crate::Version::V1_3),
4000                             device_extensions: &["ext_texture_compression_astc_hdr"],
4001                             ..Default::default()
4002                         },
4003                     });
4004                 }
4005             }
4006             Self::ASTC_6x5_SFLOAT_BLOCK => {
4007                 if !(physical_device.api_version() >= crate::Version::V1_3
4008                     || physical_device
4009                         .supported_extensions()
4010                         .ext_texture_compression_astc_hdr)
4011                 {
4012                     return Err(crate::RequirementNotMet {
4013                         required_for: "`Format::ASTC_6x5_SFLOAT_BLOCK`",
4014                         requires_one_of: crate::RequiresOneOf {
4015                             api_version: Some(crate::Version::V1_3),
4016                             device_extensions: &["ext_texture_compression_astc_hdr"],
4017                             ..Default::default()
4018                         },
4019                     });
4020                 }
4021             }
4022             Self::ASTC_6x6_SFLOAT_BLOCK => {
4023                 if !(physical_device.api_version() >= crate::Version::V1_3
4024                     || physical_device
4025                         .supported_extensions()
4026                         .ext_texture_compression_astc_hdr)
4027                 {
4028                     return Err(crate::RequirementNotMet {
4029                         required_for: "`Format::ASTC_6x6_SFLOAT_BLOCK`",
4030                         requires_one_of: crate::RequiresOneOf {
4031                             api_version: Some(crate::Version::V1_3),
4032                             device_extensions: &["ext_texture_compression_astc_hdr"],
4033                             ..Default::default()
4034                         },
4035                     });
4036                 }
4037             }
4038             Self::ASTC_8x5_SFLOAT_BLOCK => {
4039                 if !(physical_device.api_version() >= crate::Version::V1_3
4040                     || physical_device
4041                         .supported_extensions()
4042                         .ext_texture_compression_astc_hdr)
4043                 {
4044                     return Err(crate::RequirementNotMet {
4045                         required_for: "`Format::ASTC_8x5_SFLOAT_BLOCK`",
4046                         requires_one_of: crate::RequiresOneOf {
4047                             api_version: Some(crate::Version::V1_3),
4048                             device_extensions: &["ext_texture_compression_astc_hdr"],
4049                             ..Default::default()
4050                         },
4051                     });
4052                 }
4053             }
4054             Self::ASTC_8x6_SFLOAT_BLOCK => {
4055                 if !(physical_device.api_version() >= crate::Version::V1_3
4056                     || physical_device
4057                         .supported_extensions()
4058                         .ext_texture_compression_astc_hdr)
4059                 {
4060                     return Err(crate::RequirementNotMet {
4061                         required_for: "`Format::ASTC_8x6_SFLOAT_BLOCK`",
4062                         requires_one_of: crate::RequiresOneOf {
4063                             api_version: Some(crate::Version::V1_3),
4064                             device_extensions: &["ext_texture_compression_astc_hdr"],
4065                             ..Default::default()
4066                         },
4067                     });
4068                 }
4069             }
4070             Self::ASTC_8x8_SFLOAT_BLOCK => {
4071                 if !(physical_device.api_version() >= crate::Version::V1_3
4072                     || physical_device
4073                         .supported_extensions()
4074                         .ext_texture_compression_astc_hdr)
4075                 {
4076                     return Err(crate::RequirementNotMet {
4077                         required_for: "`Format::ASTC_8x8_SFLOAT_BLOCK`",
4078                         requires_one_of: crate::RequiresOneOf {
4079                             api_version: Some(crate::Version::V1_3),
4080                             device_extensions: &["ext_texture_compression_astc_hdr"],
4081                             ..Default::default()
4082                         },
4083                     });
4084                 }
4085             }
4086             Self::ASTC_10x5_SFLOAT_BLOCK => {
4087                 if !(physical_device.api_version() >= crate::Version::V1_3
4088                     || physical_device
4089                         .supported_extensions()
4090                         .ext_texture_compression_astc_hdr)
4091                 {
4092                     return Err(crate::RequirementNotMet {
4093                         required_for: "`Format::ASTC_10x5_SFLOAT_BLOCK`",
4094                         requires_one_of: crate::RequiresOneOf {
4095                             api_version: Some(crate::Version::V1_3),
4096                             device_extensions: &["ext_texture_compression_astc_hdr"],
4097                             ..Default::default()
4098                         },
4099                     });
4100                 }
4101             }
4102             Self::ASTC_10x6_SFLOAT_BLOCK => {
4103                 if !(physical_device.api_version() >= crate::Version::V1_3
4104                     || physical_device
4105                         .supported_extensions()
4106                         .ext_texture_compression_astc_hdr)
4107                 {
4108                     return Err(crate::RequirementNotMet {
4109                         required_for: "`Format::ASTC_10x6_SFLOAT_BLOCK`",
4110                         requires_one_of: crate::RequiresOneOf {
4111                             api_version: Some(crate::Version::V1_3),
4112                             device_extensions: &["ext_texture_compression_astc_hdr"],
4113                             ..Default::default()
4114                         },
4115                     });
4116                 }
4117             }
4118             Self::ASTC_10x8_SFLOAT_BLOCK => {
4119                 if !(physical_device.api_version() >= crate::Version::V1_3
4120                     || physical_device
4121                         .supported_extensions()
4122                         .ext_texture_compression_astc_hdr)
4123                 {
4124                     return Err(crate::RequirementNotMet {
4125                         required_for: "`Format::ASTC_10x8_SFLOAT_BLOCK`",
4126                         requires_one_of: crate::RequiresOneOf {
4127                             api_version: Some(crate::Version::V1_3),
4128                             device_extensions: &["ext_texture_compression_astc_hdr"],
4129                             ..Default::default()
4130                         },
4131                     });
4132                 }
4133             }
4134             Self::ASTC_10x10_SFLOAT_BLOCK => {
4135                 if !(physical_device.api_version() >= crate::Version::V1_3
4136                     || physical_device
4137                         .supported_extensions()
4138                         .ext_texture_compression_astc_hdr)
4139                 {
4140                     return Err(crate::RequirementNotMet {
4141                         required_for: "`Format::ASTC_10x10_SFLOAT_BLOCK`",
4142                         requires_one_of: crate::RequiresOneOf {
4143                             api_version: Some(crate::Version::V1_3),
4144                             device_extensions: &["ext_texture_compression_astc_hdr"],
4145                             ..Default::default()
4146                         },
4147                     });
4148                 }
4149             }
4150             Self::ASTC_12x10_SFLOAT_BLOCK => {
4151                 if !(physical_device.api_version() >= crate::Version::V1_3
4152                     || physical_device
4153                         .supported_extensions()
4154                         .ext_texture_compression_astc_hdr)
4155                 {
4156                     return Err(crate::RequirementNotMet {
4157                         required_for: "`Format::ASTC_12x10_SFLOAT_BLOCK`",
4158                         requires_one_of: crate::RequiresOneOf {
4159                             api_version: Some(crate::Version::V1_3),
4160                             device_extensions: &["ext_texture_compression_astc_hdr"],
4161                             ..Default::default()
4162                         },
4163                     });
4164                 }
4165             }
4166             Self::ASTC_12x12_SFLOAT_BLOCK => {
4167                 if !(physical_device.api_version() >= crate::Version::V1_3
4168                     || physical_device
4169                         .supported_extensions()
4170                         .ext_texture_compression_astc_hdr)
4171                 {
4172                     return Err(crate::RequirementNotMet {
4173                         required_for: "`Format::ASTC_12x12_SFLOAT_BLOCK`",
4174                         requires_one_of: crate::RequiresOneOf {
4175                             api_version: Some(crate::Version::V1_3),
4176                             device_extensions: &["ext_texture_compression_astc_hdr"],
4177                             ..Default::default()
4178                         },
4179                     });
4180                 }
4181             }
4182             Self::G8_B8R8_2PLANE_444_UNORM => {
4183                 if !(physical_device.api_version() >= crate::Version::V1_3
4184                     || physical_device
4185                         .supported_extensions()
4186                         .ext_ycbcr_2plane_444_formats)
4187                 {
4188                     return Err(crate::RequirementNotMet {
4189                         required_for: "`Format::G8_B8R8_2PLANE_444_UNORM`",
4190                         requires_one_of: crate::RequiresOneOf {
4191                             api_version: Some(crate::Version::V1_3),
4192                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
4193                             ..Default::default()
4194                         },
4195                     });
4196                 }
4197             }
4198             Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
4199                 if !(physical_device.api_version() >= crate::Version::V1_3
4200                     || physical_device
4201                         .supported_extensions()
4202                         .ext_ycbcr_2plane_444_formats)
4203                 {
4204                     return Err(crate::RequirementNotMet {
4205                         required_for: "`Format::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16`",
4206                         requires_one_of: crate::RequiresOneOf {
4207                             api_version: Some(crate::Version::V1_3),
4208                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
4209                             ..Default::default()
4210                         },
4211                     });
4212                 }
4213             }
4214             Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
4215                 if !(physical_device.api_version() >= crate::Version::V1_3
4216                     || physical_device
4217                         .supported_extensions()
4218                         .ext_ycbcr_2plane_444_formats)
4219                 {
4220                     return Err(crate::RequirementNotMet {
4221                         required_for: "`Format::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16`",
4222                         requires_one_of: crate::RequiresOneOf {
4223                             api_version: Some(crate::Version::V1_3),
4224                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
4225                             ..Default::default()
4226                         },
4227                     });
4228                 }
4229             }
4230             Self::G16_B16R16_2PLANE_444_UNORM => {
4231                 if !(physical_device.api_version() >= crate::Version::V1_3
4232                     || physical_device
4233                         .supported_extensions()
4234                         .ext_ycbcr_2plane_444_formats)
4235                 {
4236                     return Err(crate::RequirementNotMet {
4237                         required_for: "`Format::G16_B16R16_2PLANE_444_UNORM`",
4238                         requires_one_of: crate::RequiresOneOf {
4239                             api_version: Some(crate::Version::V1_3),
4240                             device_extensions: &["ext_ycbcr_2plane_444_formats"],
4241                             ..Default::default()
4242                         },
4243                     });
4244                 }
4245             }
4246             Self::A4R4G4B4_UNORM_PACK16 => {
4247                 if !(physical_device.api_version() >= crate::Version::V1_3
4248                     || physical_device.supported_extensions().ext_4444_formats)
4249                 {
4250                     return Err(crate::RequirementNotMet {
4251                         required_for: "`Format::A4R4G4B4_UNORM_PACK16`",
4252                         requires_one_of: crate::RequiresOneOf {
4253                             api_version: Some(crate::Version::V1_3),
4254                             device_extensions: &["ext_4444_formats"],
4255                             ..Default::default()
4256                         },
4257                     });
4258                 }
4259             }
4260             Self::A4B4G4R4_UNORM_PACK16 => {
4261                 if !(physical_device.api_version() >= crate::Version::V1_3
4262                     || physical_device.supported_extensions().ext_4444_formats)
4263                 {
4264                     return Err(crate::RequirementNotMet {
4265                         required_for: "`Format::A4B4G4R4_UNORM_PACK16`",
4266                         requires_one_of: crate::RequiresOneOf {
4267                             api_version: Some(crate::Version::V1_3),
4268                             device_extensions: &["ext_4444_formats"],
4269                             ..Default::default()
4270                         },
4271                     });
4272                 }
4273             }
4274             Self::R16G16_S10_5_NV => {
4275                 if !(physical_device.supported_extensions().nv_optical_flow) {
4276                     return Err(crate::RequirementNotMet {
4277                         required_for: "`Format::R16G16_S10_5_NV`",
4278                         requires_one_of: crate::RequiresOneOf {
4279                             device_extensions: &["nv_optical_flow"],
4280                             ..Default::default()
4281                         },
4282                     });
4283                 }
4284             }
4285         }
4286         Ok(())
4287     }
4288 }
4289 impl TryFrom<ash::vk::Format> for Format {
4290     type Error = ();
try_from(val: ash::vk::Format) -> Result<Format, ()>4291     fn try_from(val: ash::vk::Format) -> Result<Format, ()> {
4292         match val {
4293             ash::vk::Format::R4G4_UNORM_PACK8 => Ok(Self::R4G4_UNORM_PACK8),
4294             ash::vk::Format::R4G4B4A4_UNORM_PACK16 => Ok(Self::R4G4B4A4_UNORM_PACK16),
4295             ash::vk::Format::B4G4R4A4_UNORM_PACK16 => Ok(Self::B4G4R4A4_UNORM_PACK16),
4296             ash::vk::Format::R5G6B5_UNORM_PACK16 => Ok(Self::R5G6B5_UNORM_PACK16),
4297             ash::vk::Format::B5G6R5_UNORM_PACK16 => Ok(Self::B5G6R5_UNORM_PACK16),
4298             ash::vk::Format::R5G5B5A1_UNORM_PACK16 => Ok(Self::R5G5B5A1_UNORM_PACK16),
4299             ash::vk::Format::B5G5R5A1_UNORM_PACK16 => Ok(Self::B5G5R5A1_UNORM_PACK16),
4300             ash::vk::Format::A1R5G5B5_UNORM_PACK16 => Ok(Self::A1R5G5B5_UNORM_PACK16),
4301             ash::vk::Format::R8_UNORM => Ok(Self::R8_UNORM),
4302             ash::vk::Format::R8_SNORM => Ok(Self::R8_SNORM),
4303             ash::vk::Format::R8_USCALED => Ok(Self::R8_USCALED),
4304             ash::vk::Format::R8_SSCALED => Ok(Self::R8_SSCALED),
4305             ash::vk::Format::R8_UINT => Ok(Self::R8_UINT),
4306             ash::vk::Format::R8_SINT => Ok(Self::R8_SINT),
4307             ash::vk::Format::R8_SRGB => Ok(Self::R8_SRGB),
4308             ash::vk::Format::R8G8_UNORM => Ok(Self::R8G8_UNORM),
4309             ash::vk::Format::R8G8_SNORM => Ok(Self::R8G8_SNORM),
4310             ash::vk::Format::R8G8_USCALED => Ok(Self::R8G8_USCALED),
4311             ash::vk::Format::R8G8_SSCALED => Ok(Self::R8G8_SSCALED),
4312             ash::vk::Format::R8G8_UINT => Ok(Self::R8G8_UINT),
4313             ash::vk::Format::R8G8_SINT => Ok(Self::R8G8_SINT),
4314             ash::vk::Format::R8G8_SRGB => Ok(Self::R8G8_SRGB),
4315             ash::vk::Format::R8G8B8_UNORM => Ok(Self::R8G8B8_UNORM),
4316             ash::vk::Format::R8G8B8_SNORM => Ok(Self::R8G8B8_SNORM),
4317             ash::vk::Format::R8G8B8_USCALED => Ok(Self::R8G8B8_USCALED),
4318             ash::vk::Format::R8G8B8_SSCALED => Ok(Self::R8G8B8_SSCALED),
4319             ash::vk::Format::R8G8B8_UINT => Ok(Self::R8G8B8_UINT),
4320             ash::vk::Format::R8G8B8_SINT => Ok(Self::R8G8B8_SINT),
4321             ash::vk::Format::R8G8B8_SRGB => Ok(Self::R8G8B8_SRGB),
4322             ash::vk::Format::B8G8R8_UNORM => Ok(Self::B8G8R8_UNORM),
4323             ash::vk::Format::B8G8R8_SNORM => Ok(Self::B8G8R8_SNORM),
4324             ash::vk::Format::B8G8R8_USCALED => Ok(Self::B8G8R8_USCALED),
4325             ash::vk::Format::B8G8R8_SSCALED => Ok(Self::B8G8R8_SSCALED),
4326             ash::vk::Format::B8G8R8_UINT => Ok(Self::B8G8R8_UINT),
4327             ash::vk::Format::B8G8R8_SINT => Ok(Self::B8G8R8_SINT),
4328             ash::vk::Format::B8G8R8_SRGB => Ok(Self::B8G8R8_SRGB),
4329             ash::vk::Format::R8G8B8A8_UNORM => Ok(Self::R8G8B8A8_UNORM),
4330             ash::vk::Format::R8G8B8A8_SNORM => Ok(Self::R8G8B8A8_SNORM),
4331             ash::vk::Format::R8G8B8A8_USCALED => Ok(Self::R8G8B8A8_USCALED),
4332             ash::vk::Format::R8G8B8A8_SSCALED => Ok(Self::R8G8B8A8_SSCALED),
4333             ash::vk::Format::R8G8B8A8_UINT => Ok(Self::R8G8B8A8_UINT),
4334             ash::vk::Format::R8G8B8A8_SINT => Ok(Self::R8G8B8A8_SINT),
4335             ash::vk::Format::R8G8B8A8_SRGB => Ok(Self::R8G8B8A8_SRGB),
4336             ash::vk::Format::B8G8R8A8_UNORM => Ok(Self::B8G8R8A8_UNORM),
4337             ash::vk::Format::B8G8R8A8_SNORM => Ok(Self::B8G8R8A8_SNORM),
4338             ash::vk::Format::B8G8R8A8_USCALED => Ok(Self::B8G8R8A8_USCALED),
4339             ash::vk::Format::B8G8R8A8_SSCALED => Ok(Self::B8G8R8A8_SSCALED),
4340             ash::vk::Format::B8G8R8A8_UINT => Ok(Self::B8G8R8A8_UINT),
4341             ash::vk::Format::B8G8R8A8_SINT => Ok(Self::B8G8R8A8_SINT),
4342             ash::vk::Format::B8G8R8A8_SRGB => Ok(Self::B8G8R8A8_SRGB),
4343             ash::vk::Format::A8B8G8R8_UNORM_PACK32 => Ok(Self::A8B8G8R8_UNORM_PACK32),
4344             ash::vk::Format::A8B8G8R8_SNORM_PACK32 => Ok(Self::A8B8G8R8_SNORM_PACK32),
4345             ash::vk::Format::A8B8G8R8_USCALED_PACK32 => Ok(Self::A8B8G8R8_USCALED_PACK32),
4346             ash::vk::Format::A8B8G8R8_SSCALED_PACK32 => Ok(Self::A8B8G8R8_SSCALED_PACK32),
4347             ash::vk::Format::A8B8G8R8_UINT_PACK32 => Ok(Self::A8B8G8R8_UINT_PACK32),
4348             ash::vk::Format::A8B8G8R8_SINT_PACK32 => Ok(Self::A8B8G8R8_SINT_PACK32),
4349             ash::vk::Format::A8B8G8R8_SRGB_PACK32 => Ok(Self::A8B8G8R8_SRGB_PACK32),
4350             ash::vk::Format::A2R10G10B10_UNORM_PACK32 => Ok(Self::A2R10G10B10_UNORM_PACK32),
4351             ash::vk::Format::A2R10G10B10_SNORM_PACK32 => Ok(Self::A2R10G10B10_SNORM_PACK32),
4352             ash::vk::Format::A2R10G10B10_USCALED_PACK32 => Ok(Self::A2R10G10B10_USCALED_PACK32),
4353             ash::vk::Format::A2R10G10B10_SSCALED_PACK32 => Ok(Self::A2R10G10B10_SSCALED_PACK32),
4354             ash::vk::Format::A2R10G10B10_UINT_PACK32 => Ok(Self::A2R10G10B10_UINT_PACK32),
4355             ash::vk::Format::A2R10G10B10_SINT_PACK32 => Ok(Self::A2R10G10B10_SINT_PACK32),
4356             ash::vk::Format::A2B10G10R10_UNORM_PACK32 => Ok(Self::A2B10G10R10_UNORM_PACK32),
4357             ash::vk::Format::A2B10G10R10_SNORM_PACK32 => Ok(Self::A2B10G10R10_SNORM_PACK32),
4358             ash::vk::Format::A2B10G10R10_USCALED_PACK32 => Ok(Self::A2B10G10R10_USCALED_PACK32),
4359             ash::vk::Format::A2B10G10R10_SSCALED_PACK32 => Ok(Self::A2B10G10R10_SSCALED_PACK32),
4360             ash::vk::Format::A2B10G10R10_UINT_PACK32 => Ok(Self::A2B10G10R10_UINT_PACK32),
4361             ash::vk::Format::A2B10G10R10_SINT_PACK32 => Ok(Self::A2B10G10R10_SINT_PACK32),
4362             ash::vk::Format::R16_UNORM => Ok(Self::R16_UNORM),
4363             ash::vk::Format::R16_SNORM => Ok(Self::R16_SNORM),
4364             ash::vk::Format::R16_USCALED => Ok(Self::R16_USCALED),
4365             ash::vk::Format::R16_SSCALED => Ok(Self::R16_SSCALED),
4366             ash::vk::Format::R16_UINT => Ok(Self::R16_UINT),
4367             ash::vk::Format::R16_SINT => Ok(Self::R16_SINT),
4368             ash::vk::Format::R16_SFLOAT => Ok(Self::R16_SFLOAT),
4369             ash::vk::Format::R16G16_UNORM => Ok(Self::R16G16_UNORM),
4370             ash::vk::Format::R16G16_SNORM => Ok(Self::R16G16_SNORM),
4371             ash::vk::Format::R16G16_USCALED => Ok(Self::R16G16_USCALED),
4372             ash::vk::Format::R16G16_SSCALED => Ok(Self::R16G16_SSCALED),
4373             ash::vk::Format::R16G16_UINT => Ok(Self::R16G16_UINT),
4374             ash::vk::Format::R16G16_SINT => Ok(Self::R16G16_SINT),
4375             ash::vk::Format::R16G16_SFLOAT => Ok(Self::R16G16_SFLOAT),
4376             ash::vk::Format::R16G16B16_UNORM => Ok(Self::R16G16B16_UNORM),
4377             ash::vk::Format::R16G16B16_SNORM => Ok(Self::R16G16B16_SNORM),
4378             ash::vk::Format::R16G16B16_USCALED => Ok(Self::R16G16B16_USCALED),
4379             ash::vk::Format::R16G16B16_SSCALED => Ok(Self::R16G16B16_SSCALED),
4380             ash::vk::Format::R16G16B16_UINT => Ok(Self::R16G16B16_UINT),
4381             ash::vk::Format::R16G16B16_SINT => Ok(Self::R16G16B16_SINT),
4382             ash::vk::Format::R16G16B16_SFLOAT => Ok(Self::R16G16B16_SFLOAT),
4383             ash::vk::Format::R16G16B16A16_UNORM => Ok(Self::R16G16B16A16_UNORM),
4384             ash::vk::Format::R16G16B16A16_SNORM => Ok(Self::R16G16B16A16_SNORM),
4385             ash::vk::Format::R16G16B16A16_USCALED => Ok(Self::R16G16B16A16_USCALED),
4386             ash::vk::Format::R16G16B16A16_SSCALED => Ok(Self::R16G16B16A16_SSCALED),
4387             ash::vk::Format::R16G16B16A16_UINT => Ok(Self::R16G16B16A16_UINT),
4388             ash::vk::Format::R16G16B16A16_SINT => Ok(Self::R16G16B16A16_SINT),
4389             ash::vk::Format::R16G16B16A16_SFLOAT => Ok(Self::R16G16B16A16_SFLOAT),
4390             ash::vk::Format::R32_UINT => Ok(Self::R32_UINT),
4391             ash::vk::Format::R32_SINT => Ok(Self::R32_SINT),
4392             ash::vk::Format::R32_SFLOAT => Ok(Self::R32_SFLOAT),
4393             ash::vk::Format::R32G32_UINT => Ok(Self::R32G32_UINT),
4394             ash::vk::Format::R32G32_SINT => Ok(Self::R32G32_SINT),
4395             ash::vk::Format::R32G32_SFLOAT => Ok(Self::R32G32_SFLOAT),
4396             ash::vk::Format::R32G32B32_UINT => Ok(Self::R32G32B32_UINT),
4397             ash::vk::Format::R32G32B32_SINT => Ok(Self::R32G32B32_SINT),
4398             ash::vk::Format::R32G32B32_SFLOAT => Ok(Self::R32G32B32_SFLOAT),
4399             ash::vk::Format::R32G32B32A32_UINT => Ok(Self::R32G32B32A32_UINT),
4400             ash::vk::Format::R32G32B32A32_SINT => Ok(Self::R32G32B32A32_SINT),
4401             ash::vk::Format::R32G32B32A32_SFLOAT => Ok(Self::R32G32B32A32_SFLOAT),
4402             ash::vk::Format::R64_UINT => Ok(Self::R64_UINT),
4403             ash::vk::Format::R64_SINT => Ok(Self::R64_SINT),
4404             ash::vk::Format::R64_SFLOAT => Ok(Self::R64_SFLOAT),
4405             ash::vk::Format::R64G64_UINT => Ok(Self::R64G64_UINT),
4406             ash::vk::Format::R64G64_SINT => Ok(Self::R64G64_SINT),
4407             ash::vk::Format::R64G64_SFLOAT => Ok(Self::R64G64_SFLOAT),
4408             ash::vk::Format::R64G64B64_UINT => Ok(Self::R64G64B64_UINT),
4409             ash::vk::Format::R64G64B64_SINT => Ok(Self::R64G64B64_SINT),
4410             ash::vk::Format::R64G64B64_SFLOAT => Ok(Self::R64G64B64_SFLOAT),
4411             ash::vk::Format::R64G64B64A64_UINT => Ok(Self::R64G64B64A64_UINT),
4412             ash::vk::Format::R64G64B64A64_SINT => Ok(Self::R64G64B64A64_SINT),
4413             ash::vk::Format::R64G64B64A64_SFLOAT => Ok(Self::R64G64B64A64_SFLOAT),
4414             ash::vk::Format::B10G11R11_UFLOAT_PACK32 => Ok(Self::B10G11R11_UFLOAT_PACK32),
4415             ash::vk::Format::E5B9G9R9_UFLOAT_PACK32 => Ok(Self::E5B9G9R9_UFLOAT_PACK32),
4416             ash::vk::Format::D16_UNORM => Ok(Self::D16_UNORM),
4417             ash::vk::Format::X8_D24_UNORM_PACK32 => Ok(Self::X8_D24_UNORM_PACK32),
4418             ash::vk::Format::D32_SFLOAT => Ok(Self::D32_SFLOAT),
4419             ash::vk::Format::S8_UINT => Ok(Self::S8_UINT),
4420             ash::vk::Format::D16_UNORM_S8_UINT => Ok(Self::D16_UNORM_S8_UINT),
4421             ash::vk::Format::D24_UNORM_S8_UINT => Ok(Self::D24_UNORM_S8_UINT),
4422             ash::vk::Format::D32_SFLOAT_S8_UINT => Ok(Self::D32_SFLOAT_S8_UINT),
4423             ash::vk::Format::BC1_RGB_UNORM_BLOCK => Ok(Self::BC1_RGB_UNORM_BLOCK),
4424             ash::vk::Format::BC1_RGB_SRGB_BLOCK => Ok(Self::BC1_RGB_SRGB_BLOCK),
4425             ash::vk::Format::BC1_RGBA_UNORM_BLOCK => Ok(Self::BC1_RGBA_UNORM_BLOCK),
4426             ash::vk::Format::BC1_RGBA_SRGB_BLOCK => Ok(Self::BC1_RGBA_SRGB_BLOCK),
4427             ash::vk::Format::BC2_UNORM_BLOCK => Ok(Self::BC2_UNORM_BLOCK),
4428             ash::vk::Format::BC2_SRGB_BLOCK => Ok(Self::BC2_SRGB_BLOCK),
4429             ash::vk::Format::BC3_UNORM_BLOCK => Ok(Self::BC3_UNORM_BLOCK),
4430             ash::vk::Format::BC3_SRGB_BLOCK => Ok(Self::BC3_SRGB_BLOCK),
4431             ash::vk::Format::BC4_UNORM_BLOCK => Ok(Self::BC4_UNORM_BLOCK),
4432             ash::vk::Format::BC4_SNORM_BLOCK => Ok(Self::BC4_SNORM_BLOCK),
4433             ash::vk::Format::BC5_UNORM_BLOCK => Ok(Self::BC5_UNORM_BLOCK),
4434             ash::vk::Format::BC5_SNORM_BLOCK => Ok(Self::BC5_SNORM_BLOCK),
4435             ash::vk::Format::BC6H_UFLOAT_BLOCK => Ok(Self::BC6H_UFLOAT_BLOCK),
4436             ash::vk::Format::BC6H_SFLOAT_BLOCK => Ok(Self::BC6H_SFLOAT_BLOCK),
4437             ash::vk::Format::BC7_UNORM_BLOCK => Ok(Self::BC7_UNORM_BLOCK),
4438             ash::vk::Format::BC7_SRGB_BLOCK => Ok(Self::BC7_SRGB_BLOCK),
4439             ash::vk::Format::ETC2_R8G8B8_UNORM_BLOCK => Ok(Self::ETC2_R8G8B8_UNORM_BLOCK),
4440             ash::vk::Format::ETC2_R8G8B8_SRGB_BLOCK => Ok(Self::ETC2_R8G8B8_SRGB_BLOCK),
4441             ash::vk::Format::ETC2_R8G8B8A1_UNORM_BLOCK => Ok(Self::ETC2_R8G8B8A1_UNORM_BLOCK),
4442             ash::vk::Format::ETC2_R8G8B8A1_SRGB_BLOCK => Ok(Self::ETC2_R8G8B8A1_SRGB_BLOCK),
4443             ash::vk::Format::ETC2_R8G8B8A8_UNORM_BLOCK => Ok(Self::ETC2_R8G8B8A8_UNORM_BLOCK),
4444             ash::vk::Format::ETC2_R8G8B8A8_SRGB_BLOCK => Ok(Self::ETC2_R8G8B8A8_SRGB_BLOCK),
4445             ash::vk::Format::EAC_R11_UNORM_BLOCK => Ok(Self::EAC_R11_UNORM_BLOCK),
4446             ash::vk::Format::EAC_R11_SNORM_BLOCK => Ok(Self::EAC_R11_SNORM_BLOCK),
4447             ash::vk::Format::EAC_R11G11_UNORM_BLOCK => Ok(Self::EAC_R11G11_UNORM_BLOCK),
4448             ash::vk::Format::EAC_R11G11_SNORM_BLOCK => Ok(Self::EAC_R11G11_SNORM_BLOCK),
4449             ash::vk::Format::ASTC_4X4_UNORM_BLOCK => Ok(Self::ASTC_4x4_UNORM_BLOCK),
4450             ash::vk::Format::ASTC_4X4_SRGB_BLOCK => Ok(Self::ASTC_4x4_SRGB_BLOCK),
4451             ash::vk::Format::ASTC_5X4_UNORM_BLOCK => Ok(Self::ASTC_5x4_UNORM_BLOCK),
4452             ash::vk::Format::ASTC_5X4_SRGB_BLOCK => Ok(Self::ASTC_5x4_SRGB_BLOCK),
4453             ash::vk::Format::ASTC_5X5_UNORM_BLOCK => Ok(Self::ASTC_5x5_UNORM_BLOCK),
4454             ash::vk::Format::ASTC_5X5_SRGB_BLOCK => Ok(Self::ASTC_5x5_SRGB_BLOCK),
4455             ash::vk::Format::ASTC_6X5_UNORM_BLOCK => Ok(Self::ASTC_6x5_UNORM_BLOCK),
4456             ash::vk::Format::ASTC_6X5_SRGB_BLOCK => Ok(Self::ASTC_6x5_SRGB_BLOCK),
4457             ash::vk::Format::ASTC_6X6_UNORM_BLOCK => Ok(Self::ASTC_6x6_UNORM_BLOCK),
4458             ash::vk::Format::ASTC_6X6_SRGB_BLOCK => Ok(Self::ASTC_6x6_SRGB_BLOCK),
4459             ash::vk::Format::ASTC_8X5_UNORM_BLOCK => Ok(Self::ASTC_8x5_UNORM_BLOCK),
4460             ash::vk::Format::ASTC_8X5_SRGB_BLOCK => Ok(Self::ASTC_8x5_SRGB_BLOCK),
4461             ash::vk::Format::ASTC_8X6_UNORM_BLOCK => Ok(Self::ASTC_8x6_UNORM_BLOCK),
4462             ash::vk::Format::ASTC_8X6_SRGB_BLOCK => Ok(Self::ASTC_8x6_SRGB_BLOCK),
4463             ash::vk::Format::ASTC_8X8_UNORM_BLOCK => Ok(Self::ASTC_8x8_UNORM_BLOCK),
4464             ash::vk::Format::ASTC_8X8_SRGB_BLOCK => Ok(Self::ASTC_8x8_SRGB_BLOCK),
4465             ash::vk::Format::ASTC_10X5_UNORM_BLOCK => Ok(Self::ASTC_10x5_UNORM_BLOCK),
4466             ash::vk::Format::ASTC_10X5_SRGB_BLOCK => Ok(Self::ASTC_10x5_SRGB_BLOCK),
4467             ash::vk::Format::ASTC_10X6_UNORM_BLOCK => Ok(Self::ASTC_10x6_UNORM_BLOCK),
4468             ash::vk::Format::ASTC_10X6_SRGB_BLOCK => Ok(Self::ASTC_10x6_SRGB_BLOCK),
4469             ash::vk::Format::ASTC_10X8_UNORM_BLOCK => Ok(Self::ASTC_10x8_UNORM_BLOCK),
4470             ash::vk::Format::ASTC_10X8_SRGB_BLOCK => Ok(Self::ASTC_10x8_SRGB_BLOCK),
4471             ash::vk::Format::ASTC_10X10_UNORM_BLOCK => Ok(Self::ASTC_10x10_UNORM_BLOCK),
4472             ash::vk::Format::ASTC_10X10_SRGB_BLOCK => Ok(Self::ASTC_10x10_SRGB_BLOCK),
4473             ash::vk::Format::ASTC_12X10_UNORM_BLOCK => Ok(Self::ASTC_12x10_UNORM_BLOCK),
4474             ash::vk::Format::ASTC_12X10_SRGB_BLOCK => Ok(Self::ASTC_12x10_SRGB_BLOCK),
4475             ash::vk::Format::ASTC_12X12_UNORM_BLOCK => Ok(Self::ASTC_12x12_UNORM_BLOCK),
4476             ash::vk::Format::ASTC_12X12_SRGB_BLOCK => Ok(Self::ASTC_12x12_SRGB_BLOCK),
4477             ash::vk::Format::G8B8G8R8_422_UNORM => Ok(Self::G8B8G8R8_422_UNORM),
4478             ash::vk::Format::B8G8R8G8_422_UNORM => Ok(Self::B8G8R8G8_422_UNORM),
4479             ash::vk::Format::G8_B8_R8_3PLANE_420_UNORM => Ok(Self::G8_B8_R8_3PLANE_420_UNORM),
4480             ash::vk::Format::G8_B8R8_2PLANE_420_UNORM => Ok(Self::G8_B8R8_2PLANE_420_UNORM),
4481             ash::vk::Format::G8_B8_R8_3PLANE_422_UNORM => Ok(Self::G8_B8_R8_3PLANE_422_UNORM),
4482             ash::vk::Format::G8_B8R8_2PLANE_422_UNORM => Ok(Self::G8_B8R8_2PLANE_422_UNORM),
4483             ash::vk::Format::G8_B8_R8_3PLANE_444_UNORM => Ok(Self::G8_B8_R8_3PLANE_444_UNORM),
4484             ash::vk::Format::R10X6_UNORM_PACK16 => Ok(Self::R10X6_UNORM_PACK16),
4485             ash::vk::Format::R10X6G10X6_UNORM_2PACK16 => Ok(Self::R10X6G10X6_UNORM_2PACK16),
4486             ash::vk::Format::R10X6G10X6B10X6A10X6_UNORM_4PACK16 => {
4487                 Ok(Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16)
4488             }
4489             ash::vk::Format::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 => {
4490                 Ok(Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16)
4491             }
4492             ash::vk::Format::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 => {
4493                 Ok(Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16)
4494             }
4495             ash::vk::Format::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 => {
4496                 Ok(Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16)
4497             }
4498             ash::vk::Format::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 => {
4499                 Ok(Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16)
4500             }
4501             ash::vk::Format::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 => {
4502                 Ok(Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16)
4503             }
4504             ash::vk::Format::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 => {
4505                 Ok(Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16)
4506             }
4507             ash::vk::Format::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 => {
4508                 Ok(Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16)
4509             }
4510             ash::vk::Format::R12X4_UNORM_PACK16 => Ok(Self::R12X4_UNORM_PACK16),
4511             ash::vk::Format::R12X4G12X4_UNORM_2PACK16 => Ok(Self::R12X4G12X4_UNORM_2PACK16),
4512             ash::vk::Format::R12X4G12X4B12X4A12X4_UNORM_4PACK16 => {
4513                 Ok(Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16)
4514             }
4515             ash::vk::Format::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 => {
4516                 Ok(Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16)
4517             }
4518             ash::vk::Format::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 => {
4519                 Ok(Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16)
4520             }
4521             ash::vk::Format::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 => {
4522                 Ok(Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16)
4523             }
4524             ash::vk::Format::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 => {
4525                 Ok(Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16)
4526             }
4527             ash::vk::Format::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 => {
4528                 Ok(Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16)
4529             }
4530             ash::vk::Format::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 => {
4531                 Ok(Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16)
4532             }
4533             ash::vk::Format::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 => {
4534                 Ok(Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16)
4535             }
4536             ash::vk::Format::G16B16G16R16_422_UNORM => Ok(Self::G16B16G16R16_422_UNORM),
4537             ash::vk::Format::B16G16R16G16_422_UNORM => Ok(Self::B16G16R16G16_422_UNORM),
4538             ash::vk::Format::G16_B16_R16_3PLANE_420_UNORM => Ok(Self::G16_B16_R16_3PLANE_420_UNORM),
4539             ash::vk::Format::G16_B16R16_2PLANE_420_UNORM => Ok(Self::G16_B16R16_2PLANE_420_UNORM),
4540             ash::vk::Format::G16_B16_R16_3PLANE_422_UNORM => Ok(Self::G16_B16_R16_3PLANE_422_UNORM),
4541             ash::vk::Format::G16_B16R16_2PLANE_422_UNORM => Ok(Self::G16_B16R16_2PLANE_422_UNORM),
4542             ash::vk::Format::G16_B16_R16_3PLANE_444_UNORM => Ok(Self::G16_B16_R16_3PLANE_444_UNORM),
4543             ash::vk::Format::PVRTC1_2BPP_UNORM_BLOCK_IMG => Ok(Self::PVRTC1_2BPP_UNORM_BLOCK),
4544             ash::vk::Format::PVRTC1_4BPP_UNORM_BLOCK_IMG => Ok(Self::PVRTC1_4BPP_UNORM_BLOCK),
4545             ash::vk::Format::PVRTC2_2BPP_UNORM_BLOCK_IMG => Ok(Self::PVRTC2_2BPP_UNORM_BLOCK),
4546             ash::vk::Format::PVRTC2_4BPP_UNORM_BLOCK_IMG => Ok(Self::PVRTC2_4BPP_UNORM_BLOCK),
4547             ash::vk::Format::PVRTC1_2BPP_SRGB_BLOCK_IMG => Ok(Self::PVRTC1_2BPP_SRGB_BLOCK),
4548             ash::vk::Format::PVRTC1_4BPP_SRGB_BLOCK_IMG => Ok(Self::PVRTC1_4BPP_SRGB_BLOCK),
4549             ash::vk::Format::PVRTC2_2BPP_SRGB_BLOCK_IMG => Ok(Self::PVRTC2_2BPP_SRGB_BLOCK),
4550             ash::vk::Format::PVRTC2_4BPP_SRGB_BLOCK_IMG => Ok(Self::PVRTC2_4BPP_SRGB_BLOCK),
4551             ash::vk::Format::ASTC_4X4_SFLOAT_BLOCK => Ok(Self::ASTC_4x4_SFLOAT_BLOCK),
4552             ash::vk::Format::ASTC_5X4_SFLOAT_BLOCK => Ok(Self::ASTC_5x4_SFLOAT_BLOCK),
4553             ash::vk::Format::ASTC_5X5_SFLOAT_BLOCK => Ok(Self::ASTC_5x5_SFLOAT_BLOCK),
4554             ash::vk::Format::ASTC_6X5_SFLOAT_BLOCK => Ok(Self::ASTC_6x5_SFLOAT_BLOCK),
4555             ash::vk::Format::ASTC_6X6_SFLOAT_BLOCK => Ok(Self::ASTC_6x6_SFLOAT_BLOCK),
4556             ash::vk::Format::ASTC_8X5_SFLOAT_BLOCK => Ok(Self::ASTC_8x5_SFLOAT_BLOCK),
4557             ash::vk::Format::ASTC_8X6_SFLOAT_BLOCK => Ok(Self::ASTC_8x6_SFLOAT_BLOCK),
4558             ash::vk::Format::ASTC_8X8_SFLOAT_BLOCK => Ok(Self::ASTC_8x8_SFLOAT_BLOCK),
4559             ash::vk::Format::ASTC_10X5_SFLOAT_BLOCK => Ok(Self::ASTC_10x5_SFLOAT_BLOCK),
4560             ash::vk::Format::ASTC_10X6_SFLOAT_BLOCK => Ok(Self::ASTC_10x6_SFLOAT_BLOCK),
4561             ash::vk::Format::ASTC_10X8_SFLOAT_BLOCK => Ok(Self::ASTC_10x8_SFLOAT_BLOCK),
4562             ash::vk::Format::ASTC_10X10_SFLOAT_BLOCK => Ok(Self::ASTC_10x10_SFLOAT_BLOCK),
4563             ash::vk::Format::ASTC_12X10_SFLOAT_BLOCK => Ok(Self::ASTC_12x10_SFLOAT_BLOCK),
4564             ash::vk::Format::ASTC_12X12_SFLOAT_BLOCK => Ok(Self::ASTC_12x12_SFLOAT_BLOCK),
4565             ash::vk::Format::G8_B8R8_2PLANE_444_UNORM => Ok(Self::G8_B8R8_2PLANE_444_UNORM),
4566             ash::vk::Format::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 => {
4567                 Ok(Self::G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16)
4568             }
4569             ash::vk::Format::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 => {
4570                 Ok(Self::G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16)
4571             }
4572             ash::vk::Format::G16_B16R16_2PLANE_444_UNORM => Ok(Self::G16_B16R16_2PLANE_444_UNORM),
4573             ash::vk::Format::A4R4G4B4_UNORM_PACK16 => Ok(Self::A4R4G4B4_UNORM_PACK16),
4574             ash::vk::Format::A4B4G4R4_UNORM_PACK16 => Ok(Self::A4B4G4R4_UNORM_PACK16),
4575             ash::vk::Format::R16G16_S10_5_NV => Ok(Self::R16G16_S10_5_NV),
4576             _ => Err(()),
4577         }
4578     }
4579 }
4580 #[doc = r" Converts a format enum identifier to a standard Rust type that is suitable for"]
4581 #[doc = r" representing the format in a buffer or image."]
4582 #[doc = r""]
4583 #[doc = r" This macro returns one possible suitable representation, but there are usually other"]
4584 #[doc = r" possibilities for a given format. A compile error occurs for formats that have no"]
4585 #[doc = r" well-defined size (the `size` method returns `None`)."]
4586 #[doc = r""]
4587 #[doc = r" - For regular unpacked formats with one component, this returns a single floating point,"]
4588 #[doc = r"   signed or unsigned integer with the appropriate number of bits. For formats with"]
4589 #[doc = r"   multiple components, an array is returned."]
4590 #[doc = r" - For packed formats, this returns an unsigned integer with the size of the packed"]
4591 #[doc = r"   element. For multi-packed formats (such as `2PACK16`), an array is returned."]
4592 #[doc = r" - For compressed formats, this returns `[u8; N]` where N is the size of a block."]
4593 #[doc = r""]
4594 #[doc = r" Note: for 16-bit floating point values, you need to import the [`half::f16`] type."]
4595 #[doc = r""]
4596 #[doc = r" # Examples"]
4597 #[doc = r""]
4598 #[doc = r" For arrays:"]
4599 #[doc = r""]
4600 #[doc = r" ```"]
4601 #[doc = r" # use vulkano::type_for_format;"]
4602 #[doc = r" let pixel: type_for_format!(R32G32B32A32_SFLOAT);"]
4603 #[doc = r" pixel = [1.0f32, 0.0, 0.0, 1.0];"]
4604 #[doc = r" ```"]
4605 #[doc = r""]
4606 #[doc = r" For [`cgmath`]:"]
4607 #[doc = r""]
4608 #[doc = r" ```"]
4609 #[doc = r" # use vulkano::type_for_format;"]
4610 #[doc = r" let pixel: type_for_format!(cgmath, R32G32B32A32_SFLOAT);"]
4611 #[doc = r" pixel = cgmath::Vector4::new(1.0f32, 0.0, 0.0, 1.0);"]
4612 #[doc = r" ```"]
4613 #[doc = r""]
4614 #[doc = r" For [`nalgebra`]:"]
4615 #[doc = r""]
4616 #[doc = r" ```"]
4617 #[doc = r" # use vulkano::type_for_format;"]
4618 #[doc = r" let pixel: type_for_format!(nalgebra, R32G32B32A32_SFLOAT);"]
4619 #[doc = r" pixel = nalgebra::vector![1.0f32, 0.0, 0.0, 1.0];"]
4620 #[doc = r" ```"]
4621 #[doc = r""]
4622 #[doc = r" [`cgmath`]: https://crates.io/crates/cgmath"]
4623 #[doc = r" [`nalgebra`]: https://crates.io/crates/nalgebra"]
4624 #[macro_export]
4625 macro_rules ! type_for_format { (R4G4_UNORM_PACK8) => { u8 } ; (R4G4B4A4_UNORM_PACK16) => { u16 } ; (B4G4R4A4_UNORM_PACK16) => { u16 } ; (R5G6B5_UNORM_PACK16) => { u16 } ; (B5G6R5_UNORM_PACK16) => { u16 } ; (R5G5B5A1_UNORM_PACK16) => { u16 } ; (B5G5R5A1_UNORM_PACK16) => { u16 } ; (A1R5G5B5_UNORM_PACK16) => { u16 } ; (R8_UNORM) => { u8 } ; (R8_SNORM) => { i8 } ; (R8_USCALED) => { u8 } ; (R8_SSCALED) => { i8 } ; (R8_UINT) => { u8 } ; (R8_SINT) => { i8 } ; (R8_SRGB) => { u8 } ; (R8G8_UNORM) => { [u8 ; 2] } ; (R8G8_SNORM) => { [i8 ; 2] } ; (R8G8_USCALED) => { [u8 ; 2] } ; (R8G8_SSCALED) => { [i8 ; 2] } ; (R8G8_UINT) => { [u8 ; 2] } ; (R8G8_SINT) => { [i8 ; 2] } ; (R8G8_SRGB) => { [u8 ; 2] } ; (R8G8B8_UNORM) => { [u8 ; 3] } ; (R8G8B8_SNORM) => { [i8 ; 3] } ; (R8G8B8_USCALED) => { [u8 ; 3] } ; (R8G8B8_SSCALED) => { [i8 ; 3] } ; (R8G8B8_UINT) => { [u8 ; 3] } ; (R8G8B8_SINT) => { [i8 ; 3] } ; (R8G8B8_SRGB) => { [u8 ; 3] } ; (B8G8R8_UNORM) => { [u8 ; 3] } ; (B8G8R8_SNORM) => { [i8 ; 3] } ; (B8G8R8_USCALED) => { [u8 ; 3] } ; (B8G8R8_SSCALED) => { [i8 ; 3] } ; (B8G8R8_UINT) => { [u8 ; 3] } ; (B8G8R8_SINT) => { [i8 ; 3] } ; (B8G8R8_SRGB) => { [u8 ; 3] } ; (R8G8B8A8_UNORM) => { [u8 ; 4] } ; (R8G8B8A8_SNORM) => { [i8 ; 4] } ; (R8G8B8A8_USCALED) => { [u8 ; 4] } ; (R8G8B8A8_SSCALED) => { [i8 ; 4] } ; (R8G8B8A8_UINT) => { [u8 ; 4] } ; (R8G8B8A8_SINT) => { [i8 ; 4] } ; (R8G8B8A8_SRGB) => { [u8 ; 4] } ; (B8G8R8A8_UNORM) => { [u8 ; 4] } ; (B8G8R8A8_SNORM) => { [i8 ; 4] } ; (B8G8R8A8_USCALED) => { [u8 ; 4] } ; (B8G8R8A8_SSCALED) => { [i8 ; 4] } ; (B8G8R8A8_UINT) => { [u8 ; 4] } ; (B8G8R8A8_SINT) => { [i8 ; 4] } ; (B8G8R8A8_SRGB) => { [u8 ; 4] } ; (A8B8G8R8_UNORM_PACK32) => { u32 } ; (A8B8G8R8_SNORM_PACK32) => { u32 } ; (A8B8G8R8_USCALED_PACK32) => { u32 } ; (A8B8G8R8_SSCALED_PACK32) => { u32 } ; (A8B8G8R8_UINT_PACK32) => { u32 } ; (A8B8G8R8_SINT_PACK32) => { u32 } ; (A8B8G8R8_SRGB_PACK32) => { u32 } ; (A2R10G10B10_UNORM_PACK32) => { u32 } ; (A2R10G10B10_SNORM_PACK32) => { u32 } ; (A2R10G10B10_USCALED_PACK32) => { u32 } ; (A2R10G10B10_SSCALED_PACK32) => { u32 } ; (A2R10G10B10_UINT_PACK32) => { u32 } ; (A2R10G10B10_SINT_PACK32) => { u32 } ; (A2B10G10R10_UNORM_PACK32) => { u32 } ; (A2B10G10R10_SNORM_PACK32) => { u32 } ; (A2B10G10R10_USCALED_PACK32) => { u32 } ; (A2B10G10R10_SSCALED_PACK32) => { u32 } ; (A2B10G10R10_UINT_PACK32) => { u32 } ; (A2B10G10R10_SINT_PACK32) => { u32 } ; (R16_UNORM) => { u16 } ; (R16_SNORM) => { i16 } ; (R16_USCALED) => { u16 } ; (R16_SSCALED) => { i16 } ; (R16_UINT) => { u16 } ; (R16_SINT) => { i16 } ; (R16_SFLOAT) => { f16 } ; (R16G16_UNORM) => { [u16 ; 2] } ; (R16G16_SNORM) => { [i16 ; 2] } ; (R16G16_USCALED) => { [u16 ; 2] } ; (R16G16_SSCALED) => { [i16 ; 2] } ; (R16G16_UINT) => { [u16 ; 2] } ; (R16G16_SINT) => { [i16 ; 2] } ; (R16G16_SFLOAT) => { [f16 ; 2] } ; (R16G16B16_UNORM) => { [u16 ; 3] } ; (R16G16B16_SNORM) => { [i16 ; 3] } ; (R16G16B16_USCALED) => { [u16 ; 3] } ; (R16G16B16_SSCALED) => { [i16 ; 3] } ; (R16G16B16_UINT) => { [u16 ; 3] } ; (R16G16B16_SINT) => { [i16 ; 3] } ; (R16G16B16_SFLOAT) => { [f16 ; 3] } ; (R16G16B16A16_UNORM) => { [u16 ; 4] } ; (R16G16B16A16_SNORM) => { [i16 ; 4] } ; (R16G16B16A16_USCALED) => { [u16 ; 4] } ; (R16G16B16A16_SSCALED) => { [i16 ; 4] } ; (R16G16B16A16_UINT) => { [u16 ; 4] } ; (R16G16B16A16_SINT) => { [i16 ; 4] } ; (R16G16B16A16_SFLOAT) => { [f16 ; 4] } ; (R32_UINT) => { u32 } ; (R32_SINT) => { i32 } ; (R32_SFLOAT) => { f32 } ; (R32G32_UINT) => { [u32 ; 2] } ; (R32G32_SINT) => { [i32 ; 2] } ; (R32G32_SFLOAT) => { [f32 ; 2] } ; (R32G32B32_UINT) => { [u32 ; 3] } ; (R32G32B32_SINT) => { [i32 ; 3] } ; (R32G32B32_SFLOAT) => { [f32 ; 3] } ; (R32G32B32A32_UINT) => { [u32 ; 4] } ; (R32G32B32A32_SINT) => { [i32 ; 4] } ; (R32G32B32A32_SFLOAT) => { [f32 ; 4] } ; (R64_UINT) => { u64 } ; (R64_SINT) => { i64 } ; (R64_SFLOAT) => { f64 } ; (R64G64_UINT) => { [u64 ; 2] } ; (R64G64_SINT) => { [i64 ; 2] } ; (R64G64_SFLOAT) => { [f64 ; 2] } ; (R64G64B64_UINT) => { [u64 ; 3] } ; (R64G64B64_SINT) => { [i64 ; 3] } ; (R64G64B64_SFLOAT) => { [f64 ; 3] } ; (R64G64B64A64_UINT) => { [u64 ; 4] } ; (R64G64B64A64_SINT) => { [i64 ; 4] } ; (R64G64B64A64_SFLOAT) => { [f64 ; 4] } ; (B10G11R11_UFLOAT_PACK32) => { u32 } ; (E5B9G9R9_UFLOAT_PACK32) => { u32 } ; (BC1_RGB_UNORM_BLOCK) => { [u8 ; 8] } ; (BC1_RGB_SRGB_BLOCK) => { [u8 ; 8] } ; (BC1_RGBA_UNORM_BLOCK) => { [u8 ; 8] } ; (BC1_RGBA_SRGB_BLOCK) => { [u8 ; 8] } ; (BC2_UNORM_BLOCK) => { [u8 ; 16] } ; (BC2_SRGB_BLOCK) => { [u8 ; 16] } ; (BC3_UNORM_BLOCK) => { [u8 ; 16] } ; (BC3_SRGB_BLOCK) => { [u8 ; 16] } ; (BC4_UNORM_BLOCK) => { [u8 ; 8] } ; (BC4_SNORM_BLOCK) => { [u8 ; 8] } ; (BC5_UNORM_BLOCK) => { [u8 ; 16] } ; (BC5_SNORM_BLOCK) => { [u8 ; 16] } ; (BC6H_UFLOAT_BLOCK) => { [u8 ; 16] } ; (BC6H_SFLOAT_BLOCK) => { [u8 ; 16] } ; (BC7_UNORM_BLOCK) => { [u8 ; 16] } ; (BC7_SRGB_BLOCK) => { [u8 ; 16] } ; (ETC2_R8G8B8_UNORM_BLOCK) => { [u8 ; 8] } ; (ETC2_R8G8B8_SRGB_BLOCK) => { [u8 ; 8] } ; (ETC2_R8G8B8A1_UNORM_BLOCK) => { [u8 ; 8] } ; (ETC2_R8G8B8A1_SRGB_BLOCK) => { [u8 ; 8] } ; (ETC2_R8G8B8A8_UNORM_BLOCK) => { [u8 ; 16] } ; (ETC2_R8G8B8A8_SRGB_BLOCK) => { [u8 ; 16] } ; (EAC_R11_UNORM_BLOCK) => { [u8 ; 8] } ; (EAC_R11_SNORM_BLOCK) => { [u8 ; 8] } ; (EAC_R11G11_UNORM_BLOCK) => { [u8 ; 16] } ; (EAC_R11G11_SNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_4x4_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_4x4_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_5x4_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_5x4_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_5x5_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_5x5_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_6x5_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_6x5_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_6x6_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_6x6_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_8x5_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_8x5_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_8x6_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_8x6_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_8x8_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_8x8_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_10x5_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_10x5_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_10x6_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_10x6_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_10x8_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_10x8_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_10x10_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_10x10_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_12x10_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_12x10_SRGB_BLOCK) => { [u8 ; 16] } ; (ASTC_12x12_UNORM_BLOCK) => { [u8 ; 16] } ; (ASTC_12x12_SRGB_BLOCK) => { [u8 ; 16] } ; (G8B8G8R8_422_UNORM) => { [u8 ; 4] } ; (B8G8R8G8_422_UNORM) => { [u8 ; 4] } ; (R10X6_UNORM_PACK16) => { u16 } ; (R10X6G10X6_UNORM_2PACK16) => { [u16 ; 2] } ; (R10X6G10X6B10X6A10X6_UNORM_4PACK16) => { [u16 ; 4] } ; (G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) => { [u16 ; 4] } ; (B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) => { [u16 ; 4] } ; (R12X4_UNORM_PACK16) => { u16 } ; (R12X4G12X4_UNORM_2PACK16) => { [u16 ; 2] } ; (R12X4G12X4B12X4A12X4_UNORM_4PACK16) => { [u16 ; 4] } ; (G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) => { [u16 ; 4] } ; (B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) => { [u16 ; 4] } ; (G16B16G16R16_422_UNORM) => { [u16 ; 4] } ; (B16G16R16G16_422_UNORM) => { [u16 ; 4] } ; (PVRTC1_2BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (PVRTC1_4BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (PVRTC2_2BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (PVRTC2_4BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (PVRTC1_2BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (PVRTC1_4BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (PVRTC2_2BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (PVRTC2_4BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (ASTC_4x4_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_5x4_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_5x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_6x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_6x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_8x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_8x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_8x8_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_10x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_10x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_10x8_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_10x10_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_12x10_SFLOAT_BLOCK) => { [u8 ; 16] } ; (ASTC_12x12_SFLOAT_BLOCK) => { [u8 ; 16] } ; (A4R4G4B4_UNORM_PACK16) => { u16 } ; (A4B4G4R4_UNORM_PACK16) => { u16 } ; (R16G16_S10_5_NV) => { [i16 ; 2] } ; (cgmath , R4G4_UNORM_PACK8) => { u8 } ; (cgmath , R4G4B4A4_UNORM_PACK16) => { u16 } ; (cgmath , B4G4R4A4_UNORM_PACK16) => { u16 } ; (cgmath , R5G6B5_UNORM_PACK16) => { u16 } ; (cgmath , B5G6R5_UNORM_PACK16) => { u16 } ; (cgmath , R5G5B5A1_UNORM_PACK16) => { u16 } ; (cgmath , B5G5R5A1_UNORM_PACK16) => { u16 } ; (cgmath , A1R5G5B5_UNORM_PACK16) => { u16 } ; (cgmath , R8_UNORM) => { u8 } ; (cgmath , R8_SNORM) => { i8 } ; (cgmath , R8_USCALED) => { u8 } ; (cgmath , R8_SSCALED) => { i8 } ; (cgmath , R8_UINT) => { u8 } ; (cgmath , R8_SINT) => { i8 } ; (cgmath , R8_SRGB) => { u8 } ; (cgmath , R8G8_UNORM) => { cgmath :: Vector2 < u8 > } ; (cgmath , R8G8_SNORM) => { cgmath :: Vector2 < i8 > } ; (cgmath , R8G8_USCALED) => { cgmath :: Vector2 < u8 > } ; (cgmath , R8G8_SSCALED) => { cgmath :: Vector2 < i8 > } ; (cgmath , R8G8_UINT) => { cgmath :: Vector2 < u8 > } ; (cgmath , R8G8_SINT) => { cgmath :: Vector2 < i8 > } ; (cgmath , R8G8_SRGB) => { cgmath :: Vector2 < u8 > } ; (cgmath , R8G8B8_UNORM) => { cgmath :: Vector3 < u8 > } ; (cgmath , R8G8B8_SNORM) => { cgmath :: Vector3 < i8 > } ; (cgmath , R8G8B8_USCALED) => { cgmath :: Vector3 < u8 > } ; (cgmath , R8G8B8_SSCALED) => { cgmath :: Vector3 < i8 > } ; (cgmath , R8G8B8_UINT) => { cgmath :: Vector3 < u8 > } ; (cgmath , R8G8B8_SINT) => { cgmath :: Vector3 < i8 > } ; (cgmath , R8G8B8_SRGB) => { cgmath :: Vector3 < u8 > } ; (cgmath , B8G8R8_UNORM) => { cgmath :: Vector3 < u8 > } ; (cgmath , B8G8R8_SNORM) => { cgmath :: Vector3 < i8 > } ; (cgmath , B8G8R8_USCALED) => { cgmath :: Vector3 < u8 > } ; (cgmath , B8G8R8_SSCALED) => { cgmath :: Vector3 < i8 > } ; (cgmath , B8G8R8_UINT) => { cgmath :: Vector3 < u8 > } ; (cgmath , B8G8R8_SINT) => { cgmath :: Vector3 < i8 > } ; (cgmath , B8G8R8_SRGB) => { cgmath :: Vector3 < u8 > } ; (cgmath , R8G8B8A8_UNORM) => { cgmath :: Vector4 < u8 > } ; (cgmath , R8G8B8A8_SNORM) => { cgmath :: Vector4 < i8 > } ; (cgmath , R8G8B8A8_USCALED) => { cgmath :: Vector4 < u8 > } ; (cgmath , R8G8B8A8_SSCALED) => { cgmath :: Vector4 < i8 > } ; (cgmath , R8G8B8A8_UINT) => { cgmath :: Vector4 < u8 > } ; (cgmath , R8G8B8A8_SINT) => { cgmath :: Vector4 < i8 > } ; (cgmath , R8G8B8A8_SRGB) => { cgmath :: Vector4 < u8 > } ; (cgmath , B8G8R8A8_UNORM) => { cgmath :: Vector4 < u8 > } ; (cgmath , B8G8R8A8_SNORM) => { cgmath :: Vector4 < i8 > } ; (cgmath , B8G8R8A8_USCALED) => { cgmath :: Vector4 < u8 > } ; (cgmath , B8G8R8A8_SSCALED) => { cgmath :: Vector4 < i8 > } ; (cgmath , B8G8R8A8_UINT) => { cgmath :: Vector4 < u8 > } ; (cgmath , B8G8R8A8_SINT) => { cgmath :: Vector4 < i8 > } ; (cgmath , B8G8R8A8_SRGB) => { cgmath :: Vector4 < u8 > } ; (cgmath , A8B8G8R8_UNORM_PACK32) => { u32 } ; (cgmath , A8B8G8R8_SNORM_PACK32) => { u32 } ; (cgmath , A8B8G8R8_USCALED_PACK32) => { u32 } ; (cgmath , A8B8G8R8_SSCALED_PACK32) => { u32 } ; (cgmath , A8B8G8R8_UINT_PACK32) => { u32 } ; (cgmath , A8B8G8R8_SINT_PACK32) => { u32 } ; (cgmath , A8B8G8R8_SRGB_PACK32) => { u32 } ; (cgmath , A2R10G10B10_UNORM_PACK32) => { u32 } ; (cgmath , A2R10G10B10_SNORM_PACK32) => { u32 } ; (cgmath , A2R10G10B10_USCALED_PACK32) => { u32 } ; (cgmath , A2R10G10B10_SSCALED_PACK32) => { u32 } ; (cgmath , A2R10G10B10_UINT_PACK32) => { u32 } ; (cgmath , A2R10G10B10_SINT_PACK32) => { u32 } ; (cgmath , A2B10G10R10_UNORM_PACK32) => { u32 } ; (cgmath , A2B10G10R10_SNORM_PACK32) => { u32 } ; (cgmath , A2B10G10R10_USCALED_PACK32) => { u32 } ; (cgmath , A2B10G10R10_SSCALED_PACK32) => { u32 } ; (cgmath , A2B10G10R10_UINT_PACK32) => { u32 } ; (cgmath , A2B10G10R10_SINT_PACK32) => { u32 } ; (cgmath , R16_UNORM) => { u16 } ; (cgmath , R16_SNORM) => { i16 } ; (cgmath , R16_USCALED) => { u16 } ; (cgmath , R16_SSCALED) => { i16 } ; (cgmath , R16_UINT) => { u16 } ; (cgmath , R16_SINT) => { i16 } ; (cgmath , R16_SFLOAT) => { f16 } ; (cgmath , R16G16_UNORM) => { cgmath :: Vector2 < u16 > } ; (cgmath , R16G16_SNORM) => { cgmath :: Vector2 < i16 > } ; (cgmath , R16G16_USCALED) => { cgmath :: Vector2 < u16 > } ; (cgmath , R16G16_SSCALED) => { cgmath :: Vector2 < i16 > } ; (cgmath , R16G16_UINT) => { cgmath :: Vector2 < u16 > } ; (cgmath , R16G16_SINT) => { cgmath :: Vector2 < i16 > } ; (cgmath , R16G16_SFLOAT) => { cgmath :: Vector2 < f16 > } ; (cgmath , R16G16B16_UNORM) => { cgmath :: Vector3 < u16 > } ; (cgmath , R16G16B16_SNORM) => { cgmath :: Vector3 < i16 > } ; (cgmath , R16G16B16_USCALED) => { cgmath :: Vector3 < u16 > } ; (cgmath , R16G16B16_SSCALED) => { cgmath :: Vector3 < i16 > } ; (cgmath , R16G16B16_UINT) => { cgmath :: Vector3 < u16 > } ; (cgmath , R16G16B16_SINT) => { cgmath :: Vector3 < i16 > } ; (cgmath , R16G16B16_SFLOAT) => { cgmath :: Vector3 < f16 > } ; (cgmath , R16G16B16A16_UNORM) => { cgmath :: Vector4 < u16 > } ; (cgmath , R16G16B16A16_SNORM) => { cgmath :: Vector4 < i16 > } ; (cgmath , R16G16B16A16_USCALED) => { cgmath :: Vector4 < u16 > } ; (cgmath , R16G16B16A16_SSCALED) => { cgmath :: Vector4 < i16 > } ; (cgmath , R16G16B16A16_UINT) => { cgmath :: Vector4 < u16 > } ; (cgmath , R16G16B16A16_SINT) => { cgmath :: Vector4 < i16 > } ; (cgmath , R16G16B16A16_SFLOAT) => { cgmath :: Vector4 < f16 > } ; (cgmath , R32_UINT) => { u32 } ; (cgmath , R32_SINT) => { i32 } ; (cgmath , R32_SFLOAT) => { f32 } ; (cgmath , R32G32_UINT) => { cgmath :: Vector2 < u32 > } ; (cgmath , R32G32_SINT) => { cgmath :: Vector2 < i32 > } ; (cgmath , R32G32_SFLOAT) => { cgmath :: Vector2 < f32 > } ; (cgmath , R32G32B32_UINT) => { cgmath :: Vector3 < u32 > } ; (cgmath , R32G32B32_SINT) => { cgmath :: Vector3 < i32 > } ; (cgmath , R32G32B32_SFLOAT) => { cgmath :: Vector3 < f32 > } ; (cgmath , R32G32B32A32_UINT) => { cgmath :: Vector4 < u32 > } ; (cgmath , R32G32B32A32_SINT) => { cgmath :: Vector4 < i32 > } ; (cgmath , R32G32B32A32_SFLOAT) => { cgmath :: Vector4 < f32 > } ; (cgmath , R64_UINT) => { u64 } ; (cgmath , R64_SINT) => { i64 } ; (cgmath , R64_SFLOAT) => { f64 } ; (cgmath , R64G64_UINT) => { cgmath :: Vector2 < u64 > } ; (cgmath , R64G64_SINT) => { cgmath :: Vector2 < i64 > } ; (cgmath , R64G64_SFLOAT) => { cgmath :: Vector2 < f64 > } ; (cgmath , R64G64B64_UINT) => { cgmath :: Vector3 < u64 > } ; (cgmath , R64G64B64_SINT) => { cgmath :: Vector3 < i64 > } ; (cgmath , R64G64B64_SFLOAT) => { cgmath :: Vector3 < f64 > } ; (cgmath , R64G64B64A64_UINT) => { cgmath :: Vector4 < u64 > } ; (cgmath , R64G64B64A64_SINT) => { cgmath :: Vector4 < i64 > } ; (cgmath , R64G64B64A64_SFLOAT) => { cgmath :: Vector4 < f64 > } ; (cgmath , B10G11R11_UFLOAT_PACK32) => { u32 } ; (cgmath , E5B9G9R9_UFLOAT_PACK32) => { u32 } ; (cgmath , BC1_RGB_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , BC1_RGB_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , BC1_RGBA_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , BC1_RGBA_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , BC2_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , BC2_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , BC3_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , BC3_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , BC4_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , BC4_SNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , BC5_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , BC5_SNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , BC6H_UFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , BC6H_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , BC7_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , BC7_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ETC2_R8G8B8_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , ETC2_R8G8B8_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , ETC2_R8G8B8A1_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , ETC2_R8G8B8A1_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , ETC2_R8G8B8A8_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ETC2_R8G8B8A8_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , EAC_R11_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , EAC_R11_SNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , EAC_R11G11_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , EAC_R11G11_SNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_4x4_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_4x4_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_5x4_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_5x4_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_5x5_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_5x5_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_6x5_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_6x5_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_6x6_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_6x6_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x5_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x5_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x6_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x6_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x8_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x8_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x5_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x5_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x6_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x6_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x8_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x8_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x10_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x10_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_12x10_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_12x10_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_12x12_UNORM_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_12x12_SRGB_BLOCK) => { [u8 ; 16] } ; (cgmath , G8B8G8R8_422_UNORM) => { cgmath :: Vector4 < u8 > } ; (cgmath , B8G8R8G8_422_UNORM) => { cgmath :: Vector4 < u8 > } ; (cgmath , R10X6_UNORM_PACK16) => { u16 } ; (cgmath , R10X6G10X6_UNORM_2PACK16) => { [u16 ; 2] } ; (cgmath , R10X6G10X6B10X6A10X6_UNORM_4PACK16) => { [u16 ; 4] } ; (cgmath , G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) => { [u16 ; 4] } ; (cgmath , B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) => { [u16 ; 4] } ; (cgmath , R12X4_UNORM_PACK16) => { u16 } ; (cgmath , R12X4G12X4_UNORM_2PACK16) => { [u16 ; 2] } ; (cgmath , R12X4G12X4B12X4A12X4_UNORM_4PACK16) => { [u16 ; 4] } ; (cgmath , G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) => { [u16 ; 4] } ; (cgmath , B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) => { [u16 ; 4] } ; (cgmath , G16B16G16R16_422_UNORM) => { cgmath :: Vector4 < u16 > } ; (cgmath , B16G16R16G16_422_UNORM) => { cgmath :: Vector4 < u16 > } ; (cgmath , PVRTC1_2BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC1_4BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC2_2BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC2_4BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC1_2BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC1_4BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC2_2BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , PVRTC2_4BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (cgmath , ASTC_4x4_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_5x4_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_5x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_6x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_6x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_8x8_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x8_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_10x10_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_12x10_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , ASTC_12x12_SFLOAT_BLOCK) => { [u8 ; 16] } ; (cgmath , A4R4G4B4_UNORM_PACK16) => { u16 } ; (cgmath , A4B4G4R4_UNORM_PACK16) => { u16 } ; (cgmath , R16G16_S10_5_NV) => { cgmath :: Vector2 < i16 > } ; (nalgebra , R4G4_UNORM_PACK8) => { u8 } ; (nalgebra , R4G4B4A4_UNORM_PACK16) => { u16 } ; (nalgebra , B4G4R4A4_UNORM_PACK16) => { u16 } ; (nalgebra , R5G6B5_UNORM_PACK16) => { u16 } ; (nalgebra , B5G6R5_UNORM_PACK16) => { u16 } ; (nalgebra , R5G5B5A1_UNORM_PACK16) => { u16 } ; (nalgebra , B5G5R5A1_UNORM_PACK16) => { u16 } ; (nalgebra , A1R5G5B5_UNORM_PACK16) => { u16 } ; (nalgebra , R8_UNORM) => { u8 } ; (nalgebra , R8_SNORM) => { i8 } ; (nalgebra , R8_USCALED) => { u8 } ; (nalgebra , R8_SSCALED) => { i8 } ; (nalgebra , R8_UINT) => { u8 } ; (nalgebra , R8_SINT) => { i8 } ; (nalgebra , R8_SRGB) => { u8 } ; (nalgebra , R8G8_UNORM) => { nalgebra :: base :: SVector < u8 , 2usize > } ; (nalgebra , R8G8_SNORM) => { nalgebra :: base :: SVector < i8 , 2usize > } ; (nalgebra , R8G8_USCALED) => { nalgebra :: base :: SVector < u8 , 2usize > } ; (nalgebra , R8G8_SSCALED) => { nalgebra :: base :: SVector < i8 , 2usize > } ; (nalgebra , R8G8_UINT) => { nalgebra :: base :: SVector < u8 , 2usize > } ; (nalgebra , R8G8_SINT) => { nalgebra :: base :: SVector < i8 , 2usize > } ; (nalgebra , R8G8_SRGB) => { nalgebra :: base :: SVector < u8 , 2usize > } ; (nalgebra , R8G8B8_UNORM) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , R8G8B8_SNORM) => { nalgebra :: base :: SVector < i8 , 3usize > } ; (nalgebra , R8G8B8_USCALED) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , R8G8B8_SSCALED) => { nalgebra :: base :: SVector < i8 , 3usize > } ; (nalgebra , R8G8B8_UINT) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , R8G8B8_SINT) => { nalgebra :: base :: SVector < i8 , 3usize > } ; (nalgebra , R8G8B8_SRGB) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , B8G8R8_UNORM) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , B8G8R8_SNORM) => { nalgebra :: base :: SVector < i8 , 3usize > } ; (nalgebra , B8G8R8_USCALED) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , B8G8R8_SSCALED) => { nalgebra :: base :: SVector < i8 , 3usize > } ; (nalgebra , B8G8R8_UINT) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , B8G8R8_SINT) => { nalgebra :: base :: SVector < i8 , 3usize > } ; (nalgebra , B8G8R8_SRGB) => { nalgebra :: base :: SVector < u8 , 3usize > } ; (nalgebra , R8G8B8A8_UNORM) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , R8G8B8A8_SNORM) => { nalgebra :: base :: SVector < i8 , 4usize > } ; (nalgebra , R8G8B8A8_USCALED) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , R8G8B8A8_SSCALED) => { nalgebra :: base :: SVector < i8 , 4usize > } ; (nalgebra , R8G8B8A8_UINT) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , R8G8B8A8_SINT) => { nalgebra :: base :: SVector < i8 , 4usize > } ; (nalgebra , R8G8B8A8_SRGB) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , B8G8R8A8_UNORM) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , B8G8R8A8_SNORM) => { nalgebra :: base :: SVector < i8 , 4usize > } ; (nalgebra , B8G8R8A8_USCALED) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , B8G8R8A8_SSCALED) => { nalgebra :: base :: SVector < i8 , 4usize > } ; (nalgebra , B8G8R8A8_UINT) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , B8G8R8A8_SINT) => { nalgebra :: base :: SVector < i8 , 4usize > } ; (nalgebra , B8G8R8A8_SRGB) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , A8B8G8R8_UNORM_PACK32) => { u32 } ; (nalgebra , A8B8G8R8_SNORM_PACK32) => { u32 } ; (nalgebra , A8B8G8R8_USCALED_PACK32) => { u32 } ; (nalgebra , A8B8G8R8_SSCALED_PACK32) => { u32 } ; (nalgebra , A8B8G8R8_UINT_PACK32) => { u32 } ; (nalgebra , A8B8G8R8_SINT_PACK32) => { u32 } ; (nalgebra , A8B8G8R8_SRGB_PACK32) => { u32 } ; (nalgebra , A2R10G10B10_UNORM_PACK32) => { u32 } ; (nalgebra , A2R10G10B10_SNORM_PACK32) => { u32 } ; (nalgebra , A2R10G10B10_USCALED_PACK32) => { u32 } ; (nalgebra , A2R10G10B10_SSCALED_PACK32) => { u32 } ; (nalgebra , A2R10G10B10_UINT_PACK32) => { u32 } ; (nalgebra , A2R10G10B10_SINT_PACK32) => { u32 } ; (nalgebra , A2B10G10R10_UNORM_PACK32) => { u32 } ; (nalgebra , A2B10G10R10_SNORM_PACK32) => { u32 } ; (nalgebra , A2B10G10R10_USCALED_PACK32) => { u32 } ; (nalgebra , A2B10G10R10_SSCALED_PACK32) => { u32 } ; (nalgebra , A2B10G10R10_UINT_PACK32) => { u32 } ; (nalgebra , A2B10G10R10_SINT_PACK32) => { u32 } ; (nalgebra , R16_UNORM) => { u16 } ; (nalgebra , R16_SNORM) => { i16 } ; (nalgebra , R16_USCALED) => { u16 } ; (nalgebra , R16_SSCALED) => { i16 } ; (nalgebra , R16_UINT) => { u16 } ; (nalgebra , R16_SINT) => { i16 } ; (nalgebra , R16_SFLOAT) => { f16 } ; (nalgebra , R16G16_UNORM) => { nalgebra :: base :: SVector < u16 , 2usize > } ; (nalgebra , R16G16_SNORM) => { nalgebra :: base :: SVector < i16 , 2usize > } ; (nalgebra , R16G16_USCALED) => { nalgebra :: base :: SVector < u16 , 2usize > } ; (nalgebra , R16G16_SSCALED) => { nalgebra :: base :: SVector < i16 , 2usize > } ; (nalgebra , R16G16_UINT) => { nalgebra :: base :: SVector < u16 , 2usize > } ; (nalgebra , R16G16_SINT) => { nalgebra :: base :: SVector < i16 , 2usize > } ; (nalgebra , R16G16_SFLOAT) => { nalgebra :: base :: SVector < f16 , 2usize > } ; (nalgebra , R16G16B16_UNORM) => { nalgebra :: base :: SVector < u16 , 3usize > } ; (nalgebra , R16G16B16_SNORM) => { nalgebra :: base :: SVector < i16 , 3usize > } ; (nalgebra , R16G16B16_USCALED) => { nalgebra :: base :: SVector < u16 , 3usize > } ; (nalgebra , R16G16B16_SSCALED) => { nalgebra :: base :: SVector < i16 , 3usize > } ; (nalgebra , R16G16B16_UINT) => { nalgebra :: base :: SVector < u16 , 3usize > } ; (nalgebra , R16G16B16_SINT) => { nalgebra :: base :: SVector < i16 , 3usize > } ; (nalgebra , R16G16B16_SFLOAT) => { nalgebra :: base :: SVector < f16 , 3usize > } ; (nalgebra , R16G16B16A16_UNORM) => { nalgebra :: base :: SVector < u16 , 4usize > } ; (nalgebra , R16G16B16A16_SNORM) => { nalgebra :: base :: SVector < i16 , 4usize > } ; (nalgebra , R16G16B16A16_USCALED) => { nalgebra :: base :: SVector < u16 , 4usize > } ; (nalgebra , R16G16B16A16_SSCALED) => { nalgebra :: base :: SVector < i16 , 4usize > } ; (nalgebra , R16G16B16A16_UINT) => { nalgebra :: base :: SVector < u16 , 4usize > } ; (nalgebra , R16G16B16A16_SINT) => { nalgebra :: base :: SVector < i16 , 4usize > } ; (nalgebra , R16G16B16A16_SFLOAT) => { nalgebra :: base :: SVector < f16 , 4usize > } ; (nalgebra , R32_UINT) => { u32 } ; (nalgebra , R32_SINT) => { i32 } ; (nalgebra , R32_SFLOAT) => { f32 } ; (nalgebra , R32G32_UINT) => { nalgebra :: base :: SVector < u32 , 2usize > } ; (nalgebra , R32G32_SINT) => { nalgebra :: base :: SVector < i32 , 2usize > } ; (nalgebra , R32G32_SFLOAT) => { nalgebra :: base :: SVector < f32 , 2usize > } ; (nalgebra , R32G32B32_UINT) => { nalgebra :: base :: SVector < u32 , 3usize > } ; (nalgebra , R32G32B32_SINT) => { nalgebra :: base :: SVector < i32 , 3usize > } ; (nalgebra , R32G32B32_SFLOAT) => { nalgebra :: base :: SVector < f32 , 3usize > } ; (nalgebra , R32G32B32A32_UINT) => { nalgebra :: base :: SVector < u32 , 4usize > } ; (nalgebra , R32G32B32A32_SINT) => { nalgebra :: base :: SVector < i32 , 4usize > } ; (nalgebra , R32G32B32A32_SFLOAT) => { nalgebra :: base :: SVector < f32 , 4usize > } ; (nalgebra , R64_UINT) => { u64 } ; (nalgebra , R64_SINT) => { i64 } ; (nalgebra , R64_SFLOAT) => { f64 } ; (nalgebra , R64G64_UINT) => { nalgebra :: base :: SVector < u64 , 2usize > } ; (nalgebra , R64G64_SINT) => { nalgebra :: base :: SVector < i64 , 2usize > } ; (nalgebra , R64G64_SFLOAT) => { nalgebra :: base :: SVector < f64 , 2usize > } ; (nalgebra , R64G64B64_UINT) => { nalgebra :: base :: SVector < u64 , 3usize > } ; (nalgebra , R64G64B64_SINT) => { nalgebra :: base :: SVector < i64 , 3usize > } ; (nalgebra , R64G64B64_SFLOAT) => { nalgebra :: base :: SVector < f64 , 3usize > } ; (nalgebra , R64G64B64A64_UINT) => { nalgebra :: base :: SVector < u64 , 4usize > } ; (nalgebra , R64G64B64A64_SINT) => { nalgebra :: base :: SVector < i64 , 4usize > } ; (nalgebra , R64G64B64A64_SFLOAT) => { nalgebra :: base :: SVector < f64 , 4usize > } ; (nalgebra , B10G11R11_UFLOAT_PACK32) => { u32 } ; (nalgebra , E5B9G9R9_UFLOAT_PACK32) => { u32 } ; (nalgebra , BC1_RGB_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , BC1_RGB_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , BC1_RGBA_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , BC1_RGBA_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , BC2_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC2_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC3_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC3_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC4_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , BC4_SNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , BC5_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC5_SNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC6H_UFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC6H_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC7_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , BC7_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ETC2_R8G8B8_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , ETC2_R8G8B8_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , ETC2_R8G8B8A1_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , ETC2_R8G8B8A1_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , ETC2_R8G8B8A8_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ETC2_R8G8B8A8_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , EAC_R11_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , EAC_R11_SNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , EAC_R11G11_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , EAC_R11G11_SNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_4x4_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_4x4_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_5x4_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_5x4_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_5x5_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_5x5_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_6x5_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_6x5_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_6x6_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_6x6_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x5_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x5_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x6_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x6_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x8_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x8_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x5_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x5_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x6_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x6_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x8_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x8_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x10_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x10_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_12x10_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_12x10_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_12x12_UNORM_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_12x12_SRGB_BLOCK) => { [u8 ; 16] } ; (nalgebra , G8B8G8R8_422_UNORM) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , B8G8R8G8_422_UNORM) => { nalgebra :: base :: SVector < u8 , 4usize > } ; (nalgebra , R10X6_UNORM_PACK16) => { u16 } ; (nalgebra , R10X6G10X6_UNORM_2PACK16) => { [u16 ; 2] } ; (nalgebra , R10X6G10X6B10X6A10X6_UNORM_4PACK16) => { [u16 ; 4] } ; (nalgebra , G10X6B10X6G10X6R10X6_422_UNORM_4PACK16) => { [u16 ; 4] } ; (nalgebra , B10X6G10X6R10X6G10X6_422_UNORM_4PACK16) => { [u16 ; 4] } ; (nalgebra , R12X4_UNORM_PACK16) => { u16 } ; (nalgebra , R12X4G12X4_UNORM_2PACK16) => { [u16 ; 2] } ; (nalgebra , R12X4G12X4B12X4A12X4_UNORM_4PACK16) => { [u16 ; 4] } ; (nalgebra , G12X4B12X4G12X4R12X4_422_UNORM_4PACK16) => { [u16 ; 4] } ; (nalgebra , B12X4G12X4R12X4G12X4_422_UNORM_4PACK16) => { [u16 ; 4] } ; (nalgebra , G16B16G16R16_422_UNORM) => { nalgebra :: base :: SVector < u16 , 4usize > } ; (nalgebra , B16G16R16G16_422_UNORM) => { nalgebra :: base :: SVector < u16 , 4usize > } ; (nalgebra , PVRTC1_2BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC1_4BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC2_2BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC2_4BPP_UNORM_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC1_2BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC1_4BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC2_2BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , PVRTC2_4BPP_SRGB_BLOCK) => { [u8 ; 8] } ; (nalgebra , ASTC_4x4_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_5x4_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_5x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_6x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_6x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_8x8_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x5_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x6_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x8_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_10x10_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_12x10_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , ASTC_12x12_SFLOAT_BLOCK) => { [u8 ; 16] } ; (nalgebra , A4R4G4B4_UNORM_PACK16) => { u16 } ; (nalgebra , A4B4G4R4_UNORM_PACK16) => { u16 } ; (nalgebra , R16G16_S10_5_NV) => { nalgebra :: base :: SVector < i16 , 2usize > } ; }
4626