| Index: slave/skia_slave_scripts/render_skps.py
|
| diff --git a/slave/skia_slave_scripts/render_skps.py b/slave/skia_slave_scripts/render_skps.py
|
| index 9196f090ac6ba0a5a351b93a0c8768d7a9cb1936..650c6fccdebb910aeceb1afc2e61cdacdd8ac804 100644
|
| --- a/slave/skia_slave_scripts/render_skps.py
|
| +++ b/slave/skia_slave_scripts/render_skps.py
|
| @@ -5,97 +5,68 @@
|
|
|
| """ Run the Skia render_pictures executable. """
|
|
|
| -from build_step import BuildStep, BuildStepWarning
|
| +from build_step import BuildStep
|
| import os
|
| import sys
|
|
|
|
|
| -JSON_SUMMARY_FILENAME_FORMATTER = 'renderskp-%s.json'
|
| -# TODO(epoger): Consider defining these configs in a separate config file within
|
| -# the Skia repo, like we do with
|
| -# https://skia.googlesource.com/skia/+/master/tools/bench_pictures.cfg
|
| -# Or, perhaps we should even share the specific configs with bench_pictures?
|
| -# (Generally, we want to test the same code for both correctness and
|
| -# performance.)
|
| DEFAULT_TILE_X = 256
|
| DEFAULT_TILE_Y = 256
|
| -CONFIGS = {
|
| - 'defaults': [],
|
| - 'deferImageDecoding': ['--deferImageDecoding', '--useVolatileCache'],
|
| - 'grid': ['--bbh', 'grid', str(DEFAULT_TILE_X), str(DEFAULT_TILE_X),
|
| - '--clone', '1'],
|
| - 'rtree': ['--bbh', 'rtree', '--clone', '2'],
|
| -}
|
| +JSON_SUMMARY_BASENAME = 'renderskp-'
|
|
|
|
|
| class RenderSKPs(BuildStep):
|
| -
|
| def __init__(self, timeout=9600, no_output_timeout=9600, **kwargs):
|
| super(RenderSKPs, self).__init__(
|
| timeout=timeout, no_output_timeout=no_output_timeout, **kwargs)
|
|
|
| -
|
| - def DoRenderSKPs(self, args, description, config='8888', write_images=True):
|
| + def DoRenderSKPs(self, args, config='8888', write_images=True,
|
| + json_summary_filename=None):
|
| """Run render_pictures.
|
|
|
| Args:
|
| args: (list of strings) misc args to append to the command line
|
| - description: (string) description of this RenderSKPs run; used as part
|
| - of the JSON summary filename
|
| config: (string) which config to run in
|
| write_images: (boolean) whether to save the generated images (IGNORED)
|
| -
|
| - Raises:
|
| - BuildStepWarning if there was a problem, but the step should keep going.
|
| - Something else if there was a major problem and we should give up now.
|
| + json_summary_filename: (string) name of file to write summary of actually-
|
| + generated images into
|
| """
|
| # For now, don't run on Android, since it takes too long and we don't use
|
| # the results.
|
| if 'Android' in self._builder_name:
|
| return
|
|
|
| - json_summary_filename = JSON_SUMMARY_FILENAME_FORMATTER % description
|
| - json_expectations_devicepath = self._flavor_utils.DevicePathJoin(
|
| - self._device_dirs.PlaybackExpectedSummariesDir(), json_summary_filename)
|
| - if not self._flavor_utils.DevicePathExists(json_expectations_devicepath):
|
| - raise BuildStepWarning('could not find JSON expectations file %s' %
|
| - json_expectations_devicepath)
|
| -
|
| - cmd = [
|
| - '--config', config,
|
| - '--mode', 'tile', str(DEFAULT_TILE_X), str(DEFAULT_TILE_Y),
|
| - '--readJsonSummaryPath', json_expectations_devicepath,
|
| - '--readPath', self._device_dirs.SKPDir(),
|
| - '--writeChecksumBasedFilenames',
|
| - '--writeJsonSummaryPath', self._flavor_utils.DevicePathJoin(
|
| - self._device_dirs.PlaybackActualSummariesDir(),
|
| - json_summary_filename),
|
| - ]
|
| - if write_images:
|
| - cmd.extend([
|
| - '--mismatchPath', self._device_dirs.PlaybackActualImagesDir()])
|
| + cmd = ['-r', self._device_dirs.SKPDir(), '--config', config,
|
| + '--mode', 'tile', str(DEFAULT_TILE_X), str(DEFAULT_TILE_Y)]
|
| + if json_summary_filename:
|
| + cmd.extend(['--writeJsonSummaryPath', os.path.join(
|
| + self._device_dirs.SKPOutDir(), json_summary_filename)])
|
| cmd.extend(args)
|
|
|
| if False:
|
| - # For now, skip --validate on all builders, since it takes more time,
|
| - # and at last check failed on Windows.
|
| + # For now, skip --validate and writing images on all builders, since they
|
| + # take too long and we aren't making use of them.
|
| + # Also skip --validate on Windows, where it is currently failing.
|
| + if write_images:
|
| + cmd.extend(['-w', self._device_dirs.SKPOutDir()])
|
| if not os.name == 'nt':
|
| cmd.append('--validate')
|
| -
|
| self._flavor_utils.RunFlavoredCmd('render_pictures', cmd)
|
|
|
| -
|
| def _Run(self):
|
| - exceptions = []
|
| - for description, args in sorted(CONFIGS.iteritems()):
|
| - try:
|
| - self.DoRenderSKPs(args=args, description=description)
|
| - except BuildStepWarning, e:
|
| - exceptions.append(e)
|
| - print e
|
| - if exceptions:
|
| - raise BuildStepWarning('\nGot %d exceptions:\n%s' % (
|
| - len(exceptions), '\n'.join([repr(e) for e in exceptions])))
|
| + self.DoRenderSKPs(
|
| + args=[],
|
| + json_summary_filename=JSON_SUMMARY_BASENAME + 'defaults.json')
|
| + self.DoRenderSKPs(
|
| + args=['--bbh', 'grid', str(DEFAULT_TILE_X), str(DEFAULT_TILE_X),
|
| + '--clone', '1'],
|
| + json_summary_filename=JSON_SUMMARY_BASENAME + 'grid.json')
|
| + self.DoRenderSKPs(
|
| + args=['--bbh', 'rtree', '--clone', '2'],
|
| + json_summary_filename=JSON_SUMMARY_BASENAME + 'rtree.json')
|
| + self.DoRenderSKPs(
|
| + args=['--deferImageDecoding', '--useVolatileCache'],
|
| + json_summary_filename=JSON_SUMMARY_BASENAME + 'deferImageDecoding.json')
|
|
|
|
|
| if '__main__' == __name__:
|
|
|