diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-22 20:29:16 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-22 20:29:16 +0000 |
commit | 1e3052354ac155e3d9418cf7e8c8e009df524e01 (patch) | |
tree | b23d0a990add1c02dae46cdd9cc9dce786e96e21 /bench/TileBench.cpp | |
parent | 962f2d4e61176a10d35686b192ca4b3e373a8b08 (diff) |
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
Diffstat (limited to 'bench/TileBench.cpp')
-rw-r--r-- | bench/TileBench.cpp | 38 |
1 files changed, 22 insertions, 16 deletions
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)) |