OLD | NEW |
| (Empty) |
1 // Determines whether a certain driver bug exists in the current system. | |
2 // A valid gpu_driver_bug_list.json file are in the format of | |
3 // { | |
4 // "version": "x.y", | |
5 // "entries": [ | |
6 // { // entry 1 | |
7 // }, | |
8 // ... | |
9 // { // entry n | |
10 // } | |
11 // ] | |
12 // } | |
13 // | |
14 // Each entry contains the following fields (fields are optional unless | |
15 // specifically described as mandatory below): | |
16 // 1. "id" is an integer. 0 is reserved. This field is mandatory. | |
17 // 2. "os" contains "type" and an optional "version". "type" could be "macosx", | |
18 // "linux", "win", "chromeos", or "any". "any" is the same as not specifying | |
19 // "os". | |
20 // "version" is a VERSION structure (defined below). | |
21 // 3. "vendor_id" is a string. 0 is reserved. | |
22 // 4. "device_id" is an array of strings. 0 is reserved. | |
23 // 5. "multi_gpu_style" is a string, valid values include "optimus", and | |
24 // "amd_switchable". | |
25 // 6. "multi_gpu_category" is a string, valid values include "any", "primary", | |
26 // and "secondary". If unspecified, the default value is "primary". | |
27 // 7. "driver_vendor" is a STRING structure (defined below). | |
28 // 8. "driver_version" is a VERSION structure (defined below). | |
29 // 9. "driver_date" is a VERSION structure (defined below). | |
30 // The version is interpreted as "year.month.day". | |
31 // 10. "gl_vendor" is a STRING structure (defined below). | |
32 // 11. "gl_renderer" is a STRING structure (defined below). | |
33 // 12. "gl_extensions" is a STRING structure (defined below). | |
34 // 13. "perf_graphics" is a FLOAT structure (defined below). | |
35 // 14. "perf_gaming" is a FLOAT structure (defined below). | |
36 // 15. "perf_overall" is a FLOAT structure (defined below). | |
37 // 16. "machine_model" contais "name" and an optional "version". "name" is a | |
38 // STRING structure and "version" is a VERSION structure (defined below). | |
39 // 17. "gpu_count" is a INT structure (defined below). | |
40 // 18 "cpu_info" is a STRING structure (defined below). | |
41 // 19. "exceptions" is a list of entries. | |
42 // 20. "features" is a list of driver bug types. For a list of supported types, | |
43 // see src/gpu/command_buffer/service/gpu_driver_bug_workaround_type.h | |
44 // This field is mandatory. | |
45 // 21. "description" has the description of the entry. | |
46 // 22. "webkit_bugs" is an array of associated webkit bug numbers. | |
47 // 23. "cr_bugs" is an array of associated chromium bug numbers. | |
48 // 24. "browser_version" is a VERSION structure (defined below). If this | |
49 // condition is not satisfied, the entry will be ignored. If it is not | |
50 // present, then the entry applies to all versions of the browser. | |
51 // 25. "disabled" is a boolean. If it is present, the entry will be skipped. | |
52 // This can not be used in exceptions. | |
53 // | |
54 // VERSION includes "op", "style", "number", and "number2". "op" can be any of | |
55 // the following values: "=", "<", "<=", ">", ">=", "any", "between". "style" | |
56 // is optional and can be "lexical" or "numerical"; if it's not specified, it | |
57 // defaults to "numerical". "number2" is only used if "op" is "between". | |
58 // "between" is "number <= * <= number2". | |
59 // "number" is used for all "op" values except "any". "number" and "number2" | |
60 // are in the format of x, x.x, x.x.x, etc. | |
61 // Only "driver_version" supports lexical style if the format is major.minor; | |
62 // in that case, major is still numerical, but minor is lexical. | |
63 // | |
64 // STRING includes "op" and "value". "op" can be any of the following values: | |
65 // "contains", "beginwith", "endwith", "=". "value" is a string. | |
66 // | |
67 // FLOAT includes "op" "value", and "value2". "op" can be any of the | |
68 // following values: "=", "<", "<=", ">", ">=", "any", "between". "value2" is | |
69 // only used if "op" is "between". "value" is used for all "op" values except | |
70 // "any". "value" and "value2" are valid float numbers. | |
71 // INT is very much like FLOAT, except that the values need to be integers. | |
72 | |
73 { | |
74 "name": "gpu driver bug list", | |
75 // Please update the version number whenever you change this file. | |
76 "version": "1.4", | |
77 "entries": [ | |
78 { | |
79 "id": 1, | |
80 "description": "Imagination driver doesn't like uploading lots of buffer d
ata constantly", | |
81 "os": { | |
82 "type": "android" | |
83 }, | |
84 "gl_vendor": { | |
85 "op": "beginwith", | |
86 "value": "Imagination" | |
87 }, | |
88 "features": [ | |
89 "use_client_side_arrays_for_stream_buffers" | |
90 ] | |
91 }, | |
92 { | |
93 "id": 2, | |
94 "description": "ARM driver doesn't like uploading lots of buffer data cons
tantly", | |
95 "os": { | |
96 "type": "android" | |
97 }, | |
98 "gl_vendor": { | |
99 "op": "beginwith", | |
100 "value": "ARM" | |
101 }, | |
102 "features": [ | |
103 "use_client_side_arrays_for_stream_buffers" | |
104 ] | |
105 }, | |
106 { | |
107 "id": 3, | |
108 "features": [ | |
109 "set_texture_filter_before_generating_mipmap" | |
110 ] | |
111 }, | |
112 { | |
113 "id": 4, | |
114 "description": "Need to set the alpha to 255", | |
115 "features": [ | |
116 "clear_alpha_in_readpixels" | |
117 ] | |
118 }, | |
119 { | |
120 "id": 5, | |
121 "vendor_id": "0x10de", | |
122 "features": [ | |
123 "use_current_program_after_successful_link" | |
124 ] | |
125 }, | |
126 { | |
127 "id": 6, | |
128 "os": { | |
129 "type": "android" | |
130 }, | |
131 "gl_vendor": { | |
132 "op": "beginwith", | |
133 "value": "Qualcomm" | |
134 }, | |
135 "features": [ | |
136 "restore_scissor_on_fbo_change", | |
137 "flush_on_context_switch", | |
138 "delete_instead_of_resize_fbo" // Only need this on the ICS driver. | |
139 ] | |
140 }, | |
141 { | |
142 "id": 7, | |
143 "cr_bugs": [89557], | |
144 "os": { | |
145 "type": "macosx" | |
146 }, | |
147 "vendor_id": "0x10de", | |
148 "features": [ | |
149 "needs_offscreen_buffer_workaround" | |
150 ] | |
151 }, | |
152 { | |
153 "id": 8, | |
154 "os": { | |
155 "type": "macosx" | |
156 }, | |
157 "vendor_id": "0x1002", | |
158 "features": [ | |
159 "needs_glsl_built_in_function_emulation" | |
160 ] | |
161 }, | |
162 { | |
163 "id": 9, | |
164 "description": "Mac AMD drivers get gl_PointCoord backward, rdar://problem
/11883495", | |
165 "os": { | |
166 "type": "macosx" | |
167 }, | |
168 "vendor_id": "0x1002", | |
169 "features": [ | |
170 "reverse_point_sprite_coord_origin" | |
171 ] | |
172 }, | |
173 { | |
174 "id": 10, | |
175 "description": "Mac Intel drivers get gl_PointCoord backward, rdar://probl
em/11883495", | |
176 "os": { | |
177 "type": "macosx" | |
178 }, | |
179 "vendor_id": "0x8086", | |
180 "features": [ | |
181 "reverse_point_sprite_coord_origin" | |
182 ] | |
183 }, | |
184 { | |
185 "id": 11, | |
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 "os": { | |
197 "type": "macosx" | |
198 }, | |
199 "vendor_id": "0x8086", | |
200 "features": [ | |
201 "max_cube_map_texture_size_limit_1024" | |
202 ] | |
203 }, | |
204 { | |
205 "id": 13, | |
206 "os": { | |
207 "type": "macosx", | |
208 "version": { | |
209 "op": "<", | |
210 "number": "10.7.3" | |
211 } | |
212 }, | |
213 "vendor_id": "0x8086", | |
214 "features": [ | |
215 "max_cube_map_texture_size_limit_512" | |
216 ] | |
217 }, | |
218 { | |
219 "id": 14, | |
220 "os": { | |
221 "type": "macosx" | |
222 }, | |
223 "vendor_id": "0x1002", | |
224 "features": [ | |
225 "max_texture_size_limit_4096", | |
226 "max_cube_map_texture_size_limit_4096" | |
227 ] | |
228 }, | |
229 { | |
230 "id": 15, | |
231 "description": "Some Android Qualcomm drivers falsely report GL_ANGLE_fram
ebuffer_multisample", | |
232 "cr_bugs": [165736], | |
233 "os": { | |
234 "type": "android" | |
235 }, | |
236 "gl_vendor": { | |
237 "op": "beginwith", | |
238 "value": "Qualcomm" | |
239 }, | |
240 "features": [ | |
241 "disable_angle_framebuffer_multisample" | |
242 ] | |
243 }, | |
244 { | |
245 "id": 16, | |
246 "description": "Intel drivers on Linux appear to be buggy", | |
247 "os": { | |
248 "type": "linux" | |
249 }, | |
250 "vendor_id": "0x8086", | |
251 "features": [ | |
252 "disable_ext_occlusion_query" | |
253 ] | |
254 }, | |
255 { | |
256 "id": 17, | |
257 "description": "Some drivers are unable to reset the D3D device in the GPU
process sandbox", | |
258 "os": { | |
259 "type": "win" | |
260 }, | |
261 "features": [ | |
262 "exit_on_context_lost" | |
263 ] | |
264 }, | |
265 { | |
266 "id": 18, | |
267 "description": "Everything except async + NPOT + multiple-of-8 textures ar
e brutally slow for Imagination drivers", | |
268 "os": { | |
269 "type": "android" | |
270 }, | |
271 "gl_vendor": { | |
272 "op": "beginwith", | |
273 "value": "Imagination" | |
274 }, | |
275 "features": [ | |
276 "enable_chromium_fast_npot_mo8_textures" | |
277 ] | |
278 }, | |
279 { | |
280 "id": 19, | |
281 "os": { | |
282 "type": "android" | |
283 }, | |
284 "gl_vendor": { | |
285 "op": "beginwith", | |
286 "value": "Qualcomm" | |
287 }, | |
288 "features": [ | |
289 "disable_depth_texture" | |
290 ] | |
291 }, | |
292 { | |
293 "id": 20, | |
294 "description": "Disable EXT_draw_buffers on GeForce GT 650M on Mac OS X du
e to driver bugs.", | |
295 "os": { | |
296 "type": "macosx" | |
297 }, | |
298 "vendor_id": "0x10de", | |
299 "device_id": ["0x0fd5"], | |
300 "multi_gpu_category": "any", | |
301 "features": [ | |
302 "disable_ext_draw_buffers" | |
303 ] | |
304 }, | |
305 { | |
306 "id": 21, | |
307 "description": "Vivante GPUs are buggy with context switching.", | |
308 "cr_bugs": [179250, 235935], | |
309 "os": { | |
310 "type": "android" | |
311 }, | |
312 "gl_extensions": { | |
313 "op": "contains", | |
314 "value": "GL_VIV_shader_binary" | |
315 }, | |
316 "features": [ | |
317 "unbind_fbo_on_context_switch" | |
318 ] | |
319 }, | |
320 { | |
321 "id": 22, | |
322 "description": "Imagination drivers are buggy with context switching.", | |
323 "cr_bugs": [230896], | |
324 "os": { | |
325 "type": "android" | |
326 }, | |
327 "gl_vendor": { | |
328 "op": "beginwith", | |
329 "value": "Imagination" | |
330 }, | |
331 "features": [ | |
332 "unbind_fbo_on_context_switch" | |
333 ] | |
334 } | |
335 ] | |
336 } | |
OLD | NEW |