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 certain gpu-related features are blacklisted or not.
6 // A valid software_rendering_list.json file are in the format of
18 // Each entry contains the following fields (fields are optional unless
19 // specifically described as mandatory below):
20 // 1. "id" is an integer. 0 is reserved. This field is mandatory.
21 // 2. "os" contains "type" and an optional "version". "type" could be "macosx",
22 // "linux", "win", "chromeos", or "any". "any" is the same as not specifying
24 // "version" is a VERSION structure (defined below).
25 // 3. "vendor_id" is a string. 0 is reserved.
26 // 4. "device_id" is an array of strings. 0 is reserved.
27 // 5. "multi_gpu_style" is a string, valid values include "optimus", and
29 // 6. "multi_gpu_category" is a string, valid values include "any", "primary",
30 // and "secondary". If unspecified, the default value is "primary".
31 // 7. "driver_vendor" is a STRING structure (defined below).
32 // 8. "driver_version" is a VERSION structure (defined below).
33 // 9. "driver_date" is a VERSION structure (defined below).
34 // The version is interpreted as "year.month.day".
35 // 10. "gl_vendor" is a STRING structure (defined below).
36 // 11. "gl_renderer" is a STRING structure (defined below).
37 // 12. "gl_extensions" is a STRING structure (defined below).
38 // 13. "perf_graphics" is a FLOAT structure (defined below).
39 // 14. "perf_gaming" is a FLOAT structure (defined below).
40 // 15. "perf_overall" is a FLOAT structure (defined below).
41 // 16. "machine_model" contais "name" and an optional "version". "name" is a
42 // STRING structure and "version" is a VERSION structure (defined below).
43 // 17. "gpu_count" is a INT structure (defined below).
44 // 18 "cpu_info" is a STRING structure (defined below).
45 // 19. "exceptions" is a list of entries.
46 // 20. "features" is a list of gpu feature strings, valid values include
47 // "accelerated_2d_canvas", "accelerated_compositing", "webgl",
48 // "multisampling", "flash_3d", "flash_stage3d", "texture_sharing",
49 // "accelerated_video", "accelerated_video_decode", "panel_fitting",
50 // "force_compositing_mode", and "all".
51 // This field is mandatory.
52 // 21. "description" has the description of the entry.
53 // 22. "webkit_bugs" is an array of associated webkit bug numbers.
54 // 23. "cr_bugs" is an array of associated webkit bug numbers.
55 // 24. "browser_version" is a VERSION structure (defined below). If this
56 // condition is not satisfied, the entry will be ignored. If it is not
57 // present, then the entry applies to all versions of the browser.
58 // 25. "disabled" is a boolean. If it is present, the entry will be skipped.
59 // This can not be used in exceptions.
61 // VERSION includes "op", "style", "number", and "number2". "op" can be any of
62 // the following values: "=", "<", "<=", ">", ">=", "any", "between". "style"
63 // is optional and can be "lexical" or "numerical"; if it's not specified, it
64 // defaults to "numerical". "number2" is only used if "op" is "between".
65 // "between" is "number <= * <= number2".
66 // "number" is used for all "op" values except "any". "number" and "number2"
67 // are in the format of x, x.x, x.x.x, etc.
68 // Only "driver_version" supports lexical style if the format is major.minor;
69 // in that case, major is still numerical, but minor is lexical.
71 // STRING includes "op" and "value". "op" can be any of the following values:
72 // "contains", "beginwith", "endwith", "=". "value" is a string.
74 // FLOAT includes "op" "value", and "value2". "op" can be any of the
75 // following values: "=", "<", "<=", ">", ">=", "any", "between". "value2" is
76 // only used if "op" is "between". "value" is used for all "op" values except
77 // "any". "value" and "value2" are valid float numbers.
78 // INT is very much like FLOAT, except that the values need to be integers.
80 #include "gpu/config/gpu_control_list_jsons.h"
82 #define LONG_STRING_CONST(...) #__VA_ARGS__
86 const char kSoftwareRenderingListJson
[] = LONG_STRING_CONST(
89 "name": "software rendering list",
90 // Please update the version number whenever you change this file.
95 "description": "ATI Radeon X1900 is not compatible with WebGL on the Mac.",
96 "webkit_bugs": [47028],
100 "vendor_id": "0x1002",
101 "device_id": ["0x7249"],
110 "description": "GL driver is software rendered. Accelerated compositing is disabled.",
120 "accelerated_compositing"
125 "description": "The Intel Mobile 945 Express family of chipsets is not compatible with WebGL.",
130 "vendor_id": "0x8086",
131 "device_id": ["0x27AE", "0x27A2"],
136 "accelerated_2d_canvas"
141 "description": "ATI/AMD cards with older or third-party drivers in Linux are crash-prone.",
142 "cr_bugs": [71381, 76428, 73910, 101225, 136240],
146 "vendor_id": "0x1002",
166 "description": "NVIDIA GeForce FX Go5200 is assumed to be buggy.",
171 "vendor_id": "0x10de",
172 "device_id": ["0x0324"],
179 "description": "NVIDIA GeForce 7300 GT on Mac does not support WebGL.",
184 "vendor_id": "0x10de",
185 "device_id": ["0x0393"],
194 "description": "Drivers older than 2009-01 on Windows are possibly unreliable.",
195 "cr_bugs": [72979, 89802],
205 "vendor_id": "0x8086",
206 "device_id": ["0x29a2"],
209 "number": "7.15.10.1624"
214 "accelerated_2d_canvas",
216 "accelerated_video_decode",
220 "force_compositing_mode"
225 "description": "ATI drivers older than 10.6 on Windows XP are possibly unreliable.",
234 "vendor_id": "0x1002",
241 "accelerated_video_decode",
245 "force_compositing_mode"
250 "description": "NVIDIA drivers older than 257.21 on Windows XP are possibly unreliable.",
259 "vendor_id": "0x10de",
262 "number": "6.14.12.5721"
266 "accelerated_video_decode",
270 "force_compositing_mode"
275 "description": "Intel drivers older than 14.42.7.5294 on Windows XP are possibly unreliable.",
284 "vendor_id": "0x8086",
287 "number": "6.14.10.5294"
291 "accelerated_video_decode",
295 "force_compositing_mode"
300 "description": "Multisampling is buggy in ATI cards on older MacOSX.",
301 "cr_bugs": [67752, 83153],
309 "vendor_id": "0x1002",
316 "description": "Intel mesa drivers are crash-prone.",
317 "cr_bugs": [76703, 164555, 225200],
321 "vendor_id": "0x8086",
324 "device_id": ["0x0102", "0x0106", "0x0112", "0x0116", "0x0122", "0x0126", "0x010a", "0x0152", "0x0156", "0x015a", "0x0162", "0x0166"],
331 "device_id": ["0xa001", "0xa002", "0xa011", "0xa012", "0x29a2", "0x2992", "0x2982", "0x2972", "0x2a12", "0x2a42", "0x2e02", "0x2e12", "0x2e22", "0x2e32", "0x2e42", "0x2e92"],
338 "device_id": ["0x0042", "0x0046"],
345 "device_id": ["0x2a02"],
358 "description": "NVIDIA Quadro FX 1500 is buggy.",
363 "vendor_id": "0x10de",
364 "device_id": ["0x029e"],
371 "description": "GPU acceleration is no longer supported in Leopard.",
372 "cr_bugs": [87157, 130495],
386 "description": "Mesa drivers in linux older than 7.11 are assumed to be buggy.",
404 "description": "Accelerated 2d canvas is unstable in Linux at the moment.",
409 "accelerated_2d_canvas"
414 "description": "ATI/AMD cards with older drivers in Linux are crash-prone.",
415 "cr_bugs": [95934, 94973, 136240],
442 "description": "ATI/AMD cards with third-party drivers in Linux are crash-prone.",
443 "cr_bugs": [95934, 94973],
461 "description": "ATI/AMD cards with third-party drivers in Linux are crash-prone.",
462 "cr_bugs": [95934, 94973],
480 "description": "NVIDIA cards with nouveau drivers in Linux are crash-prone.",
485 "vendor_id": "0x10de",
496 "description": "Accelerated 2d canvas is disabled on Windows systems with low perf stats.",
497 "cr_bugs": [116350, 151500],
520 "accelerated_2d_canvas"
525 "description": "Multisampling is buggy in Intel IvyBridge.",
530 "vendor_id": "0x8086",
531 "device_id": ["0x0152", "0x0156", "0x015a", "0x0162", "0x0166"],
538 "description": "S3 Trio (used in Virtual PC) is not compatible.",
543 "vendor_id": "0x5333",
544 "device_id": ["0x8811"],
551 "description": "Stage3D is not supported on Linux.",
562 "description": "Drivers are unreliable for Optimus on Linux.",
567 "multi_gpu_style": "optimus",
574 "description": "Accelerated 2D canvas is unstable for NVidia GeForce 9400M on Lion.",
583 "vendor_id": "0x10de",
584 "device_id": ["0x0863"],
586 "accelerated_2d_canvas"
591 "description": "Disable 3D (but not Stage3D) in Flash on XP",
606 "description": "AMD Radeon HD 6490M on Snow Leopard is buggy.",
615 "vendor_id": "0x1002",
616 "device_id": ["0x6760"],
623 "description": "Intel driver version 8.15.10.1749 has problems sharing textures.",
628 "vendor_id": "0x8086",
631 "number": "8.15.10.1749"
639 "description": "Intel HD 4000 causes kernel panic on Lion.",
649 "vendor_id": "0x8086",
650 "device_id": ["0x0166"],
651 "multi_gpu_category": "any",
658 "description": "Parallels drivers older than 7 are buggy.",
663 "vendor_id": "0x1ab8",
674 "description": "ATI FireMV 2400 cards on Windows are buggy.",
679 "vendor_id": "0x1002",
680 "device_id": ["0x3151"],
687 "description": "NVIDIA linux drivers older than 295.* are assumed to be buggy.",
692 "vendor_id": "0x10de",
707 // Please keep in sync with content/test/content_browser_test.cc.
708 "description": "Accelerated video decode is unavailable on Mac and Linux.",
709 "cr_bugs": [137247, 133828],
723 "accelerated_video_decode"
728 "description": "NVidia GeForce GT 650M can cause the system to hang with flash 3D.",
738 "multi_gpu_style": "optimus",
739 "vendor_id": "0x10de",
740 "device_id": ["0x0fd5"],
748 "description": "Disable VMware software renderer.",
763 "description": "NVIDIA drivers 6.14.11.9621 is buggy on Windows XP.",
772 "vendor_id": "0x10de",
775 "number": "6.14.11.9621"
783 "description": "NVIDIA drivers 6.14.11.8267 is buggy on Windows XP.",
792 "vendor_id": "0x10de",
795 "number": "6.14.11.8267"
803 "description": "The Intel GMA500 is too slow for Stage3D.",
805 "vendor_id": "0x8086",
806 "device_id": ["0x8108", "0x8109"],
813 "description": "Drivers older than 2007-01 on Windows are assumed to be buggy.",
814 "cr_bugs": [72979, 89802],
824 "vendor_id": "0x8086",
825 "device_id": ["0x29a2"],
828 "number": "7.15.10.1624"
838 "description": "NVIDIA linux drivers are unstable when using multiple Open GL contexts and with low memory.",
843 "vendor_id": "0x10de",
850 "accelerated_video_decode",
856 // Panel fitting is only used with OS_CHROMEOS. To avoid displaying an
857 // error in chrome:gpu on every other platform, this blacklist entry needs
858 // to only match on chromeos. The drawback is that panel_fitting will not
859 // appear to be blacklisted if accidentally queried on non-chromeos.
861 "description": "Chrome OS panel fitting is only supported for Intel IVB and SNB Graphics Controllers.",
867 "vendor_id": "0x8086",
868 "device_id": ["0x0106", "0x0116", "0x0166"]
877 "description": "NVidia driver 8.15.11.8593 is crashy on Windows.",
882 "vendor_id": "0x10de",
885 "number": "8.15.11.8593"
888 "accelerated_video_decode"
893 "description": "Multisampling is buggy on Mac with NVIDIA gpu prior to 10.8.3.",
902 "vendor_id": "0x10de",
909 "description": "Multisampling is buggy on Mac with Intel gpu prior to 10.8.3.",
918 "vendor_id": "0x8086",
925 "description": "Accelerated 2D canvas buggy on old Qualcomm Adreno.",
939 "accelerated_2d_canvas"
944 "description": "Multisampling is buggy on Mac with AMD gpu prior to 10.8.3.",
953 "vendor_id": "0x1002",
960 "description": "Hardware video decode is only supported in win7+.",
970 "accelerated_video_decode"
975 "description": "Force compositing mode is unstable in Win Vista.",
985 "force_compositing_mode"
990 "description": "Force compositing mode is unstable in MacOSX earlier than 10.8.",
1000 "force_compositing_mode"
1005 "description": "Accelerated 2D Canvas is not supported on WinXP.",
1006 "cr_bugs": [175149],
1015 "accelerated_2d_canvas"
1020 "description": "VMware Fusion 4 has corrupt rendering with Win Vista+.",
1021 "cr_bugs": [169470],
1029 "vendor_id": "0x15ad",
1032 "number": "7.14.1.1134"
1040 "description": "NVIDIA driver 8.17.11.9621 is buggy with Stage3D baseline mode.",
1041 "cr_bugs": [172771],
1045 "vendor_id": "0x10de",
1048 "number": "8.17.11.9621"
1051 "flash_stage3d_baseline"
1056 "description": "NVIDIA driver 8.17.11.8267 is buggy with Stage3D baseline mode.",
1057 "cr_bugs": [172771],
1061 "vendor_id": "0x10de",
1064 "number": "8.17.11.8267"
1067 "flash_stage3d_baseline"
1072 "description": "All Intel drivers before 8.15.10.2021 are buggy with Stage3D baseline mode.",
1073 "cr_bugs": [172771],
1077 "vendor_id": "0x8086",
1080 "number": "8.15.10.2021"
1083 "flash_stage3d_baseline"
1088 "description": "NVIDIA GeForce 6200 LE is buggy with WebGL.",
1089 "cr_bugs": [232529],
1093 "vendor_id": "0x10de",
1094 "device_id": ["0x0163"],
1101 "description": "WebGL is buggy with the NVIDIA GeForce GT 330M, 9400, and 9400M on MacOSX earlier than 10.8",
1102 "cr_bugs": [233523],
1110 "vendor_id": "0x10de",
1111 "device_id": ["0x0a29", "0x0861", "0x0863"],
1118 "description": "GPU access is blocked if users don't have proper graphics driver installed after Windows installation",
1119 "cr_bugs": [248178],
1125 "value": "Microsoft"
1133 "description": "Texture sharing not supported on AMD Switchable GPUs due to driver issues",
1134 "cr_bugs": [117371],
1138 "multi_gpu_style": "amd_switchable",
1146 ); // LONG_STRING_CONST macro