Add half-float mipmap benchmarks too
authorBrian Osman <brianosman@google.com>
Mon, 6 Mar 2017 21:16:15 +0000 (16:16 -0500)
committerSkia Commit-Bot <skia-commit-bot@chromium.org>
Mon, 6 Mar 2017 22:07:59 +0000 (22:07 +0000)
Just trying to get better perf coverage of our mipmapping code, in
anticipation of different optimization strategies for the sRGB case.
I want to have some good reference points to measure progress.

BUG=skia:

Change-Id: I62e2d025fdcf9f12e6c86658c6ce7320f14fcc6f
Reviewed-on: https://skia-review.googlesource.com/9323
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>

bench/MipMapBench.cpp

index 36def3a..bffae42 100644 (file)
@@ -14,12 +14,16 @@ class MipMapBench: public Benchmark {
     SkString fName;
     const int fW, fH;
     SkDestinationSurfaceColorMode fColorMode;
+    bool fHalfFoat;
 
 public:
-    MipMapBench(int w, int h, SkDestinationSurfaceColorMode colorMode)
-        : fW(w), fH(h), fColorMode(colorMode)
+    MipMapBench(int w, int h, SkDestinationSurfaceColorMode colorMode, bool halfFloat = false)
+        : fW(w), fH(h), fColorMode(colorMode), fHalfFoat(halfFloat)
     {
         fName.printf("mipmap_build_%dx%d_%d_gamma", w, h, static_cast<int>(colorMode));
+        if (halfFloat) {
+            fName.append("_f16");
+        }
     }
 
 protected:
@@ -30,7 +34,10 @@ protected:
     const char* onGetName() override { return fName.c_str(); }
 
     void onDelayedSetup() override {
-        SkImageInfo info = SkImageInfo::MakeS32(fW, fH, kPremul_SkAlphaType);
+        SkImageInfo info = fHalfFoat ? SkImageInfo::Make(fW, fH, kRGBA_F16_SkColorType,
+                                                         kPremul_SkAlphaType,
+                                                         SkColorSpace::MakeSRGBLinear())
+                                     : SkImageInfo::MakeS32(fW, fH, kPremul_SkAlphaType);
         fBitmap.allocPixels(info);
         fBitmap.eraseColor(SK_ColorWHITE);  // so we don't read uninitialized memory
     }
@@ -56,3 +63,5 @@ DEF_BENCH( return new MipMapBench(512, 512,
                                   SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware); )
 DEF_BENCH( return new MipMapBench(511, 511,
                                   SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware); )
+DEF_BENCH( return new MipMapBench(512, 512, SkDestinationSurfaceColorMode::kLegacy, true); )
+DEF_BENCH( return new MipMapBench(511, 511, SkDestinationSurfaceColorMode::kLegacy, true); )