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 |