Index: bench/nanobench.cpp |
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp |
index 811fc7f7e91fe2c933cfb82b651041e0faceeba2..2dfd33f594abea06cf4034dc34ffcafc0b7687a4 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; |
} |