Home | History | Annotate | Download | only in tools
      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 
      5 
      6 """
      7 This file defines the configurations in which bench_pictures should be run
      8 on various platforms. The buildbots read these configurations from the
      9 bench_pictures_cfg dictionary. Everything else in this file exists to help in
     10 constructing that dictionary.
     11 
     12 This code is executed directly on the buildbot so that convenient things like
     13 variables and loops can be used to avoid unnecessary verbosity. With great power
     14 comes great responsibility; don't put any nasty code here. To reiterate, code in
     15 this file will be directly executed on the build slaves.
     16 """
     17 
     18 
     19 import os
     20 import sys
     21 
     22 
     23 if 'import_path' in globals():
     24   sys.path.append(import_path)
     25 
     26 
     27 from bench_pictures_cfg_helper import *
     28 
     29 
     30 # Default tile sizes
     31 DEFAULT_TILE_X = '256'
     32 DEFAULT_TILE_Y = '256'
     33 
     34 # Default viewport size
     35 DEFAULT_VIEWPORT_X = 1500
     36 DEFAULT_VIEWPORT_Y = 1000
     37 
     38 
     39 # Configs to run on most bots
     40 default_configs = [
     41   # Basic CPU and GPU configs
     42   TiledBitmapConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
     43 
     44   # Viewport CPU and GPU
     45   ViewportBitmapConfig(DEFAULT_VIEWPORT_X, DEFAULT_VIEWPORT_Y),
     46   ViewportGPUConfig(DEFAULT_VIEWPORT_X, DEFAULT_VIEWPORT_Y),
     47 
     48   # CopyTiles
     49   CopyTilesConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y),
     50 
     51   # Record
     52   RecordConfig(),
     53 
     54   # Multi-threaded
     55   MultiThreadTileConfig(4, DEFAULT_TILE_X, DEFAULT_TILE_Y),
     56 
     57   # Different tile sizes
     58   TiledBitmapConfig(512, 512),
     59 
     60   # Different bounding box heirarchies, for different modes.
     61   RecordRTreeConfig(),
     62   PlaybackCreationRTreeConfig(),
     63   TileRTreeConfig(            DEFAULT_TILE_X, DEFAULT_TILE_Y),
     64   RecordGridConfig(           DEFAULT_TILE_X, DEFAULT_TILE_Y),
     65   PlaybackCreationGridConfig( DEFAULT_TILE_X, DEFAULT_TILE_Y),
     66   TileGridConfig(             DEFAULT_TILE_X, DEFAULT_TILE_Y),
     67 ]
     68 
     69 
     70 def AndroidConfigList(tile_size, scale, cores, viewport, do_gpu=True):
     71   tile_x = tile_size[0]
     72   tile_y = tile_size[1]
     73 
     74   viewport_x = viewport[0]
     75   viewport_y = viewport[1]
     76 
     77   configs = [
     78     # Record
     79     RecordConfig(     scale=str(scale)),
     80     RecordRTreeConfig(scale=str(scale)),
     81     RecordGridConfig( tile_x, tile_y, scale=str(scale)),
     82 
     83     # Tiled playback
     84     TiledBitmapConfig(tile_x, tile_y, scale=str(scale)),
     85     TileRTreeConfig(  tile_x, tile_y, scale=str(scale)),
     86     TileGridConfig(   tile_x, tile_y, scale=str(scale)),
     87 
     88     # Viewport playback
     89     ViewportBitmapConfig(viewport_x, viewport_y, scale=str(scale)),
     90     ViewportRTreeConfig( viewport_x, viewport_y, scale=str(scale)),
     91   ]
     92 
     93   if do_gpu:
     94     configs.append(ViewportGPUConfig(viewport_x, viewport_y, scale=str(scale)))
     95 
     96   # Multicore
     97   for num_cores in cores:
     98     configs.append(MultiThreadTileConfig(num_cores, tile_x, tile_y,
     99                                          scale=str(scale)))
    100 
    101   return configs
    102 
    103 
    104 msaa4 = Config(config='msaa4')
    105 
    106 
    107 # This dictionary defines the sets of configs for all platforms. Each config is
    108 # a dictionary of key/value pairs directly corresponding to the command-line
    109 # flags passed to bench_pictures.
    110 bench_pictures_cfg = {
    111   'angle': [TiledConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y, config='angle')],
    112   'debug': [TiledBitmapConfig(DEFAULT_TILE_X, DEFAULT_TILE_Y)],
    113   'default': default_configs,
    114   'no_gpu': [cfg for cfg in default_configs if cfg['config'] != 'gpu'],
    115   'nexus_s':      AndroidConfigList((256, 256), 0.4897, [],  (480,  800),
    116                                     do_gpu=False),
    117   'xoom':         AndroidConfigList((256, 256), 1.2244, [],  (1200, 800)),
    118   'galaxy_nexus': AndroidConfigList((256, 256), 0.8163, [],  (800,  1280)),
    119   'nexus_4':      AndroidConfigList((256, 256), 0.7836, [],  (768,  1280)) + \
    120                       [msaa4],
    121   'nexus_7':      AndroidConfigList((256, 256), 1.3061, [4], (1280, 800)),
    122   'nexus_10':     AndroidConfigList((512, 512), 2.6122, [],  (2560, 1600),
    123                                     do_gpu=False) + [msaa4],
    124   'razr_i':       AndroidConfigList((256, 256), 0.5510, [],  (540, 960)) + \
    125                       [msaa4],
    126   'intel_rhb':    AndroidConfigList((256, 256), 0.5510, [],  (540, 960)) + \
    127                       [msaa4],
    128 }
    129