gpu_driver_bug_list_json.cc revision cedac228d2dd51db4b79ea1e72c7f249408ee061
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
15namespace gpu {
16
17const 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": "5.8",
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": 67,
864      "description": "Force glFinish() after compositing on Mavericks on Intel GPU",
865      // TODO(ccameron): Get rid of this when we move to CoreAnimation.
866      "cr_bugs": [318877],
867      "os": {
868        "type": "macosx",
869        "version": {
870          "op": ">=",
871          "value": "10.9"
872        }
873      },
874      "vendor_id": "0x8086",
875      "multi_gpu_category": "active",
876      "features": [
877        "force_gl_finish_after_compositing"
878      ]
879    },
880    {
881      "id": 68,
882      "description": "Disable partial swaps on linux drivers",
883      "cr_bugs": [339493],
884      "os": {
885        "type": "linux"
886      },
887      "features": [
888        "disable_post_sub_buffers_for_onscreen_surfaces"
889      ]
890    },
891    {
892      "id": 69,
893      "description": "Some shaders in Skia need more than the min available vertex and fragment shader uniform vectors in case of OSMesa",
894      "cr_bugs": [174845],
895      "driver_vendor": {
896        "op": "=",
897        "value": "osmesa"
898      },
899      "features": [
900       "max_fragment_uniform_vectors_32",
901       "max_varying_vectors_16",
902       "max_vertex_uniform_vectors_256"
903      ]
904    },
905    {
906      "id": 70,
907      "description": "Disable D3D11 on older nVidia drivers",
908      "cr_bugs": [349929],
909      "os": {
910        "type": "win"
911      },
912      "vendor_id": "0x10de",
913      "driver_version": {
914        "op": "<=",
915        "value": "8.17.12.6973"
916      },
917      "features": [
918        "disable_d3d11"
919      ]
920    },
921    {
922      "id": 71,
923      "description": "Vivante's support of OES_standard_derivatives is buggy",
924      "cr_bugs": [368005],
925      "os": {
926        "type": "android"
927      },
928      "gl_extensions": {
929        "op": "contains",
930        "value": "GL_VIV_shader_binary"
931      },
932      "features": [
933        "disable_oes_standard_derivatives"
934      ]
935    },
936    {
937      "id": 72,
938      "description": "Use virtual contexts on NVIDIA with GLES 3.1",
939      "cr_bugs": [369316],
940      "os": {
941        "type": "android"
942      },
943      "gl_type": "gles",
944      "gl_version": {
945        "op": "=",
946        "value": "3.1"
947      },
948      "gl_vendor": {
949        "op": "beginwith",
950        "value": "NVidia"
951      },
952      "features": [
953        "use_virtualized_gl_contexts"
954      ]
955    },
956    {
957      "id": 73,
958      "description": "Using D3D11 causes browser crashes on certain Intel GPUs",
959      "cr_bugs": [310808],
960      "os": {
961        "type": "win"
962      },
963      "vendor_id": "0x8086",
964      "features": [
965        "disable_d3d11"
966      ]
967    },
968)  // LONG_STRING_CONST macro
969// Avoid C2026 (string too big) error on VisualStudio.
970LONG_STRING_CONST(
971    {
972      "id": 74,
973      "cr_bugs": [278606],
974      "description": "Testing EGL sync fences is broken on Qualcomm before Android 4.4",
975      "os": {
976        "type": "android",
977        "version": {
978          "op": "<",
979          "value": "4.4"
980        }
981      },
982      "gl_vendor": {
983        "op": "beginwith",
984        "value": "Qualcomm"
985      },
986      "features": [
987        "disable_egl_khr_fence_sync"
988      ]
989    },
990    {
991      "id": 75,
992      "description": "Mali-400 support of EXT_multisampled_render_to_texture is buggy on Android < 4.3",
993      "cr_bugs": [362435],
994      "os": {
995        "type": "android",
996        "version": {
997          "op": "<",
998          "value": "4.3"
999        }
1000      },
1001      "gl_vendor": {
1002        "op": "beginwith",
1003        "value": "ARM"
1004      },
1005      "gl_renderer": {
1006        "op": "contains",
1007        "value": "Mali-400"
1008      },
1009      "features": [
1010        "disable_multisampling"
1011      ]
1012    },
1013    {
1014      "id": 76,
1015      "cr_bugs": [371530],
1016      "description": "Testing EGL sync fences is broken on IMG",
1017      "os": {
1018        "type": "android"
1019      },
1020      "gl_vendor": {
1021        "op": "beginwith",
1022        "value": "Imagination Technologies"
1023      },
1024      "features": [
1025        "disable_egl_khr_fence_sync"
1026      ]
1027    },
1028    {
1029      "id": 77,
1030      "cr_bugs": [378691, 373360, 371530],
1031      "description": "Testing fences is broken on Mali-400 MP drivers",
1032      "os": {
1033        "type": "android"
1034      },
1035      "gl_vendor": {
1036        "op": "beginwith",
1037        "value": "ARM"
1038      },
1039      "gl_renderer": {
1040        "op": "beginwith",
1041        "value": "Mali-400 MP"
1042      },
1043      "features": [
1044        "disable_egl_khr_fence_sync"
1045      ]
1046    },
1047    {
1048      "id": 78,
1049      "cr_bugs": [378691, 373360, 371530],
1050      "description": "Testing fences is broken on Broadcom drivers",
1051      "os": {
1052        "type": "android"
1053      },
1054      "gl_vendor": {
1055        "op": "beginwith",
1056        "value": "Broadcom"
1057      },
1058      "features": [
1059        "disable_egl_khr_fence_sync"
1060      ]
1061    }
1062  ]
1063}
1064
1065);  // LONG_STRING_CONST macro
1066
1067}  // namespace gpu
1068