Android: Enable 'crash GPU process on context lost' WAR for Mali-400
[chromium-blink-merge.git] / gpu / config / gpu_driver_bug_list_json.cc
blob191cca97f7ab6acf1b3516946747bd5a62ec2053
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.10",
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 "features": [
239 "disable_ext_occlusion_query"
243 "id": 17,
244 "description": "Some drivers are unable to reset the D3D device in the GPU process sandbox",
245 "os": {
246 "type": "win"
248 "features": [
249 "exit_on_context_lost"
253 "id": 19,
254 "description": "Disable depth textures on Android with Qualcomm GPUs",
255 "os": {
256 "type": "android"
258 "gl_vendor": "Qualcomm.*",
259 "features": [
260 "disable_depth_texture"
262 "disabled_extensions": [
263 "GL_OES_depth_texture"
267 "id": 20,
268 "description": "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver bugs",
269 "os": {
270 "type": "macosx"
272 "vendor_id": "0x10de",
273 "device_id": ["0x0fd5"],
274 "multi_gpu_category": "any",
275 "features": [
276 "disable_ext_draw_buffers"
280 "id": 21,
281 "description": "Vivante GPUs are buggy with context switching",
282 "cr_bugs": [179250, 235935],
283 "os": {
284 "type": "android"
286 "gl_extensions": ".*GL_VIV_shader_binary.*",
287 "features": [
288 "unbind_fbo_on_context_switch"
292 "id": 22,
293 "description": "Imagination drivers are buggy with context switching",
294 "cr_bugs": [230896],
295 "os": {
296 "type": "android"
298 "gl_vendor": "Imagination.*",
299 "features": [
300 "unbind_fbo_on_context_switch"
304 "id": 23,
305 "cr_bugs": [243038],
306 "description": "Disable OES_standard_derivative on Intel Pineview M Gallium drivers",
307 "os": {
308 "type": "chromeos"
310 "vendor_id": "0x8086",
311 "device_id": ["0xa011", "0xa012"],
312 "features": [
313 "disable_oes_standard_derivatives"
317 "id": 24,
318 "cr_bugs": [231082],
319 "description": "Mali-400 drivers throw an error when a buffer object's size is set to 0",
320 "os": {
321 "type": "android"
323 "gl_vendor": "ARM.*",
324 "gl_renderer": ".*Mali-400.*",
325 "features": [
326 "use_non_zero_size_for_client_side_stream_buffers"
330 "id": 25,
331 "cr_bugs": [152225],
332 "description": "PBO + Readpixels don't work on OS X 10.7",
333 "os": {
334 "type": "macosx",
335 "version": {
336 "op": "<",
337 "value": "10.8"
340 "features": [
341 "disable_async_readpixels"
345 "id": 26,
346 "description": "Disable use of Direct3D 11 on Windows Vista and lower",
347 "os": {
348 "type": "win",
349 "version": {
350 "op": "<=",
351 "value": "6.0"
354 "features": [
355 "disable_d3d11"
359 "id": 27,
360 "cr_bugs": [265115],
361 "description": "Async Readpixels with GL_BGRA format is broken on Haswell chipset on Macs",
362 "os": {
363 "type": "macosx"
365 "vendor_id": "0x8086",
366 "device_id": ["0x0402", "0x0406", "0x040a", "0x0412", "0x0416", "0x041a",
367 "0x0a04", "0x0a16", "0x0a22", "0x0a26", "0x0a2a"],
368 "features": [
369 "swizzle_rgba_for_async_readpixels"
373 "id": 30,
374 "cr_bugs": [237931],
375 "description": "Multisampling is buggy on OSX when multiple monitors are connected",
376 "os": {
377 "type": "macosx"
379 "features": [
380 "disable_multimonitor_multisampling"
384 "id": 31,
385 "cr_bugs": [154715, 10068, 269829, 294779, 285292],
386 "description": "The Mali-Txxx driver does not guarantee flush ordering",
387 "gl_vendor": "ARM.*",
388 "gl_renderer": "Mali-T.*",
389 "features": [
390 "use_virtualized_gl_contexts"
394 "id": 32,
395 "cr_bugs": [179815],
396 "description": "Share groups are not working on (older?) Broadcom drivers",
397 "os": {
398 "type": "android"
400 "gl_vendor": "Broadcom.*",
401 "features": [
402 "use_virtualized_gl_contexts"
406 "id": 33,
407 "description": "Share group-related crashes and poor context switching perf on Galaxy Nexus",
408 "os": {
409 "type": "android"
411 "gl_vendor": "Imagination.*",
412 "features": [
413 "use_virtualized_gl_contexts"
417 "id": 34,
418 "cr_bugs": [179250, 229643, 230896],
419 "description": "Share groups are not working on (older?) Vivante drivers",
420 "os": {
421 "type": "android"
423 "gl_extensions": ".*GL_VIV_shader_binary.*",
424 "features": [
425 "use_virtualized_gl_contexts"
429 "id": 35,
430 "cr_bugs": [163464],
431 "description": "Share-group related crashes on older NVIDIA drivers",
432 "os": {
433 "type": "android",
434 "version": {
435 "op": "<",
436 "value": "4.3"
439 "gl_vendor": "NVIDIA.*",
440 "features": [
441 "use_virtualized_gl_contexts"
445 "id": 36,
446 "cr_bugs": [163464, 233612],
447 "description": "Share-group related crashes on Qualcomm drivers",
448 "os": {
449 "type": "android",
450 "version": {
451 "op": "<",
452 "value": "4.3"
455 "gl_vendor": "Qualcomm.*",
456 "features": [
457 "use_virtualized_gl_contexts"
461 "id": 37,
462 "cr_bugs": [286468],
463 "description": "Program link fails in NVIDIA Linux if gl_Position is not set",
464 "os": {
465 "type": "linux"
467 "vendor_id": "0x10de",
468 "features": [
469 "init_gl_position_in_vertex_shader"
473 "id": 38,
474 "cr_bugs": [289461],
475 "description": "Non-virtual contexts on Qualcomm sometimes cause out-of-order frames",
476 "os": {
477 "type": "android"
479 "gl_vendor": "Qualcomm.*",
480 "features": [
481 "use_virtualized_gl_contexts"
485 "id": 39,
486 "cr_bugs": [290391],
487 "description": "Multisampled renderbuffer allocation must be validated on some Macs",
488 "os": {
489 "type": "macosx"
491 "features": [
492 "validate_multisample_buffer_allocation"
496 "id": 40,
497 "cr_bugs": [290876],
498 "description": "Framebuffer discarding causes flickering on old ARM drivers",
499 "os": {
500 "type": "android",
501 "version": {
502 "op": "<",
503 "value": "4.4"
506 "gl_vendor": "ARM.*",
507 "features": [
508 "disable_discard_framebuffer"
512 "id": 42,
513 "cr_bugs": [290876, 488463],
514 "description": "Framebuffer discarding causes flickering on older IMG drivers",
515 "os": {
516 "type": "android"
518 "gl_vendor": "Imagination.*",
519 "gl_renderer": "PowerVR SGX 5.*",
520 "features": [
521 "disable_discard_framebuffer"
525 "id": 43,
526 "cr_bugs": [299494],
527 "description": "Framebuffer discarding doesn't accept trivial attachments on Vivante",
528 "os": {
529 "type": "android"
531 "gl_extensions": ".*GL_VIV_shader_binary.*",
532 "features": [
533 "disable_discard_framebuffer"
537 "id": 44,
538 "cr_bugs": [301988],
539 "description": "Framebuffer discarding causes jumpy scrolling on Mali drivers",
540 "os": {
541 "type": "chromeos"
543 "features": [
544 "disable_discard_framebuffer"
548 "id": 45,
549 "cr_bugs": [307751],
550 "description": "Unfold short circuit on Mac OS X",
551 "os": {
552 "type": "macosx"
554 "features": [
555 "unfold_short_circuit_as_ternary_operation"
559 "id": 48,
560 "description": "Force to use discrete GPU on older MacBookPro models",
561 "cr_bugs": [113703],
562 "os": {
563 "type": "macosx",
564 "version": {
565 "op": ">=",
566 "value": "10.7"
569 "machine_model_name": ["MacBookPro"],
570 "machine_model_version": {
571 "op": "<",
572 "value": "8"
574 "gpu_count": {
575 "op": "=",
576 "value": "2"
578 "features": [
579 "force_discrete_gpu"
583 "id": 49,
584 "cr_bugs": [309734],
585 "description": "The first draw operation from an idle state is slow",
586 "os": {
587 "type": "android"
589 "gl_vendor": "Qualcomm.*",
590 "features": [
591 "wake_up_gpu_before_drawing"
595 "id": 51,
596 "description": "TexSubImage is faster for full uploads on ANGLE",
597 "os": {
598 "type": "win"
600 "gl_renderer": "ANGLE.*",
601 "features": [
602 "texsubimage_faster_than_teximage"
606 "id": 52,
607 "description": "ES3 MSAA is broken on Qualcomm",
608 "os": {
609 "type": "android"
611 "gl_vendor": "Qualcomm.*",
612 "features": [
613 "disable_chromium_framebuffer_multisample"
617 "id": 54,
618 "cr_bugs": [124764, 349137],
619 "description": "Clear uniforms before first program use on all platforms",
620 "exceptions": [
622 "os": {
623 "type": "macosx",
624 "version": {
625 "op": ">=",
626 "value": "10.9"
631 "features": [
632 "clear_uniforms_before_first_program_use"
636 "id": 55,
637 "cr_bugs": [333885],
638 "description": "Mesa drivers in Linux handle varyings without static use incorrectly",
639 "os": {
640 "type": "linux"
642 "driver_vendor": "Mesa",
643 "features": [
644 "count_all_in_varyings_packing"
648 "id": 56,
649 "cr_bugs": [333885],
650 "description": "Mesa drivers in ChromeOS handle varyings without static use incorrectly",
651 "os": {
652 "type": "chromeos"
654 "driver_vendor": "Mesa",
655 "features": [
656 "count_all_in_varyings_packing"
660 "id": 57,
661 "cr_bugs": [322760],
662 "description": "Mac drivers handle varyings without static use incorrectly",
663 "os": {
664 "type": "macosx"
666 "features": [
667 "init_varyings_without_static_use"
671 "id": 58,
672 "description": "Multisampling is buggy in ATI cards on older Mac OS X",
673 "cr_bugs": [67752, 83153],
674 "os": {
675 "type": "macosx",
676 "version": {
677 "op": "<",
678 "value": "10.7.2"
681 "vendor_id": "0x1002",
682 "features": [
683 "disable_chromium_framebuffer_multisample"
687 "id": 59,
688 "description": "Multisampling is buggy in Intel IvyBridge",
689 "cr_bugs": [116370],
690 "os": {
691 "type": "linux"
693 "vendor_id": "0x8086",
694 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"],
695 "features": [
696 "disable_chromium_framebuffer_multisample"
700 "id": 60,
701 "description": "Multisampling is buggy on Mac OS X prior to 10.8.3",
702 "cr_bugs": [137303, 162466],
703 "os": {
704 "type": "macosx",
705 "version": {
706 "op": "<",
707 "value": "10.8.3"
710 "features": [
711 "disable_chromium_framebuffer_multisample"
715 "id": 63,
716 "description": "Shaders with sampler arrays indexing for-loop indices cause the GLSL compiler to crash on OS X",
717 "cr_bugs": [348198, 349137],
718 "os": {
719 "type": "macosx",
720 "version": {
721 "op": "<",
722 "value": "10.9"
725 "features": [
726 "unroll_for_loop_with_sampler_array_index"
730 "id": 64,
731 "description": "Linux AMD drivers incorrectly return initial value of 1 for TEXTURE_MAX_ANISOTROPY",
732 "cr_bugs": [348237],
733 "os": {
734 "type": "linux"
736 "vendor_id": "0x1002",
737 "features": [
738 "init_texture_max_anisotropy"
742 "id": 65,
743 "description": "Linux NVIDIA drivers don't have the correct defaults for vertex attributes",
744 "cr_bugs": [351528],
745 "os": {
746 "type": "linux"
748 "vendor_id": "0x10de",
749 "features": [
750 "init_vertex_attributes"
754 "id": 66,
755 "description": "Force glFinish() after compositing on older OS X on Intel GPU",
756 "cr_bugs": [123409],
757 "os": {
758 "type": "macosx",
759 "version": {
760 "op": "<=",
761 "value": "10.7"
764 "vendor_id": "0x8086",
765 "multi_gpu_category": "active",
766 "features": [
767 "force_gl_finish_after_compositing"
771 "id": 68,
772 "description": "Disable partial swaps on linux drivers",
773 "cr_bugs": [339493],
774 "os": {
775 "type": "linux"
777 "driver_vendor": "Mesa",
778 "features": [
779 "disable_post_sub_buffers_for_onscreen_surfaces"
783 "id": 69,
784 "description": "Some shaders in Skia need more than the min available vertex and fragment shader uniform vectors in case of OSMesa",
785 "cr_bugs": [174845],
786 "driver_vendor": "osmesa",
787 "features": [
788 "max_fragment_uniform_vectors_32",
789 "max_varying_vectors_16",
790 "max_vertex_uniform_vectors_256"
794 "id": 70,
795 "description": "Disable D3D11 on older nVidia drivers",
796 "cr_bugs": [349929],
797 "os": {
798 "type": "win"
800 "vendor_id": "0x10de",
801 "driver_version": {
802 "op": "<=",
803 "value": "8.17.12.6973"
805 "features": [
806 "disable_d3d11"
810 "id": 71,
811 "description": "Vivante's support of OES_standard_derivatives is buggy",
812 "cr_bugs": [368005],
813 "os": {
814 "type": "android"
816 "gl_extensions": ".*GL_VIV_shader_binary.*",
817 "features": [
818 "disable_oes_standard_derivatives"
822 "id": 72,
823 "description": "Use virtual contexts on NVIDIA with GLES 3.1",
824 "cr_bugs": [369316],
825 "os": {
826 "type": "android"
828 "gl_type": "gles",
829 "gl_version": {
830 "op": "=",
831 "value": "3.1"
833 "gl_vendor": "NVIDIA.*",
834 "features": [
835 "use_virtualized_gl_contexts"
838 ) // LONG_STRING_CONST macro
839 // Avoid C2026 (string too big) error on VisualStudio.
840 LONG_STRING_CONST(
842 "id": 74,
843 "cr_bugs": [278606, 382686],
844 "description": "Testing EGL sync fences was broken on most Qualcomm drivers",
845 "os": {
846 "type": "android",
847 "version": {
848 "op": "<=",
849 "value": "4.4.4"
852 "gl_vendor": "Qualcomm.*",
853 "features": [
854 "disable_egl_khr_fence_sync"
858 "id": 75,
859 "description": "Mali-400 support of EXT_multisampled_render_to_texture is buggy on Android < 4.3",
860 "cr_bugs": [362435],
861 "os": {
862 "type": "android",
863 "version": {
864 "op": "<",
865 "value": "4.3"
868 "gl_vendor": "ARM.*",
869 "gl_renderer": ".*Mali-400.*",
870 "features": [
871 "disable_multisampled_render_to_texture"
875 "id": 76,
876 "cr_bugs": [371530],
877 "description": "Testing EGL sync fences was broken on IMG",
878 "os": {
879 "type": "android",
880 "version": {
881 "op": "<=",
882 "value": "4.4.4"
885 "gl_vendor": "Imagination Technologies.*",
886 "features": [
887 "disable_egl_khr_fence_sync"
891 "id": 77,
892 "cr_bugs": [378691, 373360, 371530, 398964],
893 "description": "Testing fences was broken on Mali ES2 drivers",
894 "os": {
895 "type": "android",
896 "version": {
897 "op": "<=",
898 "value": "4.4.4"
901 "gl_vendor": "ARM.*",
902 "gl_renderer": "Mali.*",
903 "gl_type": "gles",
904 "gl_version": {
905 "op": "<",
906 "value": "3.0"
908 "features": [
909 "disable_egl_khr_fence_sync"
913 "id": 78,
914 "cr_bugs": [378691, 373360, 371530],
915 "description": "Testing fences was broken on Broadcom drivers",
916 "os": {
917 "type": "android",
918 "version": {
919 "op": "<=",
920 "value": "4.4.4"
923 "gl_vendor": "Broadcom.*",
924 "features": [
925 "disable_egl_khr_fence_sync"
929 "id": 82,
930 "description": "PBO mappings segfault on certain older Qualcomm drivers",
931 "cr_bugs": [394510],
932 "os": {
933 "type": "android",
934 "version": {
935 "op": "<",
936 "value": "4.3"
939 "gl_vendor": "Qualcomm.*",
940 "features": [
941 "disable_async_readpixels"
945 "id": 86,
946 "description": "Disable use of Direct3D 11 on Matrox video cards",
947 "cr_bugs": [395861],
948 "os": {
949 "type": "win"
951 "vendor_id": "0x102b",
952 "features": [
953 "disable_d3d11"
957 "id": 87,
958 "description": "Disable use of Direct3D 11 on older AMD drivers",
959 "cr_bugs": [402134],
960 "os": {
961 "type": "win"
963 "vendor_id": "0x1002",
964 "driver_date": {
965 "op": "<",
966 "value": "2011.1"
968 "features": [
969 "disable_d3d11"
973 "id": 88,
974 "description": "Always rewrite vec/mat constructors to be consistent",
975 "cr_bugs": [398694],
976 "features": [
977 "scalarize_vec_and_mat_constructor_args"
981 "id": 89,
982 "description": "Mac drivers handle struct scopes incorrectly",
983 "cr_bugs": [403957],
984 "os": {
985 "type": "macosx"
987 "features": [
988 "regenerate_struct_names"
992 "id": 90,
993 "description": "Linux AMD drivers handle struct scopes incorrectly",
994 "cr_bugs": [403957],
995 "os": {
996 "type": "linux"
998 "vendor_id": "0x1002",
999 "features": [
1000 "regenerate_struct_names"
1004 "id": 91,
1005 "cr_bugs": [150500, 414816],
1006 "description": "ETC1 non-power-of-two sized textures crash older IMG drivers",
1007 "os": {
1008 "type": "android"
1010 "gl_vendor": "Imagination.*",
1011 "gl_renderer": "PowerVR SGX 5.*",
1012 "features": [
1013 "etc1_power_of_two_only"
1017 "id": 92,
1018 "description": "Old Intel drivers cannot reliably support D3D11",
1019 "cr_bugs": [363721],
1020 "os": {
1021 "type": "win"
1023 "vendor_id": "0x8086",
1024 "driver_version": {
1025 "op": "<",
1026 "value": "8.16"
1028 "features": [
1029 "disable_d3d11"
1033 "id": 93,
1034 "description": "The GL implementation on the Android emulator has problems with PBOs.",
1035 "cr_bugs": [340882],
1036 "os": {
1037 "type": "android"
1039 "gl_vendor": "VMware.*",
1040 "gl_renderer": "Gallium.*",
1041 "gl_type": "gles",
1042 "gl_version": {
1043 "op": "=",
1044 "value": "3.0"
1046 "features": [
1047 "disable_async_readpixels"
1051 "id": 94,
1052 "description": "Disable EGL_KHR_wait_sync on NVIDIA with GLES 3.1",
1053 "cr_bugs": [433057],
1054 "os": {
1055 "type": "android",
1056 "version": {
1057 "op": "<=",
1058 "value": "5.0.2"
1061 "gl_vendor": "NVIDIA.*",
1062 "gl_type": "gles",
1063 "gl_version": {
1064 "op": "=",
1065 "value": "3.1"
1067 "features": [
1068 "disable_egl_khr_wait_sync"
1072 "id": 95,
1073 "cr_bugs": [421271],
1074 "description": "glClear does not always work on these drivers",
1075 "os": {
1076 "type": "android"
1078 "gl_type": "gles",
1079 "gl_version": {
1080 "op": "<",
1081 "value": "3.0"
1083 "gl_vendor": "Imagination.*",
1084 "features": [
1085 "gl_clear_broken"
1089 "id": 96,
1090 "description": "glBindFramebuffer sometimes requires a glBegin/End to take effect",
1091 "cr_bugs": [435786],
1092 "os": {
1093 "type": "macosx"
1095 "features": [
1096 "gl_begin_gl_end_on_fbo_change_to_backbuffer"
1100 "id": 97,
1101 "description": "Multisampling has poor performance in Intel BayTrail",
1102 "cr_bugs": [443517],
1103 "os": {
1104 "type": "android"
1106 "gl_vendor": "Intel",
1107 "gl_renderer": "Intel.*BayTrail",
1108 "features": [
1109 "disable_chromium_framebuffer_multisample"
1113 "id": 98,
1114 "description": "PowerVR SGX 540 drivers throw GL_OUT_OF_MEMORY error when a buffer object's size is set to 0",
1115 "cr_bugs": [451501],
1116 "os": {
1117 "type": "android"
1119 "gl_vendor": "Imagination.*",
1120 "gl_renderer": "PowerVR SGX 540",
1121 "features": [
1122 "use_non_zero_size_for_client_side_stream_buffers"
1126 "id": 99,
1127 "description": "Qualcomm driver before Lollipop deletes egl sync objects after context destruction",
1128 "cr_bugs": [453857],
1129 "os": {
1130 "type": "android",
1131 "version": {
1132 "op": "<",
1133 "value": "5.0.0"
1136 "gl_vendor": "Qualcomm.*",
1137 "features": [
1138 "ignore_egl_sync_failures"
1142 "id": 100,
1143 "description": "Disable Direct3D11 on systems with AMD switchable graphics",
1144 "cr_bugs": [451420],
1145 "os": {
1146 "type": "win"
1148 "multi_gpu_style": "amd_switchable",
1149 "features": [
1150 "disable_d3d11"
1154 "id": 101,
1155 "description": "The Mali-Txxx driver hangs when reading from currently displayed buffer",
1156 "cr_bugs": [457511],
1157 "os": {
1158 "type": "chromeos"
1160 "gl_vendor": "ARM.*",
1161 "gl_renderer": "Mali-T.*",
1162 "features": [
1163 "disable_post_sub_buffers_for_onscreen_surfaces"
1167 "id": 102,
1168 "description": "Adreno 420 driver loses FBO attachment contents on bound FBO deletion",
1169 "cr_bugs": [457027],
1170 "os": {
1171 "type": "android",
1172 "version": {
1173 "op": ">",
1174 "value": "5.0.2"
1177 "gl_renderer": "Adreno \\(TM\\) 4.*",
1178 "features": [
1179 "unbind_attachments_on_bound_render_fbo_delete"
1183 "id": 103,
1184 "description": "Adreno 420 driver drops draw calls after FBO invalidation",
1185 "cr_bugs": [443060],
1186 "os": {
1187 "type": "android"
1189 "gl_renderer": "Adreno \\(TM\\) 4.*",
1190 "features": [
1191 "disable_discard_framebuffer"
1195 "id": 104,
1196 "description": "EXT_occlusion_query hangs on MediaTek MT8135 pre-Lollipop",
1197 "os": {
1198 "type": "android",
1199 "version": {
1200 "op": "<",
1201 "value": "5.0.0"
1204 "gl_vendor": "Imagination.*",
1205 "gl_renderer": "PowerVR Rogue Han",
1206 "features": [
1207 "disable_ext_occlusion_query"
1211 "id": 105,
1212 "cr_bugs": [449488,451230],
1213 "description": "Framebuffer discarding causes corruption on Mali-4xx",
1214 "gl_renderer": "Mali-4.*",
1215 "os": {
1216 "type": "android"
1218 "features": [
1219 "disable_discard_framebuffer"
1223 "id": 106,
1224 "description": "EXT_occlusion_query hangs on PowerVR SGX 544 (IMG) drivers",
1225 "os": {
1226 "type": "android"
1228 "gl_vendor": "Imagination.*",
1229 "gl_renderer": "PowerVR SGX 544",
1230 "features": [
1231 "disable_ext_occlusion_query"
1233 "disabled_extensions": [
1234 "EXT_occlusion_query_boolean"
1238 "id": 107,
1239 "description": "Workaround IMG PowerVR G6xxx drivers bugs",
1240 "cr_bugs": [480992],
1241 "os": {
1242 "type": "android",
1243 "version": {
1244 "op": "between",
1245 "value": "5.0.0",
1246 "value2": "5.1.99"
1249 "gl_vendor": "Imagination.*",
1250 "gl_renderer": "PowerVR Rogue.*",
1251 "driver_version": {
1252 "op": "between",
1253 "value": "1.3",
1254 "value2": "1.4"
1256 "features": [
1257 "avoid_egl_image_target_texture_reuse",
1258 "disable_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 "features": [
1295 "disable_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 330 in lollypop",
1315 "os": {
1316 "type": "android",
1317 "version": {
1318 "op": ">=",
1319 "value": "5.0.0"
1322 "gl_vendor": "Qualcomm.*",
1323 "gl_renderer": ".*330",
1324 "disabled_extensions": [
1325 "GL_EXT_disjoint_timer_query"
1329 "id": 113,
1330 "cr_bugs": [477514],
1331 "description": "EXT_disjoint_timer_query fails after 2 queries on adreno 420",
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 on Android.",
1418 "cr_bugs": [496438],
1419 "os": {
1420 "type": "android"
1422 "gl_vendor": "ARM.*",
1423 "gl_renderer": ".*Mali-400.*",
1424 "features": [
1425 "exit_on_context_lost"
1431 ); // LONG_STRING_CONST macro
1433 } // namespace gpu