• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4var commandLineFlags = ['--flag-switches-begin',
5                        '--show-composited-layer-borders',
6                        '--show-fps-counter',
7                        '--flag-switches-end'];
8var commandLineStr = './out/Debug/chrome ' + commandLineFlags.join(' ');
9
10var glValueArray = ['GL_ARB_compatibility',
11                    'GL_ARB_copy_buffer',
12                    'GL_ARB_depth_buffer_float',
13                    'GL_ARB_depth_clamp',
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',
27                    'GL_ARB_imaging',
28                    'GL_ARB_map_buffer_range',
29                    'GL_ARB_multisample',
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',
39                    'GL_ARB_shadow',
40                    'GL_ARB_sync',
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',
55                    'GL_ARB_texture_rg',
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',
63                    'GL_ARB_window_pos',
64                    'GL_ATI_draw_buffers',
65                    'GL_ATI_texture_float',
66                    'GL_ATI_texture_mirror_once',
67                    'GL_S3_s3tc',
68                    'GL_EXT_texture_env_add',
69                    'GL_EXT_abgr',
70                    'GL_EXT_bgra',
71                    'GL_EXT_bindable_uniform',
72                    'GL_EXT_blend_color',
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',
78                    'GL_EXT_Cg_shader',
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',
84                    'GL_EXT_fog_coord',
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',
92                    'GL_EXT_gpu_shader4',
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',
107                    'GL_EXT_texture3D',
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',
135                    'GL_NV_copy_image',
136                    'GL_NV_depth_buffer_float',
137                    'GL_NV_depth_clamp',
138                    'GL_NV_explicit_multisample',
139                    'GL_NV_fence',
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',
148                    'GL_NV_half_float',
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',
185                    'GL_SGIX_shadow',
186                    'GL_SUN_slice_accum'];
187(function() {
188   var dataSets = [
189     {
190       name: 'full_data_linux',
191       gpuInfo: {
192         basic_info: [
193           {
194             description: 'Initialization time',
195             value: '111'
196           },
197           {
198             description: 'Vendor Id',
199             value: '0x10de'
200           },
201           {
202             description: 'Device Id',
203             value: '0x0658'
204           },
205           {
206             description: 'Driver vendor',
207             value: 'NVIDIA'
208           },
209           {
210             description: 'Driver version',
211             value: '195.36.24'
212           },
213           {
214             description: 'Driver date',
215             value: ''
216           },
217           {
218             description: 'Pixel shader version',
219             value: '1.50'
220           },
221           {
222             description: 'Vertex shader version',
223             value: '1.50'
224           },
225           {
226             description: 'GL version',
227             value: '3.2'
228           },
229           {
230             description: 'GL_VENDOR',
231             value: 'NVIDIA Corporation'
232           },
233           {
234             description: 'GL_RENDERER',
235             value: 'Quadro FX 380/PCI/SSE2'
236           },
237           {
238             description: 'GL_VERSION',
239             value: '3.2.0 NVIDIA 195.36.24'
240           },
241           {
242             description: 'GL_EXTENSIONS',
243             value: glValueArray.join(' '),
244           }
245         ],
246         featureStatus: {
247           featureStatus:
248             [
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'}
254             ],
255           problems: []
256         }
257       },
258       clientInfo: {
259         blacklist_version: '1.10',
260         command_line: commandLineStr,
261         version: 'Chrome/12.0.729.0',
262       },
263       logMessages: []
264     },
265     {
266       name: 'no_data',
267       gpuInfo: undefined,
268       clientInfo: undefined,
269       logMessages: undefined
270     },
271     {
272       name: 'logs',
273       gpuInfo: undefined,
274       clientInfo: undefined,
275       logMessages: [
276         {header: 'foo', message: 'Bar'}
277       ]
278     },
279
280     // tests for 'status'
281     {
282       name: 'feature_states',
283       gpuInfo: {
284         basic_info: undefined,
285         featureStatus: {
286           featureStatus: [
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'}
293           ],
294           problems: [
295             {
296               description: 'Something wrong',
297               crBugs: [],
298               webkitBugs: []
299             },
300             {
301               description: 'SomethingElse',
302               crBugs: [],
303               webkitBugs: []
304             },
305             {
306               description: 'WebKit and Chrome bug',
307               crBugs: [23456],
308               webkitBugs: [789, 2123]
309             }
310           ]
311         }
312       },
313       clientInfo: undefined,
314       logMessages: []
315     }
316
317   ];
318
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);
325   }
326   selectEl.addEventListener('change', function() {
327     browserBridge.applySimulatedData_(dataSets[selectEl.selectedIndex]);
328   });
329   selectEl.addEventListener('keydown', function() {
330     window.setTimeout(function() {
331       browserBridge.applySimulatedData_(dataSets[selectEl.selectedIndex]);
332     }, 0);
333   });
334
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);
340
341   document.querySelector('#debug-div').appendChild(controlEl,
342                                                    document.body.firstChild);
343
344   browserBridge.applySimulatedData_(dataSets[0]);
345
346 })();
347