aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/TileBench.cpp
diff options
context:
space:
mode:
authorGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-22 20:29:16 +0000
committerGravatar robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-01-22 20:29:16 +0000
commit1e3052354ac155e3d9418cf7e8c8e009df524e01 (patch)
treeb23d0a990add1c02dae46cdd9cc9dce786e96e21 /bench/TileBench.cpp
parent962f2d4e61176a10d35686b192ca4b3e373a8b08 (diff)
Fix bug in 1xN SkBitmapProcShader optimization
Diffstat (limited to 'bench/TileBench.cpp')
-rw-r--r--bench/TileBench.cpp38
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))