aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2014-08-04 13:57:39 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-04 13:57:39 -0700
commit2069e220034f09aad2f68b262f395e7c25b3d178 (patch)
treee3d3cba2a63ce88cbc66fefaa467c43ff61e3d3d /bench
parent8f394d47914474e3de7d3988c3f0595cce78b350 (diff)
Fix calibration loop failure condition.
With the old logic, if the last attempt succeeded, we'd say we failed. We also print two lines for loop calibration failures. Quiet that down. BUG=skia: R=djsollen@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/431503004
Diffstat (limited to 'bench')
-rw-r--r--bench/nanobench.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
index 811fc7f7e9..2dfd33f594 100644
--- a/bench/nanobench.cpp
+++ b/bench/nanobench.cpp
@@ -107,16 +107,16 @@ static int clamp_loops(int loops) {
static int cpu_bench(const double overhead, Benchmark* bench, SkCanvas* canvas, double* samples) {
// First figure out approximately how many loops of bench it takes to make overhead negligible.
- double bench_plus_overhead;
+ double bench_plus_overhead = 0.0;
int round = 0;
- do {
- bench_plus_overhead = time(1, bench, canvas, NULL);
- if (++round == FLAGS_maxCalibrationAttempts) {
+ while (bench_plus_overhead < overhead) {
+ if (round++ == FLAGS_maxCalibrationAttempts) {
SkDebugf("WARNING: Can't estimate loops for %s (%s vs. %s); skipping.\n",
bench->getName(), HUMANIZE(bench_plus_overhead), HUMANIZE(overhead));
return 0;
}
- } while (bench_plus_overhead < overhead);
+ bench_plus_overhead = time(1, bench, canvas, NULL);
+ }
// Later we'll just start and stop the timer once but loop N times.
// We'll pick N to make timer overhead negligible:
@@ -547,8 +547,7 @@ int nanobench_main() {
cpu_bench( overhead, bench.get(), canvas, samples.get());
if (loops == 0) {
- SkDebugf("Unable to time %s\t%s (overhead %s)\n",
- bench->getName(), config, HUMANIZE(overhead));
+ // Can't be timed. A warning note has already been printed.
continue;
}