• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // GENERATED FILE - DO NOT EDIT.
2 // Generated by gen_features.py using data from frontend_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 // FrontendFeatures.h: Features/workarounds for driver bugs and other behaviors seen
9 // on all platforms.
10 
11 #ifndef ANGLE_PLATFORM_FRONTENDFEATURES_H_
12 #define ANGLE_PLATFORM_FRONTENDFEATURES_H_
13 
14 #include "platform/Feature.h"
15 
16 namespace angle
17 {
18 
19 struct FrontendFeatures : FeatureSetBase
20 {
21     FrontendFeatures();
22     ~FrontendFeatures();
23 
24     FeatureInfo loseContextOnOutOfMemory = {
25         "loseContextOnOutOfMemory",
26         FeatureCategory::FrontendWorkarounds,
27         "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs",
28         &members,
29     };
30 
31     FeatureInfo disableProgramCachingForTransformFeedback = {
32         "disableProgramCachingForTransformFeedback",
33         FeatureCategory::FrontendWorkarounds,
34         "On some GPUs, program binaries don't contain transform feedback varyings",
35         &members,
36     };
37 
38     FeatureInfo scalarizeVecAndMatConstructorArgs = {
39         "scalarizeVecAndMatConstructorArgs", FeatureCategory::FrontendWorkarounds,
40         "Always rewrite vec/mat constructors to be consistent", &members,
41         "http://crbug.com/1165751"};
42 
43     FeatureInfo disableProgramBinary = {"disableProgramBinary", FeatureCategory::FrontendFeatures,
44                                         "Disable support for GL_OES_get_program_binary", &members,
45                                         "http://anglebug.com/5007"};
46 
47     FeatureInfo disableAnisotropicFiltering = {
48         "disableAnisotropicFiltering",
49         FeatureCategory::FrontendWorkarounds,
50         "Disable support for anisotropic filtering",
51         &members,
52     };
53 
54     FeatureInfo allowCompressedFormats = {
55         "allowCompressedFormats",
56         FeatureCategory::FrontendWorkarounds,
57         "Allow compressed formats",
58         &members,
59     };
60 
61     FeatureInfo enableCaptureLimits = {"enableCaptureLimits", FeatureCategory::FrontendFeatures,
62                                        "Set the context limits like frame capturing was enabled",
63                                        &members, "http://anglebug.com/5750"};
64 
65     FeatureInfo enableCompressingPipelineCacheInThreadPool = {
66         "enableCompressingPipelineCacheInThreadPool", FeatureCategory::FrontendWorkarounds,
67         "Enable compressing pipeline cache in thread pool.", &members, "http://anglebug.com/4722"};
68 
69     FeatureInfo forceRobustResourceInit = {
70         "forceRobustResourceInit", FeatureCategory::FrontendFeatures,
71         "Force-enable robust resource init", &members, "http://anglebug.com/6041"};
72 
73     FeatureInfo forceInitShaderVariables = {
74         "forceInitShaderVariables",
75         FeatureCategory::FrontendFeatures,
76         "Force-enable shader variable initialization",
77         &members,
78     };
79 
80     FeatureInfo enableProgramBinaryForCapture = {
81         "enableProgramBinaryForCapture", FeatureCategory::FrontendFeatures,
82         "Even if FrameCapture is enabled, enable GL_OES_get_program_binary", &members,
83         "http://anglebug.com/5658"};
84 
85     FeatureInfo forceGlErrorChecking = {
86         "forceGlErrorChecking", FeatureCategory::FrontendFeatures,
87         "Force GL error checking (i.e. prevent applications from disabling error checking",
88         &members, "https://issuetracker.google.com/220069903"};
89 };
90 
91 inline FrontendFeatures::FrontendFeatures()  = default;
92 inline FrontendFeatures::~FrontendFeatures() = default;
93 
94 }  // namespace angle
95 
96 #endif  // ANGLE_PLATFORM_FRONTENDFEATURES_H_
97