Remove SkSurfaceProps gamma-correctness flag entirely.

This is no longer required - gamma-correctness is now just based on the
presence or absence of a color space.

Public API change is just removal of (unused) flag.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2188463002
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2188463002
diff --git a/dm/DMGpuSupport.h b/dm/DMGpuSupport.h
index 742ec18..1ea51d2 100644
--- a/dm/DMGpuSupport.h
+++ b/dm/DMGpuSupport.h
@@ -36,9 +36,6 @@
         int samples,
         bool useDIText) {
     uint32_t flags = useDIText ? SkSurfaceProps::kUseDeviceIndependentFonts_Flag : 0;
-    if (SkImageInfoIsGammaCorrect(info)) {
-        flags |= SkSurfaceProps::kGammaCorrect_Flag;
-    }
     SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType);
     return SkSurface::MakeRenderTarget(grFactory->get(type, options), SkBudgeted::kNo,
                                        info, samples, &props);
diff --git a/gm/dftext.cpp b/gm/dftext.cpp
index 8ab2df7..f1b9728 100644
--- a/gm/dftext.cpp
+++ b/gm/dftext.cpp
@@ -43,10 +43,7 @@
         SkISize size = onISize();
         SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType,
                                                 sk_ref_sp(inputCanvas->imageInfo().colorSpace()));
-        SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType);
-        uint32_t gammaCorrect = inputCanvas->getProps(&canvasProps)
-            ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0;
-        SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag | gammaCorrect,
+        SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag,
                              SkSurfaceProps::kLegacyFontHost_InitType);
         auto surface(SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info, 0, &props));
         SkCanvas* canvas = surface ? surface->getCanvas() : inputCanvas;
