| Index: bench/nanobench.cpp
|
| diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
|
| index 03fabc44f1a021252bcff6f4656065b2ced48051..1f5ae60f822ab9d28b84c37b37465398544616b5 100644
|
| --- a/bench/nanobench.cpp
|
| +++ b/bench/nanobench.cpp
|
| @@ -26,7 +26,6 @@
|
| #include "SkPictureRecorder.h"
|
| #include "SkString.h"
|
| #include "SkSurface.h"
|
| -#include "SkTaskGroup.h"
|
|
|
| #if SK_SUPPORT_GPU
|
| #include "gl/GrGLDefines.h"
|
| @@ -71,7 +70,6 @@
|
| DEFINE_string(clip, "0,0,1000,1000", "Clip for SKPs.");
|
| DEFINE_string(scales, "1.0", "Space-separated scales for SKPs.");
|
| DEFINE_bool(bbh, true, "Build a BBH for SKPs?");
|
| -DEFINE_bool(mpd, true, "Use MultiPictureDraw for the SKPs?");
|
| DEFINE_int32(flushEvery, 10, "Flush --outResultsFile every Nth run.");
|
|
|
| static SkString humanize(double ms) {
|
| @@ -217,16 +215,14 @@
|
| }
|
|
|
| #if SK_SUPPORT_GPU
|
| -static void setup_gl(SkGLContext* gl) {
|
| - gl->makeCurrent();
|
| - // Make sure we're done with whatever came before.
|
| - SK_GL(*gl, Finish());
|
| -}
|
| -
|
| static int gpu_bench(SkGLContext* gl,
|
| Benchmark* bench,
|
| SkCanvas* canvas,
|
| double* samples) {
|
| + gl->makeCurrent();
|
| + // Make sure we're done with whatever came before.
|
| + SK_GL(*gl, Finish());
|
| +
|
| // First, figure out how many loops it'll take to get a frame up to FLAGS_gpuMs.
|
| int loops = FLAGS_loops;
|
| if (kAutoTuneLoops == loops) {
|
| @@ -441,8 +437,7 @@
|
| , fGMs(skiagm::GMRegistry::Head())
|
| , fCurrentRecording(0)
|
| , fCurrentScale(0)
|
| - , fCurrentSKP(0)
|
| - , fCurrentUseMPD(0) {
|
| + , fCurrentSKP(0) {
|
| for (int i = 0; i < FLAGS_skps.count(); i++) {
|
| if (SkStrEndsWith(FLAGS_skps[i], ".skp")) {
|
| fSKPs.push_back() = FLAGS_skps[i];
|
| @@ -467,11 +462,6 @@
|
| exit(1);
|
| }
|
| }
|
| -
|
| - fUseMPDs.push_back() = false;
|
| - if (FLAGS_mpd) {
|
| - fUseMPDs.push_back() = true;
|
| - }
|
| }
|
|
|
| static bool ReadPicture(const char* path, SkAutoTUnref<SkPicture>* pic) {
|
| @@ -530,33 +520,25 @@
|
| // Then once each for each scale as SKPBenches (playback).
|
| while (fCurrentScale < fScales.count()) {
|
| while (fCurrentSKP < fSKPs.count()) {
|
| - const SkString& path = fSKPs[fCurrentSKP];
|
| + const SkString& path = fSKPs[fCurrentSKP++];
|
| SkAutoTUnref<SkPicture> pic;
|
| if (!ReadPicture(path.c_str(), &pic)) {
|
| - fCurrentSKP++;
|
| continue;
|
| }
|
| -
|
| - while (fCurrentUseMPD < fUseMPDs.count()) {
|
| - if (FLAGS_bbh) {
|
| - // The SKP we read off disk doesn't have a BBH. Re-record so it grows one.
|
| - SkRTreeFactory factory;
|
| - SkPictureRecorder recorder;
|
| - static const int kFlags = SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag;
|
| - pic->playback(recorder.beginRecording(pic->cullRect().width(),
|
| - pic->cullRect().height(),
|
| - &factory, kFlags));
|
| - pic.reset(recorder.endRecording());
|
| - }
|
| - SkString name = SkOSPath::Basename(path.c_str());
|
| - fSourceType = "skp";
|
| - fBenchType = "playback";
|
| - return SkNEW_ARGS(SKPBench,
|
| - (name.c_str(), pic.get(), fClip,
|
| - fScales[fCurrentScale], fUseMPDs[fCurrentUseMPD++]));
|
| + if (FLAGS_bbh) {
|
| + // The SKP we read off disk doesn't have a BBH. Re-record so it grows one.
|
| + SkRTreeFactory factory;
|
| + SkPictureRecorder recorder;
|
| + pic->playback(recorder.beginRecording(pic->cullRect().width(),
|
| + pic->cullRect().height(),
|
| + &factory));
|
| + pic.reset(recorder.endRecording());
|
| }
|
| - fCurrentUseMPD = 0;
|
| - fCurrentSKP++;
|
| + SkString name = SkOSPath::Basename(path.c_str());
|
| + fSourceType = "skp";
|
| + fBenchType = "playback";
|
| + return SkNEW_ARGS(SKPBench,
|
| + (name.c_str(), pic.get(), fClip, fScales[fCurrentScale]));
|
| }
|
| fCurrentSKP = 0;
|
| fCurrentScale++;
|
| @@ -573,10 +555,6 @@
|
| SkStringPrintf("%d %d %d %d", fClip.fLeft, fClip.fTop,
|
| fClip.fRight, fClip.fBottom).c_str());
|
| log->configOption("scale", SkStringPrintf("%.2g", fScales[fCurrentScale]).c_str());
|
| - if (fCurrentUseMPD > 0) {
|
| - SkASSERT(1 == fCurrentUseMPD || 2 == fCurrentUseMPD);
|
| - log->configOption("multi_picture_draw", fUseMPDs[fCurrentUseMPD-1] ? "true" : "false");
|
| - }
|
| }
|
| }
|
|
|
| @@ -586,21 +564,18 @@
|
| SkIRect fClip;
|
| SkTArray<SkScalar> fScales;
|
| SkTArray<SkString> fSKPs;
|
| - SkTArray<bool> fUseMPDs;
|
|
|
| const char* fSourceType; // What we're benching: bench, GM, SKP, ...
|
| const char* fBenchType; // How we bench it: micro, recording, playback, ...
|
| int fCurrentRecording;
|
| int fCurrentScale;
|
| int fCurrentSKP;
|
| - int fCurrentUseMPD;
|
| };
|
|
|
| int nanobench_main();
|
| int nanobench_main() {
|
| SetupCrashHandler();
|
| SkAutoGraphics ag;
|
| - SkTaskGroup::Enabler enabled;
|
|
|
| #if SK_SUPPORT_GPU
|
| GrContext::Options grContextOpts;
|
| @@ -684,14 +659,6 @@
|
| SkCanvas* canvas = targets[j]->surface.get() ? targets[j]->surface->getCanvas() : NULL;
|
| const char* config = targets[j]->config.name;
|
|
|
| -#if SK_SUPPORT_GPU
|
| - if (Benchmark::kGPU_Backend == targets[j]->config.backend) {
|
| - setup_gl(targets[j]->gl);
|
| - }
|
| -#endif
|
| -
|
| - bench->perCanvasPreDraw(canvas);
|
| -
|
| const int loops =
|
| #if SK_SUPPORT_GPU
|
| Benchmark::kGPU_Backend == targets[j]->config.backend
|
| @@ -699,8 +666,6 @@
|
| :
|
| #endif
|
| cpu_bench( overhead, bench.get(), canvas, samples.get());
|
| -
|
| - bench->perCanvasPostDraw(canvas);
|
|
|
| if (canvas && !FLAGS_writePath.isEmpty() && FLAGS_writePath[0]) {
|
| SkString pngFilename = SkOSPath::Join(FLAGS_writePath[0], config);
|
|
|