Mac: Actually enable NSCGLSurface API
[chromium-blink-merge.git] / gpu / config / gpu_driver_bug_list_json.cc
blob719338b1430fffeac765c5837feaa6540f476786
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.
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>.
11 #include "gpu/config/gpu_control_list_jsons.h"
13 #define LONG_STRING_CONST(...) #__VA_ARGS__
15 namespace gpu {
17 const char kGpuDriverBugListJson[] = LONG_STRING_CONST(
20 "name": "gpu driver bug list",
21 // Please update the version number whenever you change this file.
22 "version": "8.15",
23 "entries": [
25 "id": 1,
26 "description": "Imagination driver doesn't like uploading lots of buffer data constantly",
27 "os": {
28 "type": "android"
30 "gl_vendor": "Imagination.*",
31 "features": [
32 "use_client_side_arrays_for_stream_buffers"
36 "id": 2,
37 "description": "ARM driver doesn't like uploading lots of buffer data constantly",
38 "os": {
39 "type": "android"
41 "gl_vendor": "ARM.*",
42 "features": [
43 "use_client_side_arrays_for_stream_buffers"
47 "id": 3,
48 "description": "glGenerateMipmap leaks vram without setting texture filters 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"
58 "features": [
59 "set_texture_filter_before_generating_mipmap"
63 "id": 4,
64 "description": "glReadPixels incorrectly sets alpha to 0 on some drivers from 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"
74 "features": [
75 "clear_alpha_in_readpixels"
79 "id": 5,
80 "description": "Always call glUseProgram after a successful link to avoid a driver bug",
81 "cr_bugs": [349137],
82 "vendor_id": "0x10de",
83 "exceptions": [
85 "os": {
86 "type": "macosx",
87 "version": {
88 "op": ">=",
89 "value": "10.9"
94 "features": [
95 "use_current_program_after_successful_link"
99 "id": 6,
100 "description": "Restore scissor on FBO change with Qualcomm GPUs on older versions of Android",
101 "cr_bugs": [165493, 222018],
102 "os": {
103 "type": "android",
104 "version": {
105 "op": "<",
106 "value": "4.3"
109 "gl_vendor": "Qualcomm.*",
110 "features": [
111 "restore_scissor_on_fbo_change"
115 "id": 7,
116 "cr_bugs": [89557],
117 "description": "Work around a bug in offscreen buffers on NVIDIA GPUs on Macs",
118 "os": {
119 "type": "macosx"
121 "vendor_id": "0x10de",
122 "features": [
123 "needs_offscreen_buffer_workaround"
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"
137 "vendor_id": "0x1002",
138 "features": [
139 "needs_glsl_built_in_function_emulation"
143 "id": 9,
144 "description": "AMD drivers get gl_PointCoord backward on OS X 10.8 or earlier",
145 "cr_bugs": [256349],
146 "os": {
147 "type": "macosx",
148 "version": {
149 "op": "<",
150 "value": "10.9"
153 "vendor_id": "0x1002",
154 "features": [
155 "reverse_point_sprite_coord_origin"
159 "id": 10,
160 "description": "Intel drivers get gl_PointCoord backward on OS X 10.8 or earlier",
161 "cr_bugs": [256349],
162 "os": {
163 "type": "macosx",
164 "version": {
165 "op": "<",
166 "value": "10.9"
169 "vendor_id": "0x8086",
170 "features": [
171 "reverse_point_sprite_coord_origin"
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"
184 "vendor_id": "0x8086",
185 "features": [
186 "max_texture_size_limit_4096"
190 "id": 12,
191 "description": "Limit max cube map texure size to 1024 on Macs with Intel GPUs",
192 "os": {
193 "type": "macosx"
195 "vendor_id": "0x8086",
196 "features": [
197 "max_cube_map_texture_size_limit_1024"
201 "id": 13,
202 "description": "Limit max cube map texure size to 512 on older Macs with Intel GPUs",
203 "os": {
204 "type": "macosx",
205 "version": {
206 "op": "<",
207 "value": "10.7.3"
210 "vendor_id": "0x8086",
211 "features": [
212 "max_cube_map_texture_size_limit_512"
216 "id": 14,
217 "description": "Limit max texure size and cube map texture size to 4096 on Macs with AMD GPUs",
218 "os": {
219 "type": "macosx",
220 "version": {
221 "op": "<",
222 "value": "10.9"
225 "vendor_id": "0x1002",
226 "features": [
227 "max_texture_size_limit_4096",
228 "max_cube_map_texture_size_limit_4096"
232 "id": 16,
233 "description": "EXT_occlusion_query appears to be buggy with Intel GPUs on Linux",
234 "os": {
235 "type": "linux"
237 "vendor_id": "0x8086",
238 "disabled_extensions": [
239 "GL_ARB_occlusion_query2",
240 "GL_ARB_occlusion_query"
244 "id": 17,
245 "description": "Some drivers are unable to reset the D3D device in the GPU process sandbox",
246 "os": {
247 "type": "win"
249 "features": [
250 "exit_on_context_lost"
254 "id": 19,
255 "description": "Disable depth textures on Android with Qualcomm GPUs",
256 "os": {
257 "type": "android"
259 "gl_vendor": "Qualcomm.*",
260 "features": [
261 "disable_depth_texture"
263 "disabled_extensions": [
264 "GL_OES_depth_texture"
268 "id": 20,
269 "description": "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver bugs",
270 "os": {
271 "type": "macosx"
273 "vendor_id": "0x10de",
274 "device_id": ["0x0fd5"],
275 "multi_gpu_category": "any",
276 "features": [
277 "disable_ext_draw_buffers"
281 "id": 21,
282 "description": "Vivante GPUs are buggy with context switching",
283 "cr_bugs": [179250, 235935],
284 "os": {
285 "type": "android"
287 "gl_extensions": ".*GL_VIV_shader_binary.*",
288 "features": [
289 "unbind_fbo_on_context_switch"
293 "id": 22,
294 "description": "Imagination drivers are buggy with context switching",
295 "cr_bugs": [230896],
296 "os": {
297 "type": "android"
299 "gl_vendor": "Imagination.*",
300 "features": [
301 "unbind_fbo_on_context_switch"
305 "id": 23,
306 "cr_bugs": [243038],
307 "description": "Disable OES_standard_derivative on Intel Pineview M Gallium drivers",
308 "os": {
309 "type": "chromeos"
311 "vendor_id": "0x8086",
312 "device_id": ["0xa011", "0xa012"],
313 "disabled_extensions": [
314 "GL_OES_standard_derivatives"
318 "id": 24,
319 "cr_bugs": [231082],
320 "description": "Mali-400 drivers throw an error when a buffer object's size is set to 0",
321 "os": {
322 "type": "android"
324 "gl_vendor": "ARM.*",
325 "gl_renderer": ".*Mali-400.*",
326 "features": [
327 "use_non_zero_size_for_client_side_stream_buffers"
331 "id": 25,
332 "cr_bugs": [152225],
333 "description": "PBO + Readpixels don't work on OS X 10.7",
334 "os": {
335 "type": "macosx",
336 "version": {
337 "op": "<",
338 "value": "10.8"
341 "features": [
342 "disable_async_readpixels"
346 "id": 26,
347 "description": "Disable use of Direct3D 11 on Windows Vista and lower",
348 "os": {
349 "type": "win",
350 "version": {
351 "op": "<=",
352 "value": "6.0"
355 "features": [
356 "disable_d3d11"
360 "id": 27,
361 "cr_bugs": [265115],
362 "description": "Async Readpixels with GL_BGRA format is broken on Haswell chipset on Macs",
363 "os": {
364 "type": "macosx"
366 "vendor_id": "0x8086",
367 "device_id": ["0x0402", "0x0406", "0x040a", "0x0412", "0x0416", "0x041a",
368 "0x0a04", "0x0a16", "0x0a22", "0x0a26", "0x0a2a"],
369 "features": [
370 "swizzle_rgba_for_async_readpixels"
374 "id": 30,
375 "cr_bugs": [237931],
376 "description": "Multisampling is buggy on OSX when multiple monitors are connected",
377 "os": {
378 "type": "macosx"
380 "features": [
381 "disable_multimonitor_multisampling"
385 "id": 31,
386 "cr_bugs": [154715, 10068, 269829, 294779, 285292],
387 "description": "The Mali-Txxx driver does not guarantee flush ordering",
388 "gl_vendor": "ARM.*",
389 "gl_renderer": "Mali-T.*",
390 "features": [
391 "use_virtualized_gl_contexts"
395 "id": 32,
396 "cr_bugs": [179815],
397 "description": "Share groups are not working on (older?) Broadcom drivers",
398 "os": {
399 "type": "android"
401 "gl_vendor": "Broadcom.*",
402 "features": [
403 "use_virtualized_gl_contexts"
407 "id": 33,
408 "description": "Share group-related crashes and poor context switching perf on Galaxy Nexus",
409 "os": {
410 "type": "android"
412 "gl_vendor": "Imagination.*",
413 "features": [
414 "use_virtualized_gl_contexts"
418 "id": 34,
419 "cr_bugs": [179250, 229643, 230896],
420 "description": "Share groups are not working on (older?) Vivante drivers",
421 "os": {
422 "type": "android"
424 "gl_extensions": ".*GL_VIV_shader_binary.*",
425 "features": [
426 "use_virtualized_gl_contexts"
430 "id": 35,
431 "cr_bugs": [163464],
432 "description": "Share-group related crashes on older NVIDIA drivers",
433 "os": {
434 "type": "android",
435 "version": {
436 "op": "<",
437 "value": "4.3"
440 "gl_vendor": "NVIDIA.*",
441 "features": [
442 "use_virtualized_gl_contexts"
446 "id": 36,
447 "cr_bugs": [163464, 233612],
448 "description": "Share-group related crashes on Qualcomm drivers",
449 "os": {
450 "type": "android",
451 "version": {
452 "op": "<",
453 "value": "4.3"
456 "gl_vendor": "Qualcomm.*",
457 "features": [
458 "use_virtualized_gl_contexts"
462 "id": 37,
463 "cr_bugs": [286468],
464 "description": "Program link fails in NVIDIA Linux if gl_Position is not set",
465 "os": {
466 "type": "linux"
468 "vendor_id": "0x10de",
469 "features": [
470 "init_gl_position_in_vertex_shader"
474 "id": 38,
475 "cr_bugs": [289461],
476 "description": "Non-virtual contexts on Qualcomm sometimes cause out-of-order frames",
477 "os": {
478 "type": "android"
480 "gl_vendor": "Qualcomm.*",
481 "features": [
482 "use_virtualized_gl_contexts"
486 "id": 39,
487 "cr_bugs": [290391],
488 "description": "Multisampled renderbuffer allocation must be validated on some Macs",
489 "os": {
490 "type": "macosx"
492 "features": [
493 "validate_multisample_buffer_allocation"
497 "id": 40,
498 "cr_bugs": [290876],
499 "description": "Framebuffer discarding causes flickering on old ARM drivers",
500 "os": {
501 "type": "android",
502 "version": {
503 "op": "<",
504 "value": "4.4"
507 "gl_vendor": "ARM.*",
508 "features": [
509 "disable_discard_framebuffer"
513 "id": 42,
514 "cr_bugs": [290876, 488463],
515 "description": "Framebuffer discarding causes flickering on older IMG drivers",
516 "os": {
517 "type": "android"
519 "gl_vendor": "Imagination.*",
520 "gl_renderer": "PowerVR SGX 5.*",
521 "features": [
522 "disable_discard_framebuffer"
526 "id": 43,
527 "cr_bugs": [299494],
528 "description": "Framebuffer discarding doesn't accept trivial attachments on Vivante",
529 "os": {
530 "type": "android"
532 "gl_extensions": ".*GL_VIV_shader_binary.*",
533 "features": [
534 "disable_discard_framebuffer"
538 "id": 44,
539 "cr_bugs": [301988],
540 "description": "Framebuffer discarding causes jumpy scrolling on Mali drivers",
541 "os": {
542 "type": "chromeos"
544 "features": [
545 "disable_discard_framebuffer"
549 "id": 45,
550 "cr_bugs": [307751],
551 "description": "Unfold short circuit on Mac OS X",
552 "os": {
553 "type": "macosx"
555 "features": [
556 "unfold_short_circuit_as_ternary_operation"
560 "id": 48,
561 "description": "Force to use discrete GPU on older MacBookPro models",
562 "cr_bugs": [113703],
563 "os": {
564 "type": "macosx",
565 "version": {
566 "op": ">=",
567 "value": "10.7"
570 "machine_model_name": ["MacBookPro"],
571 "machine_model_version": {
572 "op": "<",
573 "value": "8"
575 "gpu_count": {
576 "op": "=",
577 "value": "2"
579 "features": [
580 "force_discrete_gpu"
584 "id": 49,
585 "cr_bugs": [309734],
586 "description": "The first draw operation from an idle state is slow",
587 "os": {
588 "type": "android"
590 "gl_vendor": "Qualcomm.*",
591 "features": [
592 "wake_up_gpu_before_drawing"
596 "id": 51,
597 "description": "TexSubImage is faster for full uploads on ANGLE",
598 "os": {
599 "type": "win"
601 "gl_renderer": "ANGLE.*",
602 "features": [
603 "texsubimage_faster_than_teximage"
607 "id": 52,
608 "description": "ES3 MSAA is broken on Qualcomm",
609 "os": {
610 "type": "android"
612 "gl_vendor": "Qualcomm.*",
613 "features": [
614 "disable_chromium_framebuffer_multisample"
618 "id": 54,
619 "cr_bugs": [124764, 349137],
620 "description": "Clear uniforms before first program use on all platforms",
621 "exceptions": [
623 "os": {
624 "type": "macosx",
625 "version": {
626 "op": ">=",
627 "value": "10.9"
632 "features": [
633 "clear_uniforms_before_first_program_use"
637 "id": 55,
638 "cr_bugs": [333885],
639 "description": "Mesa drivers in Linux handle varyings without static use incorrectly",
640 "os": {
641 "type": "linux"
643 "driver_vendor": "Mesa",
644 "features": [
645 "count_all_in_varyings_packing"
649 "id": 56,
650 "cr_bugs": [333885],
651 "description": "Mesa drivers in ChromeOS handle varyings without static use incorrectly",
652 "os": {
653 "type": "chromeos"
655 "driver_vendor": "Mesa",
656 "features": [
657 "count_all_in_varyings_packing"
661 "id": 57,
662 "cr_bugs": [322760],
663 "description": "Mac drivers handle varyings without static use incorrectly",
664 "os": {
665 "type": "macosx"
667 "features": [
668 "init_varyings_without_static_use"
672 "id": 58,
673 "description": "Multisampling is buggy in ATI cards on older Mac OS X",
674 "cr_bugs": [67752, 83153],
675 "os": {
676 "type": "macosx",
677 "version": {
678 "op": "<",
679 "value": "10.7.2"
682 "vendor_id": "0x1002",
683 "features": [
684 "disable_chromium_framebuffer_multisample"
688 "id": 59,
689 "description": "Multisampling is buggy in Intel IvyBridge",
690 "cr_bugs": [116370],
691 "os": {
692 "type": "linux"
694 "vendor_id": "0x8086",
695 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"],
696 "features": [
697 "disable_chromium_framebuffer_multisample"
701 "id": 60,
702 "description": "Multisampling is buggy on Mac OS X prior to 10.8.3",
703 "cr_bugs": [137303, 162466],
704 "os": {
705 "type": "macosx",
706 "version": {
707 "op": "<",
708 "value": "10.8.3"
711 "features": [
712 "disable_chromium_framebuffer_multisample"
716 "id": 63,
717 "description": "Shaders with sampler arrays indexing for-loop indices cause the GLSL compiler to crash on OS X",
718 "cr_bugs": [348198, 349137],
719 "os": {
720 "type": "macosx",
721 "version": {
722 "op": "<",
723 "value": "10.9"
726 "features": [
727 "unroll_for_loop_with_sampler_array_index"
731 "id": 64,
732 "description": "Linux AMD drivers incorrectly return initial value of 1 for TEXTURE_MAX_ANISOTROPY",
733 "cr_bugs": [348237],
734 "os": {
735 "type": "linux"
737 "vendor_id": "0x1002",
738 "features": [
739 "init_texture_max_anisotropy"
743 "id": 65,
744 "description": "Linux NVIDIA drivers don't have the correct defaults for vertex attributes",
745 "cr_bugs": [351528],
746 "os": {
747 "type": "linux"
749 "vendor_id": "0x10de",
750 "features": [
751 "init_vertex_attributes"
755 "id": 66,
756 "description": "Force glFinish() after compositing on older OS X on Intel GPU",
757 "cr_bugs": [123409],
758 "os": {
759 "type": "macosx",
760 "version": {
761 "op": "<=",
762 "value": "10.7"
765 "vendor_id": "0x8086",
766 "multi_gpu_category": "active",
767 "features": [
768 "force_gl_finish_after_compositing"
772 "id": 68,
773 "description": "Disable partial swaps on linux drivers",
774 "cr_bugs": [339493],
775 "os": {
776 "type": "linux"
778 "driver_vendor": "Mesa",
779 "features": [
780 "disable_post_sub_buffers_for_onscreen_surfaces"
784 "id": 69,
785 "description": "Some shaders in Skia need more than the min available vertex and fragment shader uniform vectors in case of OSMesa",
786 "cr_bugs": [174845],
787 "driver_vendor": "osmesa",
788 "features": [
789 "max_fragment_uniform_vectors_32",
790 "max_varying_vectors_16",
791 "max_vertex_uniform_vectors_256"
795 "id": 70,
796 "description": "Disable D3D11 on older nVidia drivers",
797 "cr_bugs": [349929],
798 "os": {
799 "type": "win"
801 "vendor_id": "0x10de",
802 "driver_version": {
803 "op": "<=",
804 "value": "8.17.12.6973"
806 "features": [
807 "disable_d3d11"
811 "id": 71,
812 "description": "Vivante's support of OES_standard_derivatives is buggy",
813 "cr_bugs": [368005],
814 "os": {
815 "type": "android"
817 "gl_extensions": ".*GL_VIV_shader_binary.*",
818 "disabled_extensions": [
819 "GL_OES_standard_derivatives"
823 "id": 72,
824 "description": "Use virtual contexts on NVIDIA with GLES 3.1",
825 "cr_bugs": [369316],
826 "os": {
827 "type": "android"
829 "gl_type": "gles",
830 "gl_version": {
831 "op": "=",
832 "value": "3.1"
834 "gl_vendor": "NVIDIA.*",
835 "features": [
836 "use_virtualized_gl_contexts"
839 ) // LONG_STRING_CONST macro
840 // Avoid C2026 (string too big) error on VisualStudio.
841 LONG_STRING_CONST(
843 "id": 74,
844 "cr_bugs": [278606, 382686],
845 "description": "Testing EGL sync fences was broken on most Qualcomm drivers",
846 "os": {
847 "type": "android",
848 "version": {
849 "op": "<=",
850 "value": "4.4.4"
853 "gl_vendor": "Qualcomm.*",
854 "disabled_extensions": [
855 "EGL_KHR_fence_sync"
859 "id": 75,
860 "description": "Mali-400 support of EXT_multisampled_render_to_texture is buggy on Android < 4.3",
861 "cr_bugs": [362435],
862 "os": {
863 "type": "android",
864 "version": {
865 "op": "<",
866 "value": "4.3"
869 "gl_vendor": "ARM.*",
870 "gl_renderer": ".*Mali-400.*",
871 "features": [
872 "disable_multisampled_render_to_texture"
876 "id": 76,
877 "cr_bugs": [371530],
878 "description": "Testing EGL sync fences was broken on IMG",
879 "os": {
880 "type": "android",
881 "version": {
882 "op": "<=",
883 "value": "4.4.4"
886 "gl_vendor": "Imagination Technologies.*",
887 "disabled_extensions": [
888 "EGL_KHR_fence_sync"
892 "id": 77,
893 "cr_bugs": [378691, 373360, 371530, 398964],
894 "description": "Testing fences was broken on Mali ES2 drivers",
895 "os": {
896 "type": "android",
897 "version": {
898 "op": "<=",
899 "value": "4.4.4"
902 "gl_vendor": "ARM.*",
903 "gl_renderer": "Mali.*",
904 "gl_type": "gles",
905 "gl_version": {
906 "op": "<",
907 "value": "3.0"
909 "disabled_extensions": [
910 "EGL_KHR_fence_sync"
914 "id": 78,
915 "cr_bugs": [378691, 373360, 371530],
916 "description": "Testing fences was broken on Broadcom drivers",
917 "os": {
918 "type": "android",
919 "version": {
920 "op": "<=",
921 "value": "4.4.4"
924 "gl_vendor": "Broadcom.*",
925 "disabled_extensions": [
926 "EGL_KHR_fence_sync"
930 "id": 82,
931 "description": "PBO mappings segfault on certain older Qualcomm drivers",
932 "cr_bugs": [394510],
933 "os": {
934 "type": "android",
935 "version": {
936 "op": "<",
937 "value": "4.3"
940 "gl_vendor": "Qualcomm.*",
941 "features": [
942 "disable_async_readpixels"
946 "id": 86,
947 "description": "Disable use of Direct3D 11 on Matrox video cards",
948 "cr_bugs": [395861],
949 "os": {
950 "type": "win"
952 "vendor_id": "0x102b",
953 "features": [
954 "disable_d3d11"
958 "id": 87,
959 "description": "Disable use of Direct3D 11 on older AMD drivers",
960 "cr_bugs": [402134],
961 "os": {
962 "type": "win"
964 "vendor_id": "0x1002",
965 "driver_date": {
966 "op": "<",
967 "value": "2011.1"
969 "features": [
970 "disable_d3d11"
974 "id": 88,
975 "description": "Always rewrite vec/mat constructors to be consistent",
976 "cr_bugs": [398694],
977 "features": [
978 "scalarize_vec_and_mat_constructor_args"
982 "id": 89,
983 "description": "Mac drivers handle struct scopes incorrectly",
984 "cr_bugs": [403957],
985 "os": {
986 "type": "macosx"
988 "features": [
989 "regenerate_struct_names"
993 "id": 90,
994 "description": "Linux AMD drivers handle struct scopes incorrectly",
995 "cr_bugs": [403957],
996 "os": {
997 "type": "linux"
999 "vendor_id": "0x1002",
1000 "features": [
1001 "regenerate_struct_names"
1005 "id": 91,
1006 "cr_bugs": [150500, 414816],
1007 "description": "ETC1 non-power-of-two sized textures crash older IMG drivers",
1008 "os": {
1009 "type": "android"
1011 "gl_vendor": "Imagination.*",
1012 "gl_renderer": "PowerVR SGX 5.*",
1013 "features": [
1014 "etc1_power_of_two_only"
1018 "id": 92,
1019 "description": "Old Intel drivers cannot reliably support D3D11",
1020 "cr_bugs": [363721],
1021 "os": {
1022 "type": "win"
1024 "vendor_id": "0x8086",
1025 "driver_version": {
1026 "op": "<",
1027 "value": "8.16"
1029 "features": [
1030 "disable_d3d11"
1034 "id": 93,
1035 "description": "The GL implementation on the Android emulator has problems with PBOs.",
1036 "cr_bugs": [340882],
1037 "os": {
1038 "type": "android"
1040 "gl_vendor": "VMware.*",
1041 "gl_renderer": "Gallium.*",
1042 "gl_type": "gles",
1043 "gl_version": {
1044 "op": "=",
1045 "value": "3.0"
1047 "features": [
1048 "disable_async_readpixels"
1052 "id": 94,
1053 "description": "Disable EGL_KHR_wait_sync on NVIDIA with GLES 3.1",
1054 "cr_bugs": [433057],
1055 "os": {
1056 "type": "android",
1057 "version": {
1058 "op": "<=",
1059 "value": "5.0.2"
1062 "gl_vendor": "NVIDIA.*",
1063 "gl_type": "gles",
1064 "gl_version": {
1065 "op": "=",
1066 "value": "3.1"
1068 "disabled_extensions": [
1069 "EGL_KHR_wait_sync"
1073 "id": 95,
1074 "cr_bugs": [421271],
1075 "description": "glClear does not always work on these drivers",
1076 "os": {
1077 "type": "android"
1079 "gl_type": "gles",
1080 "gl_version": {
1081 "op": "<",
1082 "value": "3.0"
1084 "gl_vendor": "Imagination.*",
1085 "features": [
1086 "gl_clear_broken"
1090 "id": 96,
1091 "description": "glBindFramebuffer sometimes requires a glBegin/End to take effect",
1092 "cr_bugs": [435786],
1093 "os": {
1094 "type": "macosx"
1096 "features": [
1097 "gl_begin_gl_end_on_fbo_change_to_backbuffer"
1101 "id": 97,
1102 "description": "Multisampling has poor performance in Intel BayTrail",
1103 "cr_bugs": [443517],
1104 "os": {
1105 "type": "android"
1107 "gl_vendor": "Intel",
1108 "gl_renderer": "Intel.*BayTrail",
1109 "features": [
1110 "disable_chromium_framebuffer_multisample"
1114 "id": 98,
1115 "description": "PowerVR SGX 540 drivers throw GL_OUT_OF_MEMORY error when a buffer object's size is set to 0",
1116 "cr_bugs": [451501],
1117 "os": {
1118 "type": "android"
1120 "gl_vendor": "Imagination.*",
1121 "gl_renderer": "PowerVR SGX 540",
1122 "features": [
1123 "use_non_zero_size_for_client_side_stream_buffers"
1127 "id": 99,
1128 "description": "Qualcomm driver before Lollipop deletes egl sync objects after context destruction",
1129 "cr_bugs": [453857],
1130 "os": {
1131 "type": "android",
1132 "version": {
1133 "op": "<",
1134 "value": "5.0.0"
1137 "gl_vendor": "Qualcomm.*",
1138 "features": [
1139 "ignore_egl_sync_failures"
1143 "id": 100,
1144 "description": "Disable Direct3D11 on systems with AMD switchable graphics",
1145 "cr_bugs": [451420],
1146 "os": {
1147 "type": "win"
1149 "multi_gpu_style": "amd_switchable",
1150 "features": [
1151 "disable_d3d11"
1155 "id": 101,
1156 "description": "The Mali-Txxx driver hangs when reading from currently displayed buffer",
1157 "cr_bugs": [457511],
1158 "os": {
1159 "type": "chromeos"
1161 "gl_vendor": "ARM.*",
1162 "gl_renderer": "Mali-T.*",
1163 "features": [
1164 "disable_post_sub_buffers_for_onscreen_surfaces"
1168 "id": 102,
1169 "description": "Adreno 420 driver loses FBO attachment contents on bound FBO deletion",
1170 "cr_bugs": [457027],
1171 "os": {
1172 "type": "android",
1173 "version": {
1174 "op": ">",
1175 "value": "5.0.2"
1178 "gl_renderer": "Adreno \\(TM\\) 4.*",
1179 "features": [
1180 "unbind_attachments_on_bound_render_fbo_delete"
1184 "id": 103,
1185 "description": "Adreno 420 driver drops draw calls after FBO invalidation",
1186 "cr_bugs": [443060],
1187 "os": {
1188 "type": "android"
1190 "gl_renderer": "Adreno \\(TM\\) 4.*",
1191 "features": [
1192 "disable_discard_framebuffer"
1196 "id": 104,
1197 "description": "EXT_occlusion_query_boolean hangs on MediaTek MT8135 pre-Lollipop",
1198 "os": {
1199 "type": "android",
1200 "version": {
1201 "op": "<",
1202 "value": "5.0.0"
1205 "gl_vendor": "Imagination.*",
1206 "gl_renderer": "PowerVR Rogue Han",
1207 "disabled_extensions": [
1208 "GL_EXT_occlusion_query_boolean"
1212 "id": 105,
1213 "cr_bugs": [449488,451230],
1214 "description": "Framebuffer discarding causes corruption on Mali-4xx",
1215 "gl_renderer": "Mali-4.*",
1216 "os": {
1217 "type": "android"
1219 "features": [
1220 "disable_discard_framebuffer"
1224 "id": 106,
1225 "description": "EXT_occlusion_query_boolean hangs on PowerVR SGX 544 (IMG) drivers",
1226 "os": {
1227 "type": "android"
1229 "gl_vendor": "Imagination.*",
1230 "gl_renderer": "PowerVR SGX 544",
1231 "disabled_extensions": [
1232 "GL_EXT_occlusion_query_boolean"
1236 "id": 107,
1237 "description": "Workaround IMG PowerVR G6xxx drivers bugs",
1238 "cr_bugs": [480992],
1239 "os": {
1240 "type": "android",
1241 "version": {
1242 "op": "between",
1243 "value": "5.0.0",
1244 "value2": "5.1.99"
1247 "gl_vendor": "Imagination.*",
1248 "gl_renderer": "PowerVR Rogue.*",
1249 "driver_version": {
1250 "op": "between",
1251 "value": "1.3",
1252 "value2": "1.4"
1254 "features": [
1255 "avoid_egl_image_target_texture_reuse"
1257 "disabled_extensions": [
1258 "EGL_KHR_wait_sync"
1262 "id": 108,
1263 "cr_bugs": [449150],
1264 "description": "Mali-400 does not support GL_RGB format",
1265 "gl_vendor": "ARM.*",
1266 "gl_renderer": ".*Mali-400.*",
1267 "features": [
1268 "disable_gl_rgb_format"
1272 "id": 109,
1273 "description": "MakeCurrent is slow on Linux",
1274 "os": {
1275 "type": "linux"
1277 "features": [
1278 "use_virtualized_gl_contexts"
1282 "id": 110,
1283 "description": "EGL Sync server causes crashes on Adreno 3xx drivers",
1284 "cr_bugs": [482298],
1285 "os": {
1286 "type": "android"
1288 "gl_vendor": "Qualcomm.*",
1289 "gl_renderer": "Adreno \\(TM\\) 3.*",
1290 "driver_version": {
1291 "op": "<",
1292 "value": "95"
1294 "disabled_extensions": [
1295 "EGL_KHR_wait_sync"
1299 "id": 111,
1300 "description": "Discard Framebuffer breaks WebGL on Mali-400 Linux",
1301 "cr_bugs": [485814],
1302 "os": {
1303 "type": "linux"
1305 "gl_vendor": "ARM.*",
1306 "gl_renderer": ".*Mali-400.*",
1307 "features": [
1308 "disable_discard_framebuffer"
1312 "id": 112,
1313 "cr_bugs": [477514],
1314 "description": "EXT_disjoint_timer_query fails after 2 queries on adreno 3xx in lollypop",
1315 "os": {
1316 "type": "android",
1317 "version": {
1318 "op": ">=",
1319 "value": "5.0.0"
1322 "gl_vendor": "Qualcomm.*",
1323 "gl_renderer": "Adreno \\(TM\\) 3.*",
1324 "features": [
1325 "disable_timestamp_queries"
1329 "id": 113,
1330 "cr_bugs": [477514],
1331 "description": "EXT_disjoint_timer_query fails after 256 queries on adreno 4xx",
1332 "os": {
1333 "type": "android"
1335 "gl_renderer": "Adreno \\(TM\\) 4.*",
1336 "disabled_extensions": [
1337 "GL_EXT_disjoint_timer_query"
1341 "id": 114,
1342 "cr_bugs": [489871],
1343 "description": "Vivante GC1000 support of EXT_multisampled_render_to_texture is buggy",
1344 "os": {
1345 "type": "linux"
1347 "gl_vendor": "Vivante Corporation",
1348 "gl_renderer": "Vivante GC1000",
1349 "features": [
1350 "disable_multisampled_render_to_texture"
1354 "id": 115,
1355 "cr_bugs": [462553],
1356 "description": "glGetIntegerv with GL_GPU_DISJOINT_EXT causes GL_INVALID_ENUM error",
1357 "os": {
1358 "type": "android"
1360 "gl_vendor": "NVIDIA.*",
1361 "gl_type": "gles",
1362 "gl_version": {
1363 "op": ">=",
1364 "value": "3.0"
1366 "disabled_extensions": [
1367 "GL_EXT_disjoint_timer_query"
1371 "id": 116,
1372 "description": "Adreno 420 support for EXT_multisampled_render_to_texture is buggy on Android < 5.1",
1373 "cr_bugs": [490379],
1374 "os": {
1375 "type": "android",
1376 "version": {
1377 "op": "<",
1378 "value": "5.1"
1381 "gl_renderer": "Adreno \\(TM\\) 4.*",
1382 "features": [
1383 "disable_multisampled_render_to_texture"
1387 "id": 117,
1388 "description": "GL_KHR_blend_equation_advanced breaks blending on Adreno 4xx",
1389 "cr_bugs": [488485],
1390 "os": {
1391 "type": "android"
1393 "gl_vendor": "Qualcomm.*",
1394 "gl_renderer": ".*4\\d\\d",
1395 "features": [
1396 "disable_blend_equation_advanced"
1400 "id": 118,
1401 "cr_bugs": [477306],
1402 "description": "NVIDIA 331 series drivers shader compiler may crash when attempting to optimize pow()",
1403 "os": {
1404 "type": "linux"
1406 "driver_version": {
1407 "op": "<=",
1408 "value": "331"
1410 "vendor_id": "0x10de",
1411 "features": [
1412 "remove_pow_with_constant_exponent"
1416 "id": 119,
1417 "description": "Context lost recovery often fails on Mali-400/450 on Android.",
1418 "cr_bugs": [496438],
1419 "os": {
1420 "type": "android"
1422 "gl_vendor": "ARM.*",
1423 "gl_renderer": ".*Mali-4.*",
1424 "features": [
1425 "exit_on_context_lost"
1429 "id": 120,
1430 "description": "CHROMIUM_copy_texture is slow on Mali pre-Lollipop",
1431 "cr_bugs": [498443],
1432 "os": {
1433 "type": "android",
1434 "version": {
1435 "op": "<",
1436 "value": "5.0.0"
1439 "gl_vendor": "ARM.*",
1440 "gl_renderer": "Mali.*",
1441 "features": [
1442 "max_copy_texture_chromium_size_262144"
1446 "id": 121,
1447 "description": "NSCGLSurface API is buggy on multi-GPU systems",
1448 "cr_bugs": [496484],
1449 "os": {
1450 "type": "macosx"
1452 "gpu_count": {
1453 "op": ">",
1454 "value": "1"
1456 "features": [
1457 "disable_ns_cgl_surface_api"
1461 "id": 122,
1462 "description": "NSCGLSurface API unsupported on VMWare drivers",
1463 "cr_bugs": [496484],
1464 "os": {
1465 "type": "macosx"
1467 "vendor_id": "0x15ad",
1468 "features": [
1469 "disable_ns_cgl_surface_api"
1475 ); // LONG_STRING_CONST macro
1477 } // namespace gpu