xref: /aosp_15_r20/external/angle/include/platform/autogen/FeaturesGL_autogen.h (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_features.py using data from gl_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 // FeaturesGL_autogen.h: angle::Features and workarounds for GL driver bugs and other issues.
9 
10 #ifndef ANGLE_PLATFORM_AUTOGEN_FEATURESGL_H_
11 #define ANGLE_PLATFORM_AUTOGEN_FEATURESGL_H_
12 
13 #include "platform/Feature.h"
14 
15 namespace angle
16 {
17 
18 struct FeaturesGL : FeatureSetBase
19 {
20     FeaturesGL();
21     ~FeaturesGL();
22 
23     FeatureInfo avoid1BitAlphaTextureFormats = {
24         "avoid1BitAlphaTextureFormats",
25         FeatureCategory::OpenGLWorkarounds,
26         &members,
27     };
28 
29     FeatureInfo RGBA4IsNotSupportedForColorRendering = {
30         "RGBA4IsNotSupportedForColorRendering",
31         FeatureCategory::OpenGLWorkarounds,
32         &members,
33     };
34 
35     FeatureInfo allowETCFormats = {
36         "allowETCFormats",
37         FeatureCategory::OpenGLWorkarounds,
38         &members,
39     };
40 
41     FeatureInfo allowAstcFormats = {
42         "allowAstcFormats",
43         FeatureCategory::OpenGLWorkarounds,
44         &members,
45     };
46 
47     FeatureInfo clearsWithGapsNeedFlush = {
48         "clearsWithGapsNeedFlush",
49         FeatureCategory::OpenGLWorkarounds,
50         &members,
51     };
52 
53     FeatureInfo doesSRGBClearsOnLinearFramebufferAttachments = {
54         "doesSRGBClearsOnLinearFramebufferAttachments",
55         FeatureCategory::OpenGLWorkarounds,
56         &members,
57     };
58 
59     FeatureInfo doWhileGLSLCausesGPUHang = {
60         "doWhileGLSLCausesGPUHang",
61         FeatureCategory::OpenGLWorkarounds,
62         &members,
63     };
64 
65     FeatureInfo vertexIDDoesNotIncludeBaseVertex = {
66         "vertexIDDoesNotIncludeBaseVertex",
67         FeatureCategory::OpenGLWorkarounds,
68         &members,
69     };
70 
71     FeatureInfo finishDoesNotCauseQueriesToBeAvailable = {
72         "finishDoesNotCauseQueriesToBeAvailable",
73         FeatureCategory::OpenGLWorkarounds,
74         &members,
75     };
76 
77     FeatureInfo alwaysCallUseProgramAfterLink = {
78         "alwaysCallUseProgramAfterLink",
79         FeatureCategory::OpenGLWorkarounds,
80         &members,
81     };
82 
83     FeatureInfo unpackOverlappingRowsSeparatelyUnpackBuffer = {
84         "unpackOverlappingRowsSeparatelyUnpackBuffer",
85         FeatureCategory::OpenGLWorkarounds,
86         &members,
87     };
88 
89     FeatureInfo packOverlappingRowsSeparatelyPackBuffer = {
90         "packOverlappingRowsSeparatelyPackBuffer",
91         FeatureCategory::OpenGLWorkarounds,
92         &members,
93     };
94 
95     FeatureInfo initializeCurrentVertexAttributes = {
96         "initializeCurrentVertexAttributes",
97         FeatureCategory::OpenGLWorkarounds,
98         &members,
99     };
100 
101     FeatureInfo emulateAbsIntFunction = {
102         "emulateAbsIntFunction",
103         FeatureCategory::OpenGLWorkarounds,
104         &members,
105     };
106 
107     FeatureInfo addAndTrueToLoopCondition = {
108         "addAndTrueToLoopCondition",
109         FeatureCategory::OpenGLWorkarounds,
110         &members,
111     };
112 
113     FeatureInfo unpackLastRowSeparatelyForPaddingInclusion = {
114         "unpackLastRowSeparatelyForPaddingInclusion",
115         FeatureCategory::OpenGLWorkarounds,
116         &members,
117     };
118 
119     FeatureInfo packLastRowSeparatelyForPaddingInclusion = {
120         "packLastRowSeparatelyForPaddingInclusion",
121         FeatureCategory::OpenGLWorkarounds,
122         &members,
123     };
124 
125     FeatureInfo emulateIsnanFloat = {
126         "emulateIsnanFloat",
127         FeatureCategory::OpenGLWorkarounds,
128         &members,
129     };
130 
131     FeatureInfo useUnusedBlocksWithStandardOrSharedLayout = {
132         "useUnusedBlocksWithStandardOrSharedLayout",
133         FeatureCategory::OpenGLWorkarounds,
134         &members,
135     };
136 
137     FeatureInfo removeInvariantAndCentroidForESSL3 = {
138         "removeInvariantAndCentroidForESSL3",
139         FeatureCategory::OpenGLWorkarounds,
140         &members,
141     };
142 
143     FeatureInfo rewriteFloatUnaryMinusOperator = {
144         "rewriteFloatUnaryMinusOperator",
145         FeatureCategory::OpenGLWorkarounds,
146         &members,
147     };
148 
149     FeatureInfo emulateAtan2Float = {
150         "emulateAtan2Float",
151         FeatureCategory::OpenGLWorkarounds,
152         &members,
153     };
154 
155     FeatureInfo reapplyUBOBindingsAfterUsingBinaryProgram = {
156         "reapplyUBOBindingsAfterUsingBinaryProgram",
157         FeatureCategory::OpenGLWorkarounds,
158         &members,
159     };
160 
161     FeatureInfo emulateMaxVertexAttribStride = {
162         "emulateMaxVertexAttribStride",
163         FeatureCategory::OpenGLWorkarounds,
164         &members,
165     };
166 
167     FeatureInfo dontInitializeUninitializedLocals = {
168         "dontInitializeUninitializedLocals",
169         FeatureCategory::OpenGLWorkarounds,
170         &members,
171     };
172 
173     FeatureInfo clampPointSize = {
174         "clampPointSize",
175         FeatureCategory::OpenGLWorkarounds,
176         &members,
177     };
178 
179     FeatureInfo dontUseLoopsToInitializeVariables = {
180         "dontUseLoopsToInitializeVariables",
181         FeatureCategory::OpenGLWorkarounds,
182         &members,
183     };
184 
185     FeatureInfo clampFragDepth = {
186         "clampFragDepth",
187         FeatureCategory::OpenGLWorkarounds,
188         &members,
189     };
190 
191     FeatureInfo rewriteRepeatedAssignToSwizzled = {
192         "rewriteRepeatedAssignToSwizzled",
193         FeatureCategory::OpenGLWorkarounds,
194         &members,
195     };
196 
197     FeatureInfo preTransformTextureCubeGradDerivatives = {
198         "preTransformTextureCubeGradDerivatives",
199         FeatureCategory::OpenGLWorkarounds,
200         &members,
201     };
202 
203     FeatureInfo disableBlendFuncExtended = {
204         "disableBlendFuncExtended",
205         FeatureCategory::OpenGLWorkarounds,
206         &members,
207     };
208 
209     FeatureInfo unsizedSRGBReadPixelsDoesntTransform = {
210         "unsizedSRGBReadPixelsDoesntTransform",
211         FeatureCategory::OpenGLWorkarounds,
212         &members,
213     };
214 
215     FeatureInfo queryCounterBitsGeneratesErrors = {
216         "queryCounterBitsGeneratesErrors",
217         FeatureCategory::OpenGLWorkarounds,
218         &members,
219     };
220 
221     FeatureInfo limitWebglMaxTextureSizeTo4096 = {
222         "limitWebglMaxTextureSizeTo4096",
223         FeatureCategory::OpenGLWorkarounds,
224         &members,
225     };
226 
227     FeatureInfo limitWebglMaxTextureSizeTo8192 = {
228         "limitWebglMaxTextureSizeTo8192",
229         FeatureCategory::OpenGLWorkarounds,
230         &members,
231     };
232 
233     FeatureInfo limitMaxMSAASamplesTo4 = {
234         "limitMaxMSAASamplesTo4",
235         FeatureCategory::OpenGLWorkarounds,
236         &members,
237     };
238 
239     FeatureInfo allowClearForRobustResourceInit = {
240         "allowClearForRobustResourceInit",
241         FeatureCategory::OpenGLWorkarounds,
242         &members,
243     };
244 
245     FeatureInfo clampArrayAccess = {
246         "clampArrayAccess",
247         FeatureCategory::OpenGLWorkarounds,
248         &members,
249     };
250 
251     FeatureInfo resetTexImage2DBaseLevel = {
252         "resetTexImage2DBaseLevel",
253         FeatureCategory::OpenGLWorkarounds,
254         &members,
255     };
256 
257     FeatureInfo clearToZeroOrOneBroken = {
258         "clearToZeroOrOneBroken",
259         FeatureCategory::OpenGLWorkarounds,
260         &members,
261     };
262 
263     FeatureInfo limitMax3dArrayTextureSizeTo1024 = {
264         "limitMax3dArrayTextureSizeTo1024",
265         FeatureCategory::OpenGLWorkarounds,
266         &members,
267     };
268 
269     FeatureInfo adjustSrcDstRegionForBlitFramebuffer = {
270         "adjustSrcDstRegionForBlitFramebuffer",
271         FeatureCategory::OpenGLWorkarounds,
272         &members,
273     };
274 
275     FeatureInfo clipSrcRegionForBlitFramebuffer = {
276         "clipSrcRegionForBlitFramebuffer",
277         FeatureCategory::OpenGLWorkarounds,
278         &members,
279     };
280 
281     FeatureInfo RGBDXT1TexturesSampleZeroAlpha = {
282         "RGBDXT1TexturesSampleZeroAlpha",
283         FeatureCategory::OpenGLWorkarounds,
284         &members,
285     };
286 
287     FeatureInfo unfoldShortCircuits = {
288         "unfoldShortCircuits",
289         FeatureCategory::OpenGLWorkarounds,
290         &members,
291     };
292 
293     FeatureInfo emulatePrimitiveRestartFixedIndex = {
294         "emulatePrimitiveRestartFixedIndex",
295         FeatureCategory::OpenGLWorkarounds,
296         &members,
297     };
298 
299     FeatureInfo setPrimitiveRestartFixedIndexForDrawArrays = {
300         "setPrimitiveRestartFixedIndexForDrawArrays",
301         FeatureCategory::OpenGLWorkarounds,
302         &members,
303     };
304 
305     FeatureInfo removeDynamicIndexingOfSwizzledVector = {
306         "removeDynamicIndexingOfSwizzledVector",
307         FeatureCategory::OpenGLWorkarounds,
308         &members,
309     };
310 
311     FeatureInfo preAddTexelFetchOffsets = {
312         "preAddTexelFetchOffsets",
313         FeatureCategory::OpenGLWorkarounds,
314         &members,
315     };
316 
317     FeatureInfo regenerateStructNames = {
318         "regenerateStructNames",
319         FeatureCategory::OpenGLWorkarounds,
320         &members,
321     };
322 
323     FeatureInfo readPixelsUsingImplementationColorReadFormatForNorm16 = {
324         "readPixelsUsingImplementationColorReadFormatForNorm16",
325         FeatureCategory::OpenGLWorkarounds,
326         &members,
327     };
328 
329     FeatureInfo flushBeforeDeleteTextureIfCopiedTo = {
330         "flushBeforeDeleteTextureIfCopiedTo",
331         FeatureCategory::OpenGLWorkarounds,
332         &members,
333     };
334 
335     FeatureInfo rewriteRowMajorMatrices = {
336         "rewriteRowMajorMatrices",
337         FeatureCategory::OpenGLWorkarounds,
338         &members,
339     };
340 
341     FeatureInfo disableDrawBuffersIndexed = {
342         "disableDrawBuffersIndexed",
343         FeatureCategory::OpenGLWorkarounds,
344         &members,
345     };
346 
347     FeatureInfo disableSemaphoreFd = {
348         "disableSemaphoreFd",
349         FeatureCategory::OpenGLWorkarounds,
350         &members,
351     };
352 
353     FeatureInfo disableTimestampQueries = {
354         "disableTimestampQueries",
355         FeatureCategory::OpenGLWorkarounds,
356         &members,
357     };
358 
359     FeatureInfo decodeEncodeSRGBForGenerateMipmap = {
360         "decodeEncodeSRGBForGenerateMipmap",
361         FeatureCategory::OpenGLWorkarounds,
362         &members,
363     };
364 
365     FeatureInfo emulateCopyTexImage2D = {
366         "emulateCopyTexImage2D",
367         FeatureCategory::OpenGLWorkarounds,
368         &members,
369     };
370 
371     FeatureInfo emulateCopyTexImage2DFromRenderbuffers = {
372         "emulateCopyTexImage2DFromRenderbuffers",
373         FeatureCategory::OpenGLWorkarounds,
374         &members,
375     };
376 
377     FeatureInfo disableGPUSwitchingSupport = {
378         "disableGPUSwitchingSupport",
379         FeatureCategory::OpenGLWorkarounds,
380         &members,
381     };
382 
383     FeatureInfo disableNativeParallelCompile = {
384         "disableNativeParallelCompile",
385         FeatureCategory::OpenGLWorkarounds,
386         &members,
387     };
388 
389     FeatureInfo emulatePackSkipRowsAndPackSkipPixels = {
390         "emulatePackSkipRowsAndPackSkipPixels",
391         FeatureCategory::OpenGLWorkarounds,
392         &members,
393     };
394 
395     FeatureInfo clampMscRate = {
396         "clampMscRate",
397         FeatureCategory::OpenGLWorkarounds,
398         &members,
399     };
400 
401     FeatureInfo bindTransformFeedbackBufferBeforeBindBufferRange = {
402         "bindTransformFeedbackBufferBeforeBindBufferRange",
403         FeatureCategory::OpenGLWorkarounds,
404         &members,
405     };
406 
407     FeatureInfo disableSyncControlSupport = {
408         "disableSyncControlSupport",
409         FeatureCategory::OpenGLWorkarounds,
410         &members,
411     };
412 
413     FeatureInfo keepBufferShadowCopy = {
414         "keepBufferShadowCopy",
415         FeatureCategory::OpenGLWorkarounds,
416         &members,
417     };
418 
419     FeatureInfo setZeroLevelBeforeGenerateMipmap = {
420         "setZeroLevelBeforeGenerateMipmap",
421         FeatureCategory::OpenGLWorkarounds,
422         &members,
423     };
424 
425     FeatureInfo promotePackedFormatsTo8BitPerChannel = {
426         "promotePackedFormatsTo8BitPerChannel",
427         FeatureCategory::OpenGLWorkarounds,
428         &members,
429     };
430 
431     FeatureInfo initFragmentOutputVariables = {
432         "initFragmentOutputVariables",
433         FeatureCategory::OpenGLWorkarounds,
434         &members,
435     };
436 
437     FeatureInfo shiftInstancedArrayDataWithOffset = {
438         "shiftInstancedArrayDataWithOffset",
439         FeatureCategory::OpenGLWorkarounds,
440         &members,
441     };
442 
443     FeatureInfo syncAllVertexArraysToDefault = {
444         "syncAllVertexArraysToDefault",
445         FeatureCategory::OpenGLWorkarounds,
446         &members,
447     };
448 
449     FeatureInfo syncDefaultVertexArraysToDefault = {
450         "syncDefaultVertexArraysToDefault",
451         FeatureCategory::OpenGLWorkarounds,
452         &members,
453     };
454 
455     FeatureInfo sanitizeAMDGPURendererString = {
456         "sanitizeAMDGPURendererString",
457         FeatureCategory::OpenGLWorkarounds,
458         &members,
459     };
460 
461     FeatureInfo unbindFBOBeforeSwitchingContext = {
462         "unbindFBOBeforeSwitchingContext",
463         FeatureCategory::OpenGLWorkarounds,
464         &members,
465     };
466 
467     FeatureInfo flushOnFramebufferChange = {
468         "flushOnFramebufferChange",
469         FeatureCategory::OpenGLWorkarounds,
470         &members,
471     };
472 
473     FeatureInfo disableMultisampledRenderToTexture = {
474         "disableMultisampledRenderToTexture",
475         FeatureCategory::OpenGLWorkarounds,
476         &members,
477     };
478 
479     FeatureInfo uploadTextureDataInChunks = {
480         "uploadTextureDataInChunks",
481         FeatureCategory::OpenGLWorkarounds,
482         &members,
483     };
484 
485     FeatureInfo emulateImmutableCompressedTexture3D = {
486         "emulateImmutableCompressedTexture3D",
487         FeatureCategory::OpenGLWorkarounds,
488         &members,
489     };
490 
491     FeatureInfo emulateRGB10 = {
492         "emulateRGB10",
493         FeatureCategory::OpenGLWorkarounds,
494         &members,
495     };
496 
497     FeatureInfo alwaysUnbindFramebufferTexture2D = {
498         "alwaysUnbindFramebufferTexture2D",
499         FeatureCategory::OpenGLWorkarounds,
500         &members,
501     };
502 
503     FeatureInfo disableTextureClampToBorder = {
504         "disableTextureClampToBorder",
505         FeatureCategory::OpenGLWorkarounds,
506         &members,
507     };
508 
509     FeatureInfo passHighpToPackUnormSnormBuiltins = {
510         "passHighpToPackUnormSnormBuiltins",
511         FeatureCategory::OpenGLWorkarounds,
512         &members,
513     };
514 
515     FeatureInfo emulateClipDistanceState = {
516         "emulateClipDistanceState",
517         FeatureCategory::OpenGLWorkarounds,
518         &members,
519     };
520 
521     FeatureInfo emulateClipOrigin = {
522         "emulateClipOrigin",
523         FeatureCategory::OpenGLWorkarounds,
524         &members,
525     };
526 
527     FeatureInfo bindCompleteFramebufferForTimerQueries = {
528         "bindCompleteFramebufferForTimerQueries",
529         FeatureCategory::OpenGLWorkarounds,
530         &members,
531     };
532 
533     FeatureInfo disableBaseInstanceVertex = {
534         "disableBaseInstanceVertex",
535         FeatureCategory::OpenGLWorkarounds,
536         &members,
537     };
538 
539     FeatureInfo supportsFragmentShaderInterlockNV = {
540         "supportsFragmentShaderInterlockNV",
541         FeatureCategory::OpenGLFeatures,
542         &members,
543     };
544 
545     FeatureInfo supportsFragmentShaderOrderingINTEL = {
546         "supportsFragmentShaderOrderingINTEL",
547         FeatureCategory::OpenGLFeatures,
548         &members,
549     };
550 
551     FeatureInfo supportsFragmentShaderInterlockARB = {
552         "supportsFragmentShaderInterlockARB",
553         FeatureCategory::OpenGLFeatures,
554         &members,
555     };
556 
557     FeatureInfo supportsShaderFramebufferFetchEXT = {
558         "supportsShaderFramebufferFetchEXT",
559         FeatureCategory::OpenGLFeatures,
560         &members,
561     };
562 
563     FeatureInfo supportsShaderFramebufferFetchNonCoherentEXT = {
564         "supportsShaderFramebufferFetchNonCoherentEXT",
565         FeatureCategory::OpenGLFeatures,
566         &members,
567     };
568 
569     FeatureInfo disableClipControl = {
570         "disableClipControl",
571         FeatureCategory::OpenGLFeatures,
572         &members,
573     };
574 
575     FeatureInfo scalarizeVecAndMatConstructorArgs = {
576         "scalarizeVecAndMatConstructorArgs",
577         FeatureCategory::OpenGLWorkarounds,
578         &members,
579     };
580 
581     FeatureInfo ensureNonEmptyBufferIsBoundForDraw = {
582         "ensureNonEmptyBufferIsBoundForDraw",
583         FeatureCategory::OpenGLFeatures,
584         &members,
585     };
586 
587     FeatureInfo explicitFragmentLocations = {
588         "explicitFragmentLocations",
589         FeatureCategory::OpenGLWorkarounds,
590         &members,
591     };
592 
593     FeatureInfo disableRenderSnorm = {
594         "disableRenderSnorm",
595         FeatureCategory::OpenGLWorkarounds,
596         &members,
597     };
598 
599     FeatureInfo disableTextureMirrorClampToEdge = {
600         "disableTextureMirrorClampToEdge",
601         FeatureCategory::OpenGLWorkarounds,
602         &members,
603     };
604 
605     FeatureInfo resyncDepthRangeOnClipControl = {
606         "resyncDepthRangeOnClipControl",
607         FeatureCategory::OpenGLWorkarounds,
608         &members,
609     };
610 
611     FeatureInfo corruptProgramBinaryForTesting = {
612         "corruptProgramBinaryForTesting",
613         FeatureCategory::OpenGLWorkarounds,
614         &members,
615     };
616 
617     FeatureInfo useIntermediateTextureForGenerateMipmap = {
618         "useIntermediateTextureForGenerateMipmap",
619         FeatureCategory::OpenGLWorkarounds,
620         &members,
621     };
622 
623     FeatureInfo avoidBindFragDataLocation = {
624         "avoidBindFragDataLocation",
625         FeatureCategory::OpenGLWorkarounds,
626         &members,
627     };
628 
629     FeatureInfo srgbBlendingBroken = {
630         "srgbBlendingBroken",
631         FeatureCategory::OpenGLWorkarounds,
632         &members,
633     };
634 
635     FeatureInfo bgraTexImageFormatsBroken = {
636         "bgraTexImageFormatsBroken",
637         FeatureCategory::OpenGLWorkarounds,
638         &members,
639     };
640 
641     FeatureInfo disableTiledRendering = {
642         "disableTiledRendering",
643         FeatureCategory::OpenGLWorkarounds,
644         &members,
645     };
646 
647     FeatureInfo disableBlendEquationAdvanced = {
648         "disableBlendEquationAdvanced",
649         FeatureCategory::OpenGLWorkarounds,
650         &members,
651     };
652 
653 };
654 
655 inline FeaturesGL::FeaturesGL()  = default;
656 inline FeaturesGL::~FeaturesGL() = default;
657 
658 }  // namespace angle
659 
660 #endif  // ANGLE_PLATFORM_AUTOGEN_FEATURESGL_H_
661