Home | History | Annotate | Download | only in gpu
      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',
      6                         '--show-fps-counter',
      7                         '--flag-switches-end'];
      8 var commandLineStr = './out/Debug/chrome ' + commandLineFlags.join(' ');
      9 
     10 var 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