xref: /aosp_15_r20/external/angle/include/platform/gl_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        "gl_features.json: angle::Features and workarounds for GL driver bugs and other issues."
8*8975f5c5SAndroid Build Coastguard Worker    ],
9*8975f5c5SAndroid Build Coastguard Worker    "features": [
10*8975f5c5SAndroid Build Coastguard Worker        {
11*8975f5c5SAndroid Build Coastguard Worker            "name": "avoid_1_bit_alpha_texture_formats",
12*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
13*8975f5c5SAndroid Build Coastguard Worker            "description": [
14*8975f5c5SAndroid Build Coastguard Worker                "Issue with 1-bit alpha framebuffer formats"
15*8975f5c5SAndroid Build Coastguard Worker            ]
16*8975f5c5SAndroid Build Coastguard Worker        },
17*8975f5c5SAndroid Build Coastguard Worker        {
18*8975f5c5SAndroid Build Coastguard Worker            "name": "RGBA4_is_not_supported_for_color_rendering",
19*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
20*8975f5c5SAndroid Build Coastguard Worker            "description": [
21*8975f5c5SAndroid Build Coastguard Worker                "GL_RGBA4 is not color renderable"
22*8975f5c5SAndroid Build Coastguard Worker            ]
23*8975f5c5SAndroid Build Coastguard Worker        },
24*8975f5c5SAndroid Build Coastguard Worker        {
25*8975f5c5SAndroid Build Coastguard Worker            "name": "allow_ETC_formats",
26*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
27*8975f5c5SAndroid Build Coastguard Worker            "description": [
28*8975f5c5SAndroid Build Coastguard Worker                "Enable ETC2/EAC on desktop OpenGL"
29*8975f5c5SAndroid Build Coastguard Worker            ]
30*8975f5c5SAndroid Build Coastguard Worker        },
31*8975f5c5SAndroid Build Coastguard Worker        {
32*8975f5c5SAndroid Build Coastguard Worker            "name": "allow_astc_formats",
33*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
34*8975f5c5SAndroid Build Coastguard Worker            "description": [
35*8975f5c5SAndroid Build Coastguard Worker                "Enable ASTC on desktop OpenGL"
36*8975f5c5SAndroid Build Coastguard Worker            ]
37*8975f5c5SAndroid Build Coastguard Worker        },
38*8975f5c5SAndroid Build Coastguard Worker        {
39*8975f5c5SAndroid Build Coastguard Worker            "name": "clears_with_gaps_need_flush",
40*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
41*8975f5c5SAndroid Build Coastguard Worker            "description": [
42*8975f5c5SAndroid Build Coastguard Worker                "Clearing an FBO with multiple attachments may need a flush to avoid race conditions"
43*8975f5c5SAndroid Build Coastguard Worker            ]
44*8975f5c5SAndroid Build Coastguard Worker        },
45*8975f5c5SAndroid Build Coastguard Worker        {
46*8975f5c5SAndroid Build Coastguard Worker            "name": "does_SRGB_clears_on_linear_framebuffer_attachments",
47*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
48*8975f5c5SAndroid Build Coastguard Worker            "description": [
49*8975f5c5SAndroid Build Coastguard Worker                "Issue clearing framebuffers with linear attachments when GL_FRAMEBUFFER_SRGB is enabled"
50*8975f5c5SAndroid Build Coastguard Worker            ]
51*8975f5c5SAndroid Build Coastguard Worker        },
52*8975f5c5SAndroid Build Coastguard Worker        {
53*8975f5c5SAndroid Build Coastguard Worker            "name": "do_while_GLSL_causes_GPU_hang",
54*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
55*8975f5c5SAndroid Build Coastguard Worker            "description": [
56*8975f5c5SAndroid Build Coastguard Worker                "Some GLSL constructs involving do-while loops cause GPU hangs"
57*8975f5c5SAndroid Build Coastguard Worker            ],
58*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/644669"
59*8975f5c5SAndroid Build Coastguard Worker        },
60*8975f5c5SAndroid Build Coastguard Worker        {
61*8975f5c5SAndroid Build Coastguard Worker            "name": "vertex_ID_does_not_include_base_vertex",
62*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
63*8975f5c5SAndroid Build Coastguard Worker            "description": [
64*8975f5c5SAndroid Build Coastguard Worker                "gl_VertexID in GLSL vertex shader doesn't include base vertex value"
65*8975f5c5SAndroid Build Coastguard Worker            ]
66*8975f5c5SAndroid Build Coastguard Worker        },
67*8975f5c5SAndroid Build Coastguard Worker        {
68*8975f5c5SAndroid Build Coastguard Worker            "name": "finish_does_not_cause_queries_to_be_available",
69*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
70*8975f5c5SAndroid Build Coastguard Worker            "description": [
71*8975f5c5SAndroid Build Coastguard Worker                "glFinish doesn't cause all queries to report available result"
72*8975f5c5SAndroid Build Coastguard Worker            ]
73*8975f5c5SAndroid Build Coastguard Worker        },
74*8975f5c5SAndroid Build Coastguard Worker        {
75*8975f5c5SAndroid Build Coastguard Worker            "name": "always_call_use_program_after_link",
76*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
77*8975f5c5SAndroid Build Coastguard Worker            "description": [
78*8975f5c5SAndroid Build Coastguard Worker                "Always call useProgram after a successful link to avoid a driver bug"
79*8975f5c5SAndroid Build Coastguard Worker            ],
80*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/110263"
81*8975f5c5SAndroid Build Coastguard Worker        },
82*8975f5c5SAndroid Build Coastguard Worker        {
83*8975f5c5SAndroid Build Coastguard Worker            "name": "unpack_overlapping_rows_separately_unpack_buffer",
84*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
85*8975f5c5SAndroid Build Coastguard Worker            "description": [
86*8975f5c5SAndroid Build Coastguard Worker                "In the case of unpacking from a pixel unpack buffer, unpack overlapping rows row by row"
87*8975f5c5SAndroid Build Coastguard Worker            ]
88*8975f5c5SAndroid Build Coastguard Worker        },
89*8975f5c5SAndroid Build Coastguard Worker        {
90*8975f5c5SAndroid Build Coastguard Worker            "name": "pack_overlapping_rows_separately_pack_buffer",
91*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
92*8975f5c5SAndroid Build Coastguard Worker            "description": [
93*8975f5c5SAndroid Build Coastguard Worker                "In the case of packing to a pixel pack buffer, pack overlapping rows row by row"
94*8975f5c5SAndroid Build Coastguard Worker            ]
95*8975f5c5SAndroid Build Coastguard Worker        },
96*8975f5c5SAndroid Build Coastguard Worker        {
97*8975f5c5SAndroid Build Coastguard Worker            "name": "initialize_current_vertex_attributes",
98*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
99*8975f5c5SAndroid Build Coastguard Worker            "description": [
100*8975f5c5SAndroid Build Coastguard Worker                "During initialization, assign the current vertex attributes to the spec-mandated defaults"
101*8975f5c5SAndroid Build Coastguard Worker            ]
102*8975f5c5SAndroid Build Coastguard Worker        },
103*8975f5c5SAndroid Build Coastguard Worker        {
104*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_abs_int_function",
105*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
106*8975f5c5SAndroid Build Coastguard Worker            "description": [
107*8975f5c5SAndroid Build Coastguard Worker                "abs(i) where i is an integer returns unexpected result"
108*8975f5c5SAndroid Build Coastguard Worker            ],
109*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/642227"
110*8975f5c5SAndroid Build Coastguard Worker        },
111*8975f5c5SAndroid Build Coastguard Worker        {
112*8975f5c5SAndroid Build Coastguard Worker            "name": "add_and_true_to_loop_condition",
113*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
114*8975f5c5SAndroid Build Coastguard Worker            "description": [
115*8975f5c5SAndroid Build Coastguard Worker                "Calculation of loop conditions in for and while loop has bug"
116*8975f5c5SAndroid Build Coastguard Worker            ]
117*8975f5c5SAndroid Build Coastguard Worker        },
118*8975f5c5SAndroid Build Coastguard Worker        {
119*8975f5c5SAndroid Build Coastguard Worker            "name": "unpack_last_row_separately_for_padding_inclusion",
120*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
121*8975f5c5SAndroid Build Coastguard Worker            "description": [
122*8975f5c5SAndroid Build Coastguard Worker                "When uploading textures from an unpack buffer, some drivers count an extra row padding"
123*8975f5c5SAndroid Build Coastguard Worker            ],
124*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42260492"
125*8975f5c5SAndroid Build Coastguard Worker        },
126*8975f5c5SAndroid Build Coastguard Worker        {
127*8975f5c5SAndroid Build Coastguard Worker            "name": "pack_last_row_separately_for_padding_inclusion",
128*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
129*8975f5c5SAndroid Build Coastguard Worker            "description": [
130*8975f5c5SAndroid Build Coastguard Worker                "When uploading textures from an pack buffer, some drivers count an extra row padding"
131*8975f5c5SAndroid Build Coastguard Worker            ],
132*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42260492"
133*8975f5c5SAndroid Build Coastguard Worker        },
134*8975f5c5SAndroid Build Coastguard Worker        {
135*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_isnan_float",
136*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
137*8975f5c5SAndroid Build Coastguard Worker            "description": [
138*8975f5c5SAndroid Build Coastguard Worker                "Using isnan() on highp float will get wrong answer"
139*8975f5c5SAndroid Build Coastguard Worker            ],
140*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/650547"
141*8975f5c5SAndroid Build Coastguard Worker        },
142*8975f5c5SAndroid Build Coastguard Worker        {
143*8975f5c5SAndroid Build Coastguard Worker            "name": "use_unused_blocks_with_standard_or_shared_layout",
144*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
145*8975f5c5SAndroid Build Coastguard Worker            "description": [
146*8975f5c5SAndroid Build Coastguard Worker                "Unused std140 or shared uniform blocks will be treated as inactive"
147*8975f5c5SAndroid Build Coastguard Worker            ]
148*8975f5c5SAndroid Build Coastguard Worker        },
149*8975f5c5SAndroid Build Coastguard Worker        {
150*8975f5c5SAndroid Build Coastguard Worker            "name": "remove_invariant_and_centroid_for_ESSL3",
151*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
152*8975f5c5SAndroid Build Coastguard Worker            "description": [
153*8975f5c5SAndroid Build Coastguard Worker                "Fix spec difference between GLSL 4.1 or lower and ESSL3"
154*8975f5c5SAndroid Build Coastguard Worker            ]
155*8975f5c5SAndroid Build Coastguard Worker        },
156*8975f5c5SAndroid Build Coastguard Worker        {
157*8975f5c5SAndroid Build Coastguard Worker            "name": "rewrite_float_unary_minus_operator",
158*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
159*8975f5c5SAndroid Build Coastguard Worker            "description": [
160*8975f5c5SAndroid Build Coastguard Worker                "Using '-<float>' will get wrong answer"
161*8975f5c5SAndroid Build Coastguard Worker            ],
162*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/308366"
163*8975f5c5SAndroid Build Coastguard Worker        },
164*8975f5c5SAndroid Build Coastguard Worker        {
165*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_atan_2_float",
166*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
167*8975f5c5SAndroid Build Coastguard Worker            "description": [
168*8975f5c5SAndroid Build Coastguard Worker                "atan(y, x) may return a wrong answer"
169*8975f5c5SAndroid Build Coastguard Worker            ],
170*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/672380"
171*8975f5c5SAndroid Build Coastguard Worker        },
172*8975f5c5SAndroid Build Coastguard Worker        {
173*8975f5c5SAndroid Build Coastguard Worker            "name": "reapply_UBO_bindings_after_using_binary_program",
174*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
175*8975f5c5SAndroid Build Coastguard Worker            "description": [
176*8975f5c5SAndroid Build Coastguard Worker                "Some drivers forget about UBO bindings when using program binaries"
177*8975f5c5SAndroid Build Coastguard Worker            ],
178*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42260591"
179*8975f5c5SAndroid Build Coastguard Worker        },
180*8975f5c5SAndroid Build Coastguard Worker        {
181*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_max_vertex_attrib_stride",
182*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
183*8975f5c5SAndroid Build Coastguard Worker            "description": [
184*8975f5c5SAndroid Build Coastguard Worker                "Some drivers return 0 when MAX_VERTEX_ATTRIB_STRIED queried"
185*8975f5c5SAndroid Build Coastguard Worker            ],
186*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42260722"
187*8975f5c5SAndroid Build Coastguard Worker        },
188*8975f5c5SAndroid Build Coastguard Worker        {
189*8975f5c5SAndroid Build Coastguard Worker            "name": "dont_initialize_uninitialized_locals",
190*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
191*8975f5c5SAndroid Build Coastguard Worker            "description": [
192*8975f5c5SAndroid Build Coastguard Worker                "Initializing uninitialized locals caused odd behavior in a few WebGL 2 tests"
193*8975f5c5SAndroid Build Coastguard Worker            ],
194*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096454"
195*8975f5c5SAndroid Build Coastguard Worker        },
196*8975f5c5SAndroid Build Coastguard Worker        {
197*8975f5c5SAndroid Build Coastguard Worker            "name": "clamp_point_size",
198*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
199*8975f5c5SAndroid Build Coastguard Worker            "description": [
200*8975f5c5SAndroid Build Coastguard Worker                "The point size range reported from the API is inconsistent with the actual behavior"
201*8975f5c5SAndroid Build Coastguard Worker            ]
202*8975f5c5SAndroid Build Coastguard Worker        },
203*8975f5c5SAndroid Build Coastguard Worker        {
204*8975f5c5SAndroid Build Coastguard Worker            "name": "dont_use_loops_to_initialize_variables",
205*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
206*8975f5c5SAndroid Build Coastguard Worker            "description": [
207*8975f5c5SAndroid Build Coastguard Worker                "For loops used to initialize variables hit native GLSL compiler bugs"
208*8975f5c5SAndroid Build Coastguard Worker            ],
209*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/809422"
210*8975f5c5SAndroid Build Coastguard Worker        },
211*8975f5c5SAndroid Build Coastguard Worker        {
212*8975f5c5SAndroid Build Coastguard Worker            "name": "clamp_frag_depth",
213*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
214*8975f5c5SAndroid Build Coastguard Worker            "description": [
215*8975f5c5SAndroid Build Coastguard Worker                "gl_FragDepth is not clamped correctly when rendering to a floating point depth buffer"
216*8975f5c5SAndroid Build Coastguard Worker            ]
217*8975f5c5SAndroid Build Coastguard Worker        },
218*8975f5c5SAndroid Build Coastguard Worker        {
219*8975f5c5SAndroid Build Coastguard Worker            "name": "rewrite_repeated_assign_to_swizzled",
220*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
221*8975f5c5SAndroid Build Coastguard Worker            "description": [
222*8975f5c5SAndroid Build Coastguard Worker                "Repeated assignment to swizzled values inside a ",
223*8975f5c5SAndroid Build Coastguard Worker                "GLSL user-defined function have incorrect results"
224*8975f5c5SAndroid Build Coastguard Worker            ]
225*8975f5c5SAndroid Build Coastguard Worker        },
226*8975f5c5SAndroid Build Coastguard Worker        {
227*8975f5c5SAndroid Build Coastguard Worker            "name": "pre_transform_texture_cube_grad_derivatives",
228*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
229*8975f5c5SAndroid Build Coastguard Worker            "description": [
230*8975f5c5SAndroid Build Coastguard Worker                "Apply a vendor-specific transformation to explicit cubemap derivatives"
231*8975f5c5SAndroid Build Coastguard Worker            ]
232*8975f5c5SAndroid Build Coastguard Worker        },
233*8975f5c5SAndroid Build Coastguard Worker        {
234*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_blend_func_extended",
235*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
236*8975f5c5SAndroid Build Coastguard Worker            "description": [
237*8975f5c5SAndroid Build Coastguard Worker                "ARB_blend_func_extended does not pass the tests"
238*8975f5c5SAndroid Build Coastguard Worker            ],
239*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40644593"
240*8975f5c5SAndroid Build Coastguard Worker        },
241*8975f5c5SAndroid Build Coastguard Worker        {
242*8975f5c5SAndroid Build Coastguard Worker            "name": "unsized_SRGB_read_pixels_doesnt_transform",
243*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
244*8975f5c5SAndroid Build Coastguard Worker            "description": [
245*8975f5c5SAndroid Build Coastguard Worker                "Drivers returning raw sRGB values instead of linearized values when calling glReadPixels ",
246*8975f5c5SAndroid Build Coastguard Worker                "on unsized sRGB texture formats"
247*8975f5c5SAndroid Build Coastguard Worker            ],
248*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/550292 http://crbug.com/565179"
249*8975f5c5SAndroid Build Coastguard Worker        },
250*8975f5c5SAndroid Build Coastguard Worker        {
251*8975f5c5SAndroid Build Coastguard Worker            "name": "query_counter_bits_generates_errors",
252*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
253*8975f5c5SAndroid Build Coastguard Worker            "description": [
254*8975f5c5SAndroid Build Coastguard Worker                "Drivers generate errors when querying the number of bits in timer queries"
255*8975f5c5SAndroid Build Coastguard Worker            ],
256*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42261713"
257*8975f5c5SAndroid Build Coastguard Worker        },
258*8975f5c5SAndroid Build Coastguard Worker        {
259*8975f5c5SAndroid Build Coastguard Worker            "name": "limit_webgl_max_texture_size_to_4096",
260*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
261*8975f5c5SAndroid Build Coastguard Worker            "description": [
262*8975f5c5SAndroid Build Coastguard Worker                "Limit webgl max texture size to 4096 to avoid frequent ",
263*8975f5c5SAndroid Build Coastguard Worker                "out-of-memory errors"
264*8975f5c5SAndroid Build Coastguard Worker            ],
265*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/927470"
266*8975f5c5SAndroid Build Coastguard Worker        },
267*8975f5c5SAndroid Build Coastguard Worker        {
268*8975f5c5SAndroid Build Coastguard Worker            "name": "limit_webgl_max_texture_size_to_8192",
269*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
270*8975f5c5SAndroid Build Coastguard Worker            "description": [
271*8975f5c5SAndroid Build Coastguard Worker                "Limit webgl max texture size to 8192 to avoid frequent ",
272*8975f5c5SAndroid Build Coastguard Worker                "out-of-memory errors"
273*8975f5c5SAndroid Build Coastguard Worker            ],
274*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42267045"
275*8975f5c5SAndroid Build Coastguard Worker        },
276*8975f5c5SAndroid Build Coastguard Worker        {
277*8975f5c5SAndroid Build Coastguard Worker            "name": "limit_max_MSAA_samples_to_4",
278*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
279*8975f5c5SAndroid Build Coastguard Worker            "description": [
280*8975f5c5SAndroid Build Coastguard Worker                "Various rendering bugs have been observed when using higher MSAA counts"
281*8975f5c5SAndroid Build Coastguard Worker            ],
282*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/797243"
283*8975f5c5SAndroid Build Coastguard Worker        },
284*8975f5c5SAndroid Build Coastguard Worker        {
285*8975f5c5SAndroid Build Coastguard Worker            "name": "allow_clear_for_robust_resource_init",
286*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
287*8975f5c5SAndroid Build Coastguard Worker            "description": [
288*8975f5c5SAndroid Build Coastguard Worker                "Using glClear for robust resource initialization is buggy on some drivers and leads to ",
289*8975f5c5SAndroid Build Coastguard Worker                "texture corruption. Default to data uploads except on MacOS where it is very slow."
290*8975f5c5SAndroid Build Coastguard Worker            ],
291*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/848952 http://crbug.com/883276"
292*8975f5c5SAndroid Build Coastguard Worker        },
293*8975f5c5SAndroid Build Coastguard Worker        {
294*8975f5c5SAndroid Build Coastguard Worker            "name": "clamp_array_access",
295*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
296*8975f5c5SAndroid Build Coastguard Worker            "description": [
297*8975f5c5SAndroid Build Coastguard Worker                "Clamp uniform array access to avoid reading invalid memory."
298*8975f5c5SAndroid Build Coastguard Worker            ],
299*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096539"
300*8975f5c5SAndroid Build Coastguard Worker        },
301*8975f5c5SAndroid Build Coastguard Worker        {
302*8975f5c5SAndroid Build Coastguard Worker            "name": "reset_TexImage2D_base_level",
303*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
304*8975f5c5SAndroid Build Coastguard Worker            "description": [
305*8975f5c5SAndroid Build Coastguard Worker                "Reset texture base level before calling glTexImage2D to ",
306*8975f5c5SAndroid Build Coastguard Worker                "work around pixel comparison failure."
307*8975f5c5SAndroid Build Coastguard Worker            ],
308*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/705865"
309*8975f5c5SAndroid Build Coastguard Worker        },
310*8975f5c5SAndroid Build Coastguard Worker        {
311*8975f5c5SAndroid Build Coastguard Worker            "name": "clear_to_zero_or_one_broken",
312*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
313*8975f5c5SAndroid Build Coastguard Worker            "description": [
314*8975f5c5SAndroid Build Coastguard Worker                "Clears when the clear color is all zeros or ones do not work."
315*8975f5c5SAndroid Build Coastguard Worker            ],
316*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/710443"
317*8975f5c5SAndroid Build Coastguard Worker        },
318*8975f5c5SAndroid Build Coastguard Worker        {
319*8975f5c5SAndroid Build Coastguard Worker            "name": "limit_max_3d_array_texture_size_to_1024",
320*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
321*8975f5c5SAndroid Build Coastguard Worker            "description": [
322*8975f5c5SAndroid Build Coastguard Worker                "Limit max 3d texture size and max array texture layers to 1024 to avoid system hang"
323*8975f5c5SAndroid Build Coastguard Worker            ],
324*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/927470"
325*8975f5c5SAndroid Build Coastguard Worker        },
326*8975f5c5SAndroid Build Coastguard Worker        {
327*8975f5c5SAndroid Build Coastguard Worker            "name": "adjust_src_dst_region_for_BlitFramebuffer",
328*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
329*8975f5c5SAndroid Build Coastguard Worker            "description": [
330*8975f5c5SAndroid Build Coastguard Worker                "Many platforms have issues with blitFramebuffer when the parameters are large."
331*8975f5c5SAndroid Build Coastguard Worker            ],
332*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/830046"
333*8975f5c5SAndroid Build Coastguard Worker        },
334*8975f5c5SAndroid Build Coastguard Worker        {
335*8975f5c5SAndroid Build Coastguard Worker            "name": "clip_src_region_for_BlitFramebuffer",
336*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
337*8975f5c5SAndroid Build Coastguard Worker            "description": [
338*8975f5c5SAndroid Build Coastguard Worker                "Issues with blitFramebuffer when the parameters don't match the framebuffer size."
339*8975f5c5SAndroid Build Coastguard Worker            ],
340*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/830046"
341*8975f5c5SAndroid Build Coastguard Worker        },
342*8975f5c5SAndroid Build Coastguard Worker        {
343*8975f5c5SAndroid Build Coastguard Worker            "name": "RGB_DXT1_textures_sample_zero_alpha",
344*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
345*8975f5c5SAndroid Build Coastguard Worker            "description": [
346*8975f5c5SAndroid Build Coastguard Worker                "Sampling BLACK texels from RGB DXT1 textures returns transparent black on Mac."
347*8975f5c5SAndroid Build Coastguard Worker            ],
348*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42262386"
349*8975f5c5SAndroid Build Coastguard Worker        },
350*8975f5c5SAndroid Build Coastguard Worker        {
351*8975f5c5SAndroid Build Coastguard Worker            "name": "unfold_short_circuits",
352*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
353*8975f5c5SAndroid Build Coastguard Worker            "description": [
354*8975f5c5SAndroid Build Coastguard Worker                "Mac incorrectly executes both sides of && and || expressions when they should ",
355*8975f5c5SAndroid Build Coastguard Worker                "short-circuit."
356*8975f5c5SAndroid Build Coastguard Worker            ],
357*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42263407"
358*8975f5c5SAndroid Build Coastguard Worker        },
359*8975f5c5SAndroid Build Coastguard Worker        {
360*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_primitive_restart_fixed_index",
361*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
362*8975f5c5SAndroid Build Coastguard Worker            "description": [
363*8975f5c5SAndroid Build Coastguard Worker                "When GL_PRIMITIVE_RESTART_FIXED_INDEX is not available, emulate it with ",
364*8975f5c5SAndroid Build Coastguard Worker                "GL_PRIMITIVE_RESTART and glPrimitiveRestartIndex."
365*8975f5c5SAndroid Build Coastguard Worker            ],
366*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096648"
367*8975f5c5SAndroid Build Coastguard Worker        },
368*8975f5c5SAndroid Build Coastguard Worker        {
369*8975f5c5SAndroid Build Coastguard Worker            "name": "set_primitive_restart_fixed_index_for_draw_arrays",
370*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
371*8975f5c5SAndroid Build Coastguard Worker            "description": [
372*8975f5c5SAndroid Build Coastguard Worker                "Some drivers discard vertex data in DrawArrays calls when the fixed primitive restart ",
373*8975f5c5SAndroid Build Coastguard Worker                "index is within the number of primitives being drawn."
374*8975f5c5SAndroid Build Coastguard Worker            ],
375*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096648"
376*8975f5c5SAndroid Build Coastguard Worker        },
377*8975f5c5SAndroid Build Coastguard Worker        {
378*8975f5c5SAndroid Build Coastguard Worker            "name": "remove_dynamic_indexing_of_swizzled_vector",
379*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
380*8975f5c5SAndroid Build Coastguard Worker            "description": [
381*8975f5c5SAndroid Build Coastguard Worker                "Dynamic indexing of swizzled l-values doesn't work correctly on various platforms."
382*8975f5c5SAndroid Build Coastguard Worker            ],
383*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/709351"
384*8975f5c5SAndroid Build Coastguard Worker        },
385*8975f5c5SAndroid Build Coastguard Worker        {
386*8975f5c5SAndroid Build Coastguard Worker            "name": "pre_add_texel_fetch_offsets",
387*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
388*8975f5c5SAndroid Build Coastguard Worker            "description": [
389*8975f5c5SAndroid Build Coastguard Worker                "Intel Mac drivers mistakenly consider the parameter position of nagative vaule as invalid ",
390*8975f5c5SAndroid Build Coastguard Worker                "even if the sum of position and offset is in range, so we need to add workarounds by ",
391*8975f5c5SAndroid Build Coastguard Worker                "rewriting texelFetchOffset(sampler, position, lod, offset) into texelFetch(sampler, ",
392*8975f5c5SAndroid Build Coastguard Worker                "position + offset, lod)."
393*8975f5c5SAndroid Build Coastguard Worker            ],
394*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/642605"
395*8975f5c5SAndroid Build Coastguard Worker        },
396*8975f5c5SAndroid Build Coastguard Worker        {
397*8975f5c5SAndroid Build Coastguard Worker            "name": "regenerate_struct_names",
398*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
399*8975f5c5SAndroid Build Coastguard Worker            "description": [
400*8975f5c5SAndroid Build Coastguard Worker                "All Mac drivers do not handle struct scopes correctly. This workaround overwrites a struct",
401*8975f5c5SAndroid Build Coastguard Worker                "name with a unique prefix."
402*8975f5c5SAndroid Build Coastguard Worker            ],
403*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/403957"
404*8975f5c5SAndroid Build Coastguard Worker        },
405*8975f5c5SAndroid Build Coastguard Worker        {
406*8975f5c5SAndroid Build Coastguard Worker            "name": "read_pixels_using_implementation_color_read_format_for_norm16",
407*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
408*8975f5c5SAndroid Build Coastguard Worker            "description": [
409*8975f5c5SAndroid Build Coastguard Worker                "Quite some OpenGL ES drivers don't implement readPixels for RGBA/UNSIGNED_SHORT from ",
410*8975f5c5SAndroid Build Coastguard Worker                "EXT_texture_norm16 correctly"
411*8975f5c5SAndroid Build Coastguard Worker            ],
412*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096661"
413*8975f5c5SAndroid Build Coastguard Worker        },
414*8975f5c5SAndroid Build Coastguard Worker        {
415*8975f5c5SAndroid Build Coastguard Worker            "name": "flush_before_delete_texture_if_copied_to",
416*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
417*8975f5c5SAndroid Build Coastguard Worker            "description": [
418*8975f5c5SAndroid Build Coastguard Worker                "Some drivers track CopyTex{Sub}Image texture dependencies incorrectly. Flush",
419*8975f5c5SAndroid Build Coastguard Worker                " before glDeleteTextures in this case"
420*8975f5c5SAndroid Build Coastguard Worker            ],
421*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40644715"
422*8975f5c5SAndroid Build Coastguard Worker        },
423*8975f5c5SAndroid Build Coastguard Worker        {
424*8975f5c5SAndroid Build Coastguard Worker            "name": "rewrite_row_major_matrices",
425*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
426*8975f5c5SAndroid Build Coastguard Worker            "description": [
427*8975f5c5SAndroid Build Coastguard Worker                "Rewrite row major matrices in shaders as column major as a driver bug workaround"
428*8975f5c5SAndroid Build Coastguard Worker            ],
429*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096480"
430*8975f5c5SAndroid Build Coastguard Worker        },
431*8975f5c5SAndroid Build Coastguard Worker        {
432*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_draw_buffers_indexed",
433*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
434*8975f5c5SAndroid Build Coastguard Worker            "description": [
435*8975f5c5SAndroid Build Coastguard Worker                "Disable OES_draw_buffers_indexed extension."
436*8975f5c5SAndroid Build Coastguard Worker            ]
437*8975f5c5SAndroid Build Coastguard Worker        },
438*8975f5c5SAndroid Build Coastguard Worker        {
439*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_semaphore_fd",
440*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
441*8975f5c5SAndroid Build Coastguard Worker            "description": [
442*8975f5c5SAndroid Build Coastguard Worker                "Disable GL_EXT_semaphore_fd extension"
443*8975f5c5SAndroid Build Coastguard Worker            ],
444*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1046462"
445*8975f5c5SAndroid Build Coastguard Worker        },
446*8975f5c5SAndroid Build Coastguard Worker        {
447*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_timestamp_queries",
448*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
449*8975f5c5SAndroid Build Coastguard Worker            "description": [
450*8975f5c5SAndroid Build Coastguard Worker                "Disable GL_EXT_disjoint_timer_query extension"
451*8975f5c5SAndroid Build Coastguard Worker            ],
452*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/811661"
453*8975f5c5SAndroid Build Coastguard Worker        },
454*8975f5c5SAndroid Build Coastguard Worker        {
455*8975f5c5SAndroid Build Coastguard Worker            "name": "decode_encode_SRGB_for_GenerateMipmap",
456*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
457*8975f5c5SAndroid Build Coastguard Worker            "description": [
458*8975f5c5SAndroid Build Coastguard Worker                "Decode and encode before generateMipmap for srgb format textures."
459*8975f5c5SAndroid Build Coastguard Worker            ],
460*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40644730"
461*8975f5c5SAndroid Build Coastguard Worker        },
462*8975f5c5SAndroid Build Coastguard Worker        {
463*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_CopyTexImage2D",
464*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
465*8975f5c5SAndroid Build Coastguard Worker            "description": [
466*8975f5c5SAndroid Build Coastguard Worker                "Replace CopyTexImage2D with TexImage2D + CopyTexSubImage2D."
467*8975f5c5SAndroid Build Coastguard Worker            ]
468*8975f5c5SAndroid Build Coastguard Worker        },
469*8975f5c5SAndroid Build Coastguard Worker        {
470*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_CopyTexImage2D_from_renderbuffers",
471*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
472*8975f5c5SAndroid Build Coastguard Worker            "description": [
473*8975f5c5SAndroid Build Coastguard Worker                "CopyTexImage2D spuriously returns errors on iOS when copying from renderbuffers."
474*8975f5c5SAndroid Build Coastguard Worker            ],
475*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42263273"
476*8975f5c5SAndroid Build Coastguard Worker        },
477*8975f5c5SAndroid Build Coastguard Worker        {
478*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_GPU_switching_support",
479*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
480*8975f5c5SAndroid Build Coastguard Worker            "description": [
481*8975f5c5SAndroid Build Coastguard Worker                "Disable GPU switching support (use only the low-power GPU) on older MacBook Pros."
482*8975f5c5SAndroid Build Coastguard Worker            ],
483*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1091824"
484*8975f5c5SAndroid Build Coastguard Worker        },
485*8975f5c5SAndroid Build Coastguard Worker        {
486*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_native_parallel_compile",
487*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
488*8975f5c5SAndroid Build Coastguard Worker            "description": [
489*8975f5c5SAndroid Build Coastguard Worker                "Do not use native KHR_parallel_shader_compile even when available."
490*8975f5c5SAndroid Build Coastguard Worker            ],
491*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1094869"
492*8975f5c5SAndroid Build Coastguard Worker        },
493*8975f5c5SAndroid Build Coastguard Worker        {
494*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_pack_skip_rows_and_pack_skip_pixels",
495*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
496*8975f5c5SAndroid Build Coastguard Worker            "description": [
497*8975f5c5SAndroid Build Coastguard Worker                "GL_PACK_SKIP_ROWS and GL_PACK_SKIP_PIXELS are ignored in Apple's OpenGL driver."
498*8975f5c5SAndroid Build Coastguard Worker            ],
499*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/40096712"
500*8975f5c5SAndroid Build Coastguard Worker        },
501*8975f5c5SAndroid Build Coastguard Worker        {
502*8975f5c5SAndroid Build Coastguard Worker            "name": "clamp_msc_rate",
503*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
504*8975f5c5SAndroid Build Coastguard Worker            "description": [
505*8975f5c5SAndroid Build Coastguard Worker                "Some drivers return bogus values for GetMscRate, so we clamp it to 30Hz"
506*8975f5c5SAndroid Build Coastguard Worker            ],
507*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1042393"
508*8975f5c5SAndroid Build Coastguard Worker        },
509*8975f5c5SAndroid Build Coastguard Worker        {
510*8975f5c5SAndroid Build Coastguard Worker            "name": "bind_transform_feedback_buffer_before_bind_buffer_range",
511*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
512*8975f5c5SAndroid Build Coastguard Worker            "description": [
513*8975f5c5SAndroid Build Coastguard Worker                "Bind transform feedback buffers to the generic binding point before calling ",
514*8975f5c5SAndroid Build Coastguard Worker                "glBindBufferBase or glBindBufferRange."
515*8975f5c5SAndroid Build Coastguard Worker            ],
516*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42263702"
517*8975f5c5SAndroid Build Coastguard Worker        },
518*8975f5c5SAndroid Build Coastguard Worker        {
519*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_sync_control_support",
520*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
521*8975f5c5SAndroid Build Coastguard Worker            "description": [
522*8975f5c5SAndroid Build Coastguard Worker                "Speculative fix for issues on Linux/Wayland where exposing GLX_OML_sync_control renders ",
523*8975f5c5SAndroid Build Coastguard Worker                "Chrome unusable"
524*8975f5c5SAndroid Build Coastguard Worker            ],
525*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1137851"
526*8975f5c5SAndroid Build Coastguard Worker        },
527*8975f5c5SAndroid Build Coastguard Worker        {
528*8975f5c5SAndroid Build Coastguard Worker            "name": "keep_buffer_shadow_copy",
529*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
530*8975f5c5SAndroid Build Coastguard Worker            "description": [
531*8975f5c5SAndroid Build Coastguard Worker                "Maintain a shadow copy of buffer data when the GL API does not permit reading data back."
532*8975f5c5SAndroid Build Coastguard Worker            ]
533*8975f5c5SAndroid Build Coastguard Worker        },
534*8975f5c5SAndroid Build Coastguard Worker        {
535*8975f5c5SAndroid Build Coastguard Worker            "name": "set_zero_level_before_GenerateMipmap",
536*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
537*8975f5c5SAndroid Build Coastguard Worker            "description": [
538*8975f5c5SAndroid Build Coastguard Worker                "glGenerateMipmap fails if the zero texture level is not set on some Mac drivers."
539*8975f5c5SAndroid Build Coastguard Worker            ]
540*8975f5c5SAndroid Build Coastguard Worker        },
541*8975f5c5SAndroid Build Coastguard Worker        {
542*8975f5c5SAndroid Build Coastguard Worker            "name": "promote_packed_formats_to_8_bit_per_channel",
543*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
544*8975f5c5SAndroid Build Coastguard Worker            "description": [
545*8975f5c5SAndroid Build Coastguard Worker                "Packed color formats are buggy on Macs with AMD GPUs"
546*8975f5c5SAndroid Build Coastguard Worker            ],
547*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42264008"
548*8975f5c5SAndroid Build Coastguard Worker        },
549*8975f5c5SAndroid Build Coastguard Worker        {
550*8975f5c5SAndroid Build Coastguard Worker            "name": "init_fragment_output_variables",
551*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
552*8975f5c5SAndroid Build Coastguard Worker            "description": [
553*8975f5c5SAndroid Build Coastguard Worker                "No init gl_FragColor causes context lost"
554*8975f5c5SAndroid Build Coastguard Worker            ],
555*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1171371"
556*8975f5c5SAndroid Build Coastguard Worker        },
557*8975f5c5SAndroid Build Coastguard Worker        {
558*8975f5c5SAndroid Build Coastguard Worker            "name": "shift_instanced_array_data_with_offset",
559*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
560*8975f5c5SAndroid Build Coastguard Worker            "description": [
561*8975f5c5SAndroid Build Coastguard Worker                "glDrawArraysInstanced is buggy on certain new Mac Intel GPUs"
562*8975f5c5SAndroid Build Coastguard Worker            ],
563*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1144207"
564*8975f5c5SAndroid Build Coastguard Worker        },
565*8975f5c5SAndroid Build Coastguard Worker        {
566*8975f5c5SAndroid Build Coastguard Worker            "name": "sync_all_vertex_arrays_to_default",
567*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
568*8975f5c5SAndroid Build Coastguard Worker            "description": [
569*8975f5c5SAndroid Build Coastguard Worker                "Only use the default VAO because of missing support or driver bugs"
570*8975f5c5SAndroid Build Coastguard Worker            ],
571*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096758"
572*8975f5c5SAndroid Build Coastguard Worker        },
573*8975f5c5SAndroid Build Coastguard Worker        {
574*8975f5c5SAndroid Build Coastguard Worker            "name": "sync_default_vertex_arrays_to_default",
575*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
576*8975f5c5SAndroid Build Coastguard Worker            "description": [
577*8975f5c5SAndroid Build Coastguard Worker                "Sync all frontend vertex array objects to the driver default vertex array"
578*8975f5c5SAndroid Build Coastguard Worker            ],
579*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/355034686"
580*8975f5c5SAndroid Build Coastguard Worker        },
581*8975f5c5SAndroid Build Coastguard Worker        {
582*8975f5c5SAndroid Build Coastguard Worker            "name": "sanitize_AMDGPU_renderer_string",
583*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
584*8975f5c5SAndroid Build Coastguard Worker            "description": [
585*8975f5c5SAndroid Build Coastguard Worker                "Strip precise kernel and DRM version information from amdgpu renderer strings."
586*8975f5c5SAndroid Build Coastguard Worker            ],
587*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1181193"
588*8975f5c5SAndroid Build Coastguard Worker        },
589*8975f5c5SAndroid Build Coastguard Worker        {
590*8975f5c5SAndroid Build Coastguard Worker            "name": "unbind_FBO_before_switching_context",
591*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
592*8975f5c5SAndroid Build Coastguard Worker            "description": [
593*8975f5c5SAndroid Build Coastguard Worker                "Imagination GL drivers are buggy with context switching."
594*8975f5c5SAndroid Build Coastguard Worker            ],
595*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1181193"
596*8975f5c5SAndroid Build Coastguard Worker        },
597*8975f5c5SAndroid Build Coastguard Worker        {
598*8975f5c5SAndroid Build Coastguard Worker            "name": "flush_on_framebuffer_change",
599*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
600*8975f5c5SAndroid Build Coastguard Worker            "description": [
601*8975f5c5SAndroid Build Coastguard Worker                "Switching framebuffers without a flush can lead to ",
602*8975f5c5SAndroid Build Coastguard Worker                "crashes on Intel 9th Generation GPU Macs."
603*8975f5c5SAndroid Build Coastguard Worker            ],
604*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1181068"
605*8975f5c5SAndroid Build Coastguard Worker        },
606*8975f5c5SAndroid Build Coastguard Worker        {
607*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_multisampled_render_to_texture",
608*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
609*8975f5c5SAndroid Build Coastguard Worker            "description": [
610*8975f5c5SAndroid Build Coastguard Worker                "Many drivers have bugs when using GL_EXT_multisampled_render_to_texture"
611*8975f5c5SAndroid Build Coastguard Worker            ],
612*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096530"
613*8975f5c5SAndroid Build Coastguard Worker        },
614*8975f5c5SAndroid Build Coastguard Worker        {
615*8975f5c5SAndroid Build Coastguard Worker            "name": "upload_texture_data_in_chunks",
616*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
617*8975f5c5SAndroid Build Coastguard Worker            "description": [
618*8975f5c5SAndroid Build Coastguard Worker                "Upload texture data in <120kb chunks to work around Mac driver hangs and crashes."
619*8975f5c5SAndroid Build Coastguard Worker            ],
620*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1181068"
621*8975f5c5SAndroid Build Coastguard Worker        },
622*8975f5c5SAndroid Build Coastguard Worker        {
623*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_immutable_compressed_texture_3D",
624*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
625*8975f5c5SAndroid Build Coastguard Worker            "description": [
626*8975f5c5SAndroid Build Coastguard Worker                "Use non-immutable texture allocation to work around a driver bug."
627*8975f5c5SAndroid Build Coastguard Worker            ],
628*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1060012"
629*8975f5c5SAndroid Build Coastguard Worker        },
630*8975f5c5SAndroid Build Coastguard Worker        {
631*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_RGB10",
632*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
633*8975f5c5SAndroid Build Coastguard Worker            "description": [
634*8975f5c5SAndroid Build Coastguard Worker                "Emulate RGB10 support using RGB10_A2."
635*8975f5c5SAndroid Build Coastguard Worker            ],
636*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1300575"
637*8975f5c5SAndroid Build Coastguard Worker        },
638*8975f5c5SAndroid Build Coastguard Worker        {
639*8975f5c5SAndroid Build Coastguard Worker            "name": "always_unbind_framebuffer_texture_2D",
640*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
641*8975f5c5SAndroid Build Coastguard Worker            "description": [
642*8975f5c5SAndroid Build Coastguard Worker                "Force unbind framebufferTexture2D before binding renderbuffer to work around driver bug."
643*8975f5c5SAndroid Build Coastguard Worker            ],
644*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42264072"
645*8975f5c5SAndroid Build Coastguard Worker        },
646*8975f5c5SAndroid Build Coastguard Worker        {
647*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_texture_clamp_to_border",
648*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
649*8975f5c5SAndroid Build Coastguard Worker            "description": [
650*8975f5c5SAndroid Build Coastguard Worker                "Imagination devices generate INVALID_ENUM when setting the texture border color."
651*8975f5c5SAndroid Build Coastguard Worker            ],
652*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42265877"
653*8975f5c5SAndroid Build Coastguard Worker        },
654*8975f5c5SAndroid Build Coastguard Worker        {
655*8975f5c5SAndroid Build Coastguard Worker            "name": "pass_highp_to_pack_unorm_snorm_builtins",
656*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
657*8975f5c5SAndroid Build Coastguard Worker            "description": [
658*8975f5c5SAndroid Build Coastguard Worker                "packUnorm4x8 fails on Pixel 4 if it is not passed a highp vec4."
659*8975f5c5SAndroid Build Coastguard Worker            ],
660*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42265995"
661*8975f5c5SAndroid Build Coastguard Worker        },
662*8975f5c5SAndroid Build Coastguard Worker        {
663*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_clip_distance_state",
664*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
665*8975f5c5SAndroid Build Coastguard Worker            "description": [
666*8975f5c5SAndroid Build Coastguard Worker                "Some drivers ignore GL_CLIP_DISTANCEi_EXT state."
667*8975f5c5SAndroid Build Coastguard Worker            ]
668*8975f5c5SAndroid Build Coastguard Worker        },
669*8975f5c5SAndroid Build Coastguard Worker        {
670*8975f5c5SAndroid Build Coastguard Worker            "name": "emulate_clip_origin",
671*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
672*8975f5c5SAndroid Build Coastguard Worker            "description": [
673*8975f5c5SAndroid Build Coastguard Worker                "Some drivers incorrectly apply GL_CLIP_ORIGIN_EXT state."
674*8975f5c5SAndroid Build Coastguard Worker            ]
675*8975f5c5SAndroid Build Coastguard Worker        },
676*8975f5c5SAndroid Build Coastguard Worker        {
677*8975f5c5SAndroid Build Coastguard Worker            "name": "bind_complete_framebuffer_for_timer_queries",
678*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
679*8975f5c5SAndroid Build Coastguard Worker            "description": [
680*8975f5c5SAndroid Build Coastguard Worker                "Some drivers require a complete framebuffer when beginQuery for TimeElapsed or",
681*8975f5c5SAndroid Build Coastguard Worker                "Timestampis called."
682*8975f5c5SAndroid Build Coastguard Worker            ],
683*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/1356053"
684*8975f5c5SAndroid Build Coastguard Worker        },
685*8975f5c5SAndroid Build Coastguard Worker        {
686*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_base_instance_vertex",
687*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
688*8975f5c5SAndroid Build Coastguard Worker            "description": [
689*8975f5c5SAndroid Build Coastguard Worker                "Some drivers have buggy implementations of glDraw*BaseVertex*."
690*8975f5c5SAndroid Build Coastguard Worker            ],
691*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/42266610"
692*8975f5c5SAndroid Build Coastguard Worker        },
693*8975f5c5SAndroid Build Coastguard Worker        {
694*8975f5c5SAndroid Build Coastguard Worker            "name": "supports_fragment_shader_interlock_NV",
695*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
696*8975f5c5SAndroid Build Coastguard Worker            "description": [
697*8975f5c5SAndroid Build Coastguard Worker                "Backend GL context supports NV_fragment_shader_interlock extension"
698*8975f5c5SAndroid Build Coastguard Worker            ],
699*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096838"
700*8975f5c5SAndroid Build Coastguard Worker        },
701*8975f5c5SAndroid Build Coastguard Worker        {
702*8975f5c5SAndroid Build Coastguard Worker            "name": "supports_fragment_shader_ordering_INTEL",
703*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
704*8975f5c5SAndroid Build Coastguard Worker            "description": [
705*8975f5c5SAndroid Build Coastguard Worker                "Backend GL context supports GL_INTEL_fragment_shader_ordering extension"
706*8975f5c5SAndroid Build Coastguard Worker            ],
707*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096838"
708*8975f5c5SAndroid Build Coastguard Worker        },
709*8975f5c5SAndroid Build Coastguard Worker        {
710*8975f5c5SAndroid Build Coastguard Worker            "name": "supports_fragment_shader_interlock_ARB",
711*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
712*8975f5c5SAndroid Build Coastguard Worker            "description": [
713*8975f5c5SAndroid Build Coastguard Worker                "Backend GL context supports ARB_fragment_shader_interlock extension"
714*8975f5c5SAndroid Build Coastguard Worker            ],
715*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096838"
716*8975f5c5SAndroid Build Coastguard Worker        },
717*8975f5c5SAndroid Build Coastguard Worker        {
718*8975f5c5SAndroid Build Coastguard Worker            "name": "supports_shader_framebuffer_fetch_EXT",
719*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
720*8975f5c5SAndroid Build Coastguard Worker            "description": [
721*8975f5c5SAndroid Build Coastguard Worker                "Backend GL context supports EXT_shader_framebuffer_fetch extension"
722*8975f5c5SAndroid Build Coastguard Worker            ],
723*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096838"
724*8975f5c5SAndroid Build Coastguard Worker        },
725*8975f5c5SAndroid Build Coastguard Worker        {
726*8975f5c5SAndroid Build Coastguard Worker            "name": "supports_shader_framebuffer_fetch_non_coherent_EXT",
727*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
728*8975f5c5SAndroid Build Coastguard Worker            "description": [
729*8975f5c5SAndroid Build Coastguard Worker                "Backend GL context supports EXT_shader_framebuffer_fetch_non_coherent extension"
730*8975f5c5SAndroid Build Coastguard Worker            ],
731*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://anglebug.com/40096838"
732*8975f5c5SAndroid Build Coastguard Worker        },
733*8975f5c5SAndroid Build Coastguard Worker        {
734*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_clip_control",
735*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
736*8975f5c5SAndroid Build Coastguard Worker            "description": [
737*8975f5c5SAndroid Build Coastguard Worker                "Some devices genenerate errors when querying the clip control state"
738*8975f5c5SAndroid Build Coastguard Worker            ],
739*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1434317"
740*8975f5c5SAndroid Build Coastguard Worker        },
741*8975f5c5SAndroid Build Coastguard Worker        {
742*8975f5c5SAndroid Build Coastguard Worker            "name": "scalarize_vec_and_mat_constructor_args",
743*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
744*8975f5c5SAndroid Build Coastguard Worker            "description": [
745*8975f5c5SAndroid Build Coastguard Worker                "Rewrite vec/mat constructors to work around driver bugs"
746*8975f5c5SAndroid Build Coastguard Worker            ],
747*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1420130"
748*8975f5c5SAndroid Build Coastguard Worker        },
749*8975f5c5SAndroid Build Coastguard Worker        {
750*8975f5c5SAndroid Build Coastguard Worker            "name": "ensure_non_empty_buffer_is_bound_for_draw",
751*8975f5c5SAndroid Build Coastguard Worker            "category": "Features",
752*8975f5c5SAndroid Build Coastguard Worker            "description": [
753*8975f5c5SAndroid Build Coastguard Worker                "Apple OpenGL drivers crash when drawing with a zero-sized buffer bound using a non-zero divisor."
754*8975f5c5SAndroid Build Coastguard Worker            ],
755*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://crbug.com/1456243"
756*8975f5c5SAndroid Build Coastguard Worker        },
757*8975f5c5SAndroid Build Coastguard Worker        {
758*8975f5c5SAndroid Build Coastguard Worker            "name": "explicit_fragment_locations",
759*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
760*8975f5c5SAndroid Build Coastguard Worker            "description": [
761*8975f5c5SAndroid Build Coastguard Worker                "Always write explicit location layout qualifiers for fragment outputs."
762*8975f5c5SAndroid Build Coastguard Worker            ],
763*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42266740"
764*8975f5c5SAndroid Build Coastguard Worker        },
765*8975f5c5SAndroid Build Coastguard Worker        {
766*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_render_snorm",
767*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
768*8975f5c5SAndroid Build Coastguard Worker            "description": [
769*8975f5c5SAndroid Build Coastguard Worker                "Disable EXT_render_snorm extension."
770*8975f5c5SAndroid Build Coastguard Worker            ],
771*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42266745"
772*8975f5c5SAndroid Build Coastguard Worker        },
773*8975f5c5SAndroid Build Coastguard Worker        {
774*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_texture_mirror_clamp_to_edge",
775*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
776*8975f5c5SAndroid Build Coastguard Worker            "description": [
777*8975f5c5SAndroid Build Coastguard Worker                "Disable EXT_texture_mirror_clamp_to_edge extension."
778*8975f5c5SAndroid Build Coastguard Worker            ],
779*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42266748"
780*8975f5c5SAndroid Build Coastguard Worker        },
781*8975f5c5SAndroid Build Coastguard Worker        {
782*8975f5c5SAndroid Build Coastguard Worker            "name": "resync_depth_range_on_clip_control",
783*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
784*8975f5c5SAndroid Build Coastguard Worker            "description": [
785*8975f5c5SAndroid Build Coastguard Worker                "Resync depth range to apply clip control updates."
786*8975f5c5SAndroid Build Coastguard Worker            ],
787*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42266811"
788*8975f5c5SAndroid Build Coastguard Worker        },
789*8975f5c5SAndroid Build Coastguard Worker        {
790*8975f5c5SAndroid Build Coastguard Worker            "name": "corrupt_program_binary_for_testing",
791*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
792*8975f5c5SAndroid Build Coastguard Worker            "description": [
793*8975f5c5SAndroid Build Coastguard Worker                "Corrupt the program binary retrieved from the driver for testing purposes."
794*8975f5c5SAndroid Build Coastguard Worker            ],
795*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/41488638"
796*8975f5c5SAndroid Build Coastguard Worker        },
797*8975f5c5SAndroid Build Coastguard Worker        {
798*8975f5c5SAndroid Build Coastguard Worker            "name": "use_intermediate_texture_for_generate_mipmap",
799*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
800*8975f5c5SAndroid Build Coastguard Worker            "description": [
801*8975f5c5SAndroid Build Coastguard Worker                "Some drivers lose context when repeatedly generating mipmaps on textures that were used as framebuffers."
802*8975f5c5SAndroid Build Coastguard Worker            ],
803*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/40279678"
804*8975f5c5SAndroid Build Coastguard Worker        },
805*8975f5c5SAndroid Build Coastguard Worker        {
806*8975f5c5SAndroid Build Coastguard Worker            "name": "avoid_bind_frag_data_location",
807*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
808*8975f5c5SAndroid Build Coastguard Worker            "description": [
809*8975f5c5SAndroid Build Coastguard Worker                "Qualcomm drivers fail to link after binding fragment data locations."
810*8975f5c5SAndroid Build Coastguard Worker            ],
811*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/8646"
812*8975f5c5SAndroid Build Coastguard Worker        },
813*8975f5c5SAndroid Build Coastguard Worker        {
814*8975f5c5SAndroid Build Coastguard Worker            "name": "srgb_blending_broken",
815*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
816*8975f5c5SAndroid Build Coastguard Worker            "description": [
817*8975f5c5SAndroid Build Coastguard Worker                "SRGB blending does not appear to work correctly on the some Qualcomm devices. ",
818*8975f5c5SAndroid Build Coastguard Worker                "Writing to an SRGB framebuffer with GL_FRAMEBUFFER_SRGB enabled and ",
819*8975f5c5SAndroid Build Coastguard Worker                "then reading back returns the same value. Disabling GL_FRAMEBUFFER_SRGB ",
820*8975f5c5SAndroid Build Coastguard Worker                "will then convert in the wrong direction."
821*8975f5c5SAndroid Build Coastguard Worker            ],
822*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://crbug.com/40488750"
823*8975f5c5SAndroid Build Coastguard Worker        },
824*8975f5c5SAndroid Build Coastguard Worker        {
825*8975f5c5SAndroid Build Coastguard Worker            "name": "bgra_tex_image_formats_broken",
826*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
827*8975f5c5SAndroid Build Coastguard Worker            "description": [
828*8975f5c5SAndroid Build Coastguard Worker                "BGRA formats do not appear to be accepted by some qualcomm despite the extension being exposed."
829*8975f5c5SAndroid Build Coastguard Worker            ],
830*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/40096376"
831*8975f5c5SAndroid Build Coastguard Worker        },
832*8975f5c5SAndroid Build Coastguard Worker        {
833*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_tiled_rendering",
834*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
835*8975f5c5SAndroid Build Coastguard Worker            "description": [
836*8975f5c5SAndroid Build Coastguard Worker                "Disable QCOM_tiled_rendering on devices with rendering artifacts or which improperly expose the extension."
837*8975f5c5SAndroid Build Coastguard Worker            ],
838*8975f5c5SAndroid Build Coastguard Worker            "issue": "http://skbug.com/9491 https://github.com/flutter/flutter/issues/47164 https://github.com/flutter/flutter/issues/47804"
839*8975f5c5SAndroid Build Coastguard Worker        },
840*8975f5c5SAndroid Build Coastguard Worker        {
841*8975f5c5SAndroid Build Coastguard Worker            "name": "disable_blend_equation_advanced",
842*8975f5c5SAndroid Build Coastguard Worker            "category": "Workarounds",
843*8975f5c5SAndroid Build Coastguard Worker            "description": [
844*8975f5c5SAndroid Build Coastguard Worker                "Disable GL_KHR_blend_equation_advanced due to various driver issues."
845*8975f5c5SAndroid Build Coastguard Worker            ],
846*8975f5c5SAndroid Build Coastguard Worker            "issue": "https://anglebug.com/42267098"
847*8975f5c5SAndroid Build Coastguard Worker        }
848*8975f5c5SAndroid Build Coastguard Worker    ]
849*8975f5c5SAndroid Build Coastguard Worker}
850