| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Determines whether a certain driver bug exists in the current system. | 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 | 6 // The format of a valid gpu_driver_bug_list.json file is defined in |
| 7 // <gpu/config/gpu_control_list_format.txt>. | 7 // <gpu/config/gpu_control_list_format.txt>. |
| 8 // The supported "features" can be found in | 8 // The supported "features" can be found in |
| 9 // <gpu/config/gpu_driver_bug_workaround_type.h>. | 9 // <gpu/config/gpu_driver_bug_workaround_type.h>. |
| 10 | 10 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 "description": "ARM driver doesn't like uploading lots of buffer data cons
tantly", | 37 "description": "ARM driver doesn't like uploading lots of buffer data cons
tantly", |
| 38 "os": { | 38 "os": { |
| 39 "type": "android" | 39 "type": "android" |
| 40 }, | 40 }, |
| 41 "gl_vendor": "ARM.*", | 41 "gl_vendor": "ARM.*", |
| 42 "features": [ | 42 "features": [ |
| 43 "use_client_side_arrays_for_stream_buffers" | 43 "use_client_side_arrays_for_stream_buffers" |
| 44 ] | 44 ] |
| 45 }, | 45 }, |
| 46 { | 46 { |
| 47 "id": 3, | |
| 48 "description": "glGenerateMipmap leaks vram without setting texture filter
s on some Mac drivers", | |
| 49 "webkit_bugs": [48489], | |
| 50 "cr_bugs": [349137], | |
| 51 "os": { | |
| 52 "type": "macosx", | |
| 53 "version": { | |
| 54 "op": "<", | |
| 55 "value": "10.9" | |
| 56 } | |
| 57 }, | |
| 58 "features": [ | |
| 59 "set_texture_filter_before_generating_mipmap" | |
| 60 ] | |
| 61 }, | |
| 62 { | |
| 63 "id": 4, | |
| 64 "description": "glReadPixels incorrectly sets alpha to 0 on some drivers f
rom a drawing buffer without alpha channel", | |
| 65 "webkit_bugs": [33416], | |
| 66 "cr_bugs": [349137], | |
| 67 "os": { | |
| 68 "type": "macosx", | |
| 69 "version": { | |
| 70 "op": "<", | |
| 71 "value": "10.9" | |
| 72 } | |
| 73 }, | |
| 74 "features": [ | |
| 75 "clear_alpha_in_readpixels" | |
| 76 ] | |
| 77 }, | |
| 78 { | |
| 79 "id": 5, | 47 "id": 5, |
| 80 "description": "Always call glUseProgram after a successful link to avoid
a driver bug", | 48 "description": "Always call glUseProgram after a successful link to avoid
a driver bug", |
| 81 "cr_bugs": [349137], | 49 "cr_bugs": [349137], |
| 82 "vendor_id": "0x10de", | 50 "vendor_id": "0x10de", |
| 83 "exceptions": [ | 51 "exceptions": [ |
| 84 { | 52 { |
| 85 "os": { | 53 "os": { |
| 86 "type": "macosx", | 54 "type": "macosx", |
| 87 "version": { | 55 "version": { |
| 88 "op": ">=", | 56 "op": ">=", |
| (...skipping 28 matching lines...) Expand all Loading... |
| 117 "description": "Work around a bug in offscreen buffers on NVIDIA GPUs on M
acs", | 85 "description": "Work around a bug in offscreen buffers on NVIDIA GPUs on M
acs", |
| 118 "os": { | 86 "os": { |
| 119 "type": "macosx" | 87 "type": "macosx" |
| 120 }, | 88 }, |
| 121 "vendor_id": "0x10de", | 89 "vendor_id": "0x10de", |
| 122 "features": [ | 90 "features": [ |
| 123 "needs_offscreen_buffer_workaround" | 91 "needs_offscreen_buffer_workaround" |
| 124 ] | 92 ] |
| 125 }, | 93 }, |
| 126 { | 94 { |
| 127 "id": 8, | |
| 128 "description": "A few built-in glsl functions on Mac behave incorrectly", | |
| 129 "cr_bugs": [349137], | |
| 130 "os": { | |
| 131 "type": "macosx", | |
| 132 "version": { | |
| 133 "op": "<", | |
| 134 "value": "10.9" | |
| 135 } | |
| 136 }, | |
| 137 "vendor_id": "0x1002", | |
| 138 "features": [ | |
| 139 "needs_glsl_built_in_function_emulation" | |
| 140 ] | |
| 141 }, | |
| 142 { | |
| 143 "id": 9, | |
| 144 "description": "AMD drivers get gl_PointCoord backward on OS X 10.8 or ear
lier", | |
| 145 "cr_bugs": [256349], | |
| 146 "os": { | |
| 147 "type": "macosx", | |
| 148 "version": { | |
| 149 "op": "<", | |
| 150 "value": "10.9" | |
| 151 } | |
| 152 }, | |
| 153 "vendor_id": "0x1002", | |
| 154 "features": [ | |
| 155 "reverse_point_sprite_coord_origin" | |
| 156 ] | |
| 157 }, | |
| 158 { | |
| 159 "id": 10, | |
| 160 "description": "Intel drivers get gl_PointCoord backward on OS X 10.8 or e
arlier", | |
| 161 "cr_bugs": [256349], | |
| 162 "os": { | |
| 163 "type": "macosx", | |
| 164 "version": { | |
| 165 "op": "<", | |
| 166 "value": "10.9" | |
| 167 } | |
| 168 }, | |
| 169 "vendor_id": "0x8086", | |
| 170 "features": [ | |
| 171 "reverse_point_sprite_coord_origin" | |
| 172 ] | |
| 173 }, | |
| 174 { | |
| 175 "id": 11, | |
| 176 "description": "Limit max texure size to 4096 on Macs with Intel GPUs", | |
| 177 "os": { | |
| 178 "type": "macosx", | |
| 179 "version": { | |
| 180 "op": "<", | |
| 181 "value": "10.9" | |
| 182 } | |
| 183 }, | |
| 184 "vendor_id": "0x8086", | |
| 185 "features": [ | |
| 186 "max_texture_size_limit_4096" | |
| 187 ] | |
| 188 }, | |
| 189 { | |
| 190 "id": 12, | |
| 191 "description": "Limit max cube map texure size to 1024 on Macs with Intel
GPUs", | |
| 192 "os": { | |
| 193 "type": "macosx", | |
| 194 "version": { | |
| 195 "op": "<", | |
| 196 "value": "10.9" | |
| 197 } | |
| 198 }, | |
| 199 "vendor_id": "0x8086", | |
| 200 "features": [ | |
| 201 "max_cube_map_texture_size_limit_1024" | |
| 202 ] | |
| 203 }, | |
| 204 { | |
| 205 "id": 13, | |
| 206 "description": "Limit max cube map texure size to 512 on older Macs with I
ntel GPUs", | |
| 207 "os": { | |
| 208 "type": "macosx", | |
| 209 "version": { | |
| 210 "op": "<", | |
| 211 "value": "10.7.3" | |
| 212 } | |
| 213 }, | |
| 214 "vendor_id": "0x8086", | |
| 215 "features": [ | |
| 216 "max_cube_map_texture_size_limit_512" | |
| 217 ] | |
| 218 }, | |
| 219 { | |
| 220 "id": 14, | |
| 221 "description": "Limit max texure size and cube map texture size to 4096 on
Macs with AMD GPUs", | |
| 222 "os": { | |
| 223 "type": "macosx", | |
| 224 "version": { | |
| 225 "op": "<", | |
| 226 "value": "10.9" | |
| 227 } | |
| 228 }, | |
| 229 "vendor_id": "0x1002", | |
| 230 "features": [ | |
| 231 "max_texture_size_limit_4096", | |
| 232 "max_cube_map_texture_size_limit_4096" | |
| 233 ] | |
| 234 }, | |
| 235 { | |
| 236 "id": 16, | 95 "id": 16, |
| 237 "description": "EXT_occlusion_query appears to be buggy with Intel GPUs on
Linux", | 96 "description": "EXT_occlusion_query appears to be buggy with Intel GPUs on
Linux", |
| 238 "os": { | 97 "os": { |
| 239 "type": "linux" | 98 "type": "linux" |
| 240 }, | 99 }, |
| 241 "vendor_id": "0x8086", | 100 "vendor_id": "0x8086", |
| 242 "disabled_extensions": [ | 101 "disabled_extensions": [ |
| 243 "GL_ARB_occlusion_query2", | 102 "GL_ARB_occlusion_query2", |
| 244 "GL_ARB_occlusion_query" | 103 "GL_ARB_occlusion_query" |
| 245 ] | 104 ] |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 "os": { | 184 "os": { |
| 326 "type": "android" | 185 "type": "android" |
| 327 }, | 186 }, |
| 328 "gl_vendor": "ARM.*", | 187 "gl_vendor": "ARM.*", |
| 329 "gl_renderer": ".*Mali-4.*", | 188 "gl_renderer": ".*Mali-4.*", |
| 330 "features": [ | 189 "features": [ |
| 331 "use_non_zero_size_for_client_side_stream_buffers" | 190 "use_non_zero_size_for_client_side_stream_buffers" |
| 332 ] | 191 ] |
| 333 }, | 192 }, |
| 334 { | 193 { |
| 335 "id": 25, | |
| 336 "cr_bugs": [152225], | |
| 337 "description": "PBO + Readpixels don't work on OS X 10.7", | |
| 338 "os": { | |
| 339 "type": "macosx", | |
| 340 "version": { | |
| 341 "op": "<", | |
| 342 "value": "10.8" | |
| 343 } | |
| 344 }, | |
| 345 "features": [ | |
| 346 "disable_async_readpixels" | |
| 347 ] | |
| 348 }, | |
| 349 { | |
| 350 "id": 26, | 194 "id": 26, |
| 351 "description": "Disable use of Direct3D 11 on Windows Vista and lower", | 195 "description": "Disable use of Direct3D 11 on Windows Vista and lower", |
| 352 "os": { | 196 "os": { |
| 353 "type": "win", | 197 "type": "win", |
| 354 "version": { | 198 "version": { |
| 355 "op": "<=", | 199 "op": "<=", |
| 356 "value": "6.0" | 200 "value": "6.0" |
| 357 } | 201 } |
| 358 }, | 202 }, |
| 359 "features": [ | 203 "features": [ |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 }, | 399 }, |
| 556 "features": [ | 400 "features": [ |
| 557 "unfold_short_circuit_as_ternary_operation" | 401 "unfold_short_circuit_as_ternary_operation" |
| 558 ] | 402 ] |
| 559 }, | 403 }, |
| 560 { | 404 { |
| 561 "id": 48, | 405 "id": 48, |
| 562 "description": "Force to use discrete GPU on older MacBookPro models", | 406 "description": "Force to use discrete GPU on older MacBookPro models", |
| 563 "cr_bugs": [113703], | 407 "cr_bugs": [113703], |
| 564 "os": { | 408 "os": { |
| 565 "type": "macosx", | 409 "type": "macosx" |
| 566 "version": { | |
| 567 "op": ">=", | |
| 568 "value": "10.7" | |
| 569 } | |
| 570 }, | 410 }, |
| 571 "machine_model_name": ["MacBookPro"], | 411 "machine_model_name": ["MacBookPro"], |
| 572 "machine_model_version": { | 412 "machine_model_version": { |
| 573 "op": "<", | 413 "op": "<", |
| 574 "value": "8" | 414 "value": "8" |
| 575 }, | 415 }, |
| 576 "gpu_count": { | 416 "gpu_count": { |
| 577 "op": "=", | 417 "op": "=", |
| 578 "value": "2" | 418 "value": "2" |
| 579 }, | 419 }, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 "disable_chromium_framebuffer_multisample" | 455 "disable_chromium_framebuffer_multisample" |
| 616 ] | 456 ] |
| 617 }, | 457 }, |
| 618 { | 458 { |
| 619 "id": 54, | 459 "id": 54, |
| 620 "cr_bugs": [124764, 349137], | 460 "cr_bugs": [124764, 349137], |
| 621 "description": "Clear uniforms before first program use on all platforms", | 461 "description": "Clear uniforms before first program use on all platforms", |
| 622 "exceptions": [ | 462 "exceptions": [ |
| 623 { | 463 { |
| 624 "os": { | 464 "os": { |
| 625 "type": "macosx", | 465 "type": "macosx" |
| 626 "version": { | |
| 627 "op": ">=", | |
| 628 "value": "10.9" | |
| 629 } | |
| 630 } | 466 } |
| 631 } | 467 } |
| 632 ], | 468 ], |
| 633 "features": [ | 469 "features": [ |
| 634 "clear_uniforms_before_first_program_use" | 470 "clear_uniforms_before_first_program_use" |
| 635 ] | 471 ] |
| 636 }, | 472 }, |
| 637 { | 473 { |
| 638 "id": 55, | 474 "id": 55, |
| 639 "cr_bugs": [333885], | 475 "cr_bugs": [333885], |
| (...skipping 23 matching lines...) Expand all Loading... |
| 663 "cr_bugs": [322760], | 499 "cr_bugs": [322760], |
| 664 "description": "Mac drivers handle varyings without static use incorrectly
", | 500 "description": "Mac drivers handle varyings without static use incorrectly
", |
| 665 "os": { | 501 "os": { |
| 666 "type": "macosx" | 502 "type": "macosx" |
| 667 }, | 503 }, |
| 668 "features": [ | 504 "features": [ |
| 669 "init_varyings_without_static_use" | 505 "init_varyings_without_static_use" |
| 670 ] | 506 ] |
| 671 }, | 507 }, |
| 672 { | 508 { |
| 673 "id": 58, | |
| 674 "description": "Multisampling is buggy in ATI cards on older Mac OS X", | |
| 675 "cr_bugs": [67752, 83153], | |
| 676 "os": { | |
| 677 "type": "macosx", | |
| 678 "version": { | |
| 679 "op": "<", | |
| 680 "value": "10.7.2" | |
| 681 } | |
| 682 }, | |
| 683 "vendor_id": "0x1002", | |
| 684 "features": [ | |
| 685 "disable_chromium_framebuffer_multisample" | |
| 686 ] | |
| 687 }, | |
| 688 { | |
| 689 "id": 59, | 509 "id": 59, |
| 690 "description": "Multisampling is buggy in Intel IvyBridge", | 510 "description": "Multisampling is buggy in Intel IvyBridge", |
| 691 "cr_bugs": [116370], | 511 "cr_bugs": [116370], |
| 692 "os": { | 512 "os": { |
| 693 "type": "linux" | 513 "type": "linux" |
| 694 }, | 514 }, |
| 695 "vendor_id": "0x8086", | 515 "vendor_id": "0x8086", |
| 696 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"], | 516 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"], |
| 697 "features": [ | 517 "features": [ |
| 698 "disable_chromium_framebuffer_multisample" | 518 "disable_chromium_framebuffer_multisample" |
| 699 ] | 519 ] |
| 700 }, | 520 }, |
| 701 { | 521 { |
| 702 "id": 60, | |
| 703 "description": "Multisampling is buggy on Mac OS X prior to 10.8.3", | |
| 704 "cr_bugs": [137303, 162466], | |
| 705 "os": { | |
| 706 "type": "macosx", | |
| 707 "version": { | |
| 708 "op": "<", | |
| 709 "value": "10.8.3" | |
| 710 } | |
| 711 }, | |
| 712 "features": [ | |
| 713 "disable_chromium_framebuffer_multisample" | |
| 714 ] | |
| 715 }, | |
| 716 { | |
| 717 "id": 63, | |
| 718 "description": "Shaders with sampler arrays indexing for-loop indices caus
e the GLSL compiler to crash on OS X", | |
| 719 "cr_bugs": [348198, 349137], | |
| 720 "os": { | |
| 721 "type": "macosx", | |
| 722 "version": { | |
| 723 "op": "<", | |
| 724 "value": "10.9" | |
| 725 } | |
| 726 }, | |
| 727 "features": [ | |
| 728 "unroll_for_loop_with_sampler_array_index" | |
| 729 ] | |
| 730 }, | |
| 731 { | |
| 732 "id": 64, | 522 "id": 64, |
| 733 "description": "Linux AMD drivers incorrectly return initial value of 1 fo
r TEXTURE_MAX_ANISOTROPY", | 523 "description": "Linux AMD drivers incorrectly return initial value of 1 fo
r TEXTURE_MAX_ANISOTROPY", |
| 734 "cr_bugs": [348237], | 524 "cr_bugs": [348237], |
| 735 "os": { | 525 "os": { |
| 736 "type": "linux" | 526 "type": "linux" |
| 737 }, | 527 }, |
| 738 "vendor_id": "0x1002", | 528 "vendor_id": "0x1002", |
| 739 "features": [ | 529 "features": [ |
| 740 "init_texture_max_anisotropy" | 530 "init_texture_max_anisotropy" |
| 741 ] | 531 ] |
| (...skipping 1068 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1810 "os": { | 1600 "os": { |
| 1811 "type": "linux" | 1601 "type": "linux" |
| 1812 }, | 1602 }, |
| 1813 "gl_vendor": "Vivante Corporation", | 1603 "gl_vendor": "Vivante Corporation", |
| 1814 "gl_renderer": "Vivante GC1000", | 1604 "gl_renderer": "Vivante GC1000", |
| 1815 "features": [ | 1605 "features": [ |
| 1816 "disable_multisampled_render_to_texture" | 1606 "disable_multisampled_render_to_texture" |
| 1817 ] | 1607 ] |
| 1818 }, | 1608 }, |
| 1819 { | 1609 { |
| 1820 "id": 154, | |
| 1821 "cr_bugs": [581777], | |
| 1822 "description": "glReadPixels does not work on IOSurface backed textures", | |
| 1823 "os": { | |
| 1824 "type": "macosx" | |
| 1825 }, | |
| 1826 "exceptions": [ | |
| 1827 { | |
| 1828 "os": { | |
| 1829 "type": "macosx", | |
| 1830 "version": { | |
| 1831 "op": ">=", | |
| 1832 "value": "10.9" | |
| 1833 } | |
| 1834 } | |
| 1835 } | |
| 1836 ], | |
| 1837 "features": [ | |
| 1838 "iosurface_readback_workaround" | |
| 1839 ] | |
| 1840 }, | |
| 1841 { | |
| 1842 "id": 155, | 1610 "id": 155, |
| 1843 "cr_bugs": [597794], | 1611 "cr_bugs": [597794], |
| 1844 "description": "Seamless cubemap does not work for Mac Intel", | 1612 "description": "Seamless cubemap does not work for Mac Intel", |
| 1845 "os": { | 1613 "os": { |
| 1846 "type": "macosx" | 1614 "type": "macosx" |
| 1847 }, | 1615 }, |
| 1848 "vendor_id": "0x8086", | 1616 "vendor_id": "0x8086", |
| 1849 "features": [ | 1617 "features": [ |
| 1850 "disable_texture_cube_map_seamless" | 1618 "disable_texture_cube_map_seamless" |
| 1851 ] | 1619 ] |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2050 "features": [ | 1818 "features": [ |
| 2051 "use_shadowed_tex_level_params" | 1819 "use_shadowed_tex_level_params" |
| 2052 ] | 1820 ] |
| 2053 } | 1821 } |
| 2054 ] | 1822 ] |
| 2055 } | 1823 } |
| 2056 | 1824 |
| 2057 ); // LONG_STRING_CONST macro | 1825 ); // LONG_STRING_CONST macro |
| 2058 | 1826 |
| 2059 } // namespace gpu | 1827 } // namespace gpu |
| OLD | NEW |