xref: /aosp_15_r20/external/angle/include/platform/autogen/FeaturesMtl_autogen.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_features.py using data from mtl_features.json.
3 //
4 // Copyright 2022 The ANGLE Project Authors. All rights reserved.
5 // Use of this source code is governed by a BSD-style license that can be
6 // found in the LICENSE file.
7 //
8 // FeaturesMtl_autogen.h: Optional features for the Metal renderer.
9 
10 #ifndef ANGLE_PLATFORM_AUTOGEN_FEATURESMTL_H_
11 #define ANGLE_PLATFORM_AUTOGEN_FEATURESMTL_H_
12 
13 #include "platform/Feature.h"
14 
15 namespace angle
16 {
17 
18 struct FeaturesMtl : FeatureSetBase
19 {
20     FeaturesMtl();
21     ~FeaturesMtl();
22 
23     FeatureInfo hasBaseVertexInstancedDraw = {
24         "hasBaseVertexInstancedDraw",
25         FeatureCategory::MetalFeatures,
26         &members,
27     };
28 
29     FeatureInfo hasExplicitMemBarrier = {
30         "hasExplicitMemBarrier",
31         FeatureCategory::MetalFeatures,
32         &members,
33     };
34 
35     FeatureInfo hasCheapRenderPass = {
36         "hasCheapRenderPass",
37         FeatureCategory::MetalFeatures,
38         &members,
39     };
40 
41     FeatureInfo hasNonUniformDispatch = {
42         "hasNonUniformDispatch",
43         FeatureCategory::MetalFeatures,
44         &members,
45     };
46 
47     FeatureInfo hasShaderStencilOutput = {
48         "hasShaderStencilOutput",
49         FeatureCategory::MetalFeatures,
50         &members,
51     };
52 
53     FeatureInfo hasTextureSwizzle = {
54         "hasTextureSwizzle",
55         FeatureCategory::MetalFeatures,
56         &members,
57     };
58 
59     FeatureInfo hasDepthAutoResolve = {
60         "hasDepthAutoResolve",
61         FeatureCategory::MetalFeatures,
62         &members,
63     };
64 
65     FeatureInfo hasStencilAutoResolve = {
66         "hasStencilAutoResolve",
67         FeatureCategory::MetalFeatures,
68         &members,
69     };
70 
71     FeatureInfo hasEvents = {
72         "hasEvents",
73         FeatureCategory::MetalFeatures,
74         &members,
75     };
76 
77     FeatureInfo allowInlineConstVertexData = {
78         "allowInlineConstVertexData",
79         FeatureCategory::MetalFeatures,
80         &members,
81     };
82 
83     FeatureInfo allowSeparateDepthStencilBuffers = {
84         "allowSeparateDepthStencilBuffers",
85         FeatureCategory::MetalFeatures,
86         &members,
87     };
88 
89     FeatureInfo allowRuntimeSamplerCompareMode = {
90         "allowRuntimeSamplerCompareMode",
91         FeatureCategory::MetalFeatures,
92         &members,
93     };
94 
95     FeatureInfo allowSamplerCompareGradient = {
96         "allowSamplerCompareGradient",
97         FeatureCategory::MetalFeatures,
98         &members,
99     };
100 
101     FeatureInfo allowBufferReadWrite = {
102         "allowBufferReadWrite",
103         FeatureCategory::MetalFeatures,
104         &members,
105     };
106 
107     FeatureInfo allowMultisampleStoreAndResolve = {
108         "allowMultisampleStoreAndResolve",
109         FeatureCategory::MetalFeatures,
110         &members,
111     };
112 
113     FeatureInfo allowGenMultipleMipsPerPass = {
114         "allowGenMultipleMipsPerPass",
115         FeatureCategory::MetalFeatures,
116         &members,
117     };
118 
119     FeatureInfo forceD24S8AsUnsupported = {
120         "forceD24S8AsUnsupported",
121         FeatureCategory::MetalFeatures,
122         &members,
123     };
124 
125     FeatureInfo forceBufferGPUStorage = {
126         "forceBufferGPUStorage",
127         FeatureCategory::MetalFeatures,
128         &members,
129     };
130 
131     FeatureInfo forceNonCSBaseMipmapGeneration = {
132         "forceNonCSBaseMipmapGeneration",
133         FeatureCategory::MetalFeatures,
134         &members,
135     };
136 
137     FeatureInfo emulateTransformFeedback = {
138         "emulateTransformFeedback",
139         FeatureCategory::MetalFeatures,
140         &members,
141     };
142 
143     FeatureInfo intelExplicitBoolCastWorkaround = {
144         "intelExplicitBoolCastWorkaround",
145         FeatureCategory::MetalWorkarounds,
146         &members,
147     };
148 
149     FeatureInfo intelDisableFastMath = {
150         "intelDisableFastMath",
151         FeatureCategory::MetalWorkarounds,
152         &members,
153     };
154 
155     FeatureInfo allowRenderpassWithoutAttachment = {
156         "allowRenderpassWithoutAttachment",
157         FeatureCategory::MetalFeatures,
158         &members,
159     };
160 
161     FeatureInfo avoidStencilTextureSwizzle = {
162         "avoidStencilTextureSwizzle",
163         FeatureCategory::MetalFeatures,
164         &members,
165     };
166 
167     FeatureInfo emulateAlphaToCoverage = {
168         "emulateAlphaToCoverage",
169         FeatureCategory::MetalWorkarounds,
170         &members,
171     };
172 
173     FeatureInfo writeHelperSampleMask = {
174         "writeHelperSampleMask",
175         FeatureCategory::MetalWorkarounds,
176         &members,
177     };
178 
179     FeatureInfo preTransformTextureCubeGradDerivatives = {
180         "preTransformTextureCubeGradDerivatives",
181         FeatureCategory::MetalWorkarounds,
182         &members,
183     };
184 
185     FeatureInfo multisampleColorFormatShaderReadWorkaround = {
186         "multisampleColorFormatShaderReadWorkaround",
187         FeatureCategory::MetalWorkarounds,
188         &members,
189     };
190 
191     FeatureInfo copyIOSurfaceToNonIOSurfaceForReadOptimization = {
192         "copyIOSurfaceToNonIOSurfaceForReadOptimization",
193         FeatureCategory::MetalWorkarounds,
194         &members,
195     };
196 
197     FeatureInfo copyTextureToBufferForReadOptimization = {
198         "copyTextureToBufferForReadOptimization",
199         FeatureCategory::MetalWorkarounds,
200         &members,
201     };
202 
203     FeatureInfo limitMaxDrawBuffersForTesting = {
204         "limitMaxDrawBuffersForTesting",
205         FeatureCategory::MetalFeatures,
206         &members,
207     };
208 
209     FeatureInfo limitMaxColorTargetBitsForTesting = {
210         "limitMaxColorTargetBitsForTesting",
211         FeatureCategory::MetalFeatures,
212         &members,
213     };
214 
215     FeatureInfo preemptivelyStartProvokingVertexCommandBuffer = {
216         "preemptivelyStartProvokingVertexCommandBuffer",
217         FeatureCategory::MetalFeatures,
218         &members,
219     };
220 
221     FeatureInfo uploadDataToIosurfacesWithStagingBuffers = {
222         "uploadDataToIosurfacesWithStagingBuffers",
223         FeatureCategory::MetalWorkarounds,
224         &members,
225     };
226 
227     FeatureInfo alwaysUseStagedBufferUpdates = {
228         "alwaysUseStagedBufferUpdates",
229         FeatureCategory::MetalFeatures,
230         &members,
231     };
232 
233     FeatureInfo useShadowBuffersWhenAppropriate = {
234         "useShadowBuffersWhenAppropriate",
235         FeatureCategory::MetalFeatures,
236         &members,
237     };
238 
239     FeatureInfo alwaysUseManagedStorageModeForBuffers = {
240         "alwaysUseManagedStorageModeForBuffers",
241         FeatureCategory::MetalFeatures,
242         &members,
243     };
244 
245     FeatureInfo alwaysUseSharedStorageModeForBuffers = {
246         "alwaysUseSharedStorageModeForBuffers",
247         FeatureCategory::MetalFeatures,
248         &members,
249     };
250 
251     FeatureInfo preferCpuForBuffersubdata = {
252         "preferCpuForBuffersubdata",
253         FeatureCategory::MetalFeatures,
254         &members,
255     };
256 
257     FeatureInfo disableProgrammableBlending = {
258         "disableProgrammableBlending",
259         FeatureCategory::MetalFeatures,
260         &members,
261     };
262 
263     FeatureInfo disableRWTextureTier2Support = {
264         "disableRWTextureTier2Support",
265         FeatureCategory::MetalFeatures,
266         &members,
267     };
268 
269     FeatureInfo disableRasterOrderGroups = {
270         "disableRasterOrderGroups",
271         FeatureCategory::MetalFeatures,
272         &members,
273     };
274 
275     FeatureInfo enableInMemoryMtlLibraryCache = {
276         "enableInMemoryMtlLibraryCache",
277         FeatureCategory::MetalFeatures,
278         &members,
279     };
280 
281     FeatureInfo enableParallelMtlLibraryCompilation = {
282         "enableParallelMtlLibraryCompilation",
283         FeatureCategory::MetalFeatures,
284         &members,
285     };
286 
287     FeatureInfo alwaysPreferStagedTextureUploads = {
288         "alwaysPreferStagedTextureUploads",
289         FeatureCategory::MetalFeatures,
290         &members,
291     };
292 
293     FeatureInfo disableStagedInitializationOfPackedTextureFormats = {
294         "disableStagedInitializationOfPackedTextureFormats",
295         FeatureCategory::MetalFeatures,
296         &members,
297     };
298 
299     FeatureInfo compileMetalShaders = {
300         "compileMetalShaders",
301         FeatureCategory::MetalFeatures,
302         &members,
303     };
304 
305     FeatureInfo loadMetalShadersFromBlobCache = {
306         "loadMetalShadersFromBlobCache",
307         FeatureCategory::MetalFeatures,
308         &members,
309     };
310 
311     FeatureInfo printMetalShaders = {
312         "printMetalShaders",
313         FeatureCategory::MetalFeatures,
314         &members,
315     };
316 
317     FeatureInfo generateShareableShaders = {
318         "generateShareableShaders",
319         FeatureCategory::MetalFeatures,
320         &members,
321     };
322 
323     FeatureInfo disableMetalOnNvidia = {
324         "disableMetalOnNvidia",
325         FeatureCategory::MetalFeatures,
326         &members,
327     };
328 
329     FeatureInfo flushAfterStreamVertexData = {
330         "flushAfterStreamVertexData",
331         FeatureCategory::MetalFeatures,
332         &members,
333     };
334 
335     FeatureInfo requireGpuFamily2 = {
336         "requireGpuFamily2",
337         FeatureCategory::MetalFeatures,
338         &members,
339     };
340 
341     FeatureInfo rescopeGlobalVariables = {
342         "rescopeGlobalVariables",
343         FeatureCategory::MetalFeatures,
344         &members,
345     };
346 
347     FeatureInfo enableMultisampledRenderToTextureOnNonTilers = {
348         "enableMultisampledRenderToTextureOnNonTilers",
349         FeatureCategory::MetalFeatures,
350         &members,
351     };
352 
353     FeatureInfo emulateDontCareLoadWithRandomClear = {
354         "emulateDontCareLoadWithRandomClear",
355         FeatureCategory::MetalFeatures,
356         &members,
357     };
358 
359     FeatureInfo injectAsmStatementIntoLoopBodies = {
360         "injectAsmStatementIntoLoopBodies",
361         FeatureCategory::MetalFeatures,
362         &members,
363     };
364 
365 };
366 
367 inline FeaturesMtl::FeaturesMtl()  = default;
368 inline FeaturesMtl::~FeaturesMtl() = default;
369 
370 }  // namespace angle
371 
372 #endif  // ANGLE_PLATFORM_AUTOGEN_FEATURESMTL_H_
373