From e9c99b8baac224d7329fe6c0d9c69e3a4dac714f Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Mon, 6 Mar 2017 16:16:15 -0500 Subject: Add half-float mipmap benchmarks too 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 Commit-Queue: Brian Osman --- bench/MipMapBench.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'bench/MipMapBench.cpp') diff --git a/bench/MipMapBench.cpp b/bench/MipMapBench.cpp index 36def3ad2d..bffae4292d 100644 --- a/bench/MipMapBench.cpp +++ b/bench/MipMapBench.cpp @@ -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(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); ) -- cgit v1.2.3