From 2b23c4bf3186bf3fa71bb105afdcf3b8e5995b52 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Fri, 1 Jun 2018 12:25:08 -0400 Subject: Dest color space no longer impacts mipmaps or texture sampling PS5: Removes SkDestinationSurfaceColorMode, tracking of mipmap mode on GrTexture, sRGB decode state per-texture. Because we were often choosing sRGB configs for RGB color types, legacy rendering would then be incorrect (too dark). So... PS7: Stops ever using sRGB pixel configs when translating image info or color type. Also removes a bunch of GrCaps bits and a GrContextOption that are no longer relevant. PS9: Adjusts surface creation unit test expectations, and changes the raster rules accordingly. At this point, sRGB configs are (obviously) going to be broken. Locally, I ran 8888, gl, and the gbr- versions of both. Across all GMs x configs, there are 13 diffs. 12 are GMs that create surfaces with a color-space attached (and thus, the offscreen is no longer getting sRGB pixel config). The only remainder constructs an SkPictureImageGenerator, (with an attached color space) and renders it to the gbr-gl canvas, which triggers a a tagged surface inside the generator. Bug: skia: Change-Id: Ie5edfa157dd799f3121e8173fc4f97f6c8ed6789 Reviewed-on: https://skia-review.googlesource.com/131282 Commit-Queue: Brian Osman Reviewed-by: Mike Klein Reviewed-by: Brian Salomon --- bench/MipMapBench.cpp | 43 ++++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 27 deletions(-) (limited to 'bench/MipMapBench.cpp') diff --git a/bench/MipMapBench.cpp b/bench/MipMapBench.cpp index 9b6fc27cfb..e41d39b928 100644 --- a/bench/MipMapBench.cpp +++ b/bench/MipMapBench.cpp @@ -13,14 +13,13 @@ class MipMapBench: public Benchmark { SkBitmap fBitmap; SkString fName; const int fW, fH; - SkDestinationSurfaceColorMode fColorMode; bool fHalfFoat; public: - MipMapBench(int w, int h, SkDestinationSurfaceColorMode colorMode, bool halfFloat = false) - : fW(w), fH(h), fColorMode(colorMode), fHalfFoat(halfFloat) + MipMapBench(int w, int h, bool halfFloat = false) + : fW(w), fH(h), fHalfFoat(halfFloat) { - fName.printf("mipmap_build_%dx%d_%d_gamma", w, h, static_cast(colorMode)); + fName.printf("mipmap_build_%dx%d", w, h); if (halfFloat) { fName.append("_f16"); } @@ -44,7 +43,7 @@ protected: void onDraw(int loops, SkCanvas*) override { for (int i = 0; i < loops * 4; i++) { - SkMipMap::Build(fBitmap, fColorMode, nullptr)->unref(); + SkMipMap::Build(fBitmap, nullptr)->unref(); } } @@ -55,25 +54,15 @@ 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, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(512, 511, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(511, 512, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(512, 512, SkDestinationSurfaceColorMode::kLegacy); ) -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); ) -DEF_BENCH( return new MipMapBench(2048, 2048, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(2048, 2048, - SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware); ) -DEF_BENCH( return new MipMapBench(2047, 2047, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(2047, 2047, - SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware); ) -DEF_BENCH( return new MipMapBench(2048, 2047, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(2048, 2047, - SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware); ) -DEF_BENCH( return new MipMapBench(2047, 2048, SkDestinationSurfaceColorMode::kLegacy); ) -DEF_BENCH( return new MipMapBench(2047, 2048, - SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware); ) +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(512, 512, true); ) +DEF_BENCH( return new MipMapBench(511, 511, true); ) + +DEF_BENCH( return new MipMapBench(2048, 2048); ) +DEF_BENCH( return new MipMapBench(2047, 2047); ) +DEF_BENCH( return new MipMapBench(2048, 2047); ) +DEF_BENCH( return new MipMapBench(2047, 2048); ) -- cgit v1.2.3