| 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-GCC-GalaxyS3-GPU-Mali400-Arm7-Release', |
| 27 #'Perf-Android-GCC-Nexus5-GPU-Adreno330-Arm7-Debug', | 27 'Perf-Android-GCC-Nexus5-GPU-Adreno330-Arm7-Debug', |
| 28 #'Perf-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release', | 28 'Perf-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release', |
| 29 'Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release', | 29 'Perf-Android-GCC-Nexus7-GPU-Tegra3-Arm7-Release', |
| 30 #'Perf-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Release', | 30 'Perf-Android-GCC-NexusPlayer-GPU-PowerVR-x86-Release', |
| 31 #'Perf-Android-GCC-NVIDIA_Shield-GPU-TegraX1-Arm64-Debug-Vulkan', | 31 'Perf-Android-GCC-NVIDIA_Shield-GPU-TegraX1-Arm64-Debug-Vulkan', |
| 32 #'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug', | 32 'Perf-iOS-Clang-iPad4-GPU-SGX554-Arm7-Debug', |
| 33 #'Perf-Mac-Clang-MacMini6.2-CPU-AVX-x86_64-Release-GN', | 33 'Perf-Mac-Clang-MacMini6.2-CPU-AVX-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-Release', | 36 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Release', |
| 37 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', | 37 'Perf-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug', |
| 38 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', | 38 'Perf-Win8-MSVC-ShuttleB-GPU-HD4600-x86_64-Release-Trybot', |
| 39 ], | 39 ], |
| 40 }, | 40 }, |
| 41 } | 41 } |
| 42 | 42 |
| 43 | 43 |
| 44 def nanobench_flags(bot): | 44 def nanobench_flags(bot): |
| 45 args = ['--pre_log'] | 45 args = ['--pre_log'] |
| 46 | 46 |
| 47 if 'GPU' in bot: | 47 if 'GPU' in bot: |
| 48 args.append('--images') | 48 args.append('--images') |
| 49 args.extend(['--gpuStatsDump', 'true']) | 49 args.extend(['--gpuStatsDump', 'true']) |
| 50 | 50 |
| 51 if 'Android' in bot and 'GPU' in bot: | 51 if 'Android' in bot and 'GPU' in bot: |
| 52 args.extend(['--useThermalManager', '1,1,10,1000']) | 52 args.extend(['--useThermalManager', '1,1,10,1000']) |
| 53 | 53 |
| 54 args.extend(['--scales', '1.0', '1.1']) | 54 args.extend(['--scales', '1.0', '1.1']) |
| 55 | 55 |
| 56 if 'iOS' in bot: | 56 if 'iOS' in bot: |
| 57 args.extend(['--skps', 'ignore_skps']) # pragma: no cover | 57 args.extend(['--skps', 'ignore_skps']) |
| 58 | 58 |
| 59 config = ['565', '8888', 'gpu', 'nonrendering', 'angle', 'hwui' ] | 59 config = ['565', '8888', 'gpu', 'nonrendering', 'angle', 'hwui' ] |
| 60 config += [ 'f16', 'srgb' ] | 60 config += [ 'f16', 'srgb' ] |
| 61 # The S4 crashes and the NP produces a long error stream when we run with | 61 # The S4 crashes and the NP produces a long error stream when we run with |
| 62 # MSAA. | 62 # MSAA. |
| 63 if ('GalaxyS4' not in bot and | 63 if ('GalaxyS4' not in bot and |
| 64 'NexusPlayer' not in bot): | 64 'NexusPlayer' not in bot): |
| 65 if 'Android' in bot: | 65 if 'Android' in bot: |
| 66 # The TegraX1 has a regular OpenGL implementation. We bench that instead | 66 # The TegraX1 has a regular OpenGL implementation. We bench that instead |
| 67 # of ES. | 67 # of ES. |
| 68 if 'TegraX1' in bot: # pragma: no cover | 68 if 'TegraX1' in bot: |
| 69 config.remove('gpu') | 69 config.remove('gpu') |
| 70 config.extend(['gl', 'glmsaa4', 'glnvpr4', 'glnvprdit4']) | 70 config.extend(['gl', 'glmsaa4', 'glnvpr4', 'glnvprdit4']) |
| 71 else: | 71 else: |
| 72 config.extend(['msaa4', 'nvpr4', 'nvprdit4']) | 72 config.extend(['msaa4', 'nvpr4', 'nvprdit4']) |
| 73 else: | 73 else: |
| 74 config.extend(['msaa16', 'nvpr16', 'nvprdit16']) | 74 config.extend(['msaa16', 'nvpr16', 'nvprdit16']) |
| 75 | 75 |
| 76 # Bench instanced rendering on a limited number of platforms | 76 # Bench instanced rendering on a limited number of platforms |
| 77 if 'Nexus6' in bot: # pragma: no cover | 77 if 'Nexus6' in bot: |
| 78 config.append('esinst') # esinst4 isn't working yet on Adreno. | 78 config.append('esinst') # esinst4 isn't working yet on Adreno. |
| 79 elif 'TegraX1' in bot: | 79 elif 'TegraX1' in bot: |
| 80 config.extend(['glinst', 'glinst4']) # pragma: no cover | 80 config.extend(['glinst', 'glinst4']) |
| 81 elif 'MacMini6.2' in bot: | 81 elif 'MacMini6.2' in bot: |
| 82 config.extend(['glinst', 'glinst16']) # pragma: no cover | 82 config.extend(['glinst', 'glinst16']) |
| 83 | 83 |
| 84 if 'Vulkan' in bot: | 84 if 'Vulkan' in bot: |
| 85 config = ['vk'] # pragma: no cover | 85 config = ['vk'] |
| 86 | 86 |
| 87 args.append('--config') | 87 args.append('--config') |
| 88 args.extend(config) | 88 args.extend(config) |
| 89 | 89 |
| 90 if 'Valgrind' in bot: | 90 if 'Valgrind' in bot: |
| 91 # Don't care about Valgrind performance. | 91 # Don't care about Valgrind performance. |
| 92 args.extend(['--loops', '1']) | 92 args.extend(['--loops', '1']) |
| 93 args.extend(['--samples', '1']) | 93 args.extend(['--samples', '1']) |
| 94 # Ensure that the bot framework does not think we have timed out. | 94 # Ensure that the bot framework does not think we have timed out. |
| 95 args.extend(['--keepAlive', 'true']) | 95 args.extend(['--keepAlive', 'true']) |
| 96 | 96 |
| 97 match = [] | 97 match = [] |
| 98 if 'Android' in bot: | 98 if 'Android' in bot: |
| 99 # Segfaults when run as GPU bench. Very large texture? | 99 # Segfaults when run as GPU bench. Very large texture? |
| 100 match.append('~blurroundrect') | 100 match.append('~blurroundrect') |
| 101 match.append('~patch_grid') # skia:2847 | 101 match.append('~patch_grid') # skia:2847 |
| 102 match.append('~desk_carsvg') | 102 match.append('~desk_carsvg') |
| 103 if 'NexusPlayer' in bot: | 103 if 'NexusPlayer' in bot: |
| 104 match.append('~desk_unicodetable') # pragma: no cover | 104 match.append('~desk_unicodetable') |
| 105 if 'Nexus5' in bot: # pragma: no cover | 105 if 'Nexus5' in bot: |
| 106 match.append('~keymobi_shop_mobileweb_ebay_com.skp') # skia:5178 | 106 match.append('~keymobi_shop_mobileweb_ebay_com.skp') # skia:5178 |
| 107 if 'iOS' in bot: # pragma: no cover | 107 if 'iOS' in bot: |
| 108 match.append('~blurroundrect') | 108 match.append('~blurroundrect') |
| 109 match.append('~patch_grid') # skia:2847 | 109 match.append('~patch_grid') # skia:2847 |
| 110 match.append('~desk_carsvg') | 110 match.append('~desk_carsvg') |
| 111 match.append('~keymobi') | 111 match.append('~keymobi') |
| 112 match.append('~path_hairline') | 112 match.append('~path_hairline') |
| 113 match.append('~GLInstancedArraysBench') # skia:4714 | 113 match.append('~GLInstancedArraysBench') # skia:4714 |
| 114 | 114 |
| 115 # the 32-bit GCE bots run out of memory in DM when running these large images | 115 # the 32-bit GCE bots run out of memory in DM when running these large images |
| 116 # so defensively disable them in nanobench, too. | 116 # so defensively disable them in nanobench, too. |
| 117 # FIXME (scroggo): This may have just been due to SkImageDecoder's | 117 # FIXME (scroggo): This may have just been due to SkImageDecoder's |
| 118 # buildTileIndex leaking memory (https://bug.skia.org/4360). That is | 118 # buildTileIndex leaking memory (https://bug.skia.org/4360). That is |
| 119 # disabled by default for nanobench, so we may not need this. | 119 # disabled by default for nanobench, so we may not need this. |
| 120 # FIXME (scroggo): Share image blacklists between dm and nanobench? | 120 # FIXME (scroggo): Share image blacklists between dm and nanobench? |
| 121 if 'x86' in bot and not 'x86-64' in bot: | 121 if 'x86' in bot and not 'x86-64' in bot: |
| 122 match.append('~interlaced1.png') | 122 match.append('~interlaced1.png') |
| 123 match.append('~interlaced2.png') | 123 match.append('~interlaced2.png') |
| 124 match.append('~interlaced3.png') | 124 match.append('~interlaced3.png') |
| 125 | 125 |
| 126 # This low-end Android bot crashes about 25% of the time while running the | 126 # This low-end Android bot crashes about 25% of the time while running the |
| 127 # (somewhat intense) shapes benchmarks. | 127 # (somewhat intense) shapes benchmarks. |
| 128 if 'Perf-Android-GCC-GalaxyS3-GPU-Mali400-Arm7-Release' in bot: | 128 if 'Perf-Android-GCC-GalaxyS3-GPU-Mali400-Arm7-Release' in bot: |
| 129 match.append('~shapes_') # pragma: no cover | 129 match.append('~shapes_') |
| 130 | 130 |
| 131 # We do not need or want to benchmark the decodes of incomplete images. | 131 # We do not need or want to benchmark the decodes of incomplete images. |
| 132 # In fact, in nanobench we assert that the full image decode succeeds. | 132 # In fact, in nanobench we assert that the full image decode succeeds. |
| 133 match.append('~inc0.gif') | 133 match.append('~inc0.gif') |
| 134 match.append('~inc1.gif') | 134 match.append('~inc1.gif') |
| 135 match.append('~incInterlaced.gif') | 135 match.append('~incInterlaced.gif') |
| 136 match.append('~inc0.jpg') | 136 match.append('~inc0.jpg') |
| 137 match.append('~incGray.jpg') | 137 match.append('~incGray.jpg') |
| 138 match.append('~inc0.wbmp') | 138 match.append('~inc0.wbmp') |
| 139 match.append('~inc1.wbmp') | 139 match.append('~inc1.wbmp') |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 api.path.exists( | 315 api.path.exists( |
| 316 api.path['slave_build'].join('skia'), | 316 api.path['slave_build'].join('skia'), |
| 317 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', | 317 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', |
| 318 'skimage', 'VERSION'), | 318 'skimage', 'VERSION'), |
| 319 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', | 319 api.path['slave_build'].join('skia', 'infra', 'bots', 'assets', |
| 320 'skp', 'VERSION'), | 320 'skp', 'VERSION'), |
| 321 api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') | 321 api.path['slave_build'].join('tmp', 'uninteresting_hashes.txt') |
| 322 ) + | 322 ) + |
| 323 api.platform('win', 64) | 323 api.platform('win', 64) |
| 324 ) | 324 ) |
| OLD | NEW |