xref: /aosp_15_r20/external/angle/include/platform/frontend_features.json (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker{
2*8975f5c5SAndroid Build Coastguard Worker    "description": [
3*8975f5c5SAndroid Build Coastguard Worker        "Copyright 2022 The ANGLE Project Authors. All rights reserved.",
4*8975f5c5SAndroid Build Coastguard Worker        "Use of this source code is governed by a BSD-style license that can be",
5*8975f5c5SAndroid Build Coastguard Worker        "found in the LICENSE file.",
6*8975f5c5SAndroid Build Coastguard Worker        "",
7*8975f5c5SAndroid Build Coastguard Worker        "frontend_features.json: Features/workarounds for driver bugs and other behaviors seen",
8*8975f5c5SAndroid Build Coastguard Worker        "on all platforms."
9*8975f5c5SAndroid Build Coastguard Worker    ],
10*8975f5c5SAndroid Build Coastguard Worker    "features": [
11*8975f5c5SAndroid Build Coastguard Worker        {
12*8975f5c5SAndroid Build Coastguard Worker            "name": "lose_context_on_out_of_memory",
13*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
14*8975f5c5SAndroid Build Coastguard Worker            "description": [
15*8975f5c5SAndroid Build Coastguard Worker                "Some users rely on a lost context notification if a GL_OUT_OF_MEMORY error occurs"
16*8975f5c5SAndroid Build Coastguard Worker            ]
17*8975f5c5SAndroid Build Coastguard Worker        },
18*8975f5c5SAndroid Build Coastguard Worker        {
19*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_program_caching_for_transform_feedback",
20*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
21*8975f5c5SAndroid Build Coastguard Worker            "description": [
22*8975f5c5SAndroid Build Coastguard Worker                "On some GPUs, program binaries don't contain transform feedback varyings"
23*8975f5c5SAndroid Build Coastguard Worker            ]
24*8975f5c5SAndroid Build Coastguard Worker        },
25*8975f5c5SAndroid Build Coastguard Worker        {
26*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_program_binary",
27*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
28*8975f5c5SAndroid Build Coastguard Worker            "description": [
29*8975f5c5SAndroid Build Coastguard Worker                "Disable support for GL_OES_get_program_binary"
30*8975f5c5SAndroid Build Coastguard Worker            ],
31*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42263580"
32*8975f5c5SAndroid Build Coastguard Worker        },
33*8975f5c5SAndroid Build Coastguard Worker        {
34*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_draw_buffers_indexed",
35*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
36*8975f5c5SAndroid Build Coastguard Worker            "description": [
37*8975f5c5SAndroid Build Coastguard Worker                "Disable support for OES_draw_buffers_indexed and EXT_draw_buffers_indexed"
38*8975f5c5SAndroid Build Coastguard Worker            ],
39*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42266194"
40*8975f5c5SAndroid Build Coastguard Worker        },
41*8975f5c5SAndroid Build Coastguard Worker        {
42*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_anisotropic_filtering",
43*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
44*8975f5c5SAndroid Build Coastguard Worker            "description": [
45*8975f5c5SAndroid Build Coastguard Worker                "Disable support for anisotropic filtering"
46*8975f5c5SAndroid Build Coastguard Worker            ]
47*8975f5c5SAndroid Build Coastguard Worker        },
48*8975f5c5SAndroid Build Coastguard Worker        {
49*8975f5c5SAndroid Build Coastguard Worker            "name": "allow_compressed_formats",
50*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
51*8975f5c5SAndroid Build Coastguard Worker            "description": [
52*8975f5c5SAndroid Build Coastguard Worker                "Allow compressed formats"
53*8975f5c5SAndroid Build Coastguard Worker            ]
54*8975f5c5SAndroid Build Coastguard Worker        },
55*8975f5c5SAndroid Build Coastguard Worker        {
56*8975f5c5SAndroid Build Coastguard Worker            "name": "single_threaded_texture_decompression",
57*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
58*8975f5c5SAndroid Build Coastguard Worker            "description": [
59*8975f5c5SAndroid Build Coastguard Worker                "Disables multi-threaded decompression of compressed texture formats"
60*8975f5c5SAndroid Build Coastguard Worker            ]
61*8975f5c5SAndroid Build Coastguard Worker        },
62*8975f5c5SAndroid Build Coastguard Worker        {
63*8975f5c5SAndroid Build Coastguard Worker            "name": "force_depth_attachment_init_on_clear",
64*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
65*8975f5c5SAndroid Build Coastguard Worker            "description": [
66*8975f5c5SAndroid Build Coastguard Worker                "Force depth attachment initialization on clear ops"
67*8975f5c5SAndroid Build Coastguard Worker            ],
68*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42265720"
69*8975f5c5SAndroid Build Coastguard Worker        },
70*8975f5c5SAndroid Build Coastguard Worker        {
71*8975f5c5SAndroid Build Coastguard Worker            "name": "enable_capture_limits",
72*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
73*8975f5c5SAndroid Build Coastguard Worker            "description": [
74*8975f5c5SAndroid Build Coastguard Worker                "Set the context limits like frame capturing was enabled"
75*8975f5c5SAndroid Build Coastguard Worker            ],
76*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42264287"
77*8975f5c5SAndroid Build Coastguard Worker        },
78*8975f5c5SAndroid Build Coastguard Worker        {
79*8975f5c5SAndroid Build Coastguard Worker            "name": "force_robust_resource_init",
80*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
81*8975f5c5SAndroid Build Coastguard Worker            "description": [
82*8975f5c5SAndroid Build Coastguard Worker                "Force-enable robust resource init"
83*8975f5c5SAndroid Build Coastguard Worker            ],
84*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42264571"
85*8975f5c5SAndroid Build Coastguard Worker        },
86*8975f5c5SAndroid Build Coastguard Worker        {
87*8975f5c5SAndroid Build Coastguard Worker            "name": "force_init_shader_variables",
88*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
89*8975f5c5SAndroid Build Coastguard Worker            "description": [
90*8975f5c5SAndroid Build Coastguard Worker                "Force-enable shader variable initialization"
91*8975f5c5SAndroid Build Coastguard Worker            ]
92*8975f5c5SAndroid Build Coastguard Worker        },
93*8975f5c5SAndroid Build Coastguard Worker        {
94*8975f5c5SAndroid Build Coastguard Worker            "name": "enable_program_binary_for_capture",
95*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
96*8975f5c5SAndroid Build Coastguard Worker            "description": [
97*8975f5c5SAndroid Build Coastguard Worker                "Even if FrameCapture is enabled, enable GL_OES_get_program_binary"
98*8975f5c5SAndroid Build Coastguard Worker            ],
99*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42264193"
100*8975f5c5SAndroid Build Coastguard Worker        },
101*8975f5c5SAndroid Build Coastguard Worker        {
102*8975f5c5SAndroid Build Coastguard Worker            "name": "force_gl_error_checking",
103*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
104*8975f5c5SAndroid Build Coastguard Worker            "description": [
105*8975f5c5SAndroid Build Coastguard Worker                "Force GL error checking (i.e. prevent applications from disabling error checking"
106*8975f5c5SAndroid Build Coastguard Worker            ],
107*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://issuetracker.google.com/220069903"
108*8975f5c5SAndroid Build Coastguard Worker        },
109*8975f5c5SAndroid Build Coastguard Worker        {
110*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_pixel_local_storage",
111*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
112*8975f5c5SAndroid Build Coastguard Worker            "description": [
113*8975f5c5SAndroid Build Coastguard Worker                "Emulate ANGLE_shader_pixel_local_storage using shader images"
114*8975f5c5SAndroid Build Coastguard Worker            ],
115*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096838"
116*8975f5c5SAndroid Build Coastguard Worker        },
117*8975f5c5SAndroid Build Coastguard Worker        {
118*8975f5c5SAndroid Build Coastguard Worker            "name": "cache_compiled_shader",
119*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
120*8975f5c5SAndroid Build Coastguard Worker            "description": [
121*8975f5c5SAndroid Build Coastguard Worker                "Enable to cache compiled shaders"
122*8975f5c5SAndroid Build Coastguard Worker            ],
123*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42265509"
124*8975f5c5SAndroid Build Coastguard Worker        },
125*8975f5c5SAndroid Build Coastguard Worker        {
126*8975f5c5SAndroid Build Coastguard Worker            "name": "dump_shader_source",
127*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
128*8975f5c5SAndroid Build Coastguard Worker            "description": [
129*8975f5c5SAndroid Build Coastguard Worker                "Write shader source to temp directory"
130*8975f5c5SAndroid Build Coastguard Worker            ],
131*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42266231"
132*8975f5c5SAndroid Build Coastguard Worker        },
133*8975f5c5SAndroid Build Coastguard Worker        {
134*8975f5c5SAndroid Build Coastguard Worker            "name": "enable_shader_substitution",
135*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
136*8975f5c5SAndroid Build Coastguard Worker            "description": [
137*8975f5c5SAndroid Build Coastguard Worker                "Check the filesystem for shaders to use instead of those provided through glShaderSource"
138*8975f5c5SAndroid Build Coastguard Worker            ],
139*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42266232"
140*8975f5c5SAndroid Build Coastguard Worker        },
141*8975f5c5SAndroid Build Coastguard Worker        {
142*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_program_caching",
143*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
144*8975f5c5SAndroid Build Coastguard Worker            "description": [
145*8975f5c5SAndroid Build Coastguard Worker                "Disables saving programs to the cache"
146*8975f5c5SAndroid Build Coastguard Worker            ],
147*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/1423136"
148*8975f5c5SAndroid Build Coastguard Worker        },
149*8975f5c5SAndroid Build Coastguard Worker        {
150*8975f5c5SAndroid Build Coastguard Worker            "name": "dump_translated_shaders",
151*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
152*8975f5c5SAndroid Build Coastguard Worker            "description": [
153*8975f5c5SAndroid Build Coastguard Worker                "Write translated shaders to temp directory"
154*8975f5c5SAndroid Build Coastguard Worker            ],
155*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40644912"
156*8975f5c5SAndroid Build Coastguard Worker        },
157*8975f5c5SAndroid Build Coastguard Worker        {
158*8975f5c5SAndroid Build Coastguard Worker            "name": "enable_translated_shader_substitution",
159*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
160*8975f5c5SAndroid Build Coastguard Worker            "description": [
161*8975f5c5SAndroid Build Coastguard Worker                "Check the filesystem for translated shaders to use instead of the shader translator's"
162*8975f5c5SAndroid Build Coastguard Worker            ],
163*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40644912"
164*8975f5c5SAndroid Build Coastguard Worker        },
165*8975f5c5SAndroid Build Coastguard Worker        {
166*8975f5c5SAndroid Build Coastguard Worker            "name": "compile_job_is_thread_safe",
167*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
168*8975f5c5SAndroid Build Coastguard Worker            "description": [
169*8975f5c5SAndroid Build Coastguard Worker                "If false, parts of the compile job cannot be parallelized"
170*8975f5c5SAndroid Build Coastguard Worker            ],
171*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/41488637"
172*8975f5c5SAndroid Build Coastguard Worker        },
173*8975f5c5SAndroid Build Coastguard Worker        {
174*8975f5c5SAndroid Build Coastguard Worker            "name": "link_job_is_thread_safe",
175*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
176*8975f5c5SAndroid Build Coastguard Worker            "description": [
177*8975f5c5SAndroid Build Coastguard Worker                "If false, parts of the link job cannot be parallelized"
178*8975f5c5SAndroid Build Coastguard Worker            ],
179*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/41488637"
180*8975f5c5SAndroid Build Coastguard Worker        },
181*8975f5c5SAndroid Build Coastguard Worker        {
182*8975f5c5SAndroid Build Coastguard Worker            "name": "always_run_link_sub_jobs_threaded",
183*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
184*8975f5c5SAndroid Build Coastguard Worker            "description": [
185*8975f5c5SAndroid Build Coastguard Worker                "If true, sub tasks of the link job are always threaded, regardless of GL_KHR_parallel_shader_compile"
186*8975f5c5SAndroid Build Coastguard Worker            ],
187*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42266842"
188*8975f5c5SAndroid Build Coastguard Worker        },
189*8975f5c5SAndroid Build Coastguard Worker        {
190*8975f5c5SAndroid Build Coastguard Worker            "name": "uncurrent_egl_surface_upon_surface_destroy",
191*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
192*8975f5c5SAndroid Build Coastguard Worker            "description": [
193*8975f5c5SAndroid Build Coastguard Worker                "Make egl surface uncurrent when calling eglDestroySurface(), if the surface is still bound by the context of current render thread"
194*8975f5c5SAndroid Build Coastguard Worker            ],
195*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://issuetracker.google.com/292285899"
196*8975f5c5SAndroid Build Coastguard Worker        },
197*8975f5c5SAndroid Build Coastguard Worker        {
198*8975f5c5SAndroid Build Coastguard Worker            "name": "force_minimum_max_vertex_attributes",
199*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
200*8975f5c5SAndroid Build Coastguard Worker            "description": [
201*8975f5c5SAndroid Build Coastguard Worker                "Force the minimum GL_MAX_VERTEX_ATTRIBS that the context's client version allows."
202*8975f5c5SAndroid Build Coastguard Worker            ],
203*8975f5c5SAndroid Build Coastguard Worker            "issue": ""
204*8975f5c5SAndroid Build Coastguard Worker        },
205*8975f5c5SAndroid Build Coastguard Worker        {
206*8975f5c5SAndroid Build Coastguard Worker            "name": "force_flush_after_drawcall_using_shadowmap",
207*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
208*8975f5c5SAndroid Build Coastguard Worker            "description": [
209*8975f5c5SAndroid Build Coastguard Worker                "Force flush after drawcall use shadow map for intel device."
210*8975f5c5SAndroid Build Coastguard Worker            ],
211*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://issuetracker.google.com/349489248"
212*8975f5c5SAndroid Build Coastguard Worker        },
213*8975f5c5SAndroid Build Coastguard Worker        {
214*8975f5c5SAndroid Build Coastguard Worker            "name": "reject_webgl_shaders_with_undefined_behavior",
215*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
216*8975f5c5SAndroid Build Coastguard Worker            "description": [
217*8975f5c5SAndroid Build Coastguard Worker                "Attempts to detect undefined behavior when in WebGL mode and reject shaders if any detected."
218*8975f5c5SAndroid Build Coastguard Worker            ],
219*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/350528343"
220*8975f5c5SAndroid Build Coastguard Worker        },
221*8975f5c5SAndroid Build Coastguard Worker        {
222*8975f5c5SAndroid Build Coastguard Worker            "name": "always_enable_emulated_multidraw_extensions",
223*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
224*8975f5c5SAndroid Build Coastguard Worker            "description": [
225*8975f5c5SAndroid Build Coastguard Worker                "Enable multi-draw and base vertex base instance extensions for non-WebGL contexts if they are emulated."
226*8975f5c5SAndroid Build Coastguard Worker            ],
227*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/355645824"
228*8975f5c5SAndroid Build Coastguard Worker        }
229*8975f5c5SAndroid Build Coastguard Worker    ]
230*8975f5c5SAndroid Build Coastguard Worker}
231