| OLD | NEW |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 # Recipe module for Skia Swarming perf. | 6 # Recipe module for Skia Swarming perf. |
| 7 | 7 |
| 8 | 8 |
| 9 DEPS = [ | 9 DEPS = [ |
| 10 'build/file', | 10 'build/file', |
| 11 'core', | 11 'core', |
| 12 'recipe_engine/json', | 12 'recipe_engine/json', |
| 13 'recipe_engine/path', | 13 'recipe_engine/path', |
| 14 'recipe_engine/platform', | 14 'recipe_engine/platform', |
| 15 'recipe_engine/properties', | 15 'recipe_engine/properties', |
| 16 'recipe_engine/raw_io', | 16 'recipe_engine/raw_io', |
| 17 'run', | 17 'run', |
| 18 'flavor', | 18 'flavor', |
| 19 'vars', | 19 'vars', |
| 20 ] | 20 ] |
| 21 | 21 |
| 22 | 22 |
| 23 TEST_BUILDERS = { | 23 TEST_BUILDERS = { |
| 24 'client.skia': { | 24 'client.skia': { |
| 25 'skiabot-linux-swarm-000': [ | 25 'skiabot-linux-swarm-000': [ |
| 26 'Perf-Android-GCC-GalaxyS3-GPU-Mali400-Arm7-Release', | 26 ('Perf-Android-Clang-NVIDIA_Shield-GPU-TegraX1-arm64-Debug' + |
| 27 'Perf-Android-GCC-NVIDIA_Shield-GPU-TegraX1-Arm64-Debug-Vulkan', | 27 '-GN_Android_Vulkan'), |
| 28 'Perf-Android-GCC-Nexus5-GPU-Adreno330-Arm7-Debug', | 28 'Perf-Android-Clang-Nexus5-GPU-Adreno330-arm-Debug-GN_Android', |
| 29 'Perf-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release', | 29 'Perf-Android-Clang-Nexus6-GPU-Adreno420-arm-Release-GN_Android', |
| 30 'Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release', | 30 'Perf-Android-Clang-Nexus7-GPU-Tegra3-arm-Release-GN_Android', |
| 31 'Perf-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Release', | 31 'Perf-Android-Clang-NexusPlayer-GPU-PowerVR-x86-Release-GN_Android', |
| 32 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', | 32 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', |
| 33 'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN', | 33 'Perf-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Release-GN', |
| 34 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind', | 34 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind', |
| 35 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench', | 35 'Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-VisualBench', |
| 36 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', | 36 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', |
| 37 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release', | 37 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release', |
| 38 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', | 38 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', |
| 39 'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug', | 39 'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug', |
| 40 ], | 40 ], |
| 41 }, | 41 }, |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 # so defensively disable them in nanobench, too. | 120 # so defensively disable them in nanobench, too. |
| 121 # FIXME (scroggo): This may have just been due to SkImageDecoder's | 121 # FIXME (scroggo): This may have just been due to SkImageDecoder's |
| 122 # buildTileIndex leaking memory (https://bug.skia.org/4360). That is | 122 # buildTileIndex leaking memory (https://bug.skia.org/4360). That is |
| 123 # disabled by default for nanobench, so we may not need this. | 123 # disabled by default for nanobench, so we may not need this. |
| 124 # FIXME (scroggo): Share image blacklists between dm and nanobench? | 124 # FIXME (scroggo): Share image blacklists between dm and nanobench? |
| 125 if 'x86' in bot and not 'x86-64' in bot: | 125 if 'x86' in bot and not 'x86-64' in bot: |
| 126 match.append('~interlaced1.png') | 126 match.append('~interlaced1.png') |
| 127 match.append('~interlaced2.png') | 127 match.append('~interlaced2.png') |
| 128 match.append('~interlaced3.png') | 128 match.append('~interlaced3.png') |
| 129 | 129 |
| 130 # This low-end Android bot crashes about 25% of the time while running the | |
| 131 # (somewhat intense) shapes benchmarks. | |
| 132 if 'Perf-Android-GCC-GalaxyS3-GPU-Mali400-Arm7-Release' in bot: | |
| 133 match.append('~shapes_') | |
| 134 | |
| 135 # We do not need or want to benchmark the decodes of incomplete images. | 130 # We do not need or want to benchmark the decodes of incomplete images. |
| 136 # In fact, in nanobench we assert that the full image decode succeeds. | 131 # In fact, in nanobench we assert that the full image decode succeeds. |
| 137 match.append('~inc0.gif') | 132 match.append('~inc0.gif') |
| 138 match.append('~inc1.gif') | 133 match.append('~inc1.gif') |
| 139 match.append('~incInterlaced.gif') | 134 match.append('~incInterlaced.gif') |
| 140 match.append('~inc0.jpg') | 135 match.append('~inc0.jpg') |
| 141 match.append('~incGray.jpg') | 136 match.append('~incGray.jpg') |
| 142 match.append('~inc0.wbmp') | 137 match.append('~inc0.wbmp') |
| 143 match.append('~inc1.wbmp') | 138 match.append('~inc1.wbmp') |
| 144 match.append('~inc0.webp') | 139 match.append('~inc0.webp') |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 api.core.setup() | 235 api.core.setup() |
| 241 try: | 236 try: |
| 242 api.flavor.install() | 237 api.flavor.install() |
| 243 perf_steps(api) | 238 perf_steps(api) |
| 244 finally: | 239 finally: |
| 245 api.flavor.cleanup_steps() | 240 api.flavor.cleanup_steps() |
| 246 api.run.check_failure() | 241 api.run.check_failure() |
| 247 | 242 |
| 248 | 243 |
| 249 def GenTests(api): | 244 def GenTests(api): |
| 250 def AndroidTestData(builder): | |
| 251 test_data = ( | |
| 252 api.step_data( | |
| 253 'get EXTERNAL_STORAGE dir', | |
| 254 stdout=api.raw_io.output('/storage/emulated/legacy')) + | |
| 255 api.step_data( | |
| 256 'read SKP_VERSION', | |
| 257 stdout=api.raw_io.output('42')) + | |
| 258 api.step_data( | |
| 259 'read SK_IMAGE_VERSION', | |
| 260 stdout=api.raw_io.output('42')) + | |
| 261 api.step_data( | |
| 262 'read SVG_VERSION', | |
| 263 stdout=api.raw_io.output('42')) + | |
| 264 api.step_data( | |
| 265 'which adb', | |
| 266 retcode=1) | |
| 267 ) | |
| 268 if not 'Debug' in builder: | |
| 269 test_data += api.step_data( | |
| 270 'exists skia_perf', | |
| 271 stdout=api.raw_io.output('')) | |
| 272 if not 'GalaxyS3' in builder: | |
| 273 test_data += api.step_data( | |
| 274 'adb root', | |
| 275 stdout=api.raw_io.output('restarting adbd as root')) | |
| 276 return test_data | |
| 277 | |
| 278 for mastername, slaves in TEST_BUILDERS.iteritems(): | 245 for mastername, slaves in TEST_BUILDERS.iteritems(): |
| 279 for slavename, builders_by_slave in slaves.iteritems(): | 246 for slavename, builders_by_slave in slaves.iteritems(): |
| 280 for builder in builders_by_slave: | 247 for builder in builders_by_slave: |
| 281 test = ( | 248 test = ( |
| 282 api.test(builder) + | 249 api.test(builder) + |
| 283 api.properties(buildername=builder, | 250 api.properties(buildername=builder, |
| 284 mastername=mastername, | 251 mastername=mastername, |
| 285 slavename=slavename, | 252 slavename=slavename, |
| 286 buildnumber=5, | 253 buildnumber=5, |
| 287 revision='abc123', | 254 revision='abc123', |
| 288 path_config='kitchen', | 255 path_config='kitchen', |
| 289 swarm_out_dir='[SWARM_OUT_DIR]') + | 256 swarm_out_dir='[SWARM_OUT_DIR]') + |
| 290 api.path.exists( | 257 api.path.exists( |
| 291 api.path['slave_build'].join('skia'), | 258 api.path['slave_build'].join('skia'), |
| 292 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', | 259 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', |
| 293 'skimage', 'VERSION'), | 260 'skimage', 'VERSION'), |
| 294 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', | 261 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', |
| 295 'skp', 'VERSION'), | 262 'skp', 'VERSION'), |
| 296 api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') | 263 api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') |
| 297 ) | 264 ) |
| 298 ) | 265 ) |
| 299 if ('Android' in builder and | |
| 300 ('Test' in builder or 'Perf' in builder) and | |
| 301 not 'Appurify' in builder): | |
| 302 test += AndroidTestData(builder) | |
| 303 if 'Trybot' in builder: | 266 if 'Trybot' in builder: |
| 304 test += api.properties(issue=500, | 267 test += api.properties(issue=500, |
| 305 patchset=1, | 268 patchset=1, |
| 306 rietveld='https://codereview.chromium.org') | 269 rietveld='https://codereview.chromium.org') |
| 307 if 'Win' in builder: | 270 if 'Win' in builder: |
| 308 test += api.platform('win', 64) | 271 test += api.platform('win', 64) |
| 309 | 272 |
| 310 yield test | 273 yield test |
| 311 | 274 |
| 312 builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' | 275 builder = 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot' |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 buildername='Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-' + | 310 buildername='Perf-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-' + |
| 348 'Valgrind-Trybot', | 311 'Valgrind-Trybot', |
| 349 mastername='client.skia', | 312 mastername='client.skia', |
| 350 slavename='skiabot-linux-swarm-000', | 313 slavename='skiabot-linux-swarm-000', |
| 351 buildnumber=5, | 314 buildnumber=5, |
| 352 path_config='kitchen', | 315 path_config='kitchen', |
| 353 swarm_out_dir='[SWARM_OUT_DIR]', | 316 swarm_out_dir='[SWARM_OUT_DIR]', |
| 354 revision='abc123', | 317 revision='abc123', |
| 355 **gerrit_kwargs) | 318 **gerrit_kwargs) |
| 356 ) | 319 ) |
| OLD | NEW |