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 { 20 "name": "gpu driver bug list", 21 // Please update the version number whenever you change this file. 22 "version": "7.2.1", 23 "entries": [ 24 { 25 "id": 1, 26 "description": "Imagination driver doesn't like uploading lots of buffer data constantly", 27 "os": { 28 "type": "android" 29 }, 30 "gl_vendor": { 31 "op": "beginwith", 32 "value": "Imagination" 33 }, 34 "features": [ 35 "use_client_side_arrays_for_stream_buffers" 36 ] 37 }, 38 { 39 "id": 2, 40 "description": "ARM driver doesn't like uploading lots of buffer data constantly", 41 "os": { 42 "type": "android" 43 }, 44 "gl_vendor": { 45 "op": "beginwith", 46 "value": "ARM" 47 }, 48 "features": [ 49 "use_client_side_arrays_for_stream_buffers" 50 ] 51 }, 52 { 53 "id": 3, 54 "description": "glGenerateMipmap leaks vram without setting texture filters on some Mac drivers", 55 "webkit_bugs": [48489], 56 "cr_bugs": [349137], 57 "os": { 58 "type": "macosx", 59 "version": { 60 "op": "<", 61 "value": "10.9" 62 } 63 }, 64 "features": [ 65 "set_texture_filter_before_generating_mipmap" 66 ] 67 }, 68 { 69 "id": 4, 70 "description": "glReadPixels incorrectly sets alpha to 0 on some drivers from a drawing buffer without alpha channel", 71 "webkit_bugs": [33416], 72 "cr_bugs": [349137], 73 "os": { 74 "type": "macosx", 75 "version": { 76 "op": "<", 77 "value": "10.9" 78 } 79 }, 80 "features": [ 81 "clear_alpha_in_readpixels" 82 ] 83 }, 84 { 85 "id": 5, 86 "description": "Always call glUseProgram after a successful link to avoid a driver bug", 87 "cr_bugs": [349137], 88 "vendor_id": "0x10de", 89 "exceptions": [ 90 { 91 "os": { 92 "type": "macosx", 93 "version": { 94 "op": ">=", 95 "value": "10.9" 96 } 97 } 98 } 99 ], 100 "features": [ 101 "use_current_program_after_successful_link" 102 ] 103 }, 104 { 105 "id": 6, 106 "description": "Restore scissor on FBO change with Qualcomm GPUs on older versions of Android", 107 "cr_bugs": [165493, 222018], 108 "os": { 109 "type": "android", 110 "version": { 111 "op": "<", 112 "value": "4.3" 113 } 114 }, 115 "gl_vendor": { 116 "op": "beginwith", 117 "value": "Qualcomm" 118 }, 119 "features": [ 120 "restore_scissor_on_fbo_change" 121 ] 122 }, 123 { 124 "id": 7, 125 "cr_bugs": [89557], 126 "description": "Work around a bug in offscreen buffers on NVIDIA GPUs on Macs", 127 "os": { 128 "type": "macosx" 129 }, 130 "vendor_id": "0x10de", 131 "features": [ 132 "needs_offscreen_buffer_workaround" 133 ] 134 }, 135 { 136 "id": 8, 137 "description": "A few built-in glsl functions on Mac behave incorrectly", 138 "cr_bugs": [349137], 139 "os": { 140 "type": "macosx", 141 "version": { 142 "op": "<", 143 "value": "10.9" 144 } 145 }, 146 "vendor_id": "0x1002", 147 "features": [ 148 "needs_glsl_built_in_function_emulation" 149 ] 150 }, 151 { 152 "id": 9, 153 "description": "AMD drivers get gl_PointCoord backward on OS X 10.8 or earlier", 154 "cr_bugs": [256349], 155 "os": { 156 "type": "macosx", 157 "version": { 158 "op": "<", 159 "value": "10.9" 160 } 161 }, 162 "vendor_id": "0x1002", 163 "features": [ 164 "reverse_point_sprite_coord_origin" 165 ] 166 }, 167 { 168 "id": 10, 169 "description": "Intel drivers get gl_PointCoord backward on OS X 10.8 or earlier", 170 "cr_bugs": [256349], 171 "os": { 172 "type": "macosx", 173 "version": { 174 "op": "<", 175 "value": "10.9" 176 } 177 }, 178 "vendor_id": "0x8086", 179 "features": [ 180 "reverse_point_sprite_coord_origin" 181 ] 182 }, 183 { 184 "id": 11, 185 "description": "Limit max texure size to 4096 on Macs with Intel GPUs", 186 "os": { 187 "type": "macosx" 188 }, 189 "vendor_id": "0x8086", 190 "features": [ 191 "max_texture_size_limit_4096" 192 ] 193 }, 194 { 195 "id": 12, 196 "description": "Limit max cube map texure size to 1024 on Macs with Intel GPUs", 197 "os": { 198 "type": "macosx" 199 }, 200 "vendor_id": "0x8086", 201 "features": [ 202 "max_cube_map_texture_size_limit_1024" 203 ] 204 }, 205 { 206 "id": 13, 207 "description": "Limit max cube map texure size to 512 on older Macs with Intel GPUs", 208 "os": { 209 "type": "macosx", 210 "version": { 211 "op": "<", 212 "value": "10.7.3" 213 } 214 }, 215 "vendor_id": "0x8086", 216 "features": [ 217 "max_cube_map_texture_size_limit_512" 218 ] 219 }, 220 { 221 "id": 14, 222 "description": "Limit max texure size and cube map texture size to 4096 on Macs with AMD GPUs", 223 "os": { 224 "type": "macosx" 225 }, 226 "vendor_id": "0x1002", 227 "features": [ 228 "max_texture_size_limit_4096", 229 "max_cube_map_texture_size_limit_4096" 230 ] 231 }, 232 { 233 "id": 16, 234 "description": "EXT_occlusion_query appears to be buggy with Intel GPUs on Linux", 235 "os": { 236 "type": "linux" 237 }, 238 "vendor_id": "0x8086", 239 "features": [ 240 "disable_ext_occlusion_query" 241 ] 242 }, 243 { 244 "id": 17, 245 "description": "Some drivers are unable to reset the D3D device in the GPU process sandbox", 246 "os": { 247 "type": "win" 248 }, 249 "features": [ 250 "exit_on_context_lost" 251 ] 252 }, 253 { 254 "id": 18, 255 "description": "Everything except async + NPOT + multiple-of-8 textures are brutally slow for Imagination drivers", 256 "os": { 257 "type": "android" 258 }, 259 "gl_vendor": { 260 "op": "beginwith", 261 "value": "Imagination" 262 }, 263 "features": [ 264 "enable_chromium_fast_npot_mo8_textures" 265 ] 266 }, 267 { 268 "id": 19, 269 "description": "Disable depth textures on Android with Qualcomm GPUs", 270 "os": { 271 "type": "android" 272 }, 273 "gl_vendor": { 274 "op": "beginwith", 275 "value": "Qualcomm" 276 }, 277 "features": [ 278 "disable_depth_texture" 279 ] 280 }, 281 { 282 "id": 20, 283 "description": "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver bugs", 284 "os": { 285 "type": "macosx" 286 }, 287 "vendor_id": "0x10de", 288 "device_id": ["0x0fd5"], 289 "multi_gpu_category": "any", 290 "features": [ 291 "disable_ext_draw_buffers" 292 ] 293 }, 294 { 295 "id": 21, 296 "description": "Vivante GPUs are buggy with context switching", 297 "cr_bugs": [179250, 235935], 298 "os": { 299 "type": "android" 300 }, 301 "gl_extensions": { 302 "op": "contains", 303 "value": "GL_VIV_shader_binary" 304 }, 305 "features": [ 306 "unbind_fbo_on_context_switch" 307 ] 308 }, 309 { 310 "id": 22, 311 "description": "Imagination drivers are buggy with context switching", 312 "cr_bugs": [230896], 313 "os": { 314 "type": "android" 315 }, 316 "gl_vendor": { 317 "op": "beginwith", 318 "value": "Imagination" 319 }, 320 "features": [ 321 "unbind_fbo_on_context_switch" 322 ] 323 }, 324 { 325 "id": 23, 326 "cr_bugs": [243038], 327 "description": "Disable OES_standard_derivative on Intel Pineview M Gallium drivers", 328 "os": { 329 "type": "chromeos" 330 }, 331 "vendor_id": "0x8086", 332 "device_id": ["0xa011", "0xa012"], 333 "features": [ 334 "disable_oes_standard_derivatives" 335 ] 336 }, 337 { 338 "id": 24, 339 "cr_bugs": [231082], 340 "description": "Mali-400 drivers throw an error when a buffer object's size is set to 0", 341 "os": { 342 "type": "android" 343 }, 344 "gl_vendor": { 345 "op": "beginwith", 346 "value": "ARM" 347 }, 348 "gl_renderer": { 349 "op": "contains", 350 "value": "Mali-400" 351 }, 352 "features": [ 353 "use_non_zero_size_for_client_side_stream_buffers" 354 ] 355 }, 356 { 357 "id": 25, 358 "cr_bugs": [152225], 359 "description": "PBO + Readpixels don't work on OS X 10.7", 360 "os": { 361 "type": "macosx", 362 "version": { 363 "op": "<", 364 "value": "10.8" 365 } 366 }, 367 "features": [ 368 "disable_async_readpixels" 369 ] 370 }, 371 { 372 "id": 26, 373 "description": "Disable use of Direct3D 11 on Windows Vista and lower", 374 "os": { 375 "type": "win", 376 "version": { 377 "op": "<=", 378 "value": "6.0" 379 } 380 }, 381 "features": [ 382 "disable_d3d11" 383 ] 384 }, 385 { 386 "id": 27, 387 "cr_bugs": [265115], 388 "description": "Async Readpixels with GL_BGRA format is broken on Haswell chipset on Macs", 389 "os": { 390 "type": "macosx" 391 }, 392 "vendor_id": "0x8086", 393 "device_id": ["0x0402", "0x0406", "0x040a", "0x0412", "0x0416", "0x041a", 394 "0x0a04", "0x0a16", "0x0a22", "0x0a26", "0x0a2a"], 395 "features": [ 396 "swizzle_rgba_for_async_readpixels" 397 ] 398 }, 399 { 400 "id": 30, 401 "cr_bugs": [237931], 402 "description": "Multisampling is buggy on OSX when multiple monitors are connected", 403 "os": { 404 "type": "macosx" 405 }, 406 "features": [ 407 "disable_multimonitor_multisampling" 408 ] 409 }, 410 { 411 "id": 31, 412 "cr_bugs": [154715, 10068, 269829, 294779, 285292], 413 "description": "The Mali-Txxx driver does not guarantee flush ordering", 414 "gl_vendor": { 415 "op": "beginwith", 416 "value": "ARM" 417 }, 418 "gl_renderer": { 419 "op": "beginwith", 420 "value": "Mali-T" 421 }, 422 "features": [ 423 "use_virtualized_gl_contexts" 424 ] 425 }, 426 { 427 "id": 32, 428 "cr_bugs": [179815], 429 "description": "Share groups are not working on (older?) Broadcom drivers", 430 "os": { 431 "type": "android" 432 }, 433 "gl_vendor": { 434 "op": "beginwith", 435 "value": "Broadcom" 436 }, 437 "features": [ 438 "use_virtualized_gl_contexts" 439 ] 440 }, 441 { 442 "id": 33, 443 "description": "Share group-related crashes and poor context switching perf on Galaxy Nexus", 444 "os": { 445 "type": "android" 446 }, 447 "gl_vendor": { 448 "op": "beginwith", 449 "value": "Imagination" 450 }, 451 "features": [ 452 "use_virtualized_gl_contexts" 453 ] 454 }, 455 { 456 "id": 34, 457 "cr_bugs": [179250, 229643, 230896], 458 "description": "Share groups are not working on (older?) Vivante drivers", 459 "os": { 460 "type": "android" 461 }, 462 "gl_extensions": { 463 "op": "contains", 464 "value": "GL_VIV_shader_binary" 465 }, 466 "features": [ 467 "use_virtualized_gl_contexts" 468 ] 469 }, 470 { 471 "id": 35, 472 "cr_bugs": [163464], 473 "description": "Share-group related crashes on older NVIDIA drivers", 474 "os": { 475 "type": "android", 476 "version": { 477 "op": "<", 478 "value": "4.3" 479 } 480 }, 481 "gl_vendor": { 482 "op": "beginwith", 483 "value": "NVIDIA" 484 }, 485 "features": [ 486 "use_virtualized_gl_contexts" 487 ] 488 }, 489 { 490 "id": 36, 491 "cr_bugs": [163464, 233612], 492 "description": "Share-group related crashes on Qualcomm drivers", 493 "os": { 494 "type": "android", 495 "version": { 496 "op": "<", 497 "value": "4.3" 498 } 499 }, 500 "gl_vendor": { 501 "op": "beginwith", 502 "value": "Qualcomm" 503 }, 504 "features": [ 505 "use_virtualized_gl_contexts" 506 ] 507 }, 508 { 509 "id": 37, 510 "cr_bugs": [286468], 511 "description": "Program link fails in NVIDIA Linux if gl_Position is not set", 512 "os": { 513 "type": "linux" 514 }, 515 "vendor_id": "0x10de", 516 "features": [ 517 "init_gl_position_in_vertex_shader" 518 ] 519 }, 520 { 521 "id": 38, 522 "cr_bugs": [289461], 523 "description": "Non-virtual contexts on Qualcomm sometimes cause out-of-order frames", 524 "os": { 525 "type": "android" 526 }, 527 "gl_vendor": { 528 "op": "beginwith", 529 "value": "Qualcomm" 530 }, 531 "features": [ 532 "use_virtualized_gl_contexts" 533 ] 534 }, 535 { 536 "id": 39, 537 "cr_bugs": [290391], 538 "description": "Multisampled renderbuffer allocation must be validated on some Macs", 539 "os": { 540 "type": "macosx" 541 }, 542 "features": [ 543 "validate_multisample_buffer_allocation" 544 ] 545 }, 546 { 547 "id": 40, 548 "cr_bugs": [290876], 549 "description": "Framebuffer discarding causes flickering on old ARM drivers", 550 "os": { 551 "type": "android", 552 "version": { 553 "op": "<", 554 "value": "4.4" 555 } 556 }, 557 "gl_vendor": { 558 "op": "beginwith", 559 "value": "ARM" 560 }, 561 "features": [ 562 "disable_ext_discard_framebuffer" 563 ] 564 }, 565 { 566 "id": 42, 567 "cr_bugs": [290876], 568 "description": "Framebuffer discarding causes flickering on older IMG drivers", 569 "os": { 570 "type": "android" 571 }, 572 "gl_vendor": { 573 "op": "beginwith", 574 "value": "Imagination" 575 }, 576 "gl_renderer": { 577 "op": "=", 578 "value": "PowerVR SGX 540" 579 }, 580 "features": [ 581 "disable_ext_discard_framebuffer" 582 ] 583 }, 584 { 585 "id": 43, 586 "cr_bugs": [299494], 587 "description": "Framebuffer discarding doesn't accept trivial attachments on Vivante", 588 "os": { 589 "type": "android" 590 }, 591 "gl_extensions": { 592 "op": "contains", 593 "value": "GL_VIV_shader_binary" 594 }, 595 "features": [ 596 "disable_ext_discard_framebuffer" 597 ] 598 }, 599 { 600 "id": 44, 601 "cr_bugs": [301988], 602 "description": "Framebuffer discarding causes jumpy scrolling on Mali drivers", 603 "os": { 604 "type": "chromeos" 605 }, 606 "features": [ 607 "disable_ext_discard_framebuffer" 608 ] 609 }, 610 { 611 "id": 45, 612 "cr_bugs": [307751], 613 "description": "Unfold short circuit on Mac OS X", 614 "os": { 615 "type": "macosx" 616 }, 617 "features": [ 618 "unfold_short_circuit_as_ternary_operation" 619 ] 620 }, 621 { 622 "id": 48, 623 "description": "Force to use discrete GPU on older MacBookPro models", 624 "cr_bugs": [113703], 625 "os": { 626 "type": "macosx", 627 "version": { 628 "op": ">=", 629 "value": "10.7" 630 } 631 }, 632 "machine_model_name": ["MacBookPro"], 633 "machine_model_version": { 634 "op": "<", 635 "value": "8" 636 }, 637 "gpu_count": { 638 "op": "=", 639 "value": "2" 640 }, 641 "features": [ 642 "force_discrete_gpu" 643 ] 644 }, 645 { 646 "id": 49, 647 "cr_bugs": [309734], 648 "description": "The first draw operation from an idle state is slow", 649 "os": { 650 "type": "android" 651 }, 652 "gl_vendor": { 653 "op": "beginwith", 654 "value": "Qualcomm" 655 }, 656 "features": [ 657 "wake_up_gpu_before_drawing" 658 ] 659 }, 660 { 661 "id": 50, 662 "description": "NVIDIA driver requires unbinding a GpuMemoryBuffer from the texture before mapping it to main memory", 663 "os": { 664 "type": "android" 665 }, 666 "gl_vendor": { 667 "op": "beginwith", 668 "value": "NVIDIA" 669 }, 670 "features": [ 671 "release_image_after_use" 672 ] 673 }, 674 { 675 "id": 51, 676 "description": "TexSubImage2D() is faster for full uploads on ANGLE", 677 "os": { 678 "type": "win" 679 }, 680 "gl_renderer": { 681 "op": "beginwith", 682 "value": "ANGLE" 683 }, 684 "features": [ 685 "texsubimage2d_faster_than_teximage2d" 686 ] 687 }, 688 { 689 "id": 52, 690 "description": "ES3 MSAA is broken on Qualcomm", 691 "os": { 692 "type": "android" 693 }, 694 "gl_vendor": { 695 "op": "beginwith", 696 "value": "Qualcomm" 697 }, 698 "features": [ 699 "disable_multisampling" 700 ] 701 }, 702 { 703 "id": 54, 704 "cr_bugs": [124764, 349137], 705 "description": "Clear uniforms before first program use on all platforms", 706 "exceptions": [ 707 { 708 "os": { 709 "type": "macosx", 710 "version": { 711 "op": ">=", 712 "value": "10.9" 713 } 714 } 715 } 716 ], 717 "features": [ 718 "clear_uniforms_before_first_program_use" 719 ] 720 }, 721 { 722 "id": 55, 723 "cr_bugs": [333885], 724 "description": "Mesa drivers in Linux handle varyings without static use incorrectly", 725 "os": { 726 "type": "linux" 727 }, 728 "driver_vendor": { 729 "op": "=", 730 "value": "Mesa" 731 }, 732 "features": [ 733 "count_all_in_varyings_packing" 734 ] 735 }, 736 { 737 "id": 56, 738 "cr_bugs": [333885], 739 "description": "Mesa drivers in ChromeOS handle varyings without static use incorrectly", 740 "os": { 741 "type": "chromeos" 742 }, 743 "driver_vendor": { 744 "op": "=", 745 "value": "Mesa" 746 }, 747 "features": [ 748 "count_all_in_varyings_packing" 749 ] 750 }, 751 { 752 "id": 57, 753 "cr_bugs": [322760], 754 "description": "Mac drivers handle varyings without static use incorrectly", 755 "os": { 756 "type": "macosx" 757 }, 758 "features": [ 759 "init_varyings_without_static_use" 760 ] 761 }, 762 { 763 "id": 58, 764 "description": "Multisampling is buggy in ATI cards on older Mac OS X", 765 "cr_bugs": [67752, 83153], 766 "os": { 767 "type": "macosx", 768 "version": { 769 "op": "<", 770 "value": "10.7.2" 771 } 772 }, 773 "vendor_id": "0x1002", 774 "features": [ 775 "disable_multisampling" 776 ] 777 }, 778 { 779 "id": 59, 780 "description": "Multisampling is buggy in Intel IvyBridge", 781 "cr_bugs": [116370], 782 "os": { 783 "type": "linux" 784 }, 785 "vendor_id": "0x8086", 786 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"], 787 "features": [ 788 "disable_multisampling" 789 ] 790 }, 791 { 792 "id": 60, 793 "description": "Multisampling is buggy on Mac OS X prior to 10.8.3", 794 "cr_bugs": [137303, 162466], 795 "os": { 796 "type": "macosx", 797 "version": { 798 "op": "<", 799 "value": "10.8.3" 800 } 801 }, 802 "features": [ 803 "disable_multisampling" 804 ] 805 }, 806 { 807 "id": 63, 808 "description": "Shaders with sampler arrays indexing for-loop indices cause the GLSL compiler to crash on OS X", 809 "cr_bugs": [348198, 349137], 810 "os": { 811 "type": "macosx", 812 "version": { 813 "op": "<", 814 "value": "10.9" 815 } 816 }, 817 "features": [ 818 "unroll_for_loop_with_sampler_array_index" 819 ] 820 }, 821 { 822 "id": 64, 823 "description": "Linux AMD drivers incorrectly return initial value of 1 for TEXTURE_MAX_ANISOTROPY", 824 "cr_bugs": [348237], 825 "os": { 826 "type": "linux" 827 }, 828 "vendor_id": "0x1002", 829 "features": [ 830 "init_texture_max_anisotropy" 831 ] 832 }, 833 { 834 "id": 65, 835 "description": "Linux NVIDIA drivers don't have the correct defaults for vertex attributes", 836 "cr_bugs": [351528], 837 "os": { 838 "type": "linux" 839 }, 840 "vendor_id": "0x10de", 841 "features": [ 842 "init_vertex_attributes" 843 ] 844 }, 845 { 846 "id": 66, 847 "description": "Force glFinish() after compositing on older OS X on Intel GPU", 848 "cr_bugs": [123409], 849 "os": { 850 "type": "macosx", 851 "version": { 852 "op": "<=", 853 "value": "10.7" 854 } 855 }, 856 "vendor_id": "0x8086", 857 "multi_gpu_category": "active", 858 "features": [ 859 "force_gl_finish_after_compositing" 860 ] 861 }, 862 { 863 "id": 68, 864 "description": "Disable partial swaps on linux drivers", 865 "cr_bugs": [339493], 866 "os": { 867 "type": "linux" 868 }, 869 "features": [ 870 "disable_post_sub_buffers_for_onscreen_surfaces" 871 ] 872 }, 873 { 874 "id": 69, 875 "description": "Some shaders in Skia need more than the min available vertex and fragment shader uniform vectors in case of OSMesa", 876 "cr_bugs": [174845], 877 "driver_vendor": { 878 "op": "=", 879 "value": "osmesa" 880 }, 881 "features": [ 882 "max_fragment_uniform_vectors_32", 883 "max_varying_vectors_16", 884 "max_vertex_uniform_vectors_256" 885 ] 886 }, 887 { 888 "id": 70, 889 "description": "Disable D3D11 on older nVidia drivers", 890 "cr_bugs": [349929], 891 "os": { 892 "type": "win" 893 }, 894 "vendor_id": "0x10de", 895 "driver_version": { 896 "op": "<=", 897 "value": "8.17.12.6973" 898 }, 899 "features": [ 900 "disable_d3d11" 901 ] 902 }, 903 { 904 "id": 71, 905 "description": "Vivante's support of OES_standard_derivatives is buggy", 906 "cr_bugs": [368005], 907 "os": { 908 "type": "android" 909 }, 910 "gl_extensions": { 911 "op": "contains", 912 "value": "GL_VIV_shader_binary" 913 }, 914 "features": [ 915 "disable_oes_standard_derivatives" 916 ] 917 }, 918 { 919 "id": 72, 920 "description": "Use virtual contexts on NVIDIA with GLES 3.1", 921 "cr_bugs": [369316], 922 "os": { 923 "type": "android" 924 }, 925 "gl_type": "gles", 926 "gl_version": { 927 "op": "=", 928 "value": "3.1" 929 }, 930 "gl_vendor": { 931 "op": "beginwith", 932 "value": "NVidia" 933 }, 934 "features": [ 935 "use_virtualized_gl_contexts" 936 ] 937 }, 938 { 939 "id": 73, 940 "description": "Using D3D11 causes browser crashes on certain Intel GPUs", 941 "cr_bugs": [310808], 942 "os": { 943 "type": "win" 944 }, 945 "vendor_id": "0x8086", 946 "features": [ 947 "disable_d3d11" 948 ] 949 }, 950 ) // LONG_STRING_CONST macro 951 // Avoid C2026 (string too big) error on VisualStudio. 952 LONG_STRING_CONST( 953 { 954 "id": 74, 955 "cr_bugs": [278606, 382686], 956 "description": "Testing EGL sync fences was broken on most Qualcomm drivers", 957 "os": { 958 "type": "android", 959 "version": { 960 "op": "<=", 961 "value": "4.4.4" 962 } 963 }, 964 "gl_vendor": { 965 "op": "beginwith", 966 "value": "Qualcomm" 967 }, 968 "features": [ 969 "disable_egl_khr_fence_sync" 970 ] 971 }, 972 { 973 "id": 75, 974 "description": "Mali-400 support of EXT_multisampled_render_to_texture is buggy on Android < 4.3", 975 "cr_bugs": [362435], 976 "os": { 977 "type": "android", 978 "version": { 979 "op": "<", 980 "value": "4.3" 981 } 982 }, 983 "gl_vendor": { 984 "op": "beginwith", 985 "value": "ARM" 986 }, 987 "gl_renderer": { 988 "op": "contains", 989 "value": "Mali-400" 990 }, 991 "features": [ 992 "disable_multisampling" 993 ] 994 }, 995 { 996 "id": 76, 997 "cr_bugs": [371530], 998 "description": "Testing EGL sync fences was broken on IMG", 999 "os": { 1000 "type": "android", 1001 "version": { 1002 "op": "<=", 1003 "value": "4.4.4" 1004 } 1005 }, 1006 "gl_vendor": { 1007 "op": "beginwith", 1008 "value": "Imagination Technologies" 1009 }, 1010 "features": [ 1011 "disable_egl_khr_fence_sync" 1012 ] 1013 }, 1014 { 1015 "id": 77, 1016 "cr_bugs": [378691, 373360, 371530, 398964], 1017 "description": "Testing fences was broken on Mali ES2 drivers", 1018 "os": { 1019 "type": "android", 1020 "version": { 1021 "op": "<=", 1022 "value": "4.4.4" 1023 } 1024 }, 1025 "gl_vendor": { 1026 "op": "beginwith", 1027 "value": "ARM" 1028 }, 1029 "gl_renderer": { 1030 "op": "beginwith", 1031 "value": "Mali" 1032 }, 1033 "gl_type": "gles", 1034 "gl_version": { 1035 "op": "<", 1036 "value": "3.0" 1037 }, 1038 "features": [ 1039 "disable_egl_khr_fence_sync" 1040 ] 1041 }, 1042 { 1043 "id": 78, 1044 "cr_bugs": [378691, 373360, 371530], 1045 "description": "Testing fences was broken on Broadcom drivers", 1046 "os": { 1047 "type": "android", 1048 "version": { 1049 "op": "<=", 1050 "value": "4.4.4" 1051 } 1052 }, 1053 "gl_vendor": { 1054 "op": "beginwith", 1055 "value": "Broadcom" 1056 }, 1057 "features": [ 1058 "disable_egl_khr_fence_sync" 1059 ] 1060 }, 1061 { 1062 "id": 79, 1063 "cr_bugs": [371530], 1064 "description": "Testing ARB sync fences is broken on MacOSX", 1065 "os": { 1066 "type": "macosx" 1067 }, 1068 "features": [ 1069 "disable_arb_sync" 1070 ] 1071 }, 1072 { 1073 "id": 82, 1074 "description": "PBO mappings segfault on certain older Qualcomm drivers", 1075 "cr_bugs": [394510], 1076 "os": { 1077 "type": "android", 1078 "version": { 1079 "op": "<", 1080 "value": "4.3" 1081 } 1082 }, 1083 "gl_vendor": { 1084 "op": "beginwith", 1085 "value": "Qualcomm" 1086 }, 1087 "features": [ 1088 "disable_async_readpixels" 1089 ] 1090 }, 1091 { 1092 "id": 86, 1093 "description": "Disable use of Direct3D 11 on Matrox video cards", 1094 "cr_bugs": [395861], 1095 "os": { 1096 "type": "win" 1097 }, 1098 "vendor_id": "0x102b", 1099 "features": [ 1100 "disable_d3d11" 1101 ] 1102 }, 1103 { 1104 "id": 87, 1105 "description": "Disable use of Direct3D 11 on older AMD drivers", 1106 "cr_bugs": [402134], 1107 "os": { 1108 "type": "win" 1109 }, 1110 "vendor_id": "0x1002", 1111 "driver_date": { 1112 "op": "<", 1113 "value": "2011.1" 1114 }, 1115 "features": [ 1116 "disable_d3d11" 1117 ] 1118 }, 1119 { 1120 "id": 88, 1121 "description": "Disable EGL_KHR_wait_sync on NVIDIA with GLES 3.1", 1122 "os": { 1123 "type": "android", 1124 "version": { 1125 "op": "=", 1126 "value": "5.0.0" 1127 } 1128 }, 1129 "gl_type": "gles", 1130 "gl_version": { 1131 "op": "=", 1132 "value": "3.1" 1133 }, 1134 "gl_vendor": { 1135 "op": "beginwith", 1136 "value": "NVidia" 1137 }, 1138 "features": [ 1139 "disable_egl_khr_wait_sync" 1140 ] 1141 } 1142 ] 1143 } 1144 1145 ); // LONG_STRING_CONST macro 1146 1147 } // namespace gpu 1148