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 --- tools/gpu/GrContextFactory.cpp | 8 -------- tools/gpu/GrContextFactory.h | 6 ++---- tools/gpu/GrTest.cpp | 5 ++--- 3 files changed, 4 insertions(+), 15 deletions(-) (limited to 'tools/gpu') diff --git a/tools/gpu/GrContextFactory.cpp b/tools/gpu/GrContextFactory.cpp index 2bfccd9763..54f4742b73 100644 --- a/tools/gpu/GrContextFactory.cpp +++ b/tools/gpu/GrContextFactory.cpp @@ -261,9 +261,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv if (ContextOverrides::kDisableNVPR & overrides) { grOptions.fSuppressPathRendering = true; } - if (ContextOverrides::kAllowSRGBWithoutDecodeControl & overrides) { - grOptions.fRequireDecodeDisableForSRGB = false; - } if (ContextOverrides::kAvoidStencilBuffers & overrides) { grOptions.fAvoidStencilBuffers = true; } @@ -280,11 +277,6 @@ ContextInfo GrContextFactory::getContextInfoInternal(ContextType type, ContextOv return ContextInfo(); } } - if (ContextOverrides::kRequireSRGBSupport & overrides) { - if (!grCtx->contextPriv().caps()->srgbSupport()) { - return ContextInfo(); - } - } // We must always add new contexts by pushing to the back so that when we delete them we delete // them in reverse order in which they were made. diff --git a/tools/gpu/GrContextFactory.h b/tools/gpu/GrContextFactory.h index 5f16ea8ca9..471e3fd142 100644 --- a/tools/gpu/GrContextFactory.h +++ b/tools/gpu/GrContextFactory.h @@ -56,11 +56,9 @@ public: enum class ContextOverrides { kNone = 0x0, kDisableNVPR = 0x1, - kAllowSRGBWithoutDecodeControl = 0x2, - kAvoidStencilBuffers = 0x4, + kAvoidStencilBuffers = 0x2, - kRequireNVPRSupport = 0x8, - kRequireSRGBSupport = 0x10, + kRequireNVPRSupport = 0x4, }; static bool IsRenderingContext(ContextType type) { diff --git a/tools/gpu/GrTest.cpp b/tools/gpu/GrTest.cpp index f3630ff721..14ba7a0035 100644 --- a/tools/gpu/GrTest.cpp +++ b/tools/gpu/GrTest.cpp @@ -165,10 +165,9 @@ void GrGpu::Stats::dumpKeyValuePairs(SkTArray* keys, SkTArray* #endif GrBackendTexture GrGpu::createTestingOnlyBackendTexture(const void* pixels, int w, int h, - SkColorType colorType, - SkColorSpace* cs, bool isRenderTarget, + SkColorType colorType, bool isRenderTarget, GrMipMapped mipMapped) { - GrPixelConfig config = SkImageInfo2GrPixelConfig(colorType, cs, *this->caps()); + GrPixelConfig config = SkColorType2GrPixelConfig(colorType); if (kUnknown_GrPixelConfig == config) { return GrBackendTexture(); } -- cgit v1.2.3