Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / gpu / config / gpu_driver_bug_list_json.cc
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": "3.11",
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       "features": [
55         "set_texture_filter_before_generating_mipmap"
56       ]
57     },
58     {
59       "id": 4,
60       "description": "Need to set the alpha to 255",
61       "features": [
62         "clear_alpha_in_readpixels"
63       ]
64     },
65     {
66       "id": 5,
67       "vendor_id": "0x10de",
68       "features": [
69         "use_current_program_after_successful_link"
70       ]
71     },
72     {
73       "id": 6,
74       "cr_bugs": [165493, 222018],
75       "os": {
76         "type": "android",
77         "version": {
78           "op": "<",
79           "value": "4.3"
80         }
81       },
82       "gl_vendor": {
83         "op": "beginwith",
84         "value": "Qualcomm"
85       },
86       "features": [
87         "restore_scissor_on_fbo_change"
88       ]
89     },
90     {
91       "id": 7,
92       "cr_bugs": [89557],
93       "os": {
94         "type": "macosx"
95       },
96       "vendor_id": "0x10de",
97       "features": [
98         "needs_offscreen_buffer_workaround"
99       ]
100     },
101     {
102       "id": 8,
103       "os": {
104         "type": "macosx"
105       },
106       "vendor_id": "0x1002",
107       "features": [
108         "needs_glsl_built_in_function_emulation"
109       ]
110     },
111     {
112       "id": 9,
113       "description": "Mac AMD drivers get gl_PointCoord backward on OSX 10.8 or earlier",
114       "cr_bugs": [256349],
115       "os": {
116         "type": "macosx",
117         "version": {
118           "op": "<",
119           "value": "10.9"
120         }
121       },
122       "vendor_id": "0x1002",
123       "features": [
124         "reverse_point_sprite_coord_origin"
125       ]
126     },
127     {
128       "id": 10,
129       "description": "Mac Intel drivers get gl_PointCoord backward on OSX 10.8 or earlier",
130       "cr_bugs": [256349],
131       "os": {
132         "type": "macosx",
133         "version": {
134           "op": "<",
135           "value": "10.9"
136         }
137       },
138       "vendor_id": "0x8086",
139       "features": [
140         "reverse_point_sprite_coord_origin"
141       ]
142     },
143     {
144       "id": 11,
145       "os": {
146         "type": "macosx"
147       },
148       "vendor_id": "0x8086",
149       "features": [
150         "max_texture_size_limit_4096"
151       ]
152     },
153     {
154       "id": 12,
155       "os": {
156         "type": "macosx"
157       },
158       "vendor_id": "0x8086",
159       "features": [
160         "max_cube_map_texture_size_limit_1024"
161       ]
162     },
163     {
164       "id": 13,
165       "os": {
166         "type": "macosx",
167         "version": {
168           "op": "<",
169           "value": "10.7.3"
170         }
171       },
172       "vendor_id": "0x8086",
173       "features": [
174         "max_cube_map_texture_size_limit_512"
175       ]
176     },
177     {
178       "id": 14,
179       "os": {
180         "type": "macosx"
181       },
182       "vendor_id": "0x1002",
183       "features": [
184         "max_texture_size_limit_4096",
185         "max_cube_map_texture_size_limit_4096"
186       ]
187     },
188     {
189       "id": 16,
190       "description": "Intel drivers on Linux appear to be buggy",
191       "os": {
192         "type": "linux"
193       },
194       "vendor_id": "0x8086",
195       "features": [
196         "disable_ext_occlusion_query"
197       ]
198     },
199     {
200       "id": 17,
201       "description": "Some drivers are unable to reset the D3D device in the GPU process sandbox",
202       "os": {
203         "type": "win"
204       },
205       "features": [
206         "exit_on_context_lost"
207       ]
208     },
209     {
210       "id": 18,
211       "description": "Everything except async + NPOT + multiple-of-8 textures are brutally slow for Imagination drivers",
212       "os": {
213         "type": "android"
214       },
215       "gl_vendor": {
216         "op": "beginwith",
217         "value": "Imagination"
218       },
219       "features": [
220         "enable_chromium_fast_npot_mo8_textures"
221       ]
222     },
223     {
224       "id": 19,
225       "os": {
226         "type": "android"
227       },
228       "gl_vendor": {
229         "op": "beginwith",
230         "value": "Qualcomm"
231       },
232       "features": [
233         "disable_depth_texture"
234       ]
235     },
236     {
237       "id": 20,
238       "description": "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X due to driver bugs.",
239       "os": {
240         "type": "macosx"
241       },
242       "vendor_id": "0x10de",
243       "device_id": ["0x0fd5"],
244       "multi_gpu_category": "any",
245       "features": [
246         "disable_ext_draw_buffers"
247       ]
248     },
249     {
250       "id": 21,
251       "description": "Vivante GPUs are buggy with context switching.",
252       "cr_bugs": [179250, 235935],
253       "os": {
254         "type": "android"
255       },
256       "gl_extensions": {
257         "op": "contains",
258         "value": "GL_VIV_shader_binary"
259       },
260       "features": [
261         "unbind_fbo_on_context_switch"
262       ]
263     },
264     {
265       "id": 22,
266       "description": "Imagination drivers are buggy with context switching.",
267       "cr_bugs": [230896],
268       "os": {
269         "type": "android"
270       },
271       "gl_vendor": {
272         "op": "beginwith",
273         "value": "Imagination"
274       },
275       "features": [
276         "unbind_fbo_on_context_switch"
277       ]
278     },
279     {
280       "id": 23,
281       "cr_bugs": [243038],
282       "description": "Disable OES_standard_derivative on Intel Pineview M Gallium drivers.",
283       "os": {
284         "type": "chromeos"
285       },
286       "vendor_id": "0x8086",
287       "device_id": ["0xa011", "0xa012"],
288       "features": [
289         "disable_oes_standard_derivatives"
290       ]
291     },
292     {
293       "id": 24,
294       "cr_bugs": [231082],
295       "description": "Mali-400 drivers throw an error when a buffer object's size is set to 0.",
296       "os": {
297         "type": "android"
298       },
299       "gl_vendor": {
300         "op": "beginwith",
301         "value": "ARM"
302       },
303       "gl_renderer": {
304         "op": "contains",
305         "value": "Mali-400"
306       },
307       "features": [
308         "use_non_zero_size_for_client_side_stream_buffers"
309       ]
310     },
311     {
312       "id": 25,
313       "cr_bugs": [152225],
314       "description":
315           "PBO + Readpixels + intel gpu doesn't work on OSX 10.7.",
316       "os": {
317         "type": "macosx",
318         "version": {
319           "op": "<",
320           "value": "10.8"
321         }
322       },
323       "vendor_id": "0x8086",
324       "features": [
325         "disable_async_readpixels"
326       ]
327     },
328     {
329       "id": 26,
330       "description": "Disable use of Direct3D 11 on Windows Vista and lower.",
331       "os": {
332         "type": "win",
333         "version": {
334           "op": "<=",
335           "value": "6.0"
336         }
337       },
338       "features": [
339         "disable_d3d11"
340       ]
341     },
342     {
343       "id": 27,
344       "cr_bugs": [265115],
345       "description": "Async Readpixels with GL_BGRA format is broken on Haswell chipset on Mac.",
346       "os": {
347         "type": "macosx"
348       },
349       "vendor_id": "0x8086",
350       "device_id": ["0x0402", "0x0406", "0x040a", "0x0412", "0x0416", "0x041a",
351                     "0x0a04", "0x0a16", "0x0a22", "0x0a26", "0x0a2a"],
352       "features": [
353         "swizzle_rgba_for_async_readpixels"
354       ]
355     },
356     {
357       "id": 29,
358       "cr_bugs": [278606],
359       "description": "Testing fences is broken on QualComm.",
360       "os": {
361         "type": "android",
362         "version": {
363           "op": "<",
364           "value": "4.4"
365         }
366       },
367       "gl_vendor": {
368         "op": "beginwith",
369         "value": "Qualcomm"
370       },
371       "features": [
372         "disable_async_readpixels"
373       ]
374     },
375     {
376       "id": 30,
377       "cr_bugs": [237931],
378       "description": "Multisampling is buggy on OSX when multiple monitors are connected",
379       "os": {
380         "type": "macosx"
381       },
382       "features": [
383         "disable_multimonitor_multisampling"
384       ]
385     },
386     {
387       "id": 31,
388       "cr_bugs": [154715, 10068, 269829, 294779, 285292],
389       "description": "The Mali-Txxx driver does not guarantee flush ordering.",
390       "gl_vendor": {
391         "op": "beginwith",
392         "value": "ARM"
393       },
394       "gl_renderer": {
395         "op": "beginwith",
396         "value": "Mali-T"
397       },
398       "features": [
399         "use_virtualized_gl_contexts"
400       ]
401     },
402     {
403       "id": 32,
404       "cr_bugs": [179815],
405       "description": "Share groups are not working on (older?) Broadcom drivers.",
406       "os": {
407         "type": "android"
408       },
409       "gl_vendor": {
410         "op": "beginwith",
411         "value": "Broadcom"
412       },
413       "features": [
414         "use_virtualized_gl_contexts"
415       ]
416     },
417     {
418       "id": 33,
419       "description": "Share group-related crashes and poor context switching perf on Galaxy Nexus.",
420       "os": {
421         "type": "android"
422       },
423       "gl_vendor": {
424         "op": "beginwith",
425         "value": "Imagination"
426       },
427       "features": [
428         "use_virtualized_gl_contexts"
429       ]
430     },
431     {
432       "id": 34,
433       "cr_bugs": [179250, 229643, 230896],
434       "description": "Share groups are not working on (older?) Vivante drivers.",
435       "os": {
436         "type": "android"
437       },
438       "gl_extensions": {
439         "op": "contains",
440         "value": "GL_VIV_shader_binary"
441       },
442       "features": [
443         "use_virtualized_gl_contexts"
444       ]
445     },
446     {
447       "id": 35,
448       "cr_bugs": [163464],
449       "description": "Share-group related crashes on older NVIDIA drivers.",
450       "os": {
451         "type": "android",
452         "version": {
453           "op": "<",
454           "value": "4.3"
455         }
456       },
457       "gl_vendor": {
458         "op": "beginwith",
459         "value": "NVIDIA"
460       },
461       "features": [
462         "use_virtualized_gl_contexts"
463       ]
464     },
465     {
466       "id": 36,
467       "cr_bugs": [163464, 233612],
468       "description": "Share-group related crashes on Qualcomm drivers.",
469       "os": {
470         "type": "android",
471         "version": {
472           "op": "<",
473           "value": "4.3"
474         }
475       },
476       "gl_vendor": {
477         "op": "beginwith",
478         "value": "Qualcomm"
479       },
480       "features": [
481         "use_virtualized_gl_contexts"
482       ]
483     },
484     {
485       "id": 37,
486       "cr_bugs": [286468],
487       "description": "Program link fails in NVIDIA Linux if gl_Position is not set",
488       "os": {
489         "type": "linux"
490       },
491       "vendor_id": "0x10de",
492       "features": [
493         "init_gl_position_in_vertex_shader"
494       ]
495     },
496     {
497       "id": 38,
498       "cr_bugs": [289461],
499       "description": "Non-virtual contexts on Qualcomm sometimes cause out-of-order frames",
500       "os": {
501         "type": "android"
502       },
503       "gl_vendor": {
504         "op": "beginwith",
505         "value": "Qualcomm"
506       },
507       "features": [
508         "use_virtualized_gl_contexts"
509       ]
510     },
511     {
512       "id": 39,
513       "cr_bugs": [290391],
514       "description": "Multisampled renderbuffer allocation must be validated on some Macs",
515       "os": {
516         "type": "macosx"
517       },
518       "features": [
519         "validate_multisample_buffer_allocation"
520       ]
521     },
522     {
523       "id": 40,
524       "cr_bugs": [290876],
525       "description": "Framebuffer discarding causes flickering on old ARM drivers",
526       "os": {
527         "type": "android",
528         "version": {
529           "op": "<",
530           "value": "4.4"
531         }
532       },
533       "gl_vendor": {
534         "op": "beginwith",
535         "value": "ARM"
536       },
537       "features": [
538         "disable_ext_discard_framebuffer"
539       ]
540     },
541     {
542       "id": 42,
543       "cr_bugs": [290876],
544       "description": "Framebuffer discarding causes flickering on older IMG drivers.",
545       "os": {
546         "type": "android"
547       },
548       "gl_vendor": {
549         "op": "beginwith",
550         "value": "Imagination"
551       },
552       "gl_renderer": {
553         "op": "=",
554         "value": "PowerVR SGX 540"
555       },
556       "features": [
557         "disable_ext_discard_framebuffer"
558       ]
559     },
560     {
561       "id": 43,
562       "cr_bugs": [299494],
563       "description": "Framebuffer discarding doesn't accept trivial attachments on Vivante.",
564       "os": {
565         "type": "android"
566       },
567       "gl_extensions": {
568         "op": "contains",
569         "value": "GL_VIV_shader_binary"
570       },
571       "features": [
572         "disable_ext_discard_framebuffer"
573       ]
574     },
575     {
576       "id": 44,
577       "cr_bugs": [301988],
578       "description": "Framebuffer discarding causes jumpy scrolling on Mali drivers",
579       "os": {
580         "type": "chromeos"
581       },
582       "features": [
583         "disable_ext_discard_framebuffer"
584       ]
585     },
586     {
587       "id": 45,
588       "cr_bugs": [307751],
589       "description": "Unfold short circuit on MacOSX.",
590       "os": {
591         "type": "macosx"
592       },
593       "features": [
594         "unfold_short_circuit_as_ternary_operation"
595       ]
596     },
597     {
598       "id": 46,
599       "description": "Using D3D11 causes browser crashes on certain Intel GPUs.",
600       "cr_bugs": [310808],
601       "os": {
602         "type": "win"
603       },
604       "vendor_id": "0x8086",
605       "features": [
606         "disable_d3d11"
607       ]
608     },
609     {
610       "id": 48,
611       "description": "Force to use discrete GPU on older MacBookPro models.",
612       "cr_bugs": [113703],
613       "os": {
614         "type": "macosx",
615         "version": {
616           "op": ">=",
617           "value": "10.7"
618         }
619       },
620       "machine_model": {
621         "name": {
622           "op": "=",
623           "value": "MacBookPro"
624         },
625         "version": {
626           "op": "<",
627           "value": "8"
628         }
629       },
630       "gpu_count": {
631         "op": "=",
632         "value": "2"
633       },
634       "features": [
635         "force_discrete_gpu"
636       ]
637     },
638     {
639       "id": 49,
640       "cr_bugs": [309734],
641       "description": "The first draw operation from an idle state is slow.",
642       "os": {
643         "type": "android"
644       },
645       "gl_vendor": {
646         "op": "beginwith",
647         "value": "Qualcomm"
648       },
649       "features": [
650         "wake_up_gpu_before_drawing"
651       ]
652     },
653     {
654       "id": 50,
655       "description": "NVIDIA driver requires unbinding a GpuMemoryBuffer from the texture before mapping it to main memory",
656       "os": {
657         "type": "android"
658       },
659       "gl_vendor": {
660         "op": "beginwith",
661         "value": "NVIDIA"
662       },
663       "features": [
664         "release_image_after_use"
665       ]
666     },
667     {
668       "id": 51,
669       "description": "TexSubImage2D() is faster for full uploads on ANGLE.",
670       "os": {
671         "type": "win"
672       },
673       "gl_renderer": {
674         "op": "beginwith",
675         "value": "ANGLE"
676       },
677       "features": [
678         "texsubimage2d_faster_than_teximage2d"
679       ]
680     },
681     {
682       "id": 52,
683       "description": "ES3 MSAA is broken on Qualcomm.",
684       "os": {
685         "type": "android"
686       },
687       "gl_vendor": {
688         "op": "beginwith",
689         "value": "Qualcomm"
690       },
691       "features": [
692         "disable_multisampling"
693       ]
694     },
695     {
696       "id": 53,
697       "cr_bugs": [321701],
698       "description": "ES3 multisampling is too slow to be usable on Mali.",
699       "gl_vendor": {
700         "op": "beginwith",
701         "value": "ARM"
702       },
703       "gl_renderer": {
704         "op": "beginwith",
705         "value": "Mali"
706       },
707       "features": [
708         "disable_multisampling"
709       ]
710     },
711     {
712       "id": 54,
713       "cr_bugs": [124764],
714       "description": "Clear uniforms before first program use on all platforms",
715       "features": [
716         "clear_uniforms_before_first_program_use"
717       ]
718     },
719     {
720       "id": 55,
721       "cr_bugs": [333885],
722       "description": "Mesa drivers in Linux handle varyings without static use incorrectly",
723       "os": {
724         "type": "linux"
725       },
726       "driver_vendor": {
727         "op": "=",
728         "value": "Mesa"
729       },
730       "features": [
731         "count_all_in_varyings_packing"
732       ]
733     },
734     {
735       "id": 56,
736       "cr_bugs": [333885],
737       "description": "Mesa drivers in ChromeOS handle varyings without static use incorrectly",
738       "os": {
739         "type": "chromeos"
740       },
741       "driver_vendor": {
742         "op": "=",
743         "value": "Mesa"
744       },
745       "features": [
746         "count_all_in_varyings_packing"
747       ]
748     },
749     {
750       "id": 57,
751       "cr_bugs": [322760],
752       "description": "Mac drivers handle varyings without static use incorrectly",
753       "os": {
754         "type": "macosx"
755       },
756       "features": [
757         "init_varyings_without_static_use"
758       ]
759     },
760     {
761       "id": 58,
762       "description": "Multisampling is buggy in ATI cards on older MacOSX",
763       "cr_bugs": [67752, 83153],
764       "os": {
765         "type": "macosx",
766         "version": {
767           "op": "<",
768           "value": "10.7.2"
769         }
770       },
771       "vendor_id": "0x1002",
772       "features": [
773         "disable_multisampling"
774       ]
775     },
776     {
777       "id": 59,
778       "description": "Multisampling is buggy in Intel IvyBridge",
779       "cr_bugs": [116370],
780       "os": {
781         "type": "linux"
782       },
783       "vendor_id": "0x8086",
784       "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"],
785       "features": [
786         "disable_multisampling"
787       ]
788     },
789     {
790       "id": 60,
791       "description": "Multisampling is buggy on Mac with NVIDIA gpu prior to 10.8.3",
792       "cr_bugs": [137303],
793       "os": {
794         "type": "macosx",
795         "version": {
796           "op": "<",
797           "value": "10.8.3"
798         }
799       },
800       "vendor_id": "0x10de",
801       "features": [
802         "disable_multisampling"
803       ]
804     },
805     {
806       "id": 61,
807       "description": "Multisampling is buggy on Mac with Intel gpu prior to 10.8.3",
808       "cr_bugs": [137303],
809       "os": {
810         "type": "macosx",
811         "version": {
812           "op": "<",
813           "value": "10.8.3"
814         }
815       },
816       "vendor_id": "0x8086",
817       "features": [
818         "disable_multisampling"
819       ]
820     },
821     {
822       "id": 62,
823       "description": "Multisampling is buggy on Mac with AMD gpu prior to 10.8.3",
824       "cr_bugs": [162466],
825       "os": {
826         "type": "macosx",
827         "version": {
828           "op": "<",
829           "value": "10.8.3"
830         }
831       },
832       "vendor_id": "0x1002",
833       "features": [
834         "disable_multisampling"
835       ]
836     }
837   ]
838 }
839
840 );  // LONG_STRING_CONST macro
841
842 }  // namespace gpu