| Index: tools/bbh_shootout.cpp
|
| diff --git a/tools/bbh_shootout.cpp b/tools/bbh_shootout.cpp
|
| index 76e8d074c3f78a37c82a67dd70325c913aa714ed..88223898f8b51b88519f1b0a00262cb1bdce9cdc 100644
|
| --- a/tools/bbh_shootout.cpp
|
| +++ b/tools/bbh_shootout.cpp
|
| @@ -238,11 +238,11 @@ static void do_benchmark_work(sk_tools::PictureRenderer* renderer,
|
| }
|
|
|
| renderer->setup();
|
| - // Render once to fill caches.
|
| - renderer->render(NULL);
|
| + // Render once to fill caches. Fill bitmap during the first iteration.
|
| + renderer->render(NULL, out);
|
| // Render again to measure
|
| timer->start();
|
| - bool result = renderer->render(NULL, out);
|
| + bool result = renderer->render(NULL);
|
| timer->end();
|
|
|
| // We only care about a false result on playback. RecordPictureRenderer::render will always
|
| @@ -388,7 +388,9 @@ int tool_main(int argc, char** argv) {
|
| playbackOut.writeText("\n");
|
| // Write to file, and save recording averages.
|
| SkScalar avgRecord = SkIntToScalar(0);
|
| + SkScalar avgPlayback = SkIntToScalar(0);
|
| SkScalar avgRecordRTree = SkIntToScalar(0);
|
| + SkScalar avgPlaybackRTree = SkIntToScalar(0);
|
| for (int i = 0; i < argc - 1; ++i) {
|
| SkString pbLine;
|
| SkString recLine;
|
| @@ -400,10 +402,13 @@ int tool_main(int argc, char** argv) {
|
| cpuTime = histograms[BenchmarkControl::kRTreeRecord][i].fCpuTime;
|
| recLine.appendf("%f", cpuTime);
|
| avgRecordRTree += cpuTime;
|
| + avgPlaybackRTree += cpuTime;
|
|
|
| // ==== Write playback info
|
| pbLine.printf("%d ", i);
|
| pbLine.appendf("%f ", histograms[2][i].fCpuTime); // Start with normal playback time.
|
| + avgPlayback += histograms[kNumBbhPlaybackBenchmarks - 1][i].fCpuTime;
|
| + avgPlaybackRTree += histograms[kNumBbhPlaybackBenchmarks][i].fCpuTime;
|
| // Append all playback benchmark times.
|
| for (size_t j = kNumBbhPlaybackBenchmarks; j < kNumBenchmarks; ++j) {
|
| pbLine.appendf("%f ", histograms[j][i].fCpuTime);
|
| @@ -416,8 +421,13 @@ int tool_main(int argc, char** argv) {
|
| }
|
| avgRecord /= argc - 1;
|
| avgRecordRTree /= argc - 1;
|
| + avgPlayback /= argc - 1;
|
| + avgPlaybackRTree /= argc - 1;
|
| SkDebugf("Average base recording time: %.3fms\n", avgRecord);
|
| SkDebugf("Average recording time with rtree: %.3fms\n", avgRecordRTree);
|
| + SkDebugf("Average base playback time: %.3fms\n", avgPlayback);
|
| + SkDebugf("Average playback time with rtree: %.3fms\n", avgPlaybackRTree);
|
| +
|
| SkDebugf("\nWrote data to gnuplot-readable files: %s %s\n", pbTitle, recTitle);
|
|
|
| return 0;
|
|
|