1 // Copyright (c) 2012 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 var commandLineFlags = ['--flag-switches-begin',
5 '--show-composited-layer-borders',
7 '--flag-switches-end'];
8 var commandLineStr = './out/Debug/chrome ' + commandLineFlags.join(' ');
10 var glValueArray = ['GL_ARB_compatibility',
12 'GL_ARB_depth_buffer_float',
14 'GL_ARB_depth_texture',
15 'GL_ARB_draw_buffers',
16 'GL_ARB_draw_elements_base_vertex',
17 'GL_ARB_draw_instanced',
18 'GL_ARB_fragment_coord_conventions',
19 'GL_ARB_fragment_program',
20 'GL_ARB_fragment_program_shadow',
21 'GL_ARB_fragment_shader',
22 'GL_ARB_framebuffer_object',
23 'GL_ARB_framebuffer_sRGB',
24 'GL_ARB_geometry_shader4',
25 'GL_ARB_half_float_pixel',
26 'GL_ARB_half_float_vertex',
28 'GL_ARB_map_buffer_range',
30 'GL_ARB_multitexture',
31 'GL_ARB_occlusion_query',
32 'GL_ARB_pixel_buffer_object',
33 'GL_ARB_point_parameters',
34 'GL_ARB_point_sprite',
35 'GL_ARB_provoking_vertex',
36 'GL_ARB_seamless_cube_map',
37 'GL_ARB_shader_objects',
38 'GL_ARB_shading_language_100',
41 'GL_ARB_texture_border_clamp',
42 'GL_ARB_texture_buffer_object',
43 'GL_ARB_texture_compression',
44 'GL_ARB_texture_compression_rgtc',
45 'GL_ARB_texture_cube_map',
46 'GL_ARB_texture_env_add',
47 'GL_ARB_texture_env_combine',
48 'GL_ARB_texture_env_crossbar',
49 'GL_ARB_texture_env_dot3',
50 'GL_ARB_texture_float',
51 'GL_ARB_texture_mirrored_repeat',
52 'GL_ARB_texture_multisample',
53 'GL_ARB_texture_non_power_of_two',
54 'GL_ARB_texture_rectangle',
56 'GL_ARB_transpose_matrix',
57 'GL_ARB_uniform_buffer_object',
58 'GL_ARB_vertex_array_bgra',
59 'GL_ARB_vertex_array_object',
60 'GL_ARB_vertex_buffer_object',
61 'GL_ARB_vertex_program',
62 'GL_ARB_vertex_shader',
64 'GL_ATI_draw_buffers',
65 'GL_ATI_texture_float',
66 'GL_ATI_texture_mirror_once',
68 'GL_EXT_texture_env_add',
71 'GL_EXT_bindable_uniform',
73 'GL_EXT_blend_equation_separate',
74 'GL_EXT_blend_func_separate',
75 'GL_EXT_blend_minmax',
76 'GL_EXT_blend_subtract',
77 'GL_EXT_compiled_vertex_array',
79 'GL_EXT_depth_bounds_test',
80 'GL_EXT_direct_state_access',
81 'GL_EXT_draw_buffers2',
82 'GL_EXT_draw_instanced',
83 'GL_EXT_draw_range_elements',
85 'GL_EXT_framebuffer_blit',
86 'GL_EXT_framebuffer_multisample',
87 'GL_EXTX_framebuffer_mixed_formats',
88 'GL_EXT_framebuffer_object',
89 'GL_EXT_framebuffer_sRGB',
90 'GL_EXT_geometry_shader4',
91 'GL_EXT_gpu_program_parameters',
93 'GL_EXT_multi_draw_arrays',
94 'GL_EXT_packed_depth_stencil',
95 'GL_EXT_packed_float',
96 'GL_EXT_packed_pixels',
97 'GL_EXT_pixel_buffer_object',
98 'GL_EXT_point_parameters',
99 'GL_EXT_provoking_vertex',
100 'GL_EXT_rescale_normal',
101 'GL_EXT_secondary_color',
102 'GL_EXT_separate_shader_objects',
103 'GL_EXT_separate_specular_color',
104 'GL_EXT_shadow_funcs',
105 'GL_EXT_stencil_two_side',
106 'GL_EXT_stencil_wrap',
108 'GL_EXT_texture_array',
109 'GL_EXT_texture_buffer_object',
110 'GL_EXT_texture_compression_latc',
111 'GL_EXT_texture_compression_rgtc',
112 'GL_EXT_texture_compression_s3tc',
113 'GL_EXT_texture_cube_map',
114 'GL_EXT_texture_edge_clamp',
115 'GL_EXT_texture_env_combine',
116 'GL_EXT_texture_env_dot3',
117 'GL_EXT_texture_filter_anisotropic',
118 'GL_EXT_texture_integer',
119 'GL_EXT_texture_lod',
120 'GL_EXT_texture_lod_bias',
121 'GL_EXT_texture_mirror_clamp',
122 'GL_EXT_texture_object',
123 'GL_EXT_texture_shared_exponent',
124 'GL_EXT_texture_sRGB',
125 'GL_EXT_texture_swizzle',
126 'GL_EXT_timer_query',
127 'GL_EXT_vertex_array',
128 'GL_EXT_vertex_array_bgra',
129 'GL_IBM_rasterpos_clip',
130 'GL_IBM_texture_mirrored_repeat',
131 'GL_KTX_buffer_region',
132 'GL_NV_blend_square',
133 'GL_NV_conditional_render',
134 'GL_NV_copy_depth_to_color',
136 'GL_NV_depth_buffer_float',
138 'GL_NV_explicit_multisample',
140 'GL_NV_float_buffer',
141 'GL_NV_fog_distance',
142 'GL_NV_fragment_program',
143 'GL_NV_fragment_program_option',
144 'GL_NV_fragment_program2',
145 'GL_NV_framebuffer_multisample_coverage',
146 'GL_NV_geometry_shader4',
147 'GL_NV_gpu_program4',
149 'GL_NV_light_max_exponent',
150 'GL_NV_multisample_coverage',
151 'GL_NV_multisample_filter_hint',
152 'GL_NV_occlusion_query',
153 'GL_NV_packed_depth_stencil',
154 'GL_NV_parameter_buffer_object',
155 'GL_NV_parameter_buffer_object2',
156 'GL_NV_pixel_data_range',
157 'GL_NV_point_sprite',
158 'GL_NV_primitive_restart',
159 'GL_NV_register_combiners',
160 'GL_NV_register_combiners2',
161 'GL_NV_shader_buffer_load',
162 'GL_NV_texgen_reflection',
163 'GL_NV_texture_barrier',
164 'GL_NV_texture_compression_vtc',
165 'GL_NV_texture_env_combine4',
166 'GL_NV_texture_expand_normal',
167 'GL_NV_texture_rectangle',
168 'GL_NV_texture_shader',
169 'GL_NV_texture_shader2',
170 'GL_NV_texture_shader3',
171 'GL_NV_transform_feedback',
172 'GL_NV_vertex_array_range',
173 'GL_NV_vertex_array_range2',
174 'GL_NV_vertex_buffer_unified_memory',
175 'GL_NV_vertex_program',
176 'GL_NV_vertex_program1_1',
177 'GL_NV_vertex_program2',
178 'GL_NV_vertex_program2_option',
179 'GL_NV_vertex_program3',
180 'GL_NVX_conditional_render',
181 'GL_NVX_gpu_memory_info',
182 'GL_SGIS_generate_mipmap',
183 'GL_SGIS_texture_lod',
184 'GL_SGIX_depth_texture',
186 'GL_SUN_slice_accum'];
190 name: 'full_data_linux',
194 description: 'Initialization time',
198 description: 'Vendor Id',
202 description: 'Device Id',
206 description: 'Driver vendor',
210 description: 'Driver version',
214 description: 'Driver date',
218 description: 'Pixel shader version',
222 description: 'Vertex shader version',
226 description: 'GL version',
230 description: 'GL_VENDOR',
231 value: 'NVIDIA Corporation'
234 description: 'GL_RENDERER',
235 value: 'Quadro FX 380/PCI/SSE2'
238 description: 'GL_VERSION',
239 value: '3.2.0 NVIDIA 195.36.24'
242 description: 'GL_EXTENSIONS',
243 value: glValueArray.join(' '),
249 {'status': 'enabled', name: '2d_canvas'},
250 {'status': 'enabled', name: '3d_css'},
251 {'status': 'enabled', name: 'compositing'},
252 {'status': 'enabled', name: 'webgl'},
253 {'status': 'enabled', name: 'multisampling'}
259 blacklist_version: '1.10',
260 command_line: commandLineStr,
261 version: 'Chrome/12.0.729.0',
268 clientInfo: undefined,
269 logMessages: undefined
274 clientInfo: undefined,
276 {header: 'foo', message: 'Bar'}
280 // tests for 'status'
282 name: 'feature_states',
284 basic_info: undefined,
287 {'status': 'disabled_off', name: '2d_canvas'},
288 {'status': 'unavailable_software', name: '3d_css'},
289 {'status': 'disabled_software', name: 'compositing'},
290 {'status': 'software', name: 'compositing'},
291 {'status': 'unavailable_off', name: 'webgl'},
292 {'status': 'enabled', name: 'multisampling'}
296 description: 'Something wrong',
301 description: 'SomethingElse',
306 description: 'WebKit and Chrome bug',
308 webkitBugs: [789, 2123]
313 clientInfo: undefined,
319 var selectEl = document.createElement('select');
320 for (var i = 0; i < dataSets.length; ++i) {
321 var optionEl = document.createElement('option');
322 optionEl.textContent = dataSets[i].name;
323 optionEl.dataSet = dataSets[i];
324 selectEl.add(optionEl);
326 selectEl.addEventListener('change', function() {
327 browserBridge.applySimulatedData_(dataSets[selectEl.selectedIndex]);
329 selectEl.addEventListener('keydown', function() {
330 window.setTimeout(function() {
331 browserBridge.applySimulatedData_(dataSets[selectEl.selectedIndex]);
335 var controlEl = document.createElement('div');
336 var textEl = document.createElement('span');
337 textEl.textContent = 'GPU Info:';
338 controlEl.appendChild(textEl);
339 controlEl.appendChild(selectEl);
341 document.querySelector('#debug-div').appendChild(controlEl,
342 document.body.firstChild);
344 browserBridge.applySimulatedData_(dataSets[0]);