OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Determines whether a certain driver bug exists in the current system. | |
6 // The format of a valid gpu_driver_bug_list.json file is defined in | |
7 // <gpu/config/gpu_control_list_format.txt>. | |
8 // The supported "features" can be found in | |
9 // <gpu/config/gpu_driver_bug_workaround_type.h>. | |
10 | |
11 #include "gpu/config/gpu_control_list_jsons.h" | |
12 | |
13 #define LONG_STRING_CONST(...) #__VA_ARGS__ | |
14 | |
15 namespace gpu { | |
16 | |
17 const char kGpuDriverBugListJson[] = LONG_STRING_CONST( | |
18 | |
19 { | 1 { |
20 "name": "gpu driver bug list", | 2 "name": "gpu driver bug list", |
21 // Please update the version number whenever you change this file. | 3 "comment": "Please update the version number whenever you change this file", |
22 "version": "9.38", | 4 "version": "10.0", |
23 "entries": [ | 5 "entries": [ |
24 { | 6 { |
25 "id": 1, | 7 "id": 1, |
26 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", | 8 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", |
27 "os": { | 9 "os": { |
28 "type": "android" | 10 "type": "android" |
29 }, | 11 }, |
30 "gl_vendor": "Imagination.*", | 12 "gl_vendor": "Imagination.*", |
31 "features": [ | 13 "features": [ |
32 "use_client_side_arrays_for_stream_buffers" | 14 "use_client_side_arrays_for_stream_buffers" |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 "gl_type": "gles", | 559 "gl_type": "gles", |
578 "gl_version": { | 560 "gl_version": { |
579 "op": "=", | 561 "op": "=", |
580 "value": "3.1" | 562 "value": "3.1" |
581 }, | 563 }, |
582 "gl_vendor": "NVIDIA.*", | 564 "gl_vendor": "NVIDIA.*", |
583 "features": [ | 565 "features": [ |
584 "use_virtualized_gl_contexts" | 566 "use_virtualized_gl_contexts" |
585 ] | 567 ] |
586 }, | 568 }, |
587 ) // LONG_STRING_CONST macro | |
588 // Avoid C2026 (string too big) error on VisualStudio. | |
589 LONG_STRING_CONST( | |
590 { | 569 { |
591 "id": 74, | 570 "id": 74, |
592 "cr_bugs": [278606, 382686], | 571 "cr_bugs": [278606, 382686], |
593 "description": "Testing EGL sync fences was broken on most Qualcomm driver
s", | 572 "description": "Testing EGL sync fences was broken on most Qualcomm driver
s", |
594 "os": { | 573 "os": { |
595 "type": "android", | 574 "type": "android", |
596 "version": { | 575 "version": { |
597 "op": "<=", | 576 "op": "<=", |
598 "value": "4.4.4" | 577 "value": "4.4.4" |
599 } | 578 } |
(...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1227 "os": { | 1206 "os": { |
1228 "type": "linux" | 1207 "type": "linux" |
1229 }, | 1208 }, |
1230 "vendor_id": "0x1002", | 1209 "vendor_id": "0x1002", |
1231 "features": [ | 1210 "features": [ |
1232 "force_cube_map_positive_x_allocation" | 1211 "force_cube_map_positive_x_allocation" |
1233 ] | 1212 ] |
1234 }, | 1213 }, |
1235 { | 1214 { |
1236 "id": 129, | 1215 "id": 129, |
1237 // TODO(dshwang): Fix ANGLE crash. crbug.com/518889 | 1216 "comment": "TODO(dshwang): Fix ANGLE crash. crbug.com/518889", |
1238 "description": "ANGLE crash on glReadPixels from incomplete cube map textu
re", | 1217 "description": "ANGLE crash on glReadPixels from incomplete cube map textu
re", |
1239 "cr_bugs": [518889], | 1218 "cr_bugs": [518889], |
1240 "os": { | 1219 "os": { |
1241 "type": "win" | 1220 "type": "win" |
1242 }, | 1221 }, |
1243 "gl_renderer": "ANGLE.*", | 1222 "gl_renderer": "ANGLE.*", |
1244 "features": [ | 1223 "features": [ |
1245 "force_cube_complete" | 1224 "force_cube_complete" |
1246 ] | 1225 ] |
1247 }, | 1226 }, |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1380 }, | 1359 }, |
1381 "disabled_extensions": [ | 1360 "disabled_extensions": [ |
1382 "GL_EXT_texture_rg" | 1361 "GL_EXT_texture_rg" |
1383 ] | 1362 ] |
1384 }, | 1363 }, |
1385 { | 1364 { |
1386 "id": 140, | 1365 "id": 140, |
1387 "description": "glReadPixels fails on FBOs with SRGB_ALPHA textures, Nexus
5X", | 1366 "description": "glReadPixels fails on FBOs with SRGB_ALPHA textures, Nexus
5X", |
1388 "cr_bugs": [550292, 565179], | 1367 "cr_bugs": [550292, 565179], |
1389 "os": { | 1368 "os": { |
1390 "type": "android" | 1369 "type": "android", |
1391 // Originally on Android 6.0. Expect it to fail in later versions. | 1370 "comment": "Originally on Android 6.0. Expect it to fail in later versio
ns." |
1392 }, | 1371 }, |
1393 "gl_vendor": "Qualcomm", | 1372 "gl_vendor": "Qualcomm", |
1394 "gl_renderer": "Adreno \\(TM\\) 4.*", // Originally on 418. | 1373 "gl_renderer": "Adreno \\(TM\\) 4.*", |
| 1374 "comment": "Originally on 418.", |
1395 "disabled_extensions": ["GL_EXT_sRGB"] | 1375 "disabled_extensions": ["GL_EXT_sRGB"] |
1396 }, | 1376 }, |
1397 { | 1377 { |
1398 "id": 141, | 1378 "id": 141, |
1399 "cr_bugs": [570897], | 1379 "cr_bugs": [570897], |
1400 "description": "Framebuffer discarding can hurt performance on non-tilers"
, | 1380 "description": "Framebuffer discarding can hurt performance on non-tilers"
, |
1401 "os": { | 1381 "os": { |
1402 "type": "win" | 1382 "type": "win" |
1403 }, | 1383 }, |
1404 "features": [ | 1384 "features": [ |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1449 "description": "EGLImage ref counting across EGLContext/threads is broken"
, | 1429 "description": "EGLImage ref counting across EGLContext/threads is broken"
, |
1450 "os": { | 1430 "os": { |
1451 "type": "android" | 1431 "type": "android" |
1452 }, | 1432 }, |
1453 "gl_vendor": "Qualcomm.*", | 1433 "gl_vendor": "Qualcomm.*", |
1454 "gl_renderer": "Adreno \\(TM\\) [45].*", | 1434 "gl_renderer": "Adreno \\(TM\\) [45].*", |
1455 "features": [ | 1435 "features": [ |
1456 "broken_egl_image_ref_counting" | 1436 "broken_egl_image_ref_counting" |
1457 ] | 1437 ] |
1458 }, | 1438 }, |
1459 ) // LONG_STRING_CONST macro | |
1460 // Avoid C2026 (string too big) error on VisualStudio. | |
1461 LONG_STRING_CONST( | |
1462 { | 1439 { |
1463 "id": 147, | 1440 "id": 147, |
1464 "description": "Limit max texure size to 4096 on all of Android", | 1441 "description": "Limit max texure size to 4096 on all of Android", |
1465 "os": { | 1442 "os": { |
1466 "type": "android" | 1443 "type": "android" |
1467 }, | 1444 }, |
1468 "features": [ | 1445 "features": [ |
1469 "max_texture_size_limit_4096" | 1446 "max_texture_size_limit_4096" |
1470 ] | 1447 ] |
1471 }, | 1448 }, |
(...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1783 }, | 1760 }, |
1784 { | 1761 { |
1785 "id": 174, | 1762 "id": 174, |
1786 "description": "Adreno 4xx support for EXT_multisampled_render_to_texture
is buggy on Android 7.0", | 1763 "description": "Adreno 4xx support for EXT_multisampled_render_to_texture
is buggy on Android 7.0", |
1787 "cr_bugs": [612474], | 1764 "cr_bugs": [612474], |
1788 "os": { | 1765 "os": { |
1789 "type": "android", | 1766 "type": "android", |
1790 "version": { | 1767 "version": { |
1791 "op": "between", | 1768 "op": "between", |
1792 "value": "7.0.0", | 1769 "value": "7.0.0", |
1793 "value2": "7.0.99" | 1770 "value2": "7.0.99", |
1794 // Only initial version of N. | 1771 "comment": "Only initial version of N." |
1795 } | 1772 } |
1796 }, | 1773 }, |
1797 "gl_renderer": "Adreno \\(TM\\) 4.*", | 1774 "gl_renderer": "Adreno \\(TM\\) 4.*", |
1798 "disabled_extensions": [ | 1775 "disabled_extensions": [ |
1799 "GL_EXT_multisampled_render_to_texture" | 1776 "GL_EXT_multisampled_render_to_texture" |
1800 ] | 1777 ] |
1801 }, | 1778 }, |
1802 { | 1779 { |
1803 "id": 175, | 1780 "id": 175, |
1804 "description": "Adreno 5xx support for EXT_multisampled_render_to_texture
is buggy on Android < 7.0", | 1781 "description": "Adreno 5xx support for EXT_multisampled_render_to_texture
is buggy on Android < 7.0", |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2301 { | 2278 { |
2302 "id": 213, | 2279 "id": 213, |
2303 "description": "The Mali-Gxx driver does not guarantee flush ordering", | 2280 "description": "The Mali-Gxx driver does not guarantee flush ordering", |
2304 "cr_bugs": [678508], | 2281 "cr_bugs": [678508], |
2305 "gl_vendor": "ARM.*", | 2282 "gl_vendor": "ARM.*", |
2306 "gl_renderer": "Mali-G.*", | 2283 "gl_renderer": "Mali-G.*", |
2307 "features": [ | 2284 "features": [ |
2308 "use_virtualized_gl_contexts" | 2285 "use_virtualized_gl_contexts" |
2309 ] | 2286 ] |
2310 }, | 2287 }, |
2311 ) // LONG_STRING_CONST macro | |
2312 // Avoid C2026 (string too big) error on VisualStudio. | |
2313 LONG_STRING_CONST( | |
2314 { | 2288 { |
2315 // Corresponds to software rendering list #140. | |
2316 "id": 214, | 2289 "id": 214, |
| 2290 "comment": [ |
| 2291 "Corresponds to software rendering list #140", |
| 2292 "Somehow the first workaround won't work without the second", |
| 2293 "See https://crbug.com/698197 for details" |
| 2294 ], |
2317 "description": "Certain versions of Qualcomm driver don't setup scissor st
ate correctly when FBO0 is bound.", | 2295 "description": "Certain versions of Qualcomm driver don't setup scissor st
ate correctly when FBO0 is bound.", |
2318 "cr_bugs": [670607, 696627, 698197], | 2296 "cr_bugs": [670607, 696627, 698197], |
2319 "gl_vendor": "Qualcomm.*", | 2297 "gl_vendor": "Qualcomm.*", |
2320 "machine_model_name": ["Nexus 7", "KFTHWI", "KFSAWI", "KFAPWI", "KFTHWA",
"KFSAWA", "KFAPWA"], | 2298 "machine_model_name": ["Nexus 7", "KFTHWI", "KFSAWI", "KFAPWI", "KFTHWA",
"KFSAWA", "KFAPWA"], |
2321 "features": [ | 2299 "features": [ |
2322 "force_update_scissor_state_when_binding_fbo0", | 2300 "force_update_scissor_state_when_binding_fbo0", |
2323 // Somehow the main workaround above won't work without the one below. | |
2324 // See https://crbug.com/698197 for details. | |
2325 "disable_chromium_framebuffer_multisample" | 2301 "disable_chromium_framebuffer_multisample" |
2326 ] | 2302 ] |
2327 }, | 2303 }, |
2328 { | 2304 { |
2329 "id": 215, | 2305 "id": 215, |
2330 "description": "Fake no-op GPU driver bug workaround for testing", | 2306 "description": "Fake no-op GPU driver bug workaround for testing", |
2331 "cr_bugs": [682912], | 2307 "cr_bugs": [682912], |
2332 "vendor_id": "0xbad9", | 2308 "vendor_id": "0xbad9", |
2333 "device_id": ["0xbad9"], | 2309 "device_id": ["0xbad9"], |
2334 "features": [ | 2310 "features": [ |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2406 "os": { | 2382 "os": { |
2407 "type": "linux" | 2383 "type": "linux" |
2408 }, | 2384 }, |
2409 "vendor_id": "0x1002", | 2385 "vendor_id": "0x1002", |
2410 "driver_vendor": "AMD \\(Catalyst\\)", | 2386 "driver_vendor": "AMD \\(Catalyst\\)", |
2411 "features": [ | 2387 "features": [ |
2412 "gl_clear_broken" | 2388 "gl_clear_broken" |
2413 ] | 2389 ] |
2414 } | 2390 } |
2415 ] | 2391 ] |
2416 // Please update the version number at beginning of this file whenever you | |
2417 // change this file. | |
2418 } | 2392 } |
2419 | |
2420 ); // LONG_STRING_CONST macro | |
2421 | |
2422 } // namespace gpu | |
OLD | NEW |