Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: content/browser/gpu/gpu_driver_bug_list_json.cc

Issue 15385003: Move GPU device/driver info related code from content to gpu. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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 // A valid gpu_driver_bug_list.json file are in the format of
7 // {
8 // "version": "x.y",
9 // "entries": [
10 // { // entry 1
11 // },
12 // ...
13 // { // entry n
14 // }
15 // ]
16 // }
17 //
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
23 // "os".
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
28 // "amd_switchable".
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 driver bug types. For a list of supported types,
47 // see src/gpu/command_buffer/service/gpu_driver_bug_workaround_type.h
48 // This field is mandatory.
49 // 21. "description" has the description of the entry.
50 // 22. "webkit_bugs" is an array of associated webkit bug numbers.
51 // 23. "cr_bugs" is an array of associated chromium bug numbers.
52 // 24. "browser_version" is a VERSION structure (defined below). If this
53 // condition is not satisfied, the entry will be ignored. If it is not
54 // present, then the entry applies to all versions of the browser.
55 // 25. "disabled" is a boolean. If it is present, the entry will be skipped.
56 // This can not be used in exceptions.
57 //
58 // VERSION includes "op", "style", "number", and "number2". "op" can be any of
59 // the following values: "=", "<", "<=", ">", ">=", "any", "between". "style"
60 // is optional and can be "lexical" or "numerical"; if it's not specified, it
61 // defaults to "numerical". "number2" is only used if "op" is "between".
62 // "between" is "number <= * <= number2".
63 // "number" is used for all "op" values except "any". "number" and "number2"
64 // are in the format of x, x.x, x.x.x, etc.
65 // Only "driver_version" supports lexical style if the format is major.minor;
66 // in that case, major is still numerical, but minor is lexical.
67 //
68 // STRING includes "op" and "value". "op" can be any of the following values:
69 // "contains", "beginwith", "endwith", "=". "value" is a string.
70 //
71 // FLOAT includes "op" "value", and "value2". "op" can be any of the
72 // following values: "=", "<", "<=", ">", ">=", "any", "between". "value2" is
73 // only used if "op" is "between". "value" is used for all "op" values except
74 // "any". "value" and "value2" are valid float numbers.
75 // INT is very much like FLOAT, except that the values need to be integers.
76
77 #include "content/browser/gpu/gpu_control_list_jsons.h"
78
79 #define LONG_STRING_CONST(...) #__VA_ARGS__
80
81 namespace content {
82
83 const char kGpuDriverBugListJson[] = LONG_STRING_CONST(
84
85 {
86 "name": "gpu driver bug list",
87 // Please update the version number whenever you change this file.
88 "version": "2.0",
89 "entries": [
90 {
91 "id": 1,
92 "description": "Imagination driver doesn't like uploading lots of buffer d ata constantly",
93 "os": {
94 "type": "android"
95 },
96 "gl_vendor": {
97 "op": "beginwith",
98 "value": "Imagination"
99 },
100 "features": [
101 "use_client_side_arrays_for_stream_buffers"
102 ]
103 },
104 {
105 "id": 2,
106 "description": "ARM driver doesn't like uploading lots of buffer data cons tantly",
107 "os": {
108 "type": "android"
109 },
110 "gl_vendor": {
111 "op": "beginwith",
112 "value": "ARM"
113 },
114 "features": [
115 "use_client_side_arrays_for_stream_buffers"
116 ]
117 },
118 {
119 "id": 3,
120 "features": [
121 "set_texture_filter_before_generating_mipmap"
122 ]
123 },
124 {
125 "id": 4,
126 "description": "Need to set the alpha to 255",
127 "features": [
128 "clear_alpha_in_readpixels"
129 ]
130 },
131 {
132 "id": 5,
133 "vendor_id": "0x10de",
134 "features": [
135 "use_current_program_after_successful_link"
136 ]
137 },
138 {
139 "id": 6,
140 "os": {
141 "type": "android"
142 },
143 "gl_vendor": {
144 "op": "beginwith",
145 "value": "Qualcomm"
146 },
147 "features": [
148 "restore_scissor_on_fbo_change",
149 "flush_on_context_switch",
150 "delete_instead_of_resize_fbo" // Only need this on the ICS driver.
151 ]
152 },
153 {
154 "id": 7,
155 "cr_bugs": [89557],
156 "os": {
157 "type": "macosx"
158 },
159 "vendor_id": "0x10de",
160 "features": [
161 "needs_offscreen_buffer_workaround"
162 ]
163 },
164 {
165 "id": 8,
166 "os": {
167 "type": "macosx"
168 },
169 "vendor_id": "0x1002",
170 "features": [
171 "needs_glsl_built_in_function_emulation"
172 ]
173 },
174 {
175 "id": 9,
176 "description": "Mac AMD drivers get gl_PointCoord backward, rdar://problem /11883495",
177 "os": {
178 "type": "macosx"
179 },
180 "vendor_id": "0x1002",
181 "features": [
182 "reverse_point_sprite_coord_origin"
183 ]
184 },
185 {
186 "id": 10,
187 "description": "Mac Intel drivers get gl_PointCoord backward, rdar://probl em/11883495",
188 "os": {
189 "type": "macosx"
190 },
191 "vendor_id": "0x8086",
192 "features": [
193 "reverse_point_sprite_coord_origin"
194 ]
195 },
196 {
197 "id": 11,
198 "os": {
199 "type": "macosx"
200 },
201 "vendor_id": "0x8086",
202 "features": [
203 "max_texture_size_limit_4096"
204 ]
205 },
206 {
207 "id": 12,
208 "os": {
209 "type": "macosx"
210 },
211 "vendor_id": "0x8086",
212 "features": [
213 "max_cube_map_texture_size_limit_1024"
214 ]
215 },
216 {
217 "id": 13,
218 "os": {
219 "type": "macosx",
220 "version": {
221 "op": "<",
222 "number": "10.7.3"
223 }
224 },
225 "vendor_id": "0x8086",
226 "features": [
227 "max_cube_map_texture_size_limit_512"
228 ]
229 },
230 {
231 "id": 14,
232 "os": {
233 "type": "macosx"
234 },
235 "vendor_id": "0x1002",
236 "features": [
237 "max_texture_size_limit_4096",
238 "max_cube_map_texture_size_limit_4096"
239 ]
240 },
241 {
242 "id": 15,
243 "description": "Some Android Qualcomm drivers falsely report GL_ANGLE_fram ebuffer_multisample",
244 "cr_bugs": [165736],
245 "os": {
246 "type": "android"
247 },
248 "gl_vendor": {
249 "op": "beginwith",
250 "value": "Qualcomm"
251 },
252 "features": [
253 "disable_angle_framebuffer_multisample"
254 ]
255 },
256 {
257 "id": 16,
258 "description": "Intel drivers on Linux appear to be buggy",
259 "os": {
260 "type": "linux"
261 },
262 "vendor_id": "0x8086",
263 "features": [
264 "disable_ext_occlusion_query"
265 ]
266 },
267 {
268 "id": 17,
269 "description": "Some drivers are unable to reset the D3D device in the GPU process sandbox",
270 "os": {
271 "type": "win"
272 },
273 "features": [
274 "exit_on_context_lost"
275 ]
276 },
277 {
278 "id": 18,
279 "description": "Everything except async + NPOT + multiple-of-8 textures ar e brutally slow for Imagination drivers",
280 "os": {
281 "type": "android"
282 },
283 "gl_vendor": {
284 "op": "beginwith",
285 "value": "Imagination"
286 },
287 "features": [
288 "enable_chromium_fast_npot_mo8_textures"
289 ]
290 },
291 {
292 "id": 19,
293 "os": {
294 "type": "android"
295 },
296 "gl_vendor": {
297 "op": "beginwith",
298 "value": "Qualcomm"
299 },
300 "features": [
301 "disable_depth_texture"
302 ]
303 },
304 {
305 "id": 20,
306 "description": "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X du e to driver bugs.",
307 "os": {
308 "type": "macosx"
309 },
310 "vendor_id": "0x10de",
311 "device_id": ["0x0fd5"],
312 "multi_gpu_category": "any",
313 "features": [
314 "disable_ext_draw_buffers"
315 ]
316 },
317 {
318 "id": 21,
319 "description": "Vivante GPUs are buggy with context switching.",
320 "cr_bugs": [179250, 235935],
321 "os": {
322 "type": "android"
323 },
324 "gl_extensions": {
325 "op": "contains",
326 "value": "GL_VIV_shader_binary"
327 },
328 "features": [
329 "unbind_fbo_on_context_switch"
330 ]
331 },
332 {
333 "id": 22,
334 "description": "Imagination drivers are buggy with context switching.",
335 "cr_bugs": [230896],
336 "os": {
337 "type": "android"
338 },
339 "gl_vendor": {
340 "op": "beginwith",
341 "value": "Imagination"
342 },
343 "features": [
344 "unbind_fbo_on_context_switch"
345 ]
346 }
347 ]
348 }
349
350 ); // LONG_STRING_CONST macro
351
352 } // namespace content
353
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_driver_bug_list.cc ('k') | content/browser/gpu/gpu_driver_bug_list_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698