diff --git a/gm/surface.cpp b/gm/surface.cpp
index bae77c5..6846f72 100644
--- a/gm/surface.cpp
+++ b/gm/surface.cpp
@@ -22,7 +22,7 @@
 }
 
 static sk_sp<SkSurface> make_surface(GrContext* ctx, const SkImageInfo& info, SkPixelGeometry geo,
-                                     int disallowAA, int disallowDither, bool gammaCorrect) {
+                                     int disallowAA, int disallowDither) {
     uint32_t flags = 0;
     if (disallowAA) {
         flags |= SkSurfaceProps::kDisallowAntiAlias_Flag;
@@ -30,9 +30,6 @@
     if (disallowDither) {
         flags |= SkSurfaceProps::kDisallowDither_Flag;
     }
-    if (gammaCorrect) {
-        flags |= SkSurfaceProps::kGammaCorrect_Flag;
-    }
 
     SkSurfaceProps props(flags, geo);
     if (ctx) {
@@ -79,8 +76,6 @@
         // must be opaque to have a hope of testing LCD text
         const SkImageInfo info = SkImageInfo::MakeN32(W, H, kOpaque_SkAlphaType,
                                                       sk_ref_sp(canvas->imageInfo().colorSpace()));
-        SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType);
-        bool gammaCorrect = canvas->getProps(&canvasProps) && canvasProps.isGammaCorrect();
 
         const struct {
             SkPixelGeometry fGeo;
@@ -98,8 +93,7 @@
             for (int disallowDither = 0; disallowDither <= 1; ++disallowDither) {
                 SkScalar y = 0;
                 for (const auto& rec : recs) {
-                    auto surface(make_surface(ctx, info, rec.fGeo, disallowAA, disallowDither,
-                                              gammaCorrect));
+                    auto surface(make_surface(ctx, info, rec.fGeo, disallowAA, disallowDither));
                     if (!surface) {
                         SkDebugf("failed to create surface! label: %s AA: %s dither: %s\n",
                                  rec.fLabel, (disallowAA == 1 ? "disallowed" : "allowed"),
diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp
index a241c5c..1b7bff3 100644
--- a/gm/textblobgeometrychange.cpp
+++ b/gm/textblobgeometrychange.cpp
@@ -44,10 +44,7 @@
 
         SkImageInfo info = SkImageInfo::MakeN32(200, 200, kPremul_SkAlphaType,
                                                 sk_ref_sp(canvas->imageInfo().colorSpace()));
-        SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType);
-        uint32_t gammaCorrect = canvas->getProps(&canvasProps)
-            ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0;
-        SkSurfaceProps props(gammaCorrect, kUnknown_SkPixelGeometry);
+        SkSurfaceProps props(0, kUnknown_SkPixelGeometry);
         auto surface = canvas->makeSurface(info, &props);
         if (!surface) {
             surface = SkSurface::MakeRaster(info, &props);
diff --git a/gm/textblobmixedsizes.cpp b/gm/textblobmixedsizes.cpp
index 8fdf558..4e3f0ea 100644
--- a/gm/textblobmixedsizes.cpp
+++ b/gm/textblobmixedsizes.cpp
@@ -106,10 +106,7 @@
             sk_sp<SkColorSpace> colorSpace = sk_ref_sp(inputCanvas->imageInfo().colorSpace());
             SkImageInfo info = SkImageInfo::MakeN32(size.width(), size.height(),
                                                     kPremul_SkAlphaType, colorSpace);
-            SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType);
-            uint32_t gammaCorrect = inputCanvas->getProps(&canvasProps)
-                ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0;
-            SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag | gammaCorrect,
+            SkSurfaceProps props(SkSurfaceProps::kUseDeviceIndependentFonts_Flag,
                                  SkSurfaceProps::kLegacyFontHost_InitType);
             surface = SkSurface::MakeRenderTarget(ctx, SkBudgeted::kNo, info, 0, &props);
             canvas = surface.get() ? surface->getCanvas() : inputCanvas;
diff --git a/gm/textblobrandomfont.cpp b/gm/textblobrandomfont.cpp
index 58f0dc6..2e8249f 100644
--- a/gm/textblobrandomfont.cpp
+++ b/gm/textblobrandomfont.cpp
@@ -99,10 +99,7 @@
 
         SkImageInfo info = SkImageInfo::MakeN32(kWidth, kHeight, kPremul_SkAlphaType,
                                                 sk_ref_sp(canvas->imageInfo().colorSpace()));
-        SkSurfaceProps canvasProps(SkSurfaceProps::kLegacyFontHost_InitType);
-        uint32_t gammaCorrect = canvas->getProps(&canvasProps)
-            ? canvasProps.flags() & SkSurfaceProps::kGammaCorrect_Flag : 0;
-        SkSurfaceProps props(gammaCorrect, kUnknown_SkPixelGeometry);
+        SkSurfaceProps props(0, kUnknown_SkPixelGeometry);
         auto surface(canvas->makeSurface(info, &props));
         if (surface) {
             SkPaint paint;
diff --git a/include/core/SkSurfaceProps.h b/include/core/SkSurfaceProps.h
index 7f56147..735561f 100644
--- a/include/core/SkSurfaceProps.h
+++ b/include/core/SkSurfaceProps.h
@@ -54,17 +54,6 @@
         kDisallowAntiAlias_Flag         = 1 << 0,
         kDisallowDither_Flag            = 1 << 1,
         kUseDeviceIndependentFonts_Flag = 1 << 2,
-
-        /**
-         *  This flag causes sRGB inputs to the color pipeline (images and other sRGB-tagged
-         *  colors) to be gamma-corrected (converted to linear) before use. Without this flag,
-         *  texture scaling and filtering is not gamma correct, preserving the behavior of Skia
-         *  up through 2015.
-         *
-         *  It is recommended to enable this flag when rendering to an sRGB or floating point
-         *  surface.
-         */
-        kGammaCorrect_Flag              = 1 << 3,
     };
     /** Deprecated alias used by Chromium. Will be removed. */
     static const Flags kUseDistanceFieldFonts_Flag = kUseDeviceIndependentFonts_Flag;
@@ -86,7 +75,6 @@
     bool isUseDeviceIndependentFonts() const {
         return SkToBool(fFlags & kUseDeviceIndependentFonts_Flag);
     }
-    bool isGammaCorrect() const { return SkToBool(fFlags & kGammaCorrect_Flag); }
 
 private:
     SkSurfaceProps();
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 5a5173c..457e33b 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -539,10 +539,8 @@
         return false;
     }
 
-    SkSurfaceProps props(SkSurfaceProps::kGammaCorrect_Flag,
-                         SkSurfaceProps::kLegacyFontHost_InitType);
     // TODO: Supply color space?
-    sk_sp<GrDrawContext> drawContext(this->drawContext(sk_ref_sp(dst), nullptr, &props));
+    sk_sp<GrDrawContext> drawContext(this->drawContext(sk_ref_sp(dst), nullptr));
     if (!drawContext) {
         return false;
     }
diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp
index 9165c08..a1af704 100644
--- a/src/views/SkWindow.cpp
+++ b/src/views/SkWindow.cpp
@@ -70,14 +70,6 @@
 void SkWindow::setColorType(SkColorType ct, sk_sp<SkColorSpace> cs) {
     const SkImageInfo& info = fBitmap.info();
     this->resize(SkImageInfo::Make(info.width(), info.height(), ct, kPremul_SkAlphaType, cs));
-
-    // Set the global flag that enables or disables "legacy" mode, depending on our format.
-    // With sRGB 32-bit or linear FP 16, we turn on gamma-correct handling of inputs:
-    SkSurfaceProps props = this->getSurfaceProps();
-    uint32_t flags = (props.flags() & ~SkSurfaceProps::kGammaCorrect_Flag) |
-        (SkColorAndColorSpaceAreGammaCorrect(ct, cs.get())
-         ? SkSurfaceProps::kGammaCorrect_Flag : 0);
-    this->setSurfaceProps(SkSurfaceProps(flags, props.pixelGeometry()));
 }
 
 bool SkWindow::handleInval(const SkRect* localR) {
diff --git a/tests/SRGBMipMapTest.cpp b/tests/SRGBMipMapTest.cpp
index f798119..12f23ad 100644
--- a/tests/SRGBMipMapTest.cpp
+++ b/tests/SRGBMipMapTest.cpp
@@ -120,22 +120,13 @@
     SkAutoTUnref<GrTexture> texture(texProvider->createTexture(desc, SkBudgeted::kNo, texData, 0));
 
     // Create two draw contexts (L32 and S32)
-    SkSurfaceProps l32Props(SkSurfaceProps::kLegacyFontHost_InitType);
-    SkSurfaceProps s32Props(SkSurfaceProps::kGammaCorrect_Flag,
-                            SkSurfaceProps::kLegacyFontHost_InitType);
     sk_sp<SkColorSpace> srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named);
     sk_sp<GrDrawContext> l32DrawContext = context->newDrawContext(SkBackingFit::kExact, rtS, rtS,
                                                                   kSkia8888_GrPixelConfig,
-                                                                  nullptr,
-                                                                  0,
-                                                                  kDefault_GrSurfaceOrigin,
-                                                                  &l32Props);
+                                                                  nullptr);
     sk_sp<GrDrawContext> s32DrawContext = context->newDrawContext(SkBackingFit::kExact, rtS, rtS,
                                                                   kSkiaGamma8888_GrPixelConfig,
-                                                                  std::move(srgbColorSpace),
-                                                                  0,
-                                                                  kDefault_GrSurfaceOrigin,
-                                                                  &s32Props);
+                                                                  std::move(srgbColorSpace));
 
     SkRect rect = SkRect::MakeWH(SkIntToScalar(rtS), SkIntToScalar(rtS));
     GrNoClip noClip;
diff --git a/tools/skiaserve/Request.cpp b/tools/skiaserve/Request.cpp
index f61ed55..edc0a68 100644
--- a/tools/skiaserve/Request.cpp
+++ b/tools/skiaserve/Request.cpp
@@ -161,13 +161,12 @@
 struct ColorAndProfile {
     SkColorType fColorType;
     bool fSRGB;
-    bool fGammaCorrect;
 };
 
 ColorAndProfile ColorModes[] = {
-    { kN32_SkColorType,      false, false },
-    { kN32_SkColorType,       true, true },
-    { kRGBA_F16_SkColorType,  true, true },
+    { kN32_SkColorType,      false },
+    { kN32_SkColorType,       true },
+    { kRGBA_F16_SkColorType,  true },
 };
 
 }
@@ -178,9 +177,7 @@
     auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named);
     SkImageInfo info = SkImageInfo::Make(bounds.width(), bounds.height(), cap.fColorType,
                                          kPremul_SkAlphaType, cap.fSRGB ? srgbColorSpace : nullptr);
-    uint32_t flags = cap.fGammaCorrect ? SkSurfaceProps::kGammaCorrect_Flag : 0;
-    SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType);
-    return SkSurface::MakeRaster(info, &props).release();
+    return SkSurface::MakeRaster(info).release();
 }
 
 SkSurface* Request::createGPUSurface() {
@@ -190,10 +187,7 @@
     auto srgbColorSpace = SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named);
     SkImageInfo info = SkImageInfo::Make(bounds.width(), bounds.height(), cap.fColorType,
                                          kPremul_SkAlphaType, cap.fSRGB ? srgbColorSpace : nullptr);
