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