| 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 "version": "10.0", |
| 22 "version": "9.37", | |
| 23 "entries": [ | 4 "entries": [ |
| 24 { | 5 { |
| 25 "id": 1, | 6 "id": 1, |
| 26 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", | 7 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", |
| 27 "os": { | 8 "os": { |
| 28 "type": "android" | 9 "type": "android" |
| 29 }, | 10 }, |
| 30 "gl_vendor": "Imagination.*", | 11 "gl_vendor": "Imagination.*", |
| 31 "features": [ | 12 "features": [ |
| 32 "use_client_side_arrays_for_stream_buffers" | 13 "use_client_side_arrays_for_stream_buffers" |
| (...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 "gl_type": "gles", | 558 "gl_type": "gles", |
| 578 "gl_version": { | 559 "gl_version": { |
| 579 "op": "=", | 560 "op": "=", |
| 580 "value": "3.1" | 561 "value": "3.1" |
| 581 }, | 562 }, |
| 582 "gl_vendor": "NVIDIA.*", | 563 "gl_vendor": "NVIDIA.*", |
| 583 "features": [ | 564 "features": [ |
| 584 "use_virtualized_gl_contexts" | 565 "use_virtualized_gl_contexts" |
| 585 ] | 566 ] |
| 586 }, | 567 }, |
| 587 ) // LONG_STRING_CONST macro | |
| 588 // Avoid C2026 (string too big) error on VisualStudio. | |
| 589 LONG_STRING_CONST( | |
| 590 { | 568 { |
| 591 "id": 74, | 569 "id": 74, |
| 592 "cr_bugs": [278606, 382686], | 570 "cr_bugs": [278606, 382686], |
| 593 "description": "Testing EGL sync fences was broken on most Qualcomm driver
s", | 571 "description": "Testing EGL sync fences was broken on most Qualcomm driver
s", |
| 594 "os": { | 572 "os": { |
| 595 "type": "android", | 573 "type": "android", |
| 596 "version": { | 574 "version": { |
| 597 "op": "<=", | 575 "op": "<=", |
| 598 "value": "4.4.4" | 576 "value": "4.4.4" |
| 599 } | 577 } |
| (...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1227 "os": { | 1205 "os": { |
| 1228 "type": "linux" | 1206 "type": "linux" |
| 1229 }, | 1207 }, |
| 1230 "vendor_id": "0x1002", | 1208 "vendor_id": "0x1002", |
| 1231 "features": [ | 1209 "features": [ |
| 1232 "force_cube_map_positive_x_allocation" | 1210 "force_cube_map_positive_x_allocation" |
| 1233 ] | 1211 ] |
| 1234 }, | 1212 }, |
| 1235 { | 1213 { |
| 1236 "id": 129, | 1214 "id": 129, |
| 1237 // TODO(dshwang): Fix ANGLE crash. crbug.com/518889 | 1215 "comment": "TODO(dshwang): Fix ANGLE crash. crbug.com/518889", |
| 1238 "description": "ANGLE crash on glReadPixels from incomplete cube map textu
re", | 1216 "description": "ANGLE crash on glReadPixels from incomplete cube map textu
re", |
| 1239 "cr_bugs": [518889], | 1217 "cr_bugs": [518889], |
| 1240 "os": { | 1218 "os": { |
| 1241 "type": "win" | 1219 "type": "win" |
| 1242 }, | 1220 }, |
| 1243 "gl_renderer": "ANGLE.*", | 1221 "gl_renderer": "ANGLE.*", |
| 1244 "features": [ | 1222 "features": [ |
| 1245 "force_cube_complete" | 1223 "force_cube_complete" |
| 1246 ] | 1224 ] |
| 1247 }, | 1225 }, |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1380 }, | 1358 }, |
| 1381 "disabled_extensions": [ | 1359 "disabled_extensions": [ |
| 1382 "GL_EXT_texture_rg" | 1360 "GL_EXT_texture_rg" |
| 1383 ] | 1361 ] |
| 1384 }, | 1362 }, |
| 1385 { | 1363 { |
| 1386 "id": 140, | 1364 "id": 140, |
| 1387 "description": "glReadPixels fails on FBOs with SRGB_ALPHA textures, Nexus
5X", | 1365 "description": "glReadPixels fails on FBOs with SRGB_ALPHA textures, Nexus
5X", |
| 1388 "cr_bugs": [550292, 565179], | 1366 "cr_bugs": [550292, 565179], |
| 1389 "os": { | 1367 "os": { |
| 1390 "type": "android" | 1368 "type": "android", |
| 1391 // Originally on Android 6.0. Expect it to fail in later versions. | 1369 "comment": "Originally on Android 6.0. Expect it to fail in later versio
ns." |
| 1392 }, | 1370 }, |
| 1393 "gl_vendor": "Qualcomm", | 1371 "gl_vendor": "Qualcomm", |
| 1394 "gl_renderer": "Adreno \\(TM\\) 4.*", // Originally on 418. | 1372 "gl_renderer": "Adreno \\(TM\\) 4.*", |
| 1373 "comment": "Originally on 418.", |
| 1395 "disabled_extensions": ["GL_EXT_sRGB"] | 1374 "disabled_extensions": ["GL_EXT_sRGB"] |
| 1396 }, | 1375 }, |
| 1397 { | 1376 { |
| 1398 "id": 141, | 1377 "id": 141, |
| 1399 "cr_bugs": [570897], | 1378 "cr_bugs": [570897], |
| 1400 "description": "Framebuffer discarding can hurt performance on non-tilers"
, | 1379 "description": "Framebuffer discarding can hurt performance on non-tilers"
, |
| 1401 "os": { | 1380 "os": { |
| 1402 "type": "win" | 1381 "type": "win" |
| 1403 }, | 1382 }, |
| 1404 "features": [ | 1383 "features": [ |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1449 "description": "EGLImage ref counting across EGLContext/threads is broken"
, | 1428 "description": "EGLImage ref counting across EGLContext/threads is broken"
, |
| 1450 "os": { | 1429 "os": { |
| 1451 "type": "android" | 1430 "type": "android" |
| 1452 }, | 1431 }, |
| 1453 "gl_vendor": "Qualcomm.*", | 1432 "gl_vendor": "Qualcomm.*", |
| 1454 "gl_renderer": "Adreno \\(TM\\) [45].*", | 1433 "gl_renderer": "Adreno \\(TM\\) [45].*", |
| 1455 "features": [ | 1434 "features": [ |
| 1456 "broken_egl_image_ref_counting" | 1435 "broken_egl_image_ref_counting" |
| 1457 ] | 1436 ] |
| 1458 }, | 1437 }, |
| 1459 ) // LONG_STRING_CONST macro | |
| 1460 // Avoid C2026 (string too big) error on VisualStudio. | |
| 1461 LONG_STRING_CONST( | |
| 1462 { | 1438 { |
| 1463 "id": 147, | 1439 "id": 147, |
| 1464 "description": "Limit max texure size to 4096 on all of Android", | 1440 "description": "Limit max texure size to 4096 on all of Android", |
| 1465 "os": { | 1441 "os": { |
| 1466 "type": "android" | 1442 "type": "android" |
| 1467 }, | 1443 }, |
| 1468 "features": [ | 1444 "features": [ |
| 1469 "max_texture_size_limit_4096" | 1445 "max_texture_size_limit_4096" |
| 1470 ] | 1446 ] |
| 1471 }, | 1447 }, |
| (...skipping 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1783 }, | 1759 }, |
| 1784 { | 1760 { |
| 1785 "id": 174, | 1761 "id": 174, |
| 1786 "description": "Adreno 4xx support for EXT_multisampled_render_to_texture
is buggy on Android 7.0", | 1762 "description": "Adreno 4xx support for EXT_multisampled_render_to_texture
is buggy on Android 7.0", |
| 1787 "cr_bugs": [612474], | 1763 "cr_bugs": [612474], |
| 1788 "os": { | 1764 "os": { |
| 1789 "type": "android", | 1765 "type": "android", |
| 1790 "version": { | 1766 "version": { |
| 1791 "op": "between", | 1767 "op": "between", |
| 1792 "value": "7.0.0", | 1768 "value": "7.0.0", |
| 1793 "value2": "7.0.99" | 1769 "value2": "7.0.99", |
| 1794 // Only initial version of N. | 1770 "comment": "Only initial version of N." |
| 1795 } | 1771 } |
| 1796 }, | 1772 }, |
| 1797 "gl_renderer": "Adreno \\(TM\\) 4.*", | 1773 "gl_renderer": "Adreno \\(TM\\) 4.*", |
| 1798 "disabled_extensions": [ | 1774 "disabled_extensions": [ |
| 1799 "GL_EXT_multisampled_render_to_texture" | 1775 "GL_EXT_multisampled_render_to_texture" |
| 1800 ] | 1776 ] |
| 1801 }, | 1777 }, |
| 1802 { | 1778 { |
| 1803 "id": 175, | 1779 "id": 175, |
| 1804 "description": "Adreno 5xx support for EXT_multisampled_render_to_texture
is buggy on Android < 7.0", | 1780 "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 { | 2277 { |
| 2302 "id": 213, | 2278 "id": 213, |
| 2303 "description": "The Mali-Gxx driver does not guarantee flush ordering", | 2279 "description": "The Mali-Gxx driver does not guarantee flush ordering", |
| 2304 "cr_bugs": [678508], | 2280 "cr_bugs": [678508], |
| 2305 "gl_vendor": "ARM.*", | 2281 "gl_vendor": "ARM.*", |
| 2306 "gl_renderer": "Mali-G.*", | 2282 "gl_renderer": "Mali-G.*", |
| 2307 "features": [ | 2283 "features": [ |
| 2308 "use_virtualized_gl_contexts" | 2284 "use_virtualized_gl_contexts" |
| 2309 ] | 2285 ] |
| 2310 }, | 2286 }, |
| 2311 ) // LONG_STRING_CONST macro | |
| 2312 // Avoid C2026 (string too big) error on VisualStudio. | |
| 2313 LONG_STRING_CONST( | |
| 2314 { | 2287 { |
| 2315 // Corresponds to software rendering list #140. | |
| 2316 "id": 214, | 2288 "id": 214, |
| 2289 "comment": [ |
| 2290 "Corresponds to software rendering list #140", |
| 2291 "Somehow the first workaround won't work without the second", |
| 2292 "See https://crbug.com/698197 for details" |
| 2293 ], |
| 2317 "description": "Certain versions of Qualcomm driver don't setup scissor st
ate correctly when FBO0 is bound.", | 2294 "description": "Certain versions of Qualcomm driver don't setup scissor st
ate correctly when FBO0 is bound.", |
| 2318 "cr_bugs": [670607, 696627, 698197], | 2295 "cr_bugs": [670607, 696627, 698197], |
| 2319 "gl_vendor": "Qualcomm.*", | 2296 "gl_vendor": "Qualcomm.*", |
| 2320 "machine_model_name": ["Nexus 7", "KFTHWI", "KFSAWI", "KFAPWI", "KFTHWA",
"KFSAWA", "KFAPWA"], | 2297 "machine_model_name": ["Nexus 7", "KFTHWI", "KFSAWI", "KFAPWI", "KFTHWA",
"KFSAWA", "KFAPWA"], |
| 2321 "features": [ | 2298 "features": [ |
| 2322 "force_update_scissor_state_when_binding_fbo0", | 2299 "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" | 2300 "disable_chromium_framebuffer_multisample" |
| 2326 ] | 2301 ] |
| 2327 }, | 2302 }, |
| 2328 { | 2303 { |
| 2329 "id": 215, | 2304 "id": 215, |
| 2330 "description": "Fake no-op GPU driver bug workaround for testing", | 2305 "description": "Fake no-op GPU driver bug workaround for testing", |
| 2331 "cr_bugs": [682912], | 2306 "cr_bugs": [682912], |
| 2332 "vendor_id": "0xbad9", | 2307 "vendor_id": "0xbad9", |
| 2333 "device_id": ["0xbad9"], | 2308 "device_id": ["0xbad9"], |
| 2334 "features": [ | 2309 "features": [ |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2392 "description": "Very large instanced draw calls crash on some Adreno 3xx d
rivers", | 2367 "description": "Very large instanced draw calls crash on some Adreno 3xx d
rivers", |
| 2393 "cr_bugs": [701682], | 2368 "cr_bugs": [701682], |
| 2394 "os": { | 2369 "os": { |
| 2395 "type": "android" | 2370 "type": "android" |
| 2396 }, | 2371 }, |
| 2397 "gl_renderer": "Adreno \\(TM\\) 3.*", | 2372 "gl_renderer": "Adreno \\(TM\\) 3.*", |
| 2398 "features": [ | 2373 "features": [ |
| 2399 "disallow_large_instanced_draw" | 2374 "disallow_large_instanced_draw" |
| 2400 ] | 2375 ] |
| 2401 } | 2376 } |
| 2377 ], |
| 2378 "comment": [ |
| 2379 "Please update the version number on top whenever you change this file", |
| 2380 "Please run gpu/config/process_json.py whenever you change this file" |
| 2402 ] | 2381 ] |
| 2403 // Please update the version number at beginning of this file whenever you | |
| 2404 // change this file. | |
| 2405 } | 2382 } |
| 2406 | |
| 2407 ); // LONG_STRING_CONST macro | |
| 2408 | |
| 2409 } // namespace gpu | |
| OLD | NEW |