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