Add MultiPictureDraw to nanobench
I would like some guard against performance regressions on our side before turning layer hoisting on in Chromium.
TBR=bsalomon@google.com
Committed: https://skia.googlesource.com/skia/+/0ddad31012dabfc1267effc8071d37f7d606efbe
Review URL: https://codereview.chromium.org/731973005
diff --git a/bench/SKPBench.h b/bench/SKPBench.h
index 0b0e008..36d7dfd 100644
--- a/bench/SKPBench.h
+++ b/bench/SKPBench.h
@@ -17,14 +17,18 @@
*/
class SKPBench : public Benchmark {
public:
- SKPBench(const char* name, const SkPicture*, const SkIRect& devClip, SkScalar scale);
+ SKPBench(const char* name, const SkPicture*, const SkIRect& devClip, SkScalar scale,
+ bool useMultiPictureDraw);
+ ~SKPBench() SK_OVERRIDE;
protected:
- virtual const char* onGetName() SK_OVERRIDE;
- virtual const char* onGetUniqueName() SK_OVERRIDE;
- virtual bool isSuitableFor(Backend backend) SK_OVERRIDE;
- virtual void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE;
- virtual SkIPoint onGetSize() SK_OVERRIDE;
+ const char* onGetName() SK_OVERRIDE;
+ const char* onGetUniqueName() SK_OVERRIDE;
+ void onPerCanvasPreDraw(SkCanvas*) SK_OVERRIDE;
+ void onPerCanvasPostDraw(SkCanvas*) SK_OVERRIDE;
+ bool isSuitableFor(Backend backend) SK_OVERRIDE;
+ void onDraw(const int loops, SkCanvas* canvas) SK_OVERRIDE;
+ SkIPoint onGetSize() SK_OVERRIDE;
private:
SkAutoTUnref<const SkPicture> fPic;
@@ -33,6 +37,10 @@
SkString fName;
SkString fUniqueName;
+ const bool fUseMultiPictureDraw;
+ SkTDArray<SkSurface*> fSurfaces; // for MultiPictureDraw
+ SkTDArray<SkIRect> fTileRects; // for MultiPictureDraw
+
typedef Benchmark INHERITED;
};