From 1e3052354ac155e3d9418cf7e8c8e009df524e01 Mon Sep 17 00:00:00 2001 From: "robertphillips@google.com" Date: Tue, 22 Jan 2013 20:29:16 +0000 Subject: Fix bug in 1xN SkBitmapProcShader optimization https://codereview.appspot.com/7187047/ git-svn-id: http://skia.googlecode.com/svn/trunk@7325 2bbb7eff-a529-9590-31e7-b0007b416f81 --- bench/TileBench.cpp | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'bench/TileBench.cpp') diff --git a/bench/TileBench.cpp b/bench/TileBench.cpp index 41d19298db..7f2e7a8e95 100644 --- a/bench/TileBench.cpp +++ b/bench/TileBench.cpp @@ -33,6 +33,7 @@ class ConstXTileBench : public SkBenchmark { SkString fName; bool fDoFilter; bool fDoTrans; + bool fDoScale; enum { N = SkBENCHLOOP(20) }; static const int kWidth = 1; static const int kHeight = 300; @@ -42,10 +43,12 @@ public: SkShader::TileMode xTile, SkShader::TileMode yTile, bool doFilter, - bool doTrans) + bool doTrans, + bool doScale) : INHERITED(param) , fDoFilter(doFilter) - , fDoTrans(doTrans) { + , fDoTrans(doTrans) + , fDoScale(doScale) { SkBitmap bm; bm.setConfig(SkBitmap::kARGB_8888_Config, kWidth, kHeight); @@ -72,6 +75,10 @@ public: if (doTrans) { fName.append("_trans"); } + + if (doScale) { + fName.append("_scale"); + } } protected: @@ -89,7 +96,7 @@ protected: SkRect r; - if (fDoFilter) { + if (fDoScale) { r = SkRect::MakeWH(SkIntToScalar(2 * 640), SkIntToScalar(2 * 480)); canvas->scale(SK_ScalarHalf, SK_ScalarHalf); } else { @@ -112,19 +119,18 @@ private: typedef SkBenchmark INHERITED; }; +DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, false, false, true)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, false, false, false)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, false, false, true)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, false, false)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, false, false)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, false, false)) - -DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, true, false)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, true, false)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, true, false)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, true, false, false)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, true, false, true)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, true, false, false)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, false, true)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, false, true)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, false, true)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, false, true, true)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, false, true, false)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, false, true, true)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, true, true)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, true, true)) -DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, true, true)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode, true, true, false)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kClamp_TileMode, SkShader::kClamp_TileMode, true, true, true)) +DEF_BENCH(return new ConstXTileBench(p, SkShader::kMirror_TileMode, SkShader::kMirror_TileMode, true, true, false)) -- cgit v1.2.3