• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1{
2    "description": [
3        "Copyright 2019 The ANGLE Project Authors. All rights reserved.",
4        "Use of this source code is governed by a BSD-style license that can be",
5        "found in the LICENSE file.",
6        "",
7        "mtl_format_map.json: Format mapping between OpenGL and Metal.",
8        "",
9        "Also see gen_mtl_format_table.py for the code generation step."
10    ],
11    "image": {
12        "description": [
13            "- The image's map is a dictionary where the key of each entry is the",
14            "ANGLE format ID, and the value is the Metal format enum. Note some formats",
15            "are missing from the map, these formats are either unsupported or emulated",
16            "on Metal.",
17            "map_mac is Mac specific mapping, similarly map_ios is iOS specific mapping.",
18            "",
19            "- override is emulation of unsupported formats on Metal by converting them to",
20            "supported formats. For example, converting R8G8B8 to R8G8B8A8",
21            "override_mac & override_ios are platform specific emulations.",
22            "",
23            "- d24s8_fallbacks_mac is Mac specific emulation when native Metal device doesn't",
24            "support D24_UNORM_S8_UINT format.",
25            "",
26            "- caps is a table containing native Metal format's specific capabilities such as",
27            "supporting filtering, blending and so on. Unlike the above tables, this table's keys",
28            "are Metal native format enums. This table's source is",
29            "https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf",
30            "Platform specific tables are caps_mac & caps_ios."
31        ],
32        "map": {
33            "NONE": "MTLPixelFormatInvalid",
34            "A8_UNORM": "MTLPixelFormatA8Unorm",
35            "R8_UNORM": "MTLPixelFormatR8Unorm",
36            "R8_SNORM": "MTLPixelFormatR8Snorm",
37            "R8_UINT": "MTLPixelFormatR8Uint",
38            "R8_SINT": "MTLPixelFormatR8Sint",
39            "R8G8_UNORM": "MTLPixelFormatRG8Unorm",
40            "R8G8_SNORM": "MTLPixelFormatRG8Snorm",
41            "R8G8_UINT": "MTLPixelFormatRG8Uint",
42            "R8G8_SINT": "MTLPixelFormatRG8Sint",
43            "R8G8B8A8_UINT": "MTLPixelFormatRGBA8Uint",
44            "R8G8B8A8_SINT": "MTLPixelFormatRGBA8Sint",
45            "R8G8B8A8_UNORM": "MTLPixelFormatRGBA8Unorm",
46            "R8G8B8A8_SNORM": "MTLPixelFormatRGBA8Snorm",
47            "R8G8B8A8_UNORM_SRGB": "MTLPixelFormatRGBA8Unorm_sRGB",
48            "B8G8R8A8_UNORM": "MTLPixelFormatBGRA8Unorm",
49            "B8G8R8A8_UNORM_SRGB": "MTLPixelFormatBGRA8Unorm_sRGB",
50            "R16_UNORM": "MTLPixelFormatR16Unorm",
51            "R16_SNORM": "MTLPixelFormatR16Snorm",
52            "R16_UINT": "MTLPixelFormatR16Uint",
53            "R16_SINT": "MTLPixelFormatR16Sint",
54            "R16_FLOAT": "MTLPixelFormatR16Float",
55            "R16G16_UNORM": "MTLPixelFormatRG16Unorm",
56            "R16G16_SNORM": "MTLPixelFormatRG16Snorm",
57            "R16G16_UINT": "MTLPixelFormatRG16Uint",
58            "R16G16_SINT": "MTLPixelFormatRG16Sint",
59            "R16G16_FLOAT": "MTLPixelFormatRG16Float",
60            "R16G16B16A16_UNORM": "MTLPixelFormatRGBA16Unorm",
61            "R16G16B16A16_SNORM": "MTLPixelFormatRGBA16Snorm",
62            "R16G16B16A16_UINT": "MTLPixelFormatRGBA16Uint",
63            "R16G16B16A16_SINT": "MTLPixelFormatRGBA16Sint",
64            "R16G16B16A16_FLOAT": "MTLPixelFormatRGBA16Float",
65            "R32_UINT": "MTLPixelFormatR32Uint",
66            "R32_SINT": "MTLPixelFormatR32Sint",
67            "R32_FLOAT": "MTLPixelFormatR32Float",
68            "R32G32_UINT": "MTLPixelFormatRG32Uint",
69            "R32G32_SINT": "MTLPixelFormatRG32Sint",
70            "R32G32_FLOAT": "MTLPixelFormatRG32Float",
71            "R32G32B32A32_UINT": "MTLPixelFormatRGBA32Uint",
72            "R32G32B32A32_SINT": "MTLPixelFormatRGBA32Sint",
73            "R32G32B32A32_FLOAT": "MTLPixelFormatRGBA32Float",
74            "D32_FLOAT": "MTLPixelFormatDepth32Float",
75            "S8_UINT": "MTLPixelFormatStencil8",
76            "D32_FLOAT_S8X24_UINT": "MTLPixelFormatDepth32Float_Stencil8",
77            "B10G10R10A2_UNORM": "MTLPixelFormatBGR10A2Unorm",
78            "R10G10B10A2_UINT": "MTLPixelFormatRGB10A2Uint",
79            "R10G10B10A2_UNORM": "MTLPixelFormatRGB10A2Unorm",
80            "R11G11B10_FLOAT": "MTLPixelFormatRG11B10Float",
81            "R9G9B9E5_SHAREDEXP": "MTLPixelFormatRGB9E5Float",
82            "D16_UNORM": "MTLPixelFormatDepth16Unorm"
83        },
84        "map_ios": {
85            "R8_UNORM_SRGB": "MTLPixelFormatR8Unorm_sRGB",
86            "R8G8_UNORM_SRGB": "MTLPixelFormatRG8Unorm_sRGB",
87            "R5G6B5_UNORM": "MTLPixelFormatB5G6R5Unorm",
88            "R5G5B5A1_UNORM": "MTLPixelFormatA1BGR5Unorm",
89            "R4G4B4A4_UNORM": "MTLPixelFormatABGR4Unorm",
90            "PVRTC1_RGB_4BPP_UNORM_BLOCK": "MTLPixelFormatPVRTC_RGB_4BPP",
91            "PVRTC1_RGB_2BPP_UNORM_BLOCK": "MTLPixelFormatPVRTC_RGB_2BPP",
92            "PVRTC1_RGBA_4BPP_UNORM_BLOCK": "MTLPixelFormatPVRTC_RGBA_4BPP",
93            "PVRTC1_RGBA_2BPP_UNORM_BLOCK": "MTLPixelFormatPVRTC_RGBA_2BPP",
94            "PVRTC1_RGB_2BPP_UNORM_SRGB_BLOCK": "MTLPixelFormatPVRTC_RGB_2BPP_sRGB",
95            "PVRTC1_RGB_4BPP_UNORM_SRGB_BLOCK": "MTLPixelFormatPVRTC_RGB_4BPP_sRGB",
96            "PVRTC1_RGBA_2BPP_UNORM_SRGB_BLOCK": "MTLPixelFormatPVRTC_RGBA_2BPP_sRGB",
97            "PVRTC1_RGBA_4BPP_UNORM_SRGB_BLOCK": "MTLPixelFormatPVRTC_RGBA_4BPP_sRGB",
98            "ETC1_R8G8B8_UNORM_BLOCK": "MTLPixelFormatETC2_RGB8",
99            "ETC2_R8G8B8_UNORM_BLOCK": "MTLPixelFormatETC2_RGB8",
100            "ETC2_R8G8B8_SRGB_BLOCK": "MTLPixelFormatETC2_RGB8_sRGB",
101            "ETC2_R8G8B8A1_UNORM_BLOCK": "MTLPixelFormatETC2_RGB8A1",
102            "ETC2_R8G8B8A1_SRGB_BLOCK": "MTLPixelFormatETC2_RGB8A1_sRGB",
103            "ETC2_R8G8B8A8_UNORM_BLOCK": "MTLPixelFormatEAC_RGBA8",
104            "ETC2_R8G8B8A8_SRGB_BLOCK": "MTLPixelFormatEAC_RGBA8_sRGB",
105            "EAC_R11_UNORM_BLOCK": "MTLPixelFormatEAC_R11Unorm",
106            "EAC_R11_SNORM_BLOCK": "MTLPixelFormatEAC_R11Snorm",
107            "EAC_R11G11_UNORM_BLOCK": "MTLPixelFormatEAC_RG11Unorm",
108            "EAC_R11G11_SNORM_BLOCK": "MTLPixelFormatEAC_RG11Snorm",
109            "ASTC_4x4_SRGB_BLOCK": "MTLPixelFormatASTC_4x4_sRGB",
110            "ASTC_5x4_SRGB_BLOCK": "MTLPixelFormatASTC_5x4_sRGB",
111            "ASTC_5x5_SRGB_BLOCK": "MTLPixelFormatASTC_5x5_sRGB",
112            "ASTC_6x5_SRGB_BLOCK": "MTLPixelFormatASTC_6x5_sRGB",
113            "ASTC_6x6_SRGB_BLOCK": "MTLPixelFormatASTC_6x6_sRGB",
114            "ASTC_8x5_SRGB_BLOCK": "MTLPixelFormatASTC_8x5_sRGB",
115            "ASTC_8x6_SRGB_BLOCK": "MTLPixelFormatASTC_8x6_sRGB",
116            "ASTC_8x8_SRGB_BLOCK": "MTLPixelFormatASTC_8x8_sRGB",
117            "ASTC_10x5_SRGB_BLOCK": "MTLPixelFormatASTC_10x5_sRGB",
118            "ASTC_10x6_SRGB_BLOCK": "MTLPixelFormatASTC_10x6_sRGB",
119            "ASTC_10x8_SRGB_BLOCK": "MTLPixelFormatASTC_10x8_sRGB",
120            "ASTC_10x10_SRGB_BLOCK": "MTLPixelFormatASTC_10x10_sRGB",
121            "ASTC_12x10_SRGB_BLOCK": "MTLPixelFormatASTC_12x10_sRGB",
122            "ASTC_12x12_SRGB_BLOCK": "MTLPixelFormatASTC_12x12_sRGB"
123        },
124        "map_sim": {
125            "ETC1_R8G8B8_UNORM_BLOCK": "MTLPixelFormatETC2_RGB8",
126            "ETC2_R8G8B8_UNORM_BLOCK": "MTLPixelFormatETC2_RGB8",
127            "ETC2_R8G8B8_SRGB_BLOCK": "MTLPixelFormatETC2_RGB8_sRGB",
128            "ETC2_R8G8B8A1_UNORM_BLOCK": "MTLPixelFormatETC2_RGB8A1",
129            "ETC2_R8G8B8A1_SRGB_BLOCK": "MTLPixelFormatETC2_RGB8A1_sRGB",
130            "ETC2_R8G8B8A8_UNORM_BLOCK": "MTLPixelFormatEAC_RGBA8",
131            "ETC2_R8G8B8A8_SRGB_BLOCK": "MTLPixelFormatEAC_RGBA8_sRGB",
132            "EAC_R11_UNORM_BLOCK": "MTLPixelFormatEAC_R11Unorm",
133            "EAC_R11_SNORM_BLOCK": "MTLPixelFormatEAC_R11Snorm",
134            "EAC_R11G11_UNORM_BLOCK": "MTLPixelFormatEAC_R11Unorm",
135            "EAC_R11G11_SNORM_BLOCK": "MTLPixelFormatEAC_RG11Snorm",
136            "ASTC_4x4_SRGB_BLOCK": "MTLPixelFormatASTC_4x4_sRGB",
137            "ASTC_5x4_SRGB_BLOCK": "MTLPixelFormatASTC_5x4_sRGB",
138            "ASTC_5x5_SRGB_BLOCK": "MTLPixelFormatASTC_5x5_sRGB",
139            "ASTC_6x5_SRGB_BLOCK": "MTLPixelFormatASTC_6x5_sRGB",
140            "ASTC_6x6_SRGB_BLOCK": "MTLPixelFormatASTC_6x6_sRGB",
141            "ASTC_8x5_SRGB_BLOCK": "MTLPixelFormatASTC_8x5_sRGB",
142            "ASTC_8x6_SRGB_BLOCK": "MTLPixelFormatASTC_8x6_sRGB",
143            "ASTC_8x8_SRGB_BLOCK": "MTLPixelFormatASTC_8x8_sRGB",
144            "ASTC_10x5_SRGB_BLOCK": "MTLPixelFormatASTC_10x5_sRGB",
145            "ASTC_10x6_SRGB_BLOCK": "MTLPixelFormatASTC_10x6_sRGB",
146            "ASTC_10x8_SRGB_BLOCK": "MTLPixelFormatASTC_10x8_sRGB",
147            "ASTC_10x10_SRGB_BLOCK": "MTLPixelFormatASTC_10x10_sRGB",
148            "ASTC_12x10_SRGB_BLOCK": "MTLPixelFormatASTC_12x10_sRGB",
149            "ASTC_12x12_SRGB_BLOCK": "MTLPixelFormatASTC_12x12_sRGB",
150            "ASTC_4x4_UNORM_BLOCK": "MTLPixelFormatASTC_4x4_LDR",
151            "ASTC_5x4_UNORM_BLOCK": "MTLPixelFormatASTC_5x4_LDR",
152            "ASTC_5x5_UNORM_BLOCK": "MTLPixelFormatASTC_5x5_LDR",
153            "ASTC_6x5_UNORM_BLOCK": "MTLPixelFormatASTC_6x5_LDR",
154            "ASTC_6x6_UNORM_BLOCK": "MTLPixelFormatASTC_6x6_LDR",
155            "ASTC_8x5_UNORM_BLOCK": "MTLPixelFormatASTC_8x5_LDR",
156            "ASTC_8x6_UNORM_BLOCK": "MTLPixelFormatASTC_8x6_LDR",
157            "ASTC_8x8_UNORM_BLOCK": "MTLPixelFormatASTC_8x8_LDR",
158            "ASTC_10x5_UNORM_BLOCK": "MTLPixelFormatASTC_10x5_LDR",
159            "ASTC_10x6_UNORM_BLOCK": "MTLPixelFormatASTC_10x6_LDR",
160            "ASTC_10x8_UNORM_BLOCK": "MTLPixelFormatASTC_10x8_LDR",
161            "ASTC_10x10_UNORM_BLOCK": "MTLPixelFormatASTC_10x10_LDR",
162            "ASTC_12x10_UNORM_BLOCK": "MTLPixelFormatASTC_12x10_LDR",
163            "ASTC_12x12_UNORM_BLOCK": "MTLPixelFormatASTC_12x12_LDR"
164        },
165        "map_astc_tpl": {
166            "ASTC_4x4_UNORM_BLOCK": "MTLPixelFormatASTC_4x4_",
167            "ASTC_5x4_UNORM_BLOCK": "MTLPixelFormatASTC_5x4_",
168            "ASTC_5x5_UNORM_BLOCK": "MTLPixelFormatASTC_5x5_",
169            "ASTC_6x5_UNORM_BLOCK": "MTLPixelFormatASTC_6x5_",
170            "ASTC_6x6_UNORM_BLOCK": "MTLPixelFormatASTC_6x6_",
171            "ASTC_8x5_UNORM_BLOCK": "MTLPixelFormatASTC_8x5_",
172            "ASTC_8x6_UNORM_BLOCK": "MTLPixelFormatASTC_8x6_",
173            "ASTC_8x8_UNORM_BLOCK": "MTLPixelFormatASTC_8x8_",
174            "ASTC_10x5_UNORM_BLOCK": "MTLPixelFormatASTC_10x5_",
175            "ASTC_10x6_UNORM_BLOCK": "MTLPixelFormatASTC_10x6_",
176            "ASTC_10x8_UNORM_BLOCK": "MTLPixelFormatASTC_10x8_",
177            "ASTC_10x10_UNORM_BLOCK": "MTLPixelFormatASTC_10x10_",
178            "ASTC_12x10_UNORM_BLOCK": "MTLPixelFormatASTC_12x10_",
179            "ASTC_12x12_UNORM_BLOCK": "MTLPixelFormatASTC_12x12_"
180        },
181        "map_mac": {
182            "D24_UNORM_S8_UINT": "MTLPixelFormatDepth24Unorm_Stencil8",
183            "BC1_RGBA_UNORM_BLOCK": "MTLPixelFormatBC1_RGBA",
184            "BC1_RGBA_UNORM_SRGB_BLOCK": "MTLPixelFormatBC1_RGBA_sRGB",
185            "BC2_RGBA_UNORM_BLOCK": "MTLPixelFormatBC2_RGBA",
186            "BC2_RGBA_UNORM_SRGB_BLOCK": "MTLPixelFormatBC2_RGBA_sRGB",
187            "BC3_RGBA_UNORM_BLOCK": "MTLPixelFormatBC3_RGBA",
188            "BC3_RGBA_UNORM_SRGB_BLOCK": "MTLPixelFormatBC3_RGBA_sRGB",
189            "BC4_RED_UNORM_BLOCK": "MTLPixelFormatBC4_RUnorm",
190            "BC4_RED_SNORM_BLOCK": "MTLPixelFormatBC4_RSnorm",
191            "BC5_RG_UNORM_BLOCK": "MTLPixelFormatBC5_RGUnorm",
192            "BC5_RG_SNORM_BLOCK": "MTLPixelFormatBC5_RGSnorm",
193            "BC6H_RGB_UFLOAT_BLOCK": "MTLPixelFormatBC6H_RGBUfloat",
194            "BC6H_RGB_SFLOAT_BLOCK": "MTLPixelFormatBC6H_RGBFloat",
195            "BC7_RGBA_UNORM_BLOCK": "MTLPixelFormatBC7_RGBAUnorm",
196            "BC7_RGBA_UNORM_SRGB_BLOCK": "MTLPixelFormatBC7_RGBAUnorm_sRGB"
197        },
198        "override": {
199            "L8_UNORM": "R8G8B8A8_UNORM",
200            "L8A8_UNORM": "R8G8B8A8_UNORM",
201            "R8G8B8_UNORM": "R8G8B8A8_UNORM",
202            "R8G8B8_SNORM": "R8G8B8A8_SNORM",
203            "R8G8B8_UINT": "R8G8B8A8_UINT",
204            "R8G8B8_SINT": "R8G8B8A8_SINT",
205            "R8G8B8_UNORM_SRGB": "R8G8B8A8_UNORM_SRGB",
206            "R32G32B32_FLOAT": "R32G32B32A32_FLOAT",
207            "R32G32B32_UINT": "R32G32B32A32_UINT",
208            "R32G32B32_SINT": "R32G32B32A32_SINT",
209            "R16G16B16_FLOAT": "R16G16B16A16_FLOAT",
210            "R16G16B16_UINT": "R16G16B16A16_UINT",
211            "R16G16B16_SINT": "R16G16B16A16_SINT",
212            "R16G16B16_UNORM": "R16G16B16A16_UNORM",
213            "R16G16B16_SNORM": "R16G16B16A16_SNORM",
214            "A16_FLOAT": "R16G16B16A16_FLOAT",
215            "L16_FLOAT": "R16G16B16A16_FLOAT",
216            "L16A16_FLOAT": "R16G16B16A16_FLOAT",
217            "A32_FLOAT": "R32G32B32A32_FLOAT",
218            "L32_FLOAT": "R32G32B32A32_FLOAT",
219            "L32A32_FLOAT": "R32G32B32A32_FLOAT",
220            "D24_UNORM_X8_UINT": "D32_FLOAT",
221            "D32_UNORM": "D32_FLOAT"
222        },
223        "override_ios": {
224            "D24_UNORM_S8_UINT": "D32_FLOAT_S8X24_UINT",
225            "D16_UNORM": "D32_FLOAT"
226        },
227         "override_sim": {
228            "R5G6B5_UNORM": "R8G8B8A8_UNORM",
229            "R5G5B5A1_UNORM": "R8G8B8A8_UNORM",
230            "D24_UNORM_S8_UINT": "D32_FLOAT_S8X24_UINT",
231            "R4G4B4A4_UNORM": "R8G8B8A8_UNORM"
232        },
233        "override_mac_bc1": {
234            "BC1_RGB_UNORM_BLOCK": {
235                "default": "BC1_RGBA_UNORM_BLOCK",
236                "swizzle": ["RGB1", "BC1_RGBA_UNORM_BLOCK"]
237            },
238            "BC1_RGB_UNORM_SRGB_BLOCK": {
239                "default": "BC1_RGBA_UNORM_SRGB_BLOCK",
240                "swizzle": ["RGB1", "BC1_RGBA_UNORM_SRGB_BLOCK"]
241            }
242        },
243        "override_mac_es3": {
244            "R5G6B5_UNORM": "R8G8B8A8_UNORM",
245            "R5G5B5A1_UNORM": "R8G8B8A8_UNORM",
246            "R4G4B4A4_UNORM": "R8G8B8A8_UNORM",
247            "ETC1_R8G8B8_UNORM_BLOCK": "R8G8B8A8_UNORM",
248            "ETC2_R8G8B8_UNORM_BLOCK": "R8G8B8A8_UNORM",
249            "ETC2_R8G8B8_SRGB_BLOCK": "R8G8B8A8_UNORM_SRGB",
250            "ETC2_R8G8B8A1_UNORM_BLOCK": "R8G8B8A8_UNORM",
251            "ETC2_R8G8B8A1_SRGB_BLOCK": "R8G8B8A8_UNORM_SRGB",
252            "ETC2_R8G8B8A8_UNORM_BLOCK": "R8G8B8A8_UNORM",
253            "ETC2_R8G8B8A8_SRGB_BLOCK": "R8G8B8A8_UNORM_SRGB",
254            "EAC_R11_UNORM_BLOCK": "R16_UNORM",
255            "EAC_R11_SNORM_BLOCK": "R16_SNORM",
256            "EAC_R11G11_UNORM_BLOCK": "R16G16_UNORM",
257            "EAC_R11G11_SNORM_BLOCK": "R16G16_SNORM"
258        },
259        "d24s8_fallbacks_mac": {
260            "D24_UNORM_S8_UINT": "D32_FLOAT_S8X24_UINT"
261        },
262        "caps": {
263            "MTLPixelFormatA8Unorm":{
264                "filterable": "true",
265                "writable": "false",
266                "blendable": "false",
267                "multisample": "false",
268                "resolve": "false",
269                "colorRenderable": "false"
270            },
271            "MTLPixelFormatR8Unorm":{
272                "filterable": "true",
273                "writable": "true",
274                "blendable": "true",
275                "multisample": "true",
276                "resolve": "true",
277                "colorRenderable": "true"
278            },
279            "MTLPixelFormatR8Snorm":{
280                "filterable": "true",
281                "writable": "true",
282                "blendable": "true",
283                "multisample": "true",
284                "resolve": "display->supportsEitherGPUFamily(2, 1)",
285                "colorRenderable": "true"
286            },
287            "MTLPixelFormatR16Unorm":{
288                "filterable": "true",
289                "writable": "true",
290                "blendable": "true",
291                "multisample": "true",
292                "resolve": "display->supportsMacGPUFamily(1)",
293                "colorRenderable": "true"
294            },
295            "MTLPixelFormatR16Snorm":{
296                "filterable": "true",
297                "writable": "true",
298                "blendable": "true",
299                "multisample": "true",
300                "resolve": "display->supportsMacGPUFamily(1)",
301                "colorRenderable": "true"
302            },
303            "MTLPixelFormatRG8Unorm":{
304                "filterable": "true",
305                "writable": "true",
306                "blendable": "true",
307                "multisample": "true",
308                "resolve": "true",
309                "colorRenderable": "true"
310            },
311            "MTLPixelFormatRG8Snorm":{
312                "filterable": "true",
313                "writable": "true",
314                "blendable": "true",
315                "multisample": "true",
316                "resolve": "display->supportsEitherGPUFamily(2, 1)",
317                "colorRenderable": "true"
318            },
319            "MTLPixelFormatRG16Unorm":{
320                "filterable": "true",
321                "writable": "true",
322                "blendable": "true",
323                "multisample": "true",
324                "resolve": "display->supportsMacGPUFamily(1)",
325                "colorRenderable": "true"
326            },
327            "MTLPixelFormatRG16Snorm":{
328                "filterable": "true",
329                "writable": "true",
330                "blendable": "true",
331                "multisample": "true",
332                "resolve": "display->supportsMacGPUFamily(1)",
333                "colorRenderable": "true"
334            },
335            "MTLPixelFormatRGBA16Unorm":{
336                "filterable": "true",
337                "writable": "true",
338                "blendable": "true",
339                "multisample": "true",
340                "resolve": "display->supportsMacGPUFamily(1)",
341                "colorRenderable": "true"
342            },
343            "MTLPixelFormatRGBA16Snorm":{
344                "filterable": "true",
345                "writable": "true",
346                "blendable": "true",
347                "multisample": "true",
348                "resolve": "display->supportsMacGPUFamily(1)",
349                "colorRenderable": "true"
350            },
351            "MTLPixelFormatRGBA16Float":{
352                "filterable": "true",
353                "writable": "true",
354                "blendable": "true",
355                "multisample": "true",
356                "resolve": "true",
357                "colorRenderable": "true"
358            },
359            "MTLPixelFormatRGBA8Unorm":{
360                "filterable": "true",
361                "writable": "true",
362                "blendable": "true",
363                "multisample": "true",
364                "resolve": "true",
365                "colorRenderable": "true"
366            },
367            "MTLPixelFormatRGBA8Unorm_sRGB":{
368                "filterable": "true",
369                "writable": "display->supportsAppleGPUFamily(2)",
370                "blendable": "true",
371                "multisample": "true",
372                "resolve": "true",
373                "colorRenderable": "true"
374            },
375            "MTLPixelFormatRGBA8Snorm":{
376                "filterable": "true",
377                "writable": "true",
378                "blendable": "true",
379                "multisample": "true",
380                "resolve": "display->supportsEitherGPUFamily(2, 1)",
381                "colorRenderable": "true"
382            },
383            "MTLPixelFormatBGRA8Unorm":{
384                "filterable": "true",
385                "writable": "true",
386                "blendable": "true",
387                "multisample": "true",
388                "resolve": "true",
389                "colorRenderable": "true"
390            },
391            "MTLPixelFormatBGRA8Unorm_sRGB":{
392                "filterable": "true",
393                "writable": "display->supportsAppleGPUFamily(2)",
394                "blendable": "true",
395                "multisample": "true",
396                "resolve": "true",
397                "colorRenderable": "true"
398            },
399            "MTLPixelFormatR16Float":{
400                "filterable": "true",
401                "writable": "true",
402                "blendable": "true",
403                "multisample": "true",
404                "resolve": "true",
405                "colorRenderable": "true"
406            },
407            "MTLPixelFormatRG16Float":{
408                "filterable": "true",
409                "writable": "true",
410                "blendable": "true",
411                "multisample": "true",
412                "resolve": "true",
413                "colorRenderable": "true"
414            },
415            "MTLPixelFormatR32Float":{
416                "filterable": "display->supportsEitherGPUFamily(1, 1)",
417                "writable": "true",
418                "blendable": "true",
419                "multisample": "true",
420                "resolve": "display->supportsMacGPUFamily(1)",
421                "colorRenderable": "true"
422            },
423            "MTLPixelFormatBGR10A2Unorm":{
424                "filterable": "true",
425                "writable": "display->supportsEitherGPUFamily(3, 1)",
426                "blendable": "true",
427                "multisample": "true",
428                "resolve": "true",
429                "colorRenderable": "true"
430            },
431            "MTLPixelFormatRGB10A2Unorm":{
432                "filterable": "true",
433                "writable": "display->supportsEitherGPUFamily(3, 1)",
434                "blendable": "true",
435                "multisample": "true",
436                "resolve": "true",
437                "colorRenderable": "true"
438            },
439            "MTLPixelFormatRGB10A2Uint":{
440                "filterable": "false",
441                "writable": "display->supportsEitherGPUFamily(3, 1)",
442                "blendable": "false",
443                "multisample": "true",
444                "resolve": "false",
445                "colorRenderable": "true"
446            },
447            "MTLPixelFormatRG11B10Float":{
448                "filterable": "true",
449                "writable": "display->supportsEitherGPUFamily(3, 1)",
450                "blendable": "true",
451                "multisample": "true",
452                "resolve": "true",
453                "colorRenderable": "true"
454            },
455            "MTLPixelFormatRGB9E5Float":{
456                "filterable": "true",
457                "writable": "display->supportsAppleGPUFamily(3)",
458                "blendable": "display->supportsAppleGPUFamily(1)",
459                "multisample": "display->supportsAppleGPUFamily(1)",
460                "resolve": "display->supportsAppleGPUFamily(1)",
461                "colorRenderable": "display->supportsAppleGPUFamily(1)"
462            },
463            "MTLPixelFormatR8Uint":{
464                "filterable": "false",
465                "writable": "true",
466                "blendable": "false",
467                "multisample": "true",
468                "resolve": "false",
469                "colorRenderable": "true"
470            },
471            "MTLPixelFormatR8Sint":{
472                "filterable": "false",
473                "writable": "true",
474                "blendable": "false",
475                "multisample": "true",
476                "resolve": "false",
477                "colorRenderable": "true"
478            },
479            "MTLPixelFormatR16Uint":{
480                "filterable": "false",
481                "writable": "true",
482                "blendable": "false",
483                "multisample": "true",
484                "resolve": "false",
485                "colorRenderable": "true"
486            },
487            "MTLPixelFormatR16Sint":{
488                "filterable": "false",
489                "writable": "true",
490                "blendable": "false",
491                "multisample": "true",
492                "resolve": "false",
493                "colorRenderable": "true"
494            },
495            "MTLPixelFormatRG8Uint":{
496                "filterable": "false",
497                "writable": "true",
498                "blendable": "false",
499                "multisample": "true",
500                "resolve": "false",
501                "colorRenderable": "true"
502            },
503            "MTLPixelFormatRG8Sint":{
504                "filterable": "false",
505                "writable": "true",
506                "blendable": "false",
507                "multisample": "true",
508                "resolve": "false",
509                "colorRenderable": "true"
510            },
511            "MTLPixelFormatR32Uint":{
512                "filterable": "false",
513                "writable": "true",
514                "blendable": "false",
515                "multisample": "display->supportsMacGPUFamily(1)",
516                "resolve": "false",
517                "colorRenderable": "true"
518            },
519            "MTLPixelFormatR32Sint":{
520                "filterable": "false",
521                "writable": "true",
522                "blendable": "false",
523                "multisample": "display->supportsMacGPUFamily(1)",
524                "resolve": "false",
525                "colorRenderable": "true"
526            },
527            "MTLPixelFormatRG16Uint":{
528                "filterable": "false",
529                "writable": "true",
530                "blendable": "false",
531                "multisample": "true",
532                "resolve": "false",
533                "colorRenderable": "true"
534            },
535            "MTLPixelFormatRG16Sint":{
536                "filterable": "false",
537                "writable": "true",
538                "blendable": "false",
539                "multisample": "true",
540                "resolve": "false",
541                "colorRenderable": "true"
542            },
543            "MTLPixelFormatRGBA8Uint":{
544                "filterable": "false",
545                "writable": "true",
546                "blendable": "false",
547                "multisample": "true",
548                "resolve": "false",
549                "colorRenderable": "true"
550            },
551            "MTLPixelFormatRGBA8Sint":{
552                "filterable": "false",
553                "writable": "true",
554                "blendable": "false",
555                "multisample": "true",
556                "resolve": "false",
557                "colorRenderable": "true"
558            },
559            "MTLPixelFormatRG32Uint":{
560                "filterable": "false",
561                "writable": "true",
562                "blendable": "false",
563                "multisample": "display->supportsEitherGPUFamily(7, 1)",
564                "resolve": "false",
565                "colorRenderable": "true"
566            },
567            "MTLPixelFormatRG32Sint":{
568                "filterable": "false",
569                "writable": "true",
570                "blendable": "false",
571                "multisample": "display->supportsEitherGPUFamily(7, 1)",
572                "resolve": "false",
573                "colorRenderable": "true"
574            },
575            "MTLPixelFormatRGBA16Uint":{
576                "filterable": "false",
577                "writable": "true",
578                "blendable": "false",
579                "multisample": "true",
580                "resolve": "false",
581                "colorRenderable": "true"
582            },
583            "MTLPixelFormatRGBA16Sint":{
584                "filterable": "false",
585                "writable": "true",
586                "blendable": "false",
587                "multisample": "true",
588                "resolve": "false",
589                "colorRenderable": "true"
590            },
591            "MTLPixelFormatRGBA32Uint":{
592                "filterable": "false",
593                "writable": "true",
594                "blendable": "false",
595                "multisample": "display->supportsMacGPUFamily(1)",
596                "resolve": "false",
597                "colorRenderable": "true"
598            },
599            "MTLPixelFormatRGBA32Sint":{
600                "filterable": "false",
601                "writable": "true",
602                "blendable": "false",
603                "multisample": "display->supportsMacGPUFamily(1)",
604                "resolve": "false",
605                "colorRenderable": "true"
606            },
607            "MTLPixelFormatRG32Float":{
608                "filterable": "display->supportsEitherGPUFamily(1, 1)",
609                "writable": "true",
610                "blendable": "true",
611                "multisample": "display->supportsMacGPUFamily(1)",
612                "resolve": "display->supportsMacGPUFamily(1)",
613                "colorRenderable": "true"
614            },
615            "MTLPixelFormatRGBA32Float":{
616                "filterable": "display->supportsEitherGPUFamily(1, 1)",
617                "writable": "true",
618                "blendable": "display->supportsMacGPUFamily(1)",
619                "multisample": "display->supportsEitherGPUFamily(7, 1)",
620                "resolve": "display->supportsMacGPUFamily(1)",
621                "colorRenderable": "true"
622            },
623            "MTLPixelFormatDepth32Float":{
624                "filterable": "display->supportsEitherGPUFamily(1, 1)",
625                "writable": "false",
626                "blendable": "false",
627                "multisample": "true",
628                "resolve": "supportDepthAutoResolve",
629                "colorRenderable": "false",
630                "depthRenderable": "true"
631            },
632            "MTLPixelFormatStencil8":{
633                "filterable": "false",
634                "writable": "false",
635                "blendable": "false",
636                "multisample": "true",
637                "resolve": "false",
638                "colorRenderable": "false",
639                "depthRenderable": "true"
640            },
641            "MTLPixelFormatDepth32Float_Stencil8":{
642                "filterable": "display->supportsEitherGPUFamily(1, 1)",
643                "writable": "false",
644                "blendable": "false",
645                "multisample": "true",
646                "resolve": "supportDepthStencilAutoResolve",
647                "colorRenderable": "false",
648                "depthRenderable": "true"
649            }
650        },
651        "caps_mac": {
652            "MTLPixelFormatDepth16Unorm":{
653                "filterable": "true",
654                "writable": "false",
655                "blendable": "false",
656                "multisample": "true",
657                "resolve": "supportDepthAutoResolve",
658                "colorRenderable": "false",
659                "depthRenderable": "true"
660            },
661            "MTLPixelFormatDepth24Unorm_Stencil8":{
662                "filterable": "display->supportsMacGPUFamily(1)",
663                "writable": "false",
664                "blendable": "false",
665                "multisample": "true",
666                "resolve": "supportDepthStencilAutoResolve",
667                "colorRenderable": "false",
668                "depthRenderable": "display->supportsMacGPUFamily(1)"
669            },
670            "MTLPixelFormatBC1_RGBA":{
671                "filterable": "true"
672            },
673            "MTLPixelFormatBC1_RGBA_sRGB":{
674                "filterable": "true"
675            },
676            "MTLPixelFormatBC2_RGBA":{
677                "filterable": "true"
678            },
679            "MTLPixelFormatBC2_RGBA_sRGB":{
680                "filterable": "true"
681            },
682            "MTLPixelFormatBC3_RGBA":{
683                "filterable": "true"
684            },
685            "MTLPixelFormatBC3_RGBA_sRGB":{
686                "filterable": "true"
687            },
688            "MTLPixelFormatBC4_RUnorm":{
689                "filterable": "true"
690            },
691            "MTLPixelFormatBC4_RSnorm":{
692                "filterable": "true"
693            },
694            "MTLPixelFormatBC5_RGUnorm":{
695                "filterable": "true"
696            },
697            "MTLPixelFormatBC5_RGSnorm":{
698                "filterable": "true"
699            },
700            "MTLPixelFormatBC6H_RGBUfloat":{
701                "filterable": "true"
702            },
703            "MTLPixelFormatBC6H_RGBFloat":{
704                "filterable": "true"
705            },
706            "MTLPixelFormatBC7_RGBAUnorm":{
707                "filterable": "true"
708            },
709            "MTLPixelFormatBC7_RGBAUnorm_sRGB":{
710                "filterable": "true"
711            }
712        },
713        "caps_ios": {
714            "MTLPixelFormatR8Unorm_sRGB":{
715                "filterable": "display->supportsAppleGPUFamily(1)",
716                "writable": "display->supportsAppleGPUFamily(2)",
717                "blendable": "display->supportsAppleGPUFamily(1)",
718                "multisample": "display->supportsAppleGPUFamily(1)",
719                "resolve": "display->supportsAppleGPUFamily(1)",
720                "colorRenderable": "display->supportsAppleGPUFamily(1)"
721            },
722            "MTLPixelFormatRG8Unorm_sRGB":{
723                "filterable": "display->supportsAppleGPUFamily(1)",
724                "writable": "display->supportsAppleGPUFamily(2)",
725                "blendable": "display->supportsAppleGPUFamily(1)",
726                "multisample": "display->supportsAppleGPUFamily(1)",
727                "resolve": "display->supportsAppleGPUFamily(1)",
728                "colorRenderable": "display->supportsAppleGPUFamily(1)"
729            },
730            "MTLPixelFormatB5G6R5Unorm":{
731                "filterable": "display->supportsAppleGPUFamily(1)",
732                "writable": "false",
733                "blendable": "display->supportsAppleGPUFamily(1)",
734                "multisample": "display->supportsAppleGPUFamily(1)",
735                "resolve": "display->supportsAppleGPUFamily(1)",
736                "colorRenderable": "display->supportsAppleGPUFamily(1)"
737            },
738            "MTLPixelFormatABGR4Unorm":{
739                "filterable": "display->supportsAppleGPUFamily(1)",
740                "writable": "false",
741                "blendable": "display->supportsAppleGPUFamily(1)",
742                "multisample": "display->supportsAppleGPUFamily(1)",
743                "resolve": "display->supportsAppleGPUFamily(1)",
744                "colorRenderable": "display->supportsAppleGPUFamily(1)"
745            },
746            "MTLPixelFormatBGR5A1Unorm":{
747                "filterable": "display->supportsAppleGPUFamily(1)",
748                "writable": "false",
749                "blendable": "display->supportsAppleGPUFamily(1)",
750                "multisample": "display->supportsAppleGPUFamily(1)",
751                "resolve": "display->supportsAppleGPUFamily(1)",
752                "colorRenderable": "display->supportsAppleGPUFamily(1)"
753            },
754            "MTLPixelFormatA1BGR5Unorm":{
755                "filterable": "display->supportsAppleGPUFamily(1)",
756                "writable": "false",
757                "blendable": "display->supportsAppleGPUFamily(1)",
758                "multisample": "display->supportsAppleGPUFamily(1)",
759                "resolve": "display->supportsAppleGPUFamily(1)",
760                "colorRenderable": "display->supportsAppleGPUFamily(1)"
761            },
762            "MTLPixelFormatPVRTC_RGB_4BPP":{
763                "filterable": "display->supportsAppleGPUFamily(1)"
764            },
765            "MTLPixelFormatPVRTC_RGB_2BPP":{
766                "filterable": "display->supportsAppleGPUFamily(1)"
767            },
768            "MTLPixelFormatPVRTC_RGBA_4BPP":{
769                "filterable": "display->supportsAppleGPUFamily(1)"
770            },
771            "MTLPixelFormatPVRTC_RGBA_2BPP":{
772                "filterable": "display->supportsAppleGPUFamily(1)"
773            },
774            "MTLPixelFormatPVRTC_RGB_2BPP_sRGB":{
775                "filterable": "display->supportsAppleGPUFamily(1)"
776            },
777            "MTLPixelFormatPVRTC_RGB_4BPP_sRGB":{
778                "filterable": "display->supportsAppleGPUFamily(1)"
779            },
780            "MTLPixelFormatPVRTC_RGBA_2BPP_sRGB":{
781                "filterable": "display->supportsAppleGPUFamily(1)"
782            },
783            "MTLPixelFormatPVRTC_RGBA_4BPP_sRGB":{
784                "filterable": "display->supportsAppleGPUFamily(1)"
785            },
786            "MTLPixelFormatETC2_RGB8":{
787                "filterable": "display->supportsAppleGPUFamily(1)"
788            },
789            "MTLPixelFormatETC2_RGB8_sRGB":{
790                "filterable": "display->supportsAppleGPUFamily(1)"
791            },
792            "MTLPixelFormatETC2_RGB8A1":{
793                "filterable": "display->supportsAppleGPUFamily(1)"
794            },
795            "MTLPixelFormatETC2_RGB8A1_sRGB":{
796                "filterable": "display->supportsAppleGPUFamily(1)"
797            },
798            "MTLPixelFormatEAC_RGBA8":{
799                "filterable": "display->supportsAppleGPUFamily(1)"
800            },
801            "MTLPixelFormatEAC_RGBA8_sRGB":{
802                "filterable": "display->supportsAppleGPUFamily(1)"
803            },
804            "MTLPixelFormatEAC_R11Unorm":{
805                "filterable": "display->supportsAppleGPUFamily(1)"
806            },
807            "MTLPixelFormatEAC_R11Snorm":{
808                "filterable": "display->supportsAppleGPUFamily(1)"
809            },
810            "MTLPixelFormatEAC_RG11Unorm":{
811                "filterable": "display->supportsAppleGPUFamily(1)"
812            },
813            "MTLPixelFormatEAC_RG11Snorm":{
814                "filterable": "display->supportsAppleGPUFamily(1)"
815            },
816            "MTLPixelFormatASTC_4x4_LDR":{
817                "filterable": "display->supportsAppleGPUFamily(2)"
818            },
819            "MTLPixelFormatASTC_4x4_sRGB":{
820                "filterable": "display->supportsAppleGPUFamily(2)"
821            },
822            "MTLPixelFormatASTC_5x4_LDR":{
823                "filterable": "display->supportsAppleGPUFamily(2)"
824            },
825            "MTLPixelFormatASTC_5x4_sRGB":{
826                "filterable": "display->supportsAppleGPUFamily(2)"
827            },
828            "MTLPixelFormatASTC_5x5_LDR":{
829                "filterable": "display->supportsAppleGPUFamily(2)"
830            },
831            "MTLPixelFormatASTC_5x5_sRGB":{
832                "filterable": "display->supportsAppleGPUFamily(2)"
833            },
834            "MTLPixelFormatASTC_6x5_LDR":{
835                "filterable": "display->supportsAppleGPUFamily(2)"
836            },
837            "MTLPixelFormatASTC_6x5_sRGB":{
838                "filterable": "display->supportsAppleGPUFamily(2)"
839            },
840            "MTLPixelFormatASTC_6x6_LDR":{
841                "filterable": "display->supportsAppleGPUFamily(2)"
842            },
843            "MTLPixelFormatASTC_6x6_sRGB":{
844                "filterable": "display->supportsAppleGPUFamily(2)"
845            },
846            "MTLPixelFormatASTC_8x5_LDR":{
847                "filterable": "display->supportsAppleGPUFamily(2)"
848            },
849            "MTLPixelFormatASTC_8x5_sRGB":{
850                "filterable": "display->supportsAppleGPUFamily(2)"
851            },
852            "MTLPixelFormatASTC_8x6_LDR":{
853                "filterable": "display->supportsAppleGPUFamily(2)"
854            },
855            "MTLPixelFormatASTC_8x6_sRGB":{
856                "filterable": "display->supportsAppleGPUFamily(2)"
857            },
858            "MTLPixelFormatASTC_8x8_LDR":{
859                "filterable": "display->supportsAppleGPUFamily(2)"
860            },
861            "MTLPixelFormatASTC_8x8_sRGB":{
862                "filterable": "display->supportsAppleGPUFamily(2)"
863            },
864            "MTLPixelFormatASTC_10x5_LDR":{
865                "filterable": "display->supportsAppleGPUFamily(2)"
866            },
867            "MTLPixelFormatASTC_10x5_sRGB":{
868                "filterable": "display->supportsAppleGPUFamily(2)"
869            },
870            "MTLPixelFormatASTC_10x6_LDR":{
871                "filterable": "display->supportsAppleGPUFamily(2)"
872            },
873            "MTLPixelFormatASTC_10x6_sRGB":{
874                "filterable": "display->supportsAppleGPUFamily(2)"
875            },
876            "MTLPixelFormatASTC_10x8_LDR":{
877                "filterable": "display->supportsAppleGPUFamily(2)"
878            },
879            "MTLPixelFormatASTC_10x8_sRGB":{
880                "filterable": "display->supportsAppleGPUFamily(2)"
881            },
882            "MTLPixelFormatASTC_10x10_LDR":{
883                "filterable": "display->supportsAppleGPUFamily(2)"
884            },
885            "MTLPixelFormatASTC_10x10_sRGB":{
886                "filterable": "display->supportsAppleGPUFamily(2)"
887            },
888            "MTLPixelFormatASTC_12x10_LDR":{
889                "filterable": "display->supportsAppleGPUFamily(2)"
890            },
891            "MTLPixelFormatASTC_12x10_sRGB":{
892                "filterable": "display->supportsAppleGPUFamily(2)"
893            },
894            "MTLPixelFormatASTC_12x12_LDR":{
895                "filterable": "display->supportsAppleGPUFamily(2)"
896            },
897            "MTLPixelFormatASTC_12x12_sRGB":{
898                "filterable": "display->supportsAppleGPUFamily(2)"
899            },
900            "MTLPixelFormatASTC_4x4_HDR":{
901                "filterable": "display->supportsAppleGPUFamily(6)"
902            },
903            "MTLPixelFormatASTC_5x4_HDR":{
904                "filterable": "display->supportsAppleGPUFamily(6)"
905            },
906            "MTLPixelFormatASTC_5x5_HDR":{
907                "filterable": "display->supportsAppleGPUFamily(6)"
908            },
909            "MTLPixelFormatASTC_6x5_HDR":{
910                "filterable": "display->supportsAppleGPUFamily(6)"
911            },
912            "MTLPixelFormatASTC_6x6_HDR":{
913                "filterable": "display->supportsAppleGPUFamily(6)"
914            },
915            "MTLPixelFormatASTC_8x5_HDR":{
916                "filterable": "display->supportsAppleGPUFamily(6)"
917            },
918            "MTLPixelFormatASTC_8x6_HDR":{
919                "filterable": "display->supportsAppleGPUFamily(6)"
920            },
921            "MTLPixelFormatASTC_8x8_HDR":{
922                "filterable": "display->supportsAppleGPUFamily(6)"
923            },
924            "MTLPixelFormatASTC_10x5_HDR":{
925                "filterable": "display->supportsAppleGPUFamily(6)"
926            },
927            "MTLPixelFormatASTC_10x6_HDR":{
928                "filterable": "display->supportsAppleGPUFamily(6)"
929            },
930            "MTLPixelFormatASTC_10x8_HDR":{
931                "filterable": "display->supportsAppleGPUFamily(6)"
932            },
933            "MTLPixelFormatASTC_10x10_HDR":{
934                "filterable": "display->supportsAppleGPUFamily(6)"
935            },
936            "MTLPixelFormatASTC_12x10_HDR":{
937                "filterable": "display->supportsAppleGPUFamily(6)"
938            },
939            "MTLPixelFormatASTC_12x12_HDR":{
940                "filterable": "display->supportsAppleGPUFamily(6)"
941            }
942        }
943    },
944    "vertex": {
945        "description": [
946            "- This section contains vertex format mapping between OpenGL and Metal similar to",
947            "image formats above",
948            "- override_tightly_packed is special emulation for those formats whose sizes",
949            "are not multiples of 4 bytes. They will be converted to appropriate 4 bytes aligned",
950            "formats.",
951            "This emulation is useful for the cases in which the stride of a vertex attribute",
952            "is required to be multiples of 4."
953        ],
954        "map": {
955            "NONE": "MTLVertexFormatInvalid",
956            "R8_UNORM": "MTLVertexFormatUCharNormalized",
957            "R8_SNORM": "MTLVertexFormatCharNormalized",
958            "R8_UINT": "MTLVertexFormatUChar",
959            "R8_SINT": "MTLVertexFormatChar",
960            "R8_USCALED": "MTLVertexFormatUChar",
961            "R8_SSCALED": "MTLVertexFormatChar",
962            "R8G8_UNORM": "MTLVertexFormatUChar2Normalized",
963            "R8G8_SNORM": "MTLVertexFormatChar2Normalized",
964            "R8G8_UINT": "MTLVertexFormatUChar2",
965            "R8G8_SINT": "MTLVertexFormatChar2",
966            "R8G8_USCALED": "MTLVertexFormatUChar2",
967            "R8G8_SSCALED": "MTLVertexFormatChar2",
968            "R8G8B8_UNORM": "MTLVertexFormatUChar3Normalized",
969            "R8G8B8_SNORM": "MTLVertexFormatChar3Normalized",
970            "R8G8B8_UINT": "MTLVertexFormatUChar3",
971            "R8G8B8_SINT": "MTLVertexFormatChar3",
972            "R8G8B8_USCALED": "MTLVertexFormatUChar3",
973            "R8G8B8_SSCALED": "MTLVertexFormatChar3",
974            "R8G8B8A8_UNORM": "MTLVertexFormatUChar4Normalized",
975            "R8G8B8A8_SNORM": "MTLVertexFormatChar4Normalized",
976            "R8G8B8A8_UINT": "MTLVertexFormatUChar4",
977            "R8G8B8A8_SINT": "MTLVertexFormatChar4",
978            "R8G8B8A8_USCALED": "MTLVertexFormatUChar4",
979            "R8G8B8A8_SSCALED": "MTLVertexFormatChar4",
980
981            "R16_UNORM": "MTLVertexFormatUShortNormalized",
982            "R16_SNORM": "MTLVertexFormatShortNormalized",
983            "R16_UINT": "MTLVertexFormatUShort",
984            "R16_SINT": "MTLVertexFormatShort",
985            "R16_USCALED": "MTLVertexFormatUShort",
986            "R16_SSCALED": "MTLVertexFormatShort",
987            "R16G16_UNORM": "MTLVertexFormatUShort2Normalized",
988            "R16G16_SNORM": "MTLVertexFormatShort2Normalized",
989            "R16G16_UINT": "MTLVertexFormatUShort2",
990            "R16G16_SINT": "MTLVertexFormatShort2",
991            "R16G16_USCALED": "MTLVertexFormatUShort2",
992            "R16G16_SSCALED": "MTLVertexFormatShort2",
993            "R16G16B16_UNORM": "MTLVertexFormatUShort3Normalized",
994            "R16G16B16_SNORM": "MTLVertexFormatShort3Normalized",
995            "R16G16B16_UINT": "MTLVertexFormatUShort3",
996            "R16G16B16_SINT": "MTLVertexFormatShort3",
997            "R16G16B16_USCALED": "MTLVertexFormatUShort3",
998            "R16G16B16_SSCALED": "MTLVertexFormatShort3",
999            "R16G16B16A16_UNORM": "MTLVertexFormatUShort4Normalized",
1000            "R16G16B16A16_SNORM": "MTLVertexFormatShort4Normalized",
1001            "R16G16B16A16_UINT": "MTLVertexFormatUShort4",
1002            "R16G16B16A16_SINT": "MTLVertexFormatShort4",
1003            "R16G16B16A16_USCALED": "MTLVertexFormatUShort4",
1004            "R16G16B16A16_SSCALED": "MTLVertexFormatShort4",
1005
1006            "R32_UINT": "MTLVertexFormatUInt",
1007            "R32_SINT": "MTLVertexFormatInt",
1008            "R32G32_UINT": "MTLVertexFormatUInt2",
1009            "R32G32_SINT": "MTLVertexFormatInt2",
1010            "R32G32B32_UINT": "MTLVertexFormatUInt3",
1011            "R32G32B32_SINT": "MTLVertexFormatInt3",
1012            "R32G32B32A32_UINT": "MTLVertexFormatUInt4",
1013            "R32G32B32A32_SINT": "MTLVertexFormatInt4",
1014
1015            "R16_FLOAT": "MTLVertexFormatHalf",
1016            "R16G16_FLOAT": "MTLVertexFormatHalf2",
1017            "R16G16B16_FLOAT": "MTLVertexFormatHalf3",
1018            "R16G16B16A16_FLOAT": "MTLVertexFormatHalf4",
1019
1020            "R32_FLOAT": "MTLVertexFormatFloat",
1021            "R32G32_FLOAT": "MTLVertexFormatFloat2",
1022            "R32G32B32_FLOAT": "MTLVertexFormatFloat3",
1023            "R32G32B32A32_FLOAT": "MTLVertexFormatFloat4",
1024
1025            "R10G10B10A2_SNORM": "MTLVertexFormatInt1010102Normalized",
1026            "R10G10B10A2_UNORM": "MTLVertexFormatUInt1010102Normalized"
1027        },
1028        "override": {
1029            "R32_FIXED": "R32_FLOAT",
1030            "R32_UNORM": "R32_FLOAT",
1031            "R32_SNORM": "R32_FLOAT",
1032            "R32_USCALED": "R32_FLOAT",
1033            "R32_SSCALED": "R32_FLOAT",
1034            "R32G32_FIXED": "R32G32_FLOAT",
1035            "R32G32_UNORM": "R32G32_FLOAT",
1036            "R32G32_SNORM": "R32G32_FLOAT",
1037            "R32G32_USCALED": "R32G32_FLOAT",
1038            "R32G32_SSCALED": "R32G32_FLOAT",
1039            "R32G32B32_FIXED": "R32G32B32_FLOAT",
1040            "R32G32B32_UNORM": "R32G32B32_FLOAT",
1041            "R32G32B32_SNORM": "R32G32B32_FLOAT",
1042            "R32G32B32_USCALED": "R32G32B32_FLOAT",
1043            "R32G32B32_SSCALED": "R32G32B32_FLOAT",
1044            "R32G32B32A32_FIXED": "R32G32B32A32_FLOAT",
1045            "R32G32B32A32_UNORM": "R32G32B32A32_FLOAT",
1046            "R32G32B32A32_SNORM": "R32G32B32A32_FLOAT",
1047            "R32G32B32A32_USCALED": "R32G32B32A32_FLOAT",
1048            "R32G32B32A32_SSCALED": "R32G32B32A32_FLOAT",
1049            "R10G10B10A2_SINT": "R32G32B32A32_FLOAT",
1050            "R10G10B10A2_SSCALED": "R32G32B32A32_FLOAT",
1051            "R10G10B10A2_UINT": "R32G32B32A32_FLOAT",
1052            "R10G10B10A2_USCALED": "R32G32B32A32_FLOAT"
1053        },
1054        "override_tightly_packed": {
1055            "R16_FLOAT": "R16G16_FLOAT",
1056            "R16_UNORM": "R16G16_UNORM",
1057            "R16_SNORM": "R16G16_SNORM",
1058            "R16_UINT": "R16G16_UINT",
1059            "R16_SINT": "R16G16_SINT",
1060            "R16_USCALED": "R16G16_UINT",
1061            "R16_SSCALED": "R16G16_SINT",
1062            "R16G16B16_FLOAT": "R16G16B16A16_FLOAT",
1063            "R16G16B16_UNORM": "R16G16B16A16_UNORM",
1064            "R16G16B16_SNORM": "R16G16B16A16_SNORM",
1065            "R16G16B16_UINT": "R16G16B16A16_UINT",
1066            "R16G16B16_SINT": "R16G16B16A16_SINT",
1067            "R16G16B16_USCALED": "R16G16B16A16_UINT",
1068            "R16G16B16_SSCALED": "R16G16B16A16_SINT",
1069            "R8_UNORM": "R8G8B8A8_UNORM",
1070            "R8_SNORM": "R8G8B8A8_SNORM",
1071            "R8_UINT": "R8G8B8A8_UINT",
1072            "R8_SINT": "R8G8B8A8_SINT",
1073            "R8_USCALED": "R8G8B8A8_UINT",
1074            "R8_SSCALED": "R8G8B8A8_SINT",
1075            "R8G8_UNORM": "R8G8B8A8_UNORM",
1076            "R8G8_SNORM": "R8G8B8A8_SNORM",
1077            "R8G8_UINT": "R8G8B8A8_UINT",
1078            "R8G8_SINT": "R8G8B8A8_SINT",
1079            "R8G8_USCALED": "R8G8B8A8_UINT",
1080            "R8G8_SSCALED": "R8G8B8A8_SINT",
1081            "R8G8B8_UNORM": "R8G8B8A8_UNORM",
1082            "R8G8B8_SNORM": "R8G8B8A8_SNORM",
1083            "R8G8B8_UINT": "R8G8B8A8_UINT",
1084            "R8G8B8_SINT": "R8G8B8A8_SINT",
1085            "R8G8B8_USCALED": "R8G8B8A8_UINT",
1086            "R8G8B8_SSCALED": "R8G8B8A8_SINT"
1087        }
1088    }
1089}