-    uint32_t flags = cap.fGammaCorrect ? SkSurfaceProps::kGammaCorrect_Flag : 0;
-    SkSurfaceProps props(flags, SkSurfaceProps::kLegacyFontHost_InitType);
-    SkSurface* surface = SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info, 0,
-                                                     &props).release();
+    SkSurface* surface = SkSurface::MakeRenderTarget(context, SkBudgeted::kNo, info).release();
     return surface;
 }
 
diff --git a/tools/viewer/sk_app/WindowContext.cpp b/tools/viewer/sk_app/WindowContext.cpp
index 5d364bc..458f66a 100755
--- a/tools/viewer/sk_app/WindowContext.cpp
+++ b/tools/viewer/sk_app/WindowContext.cpp
@@ -31,11 +31,6 @@
 
 sk_sp<SkSurface> WindowContext::createSurface(
         GrBackendRenderTargetDesc* rtDesc, int colorBits, bool offscreen, bool forceSRGB) {
-    auto flags = (fSurfaceProps.flags() & ~SkSurfaceProps::kGammaCorrect_Flag) |
-                 (GrPixelConfigIsSRGB(fPixelConfig) || forceSRGB ?
-                  SkSurfaceProps::kGammaCorrect_Flag : 0);
-    SkSurfaceProps props(flags, fSurfaceProps.pixelGeometry());
-
     if (!this->isGpuContext() || colorBits > 24 || offscreen ||
         kRGBA_F16_SkColorType == fDisplayParams.fColorType) {
         // If we're rendering to F16, we need an off-screen surface - the current render
@@ -52,12 +47,12 @@
         );
         if (this->isGpuContext()) {
             return SkSurface::MakeRenderTarget(fContext, SkBudgeted::kNo, info,
-                                               fDisplayParams.fMSAASampleCount, &props);
+                                               fDisplayParams.fMSAASampleCount, &fSurfaceProps);
         } else {
-            return SkSurface::MakeRaster(info, &props);
+            return SkSurface::MakeRaster(info, &fSurfaceProps);
         }
     } else {
-        return SkSurface::MakeFromBackendRenderTarget(fContext, *rtDesc, &props);
+        return SkSurface::MakeFromBackendRenderTarget(fContext, *rtDesc, &fSurfaceProps);
     }
 }