Index: bench/MipMapBench.cpp |
diff --git a/bench/MipMapBench.cpp b/bench/MipMapBench.cpp |
index 652524364b2de8acf63c35153784409fc252e90a..c4a3e350199813dd23c0b2b9f41fcd87565375d8 100644 |
--- a/bench/MipMapBench.cpp |
+++ b/bench/MipMapBench.cpp |
@@ -13,10 +13,11 @@ class MipMapBench: public Benchmark { |
SkBitmap fBitmap; |
SkString fName; |
const int fW, fH; |
+ SkMipMap::SrcGammaMode fMode; |
public: |
- MipMapBench(int w, int h) : fW(w), fH(h) { |
- fName.printf("mipmap_build_%dx%d", w, h); |
+ MipMapBench(int w, int h, SkMipMap::SrcGammaMode mode) : fW(w), fH(h), fMode(mode) { |
+ fName.printf("mipmap_build_%dx%d_%d_gamma", w, h, mode); |
} |
protected: |
@@ -27,13 +28,14 @@ protected: |
const char* onGetName() override { return fName.c_str(); } |
void onDelayedSetup() override { |
- fBitmap.allocN32Pixels(fW, fH, true); |
+ SkImageInfo info = SkImageInfo::MakeS32(fW, fH, kPremul_SkAlphaType); |
+ fBitmap.allocPixels(info); |
fBitmap.eraseColor(SK_ColorWHITE); // so we don't read uninitialized memory |
} |
void onDraw(int loops, SkCanvas*) override { |
for (int i = 0; i < loops * 4; i++) { |
- SkMipMap::Build(fBitmap, nullptr)->unref(); |
+ SkMipMap::Build(fBitmap, fMode, nullptr)->unref(); |
} |
} |
@@ -44,7 +46,8 @@ private: |
// Build variants that exercise the width and heights being even or odd at each level, as the |
// impl specializes on each of these. |
// |
-DEF_BENCH( return new MipMapBench(511, 511); ) |
-DEF_BENCH( return new MipMapBench(512, 511); ) |
-DEF_BENCH( return new MipMapBench(511, 512); ) |
-DEF_BENCH( return new MipMapBench(512, 512); ) |
+DEF_BENCH( return new MipMapBench(511, 511, SkMipMap::kIgnore_SrcGammaMode); ) |
+DEF_BENCH( return new MipMapBench(512, 511, SkMipMap::kIgnore_SrcGammaMode); ) |
+DEF_BENCH( return new MipMapBench(511, 512, SkMipMap::kIgnore_SrcGammaMode); ) |
+DEF_BENCH( return new MipMapBench(512, 512, SkMipMap::kIgnore_SrcGammaMode); ) |
+DEF_BENCH( return new MipMapBench(512, 512, SkMipMap::kRespect_SrcGammaMode); ) |