Don't use color type derived from GrPixelConfig to determine proxy texture swizzle.

Change-Id: Ib19e378d7dd8243cbbee68e97bcb3b6159943500
Bug: skia:6718
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/233898
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/ccpr/GrCCAtlas.cpp b/src/gpu/ccpr/GrCCAtlas.cpp
index 89eff1a..aff4644 100644
--- a/src/gpu/ccpr/GrCCAtlas.cpp
+++ b/src/gpu/ccpr/GrCCAtlas.cpp
@@ -55,21 +55,19 @@
     GrPixelConfig pixelConfig;
     int sampleCount;
 
-    GrBackendFormat format;
+    auto colorType = CoverageTypeToColorType(coverageType);
+    GrBackendFormat format = caps.getDefaultBackendFormat(colorType, GrRenderable::kYes);
     switch (coverageType) {
         case CoverageType::kFP16_CoverageCount:
-            format = caps.getDefaultBackendFormat(GrColorType::kAlpha_F16, GrRenderable::kYes);
             pixelConfig = kAlpha_half_GrPixelConfig;
             sampleCount = 1;
             break;
         case CoverageType::kA8_Multisample:
-            format = caps.getDefaultBackendFormat(GrColorType::kAlpha_8, GrRenderable::kYes);
             SkASSERT(caps.internalMultisampleCount(format) > 1);
             pixelConfig = kAlpha_8_GrPixelConfig;
             sampleCount = (caps.mixedSamplesSupport()) ? 1 : caps.internalMultisampleCount(format);
             break;
         case CoverageType::kA8_LiteralCoverage:
-            format = caps.getDefaultBackendFormat(GrColorType::kAlpha_8, GrRenderable::kYes);
             pixelConfig = kAlpha_8_GrPixelConfig;
             sampleCount = 1;
             break;
diff --git a/src/gpu/ccpr/GrCCAtlas.h b/src/gpu/ccpr/GrCCAtlas.h
index 125f41a..724a017 100644
--- a/src/gpu/ccpr/GrCCAtlas.h
+++ b/src/gpu/ccpr/GrCCAtlas.h
@@ -53,6 +53,17 @@
         kA8_LiteralCoverage
     };
 
+    static constexpr GrColorType CoverageTypeToColorType(CoverageType coverageType) {
+        switch (coverageType) {
+            case CoverageType::kFP16_CoverageCount:
+                return GrColorType::kAlpha_F16;
+            case CoverageType::kA8_Multisample:
+            case CoverageType::kA8_LiteralCoverage:
+                return GrColorType::kAlpha_8;
+        }
+        SkUNREACHABLE;
+    }
+
     using LazyInstantiateAtlasCallback = std::function<sk_sp<GrTexture>(
             GrResourceProvider*, GrPixelConfig, const GrBackendFormat&, int sampleCount)>;
 
diff --git a/src/gpu/ccpr/GrCCPathCache.cpp b/src/gpu/ccpr/GrCCPathCache.cpp
index 30400cb..5c5237d 100644
--- a/src/gpu/ccpr/GrCCPathCache.cpp
+++ b/src/gpu/ccpr/GrCCPathCache.cpp
@@ -229,8 +229,9 @@
             SkASSERT(SkToBool(entry->fCachedAtlas->peekOnFlushRefCnt()) ==
                      SkToBool(entry->fCachedAtlas->getOnFlushProxy()));
             if (!entry->fCachedAtlas->getOnFlushProxy()) {
+                auto ct = GrCCAtlas::CoverageTypeToColorType(entry->fCachedAtlas->coverageType());
                 if (sk_sp<GrTextureProxy> onFlushProxy = onFlushRP->findOrCreateProxyByUniqueKey(
-                        entry->fCachedAtlas->textureKey(), GrCCAtlas::kTextureOrigin)) {
+                            entry->fCachedAtlas->textureKey(), ct, GrCCAtlas::kTextureOrigin)) {
                     onFlushProxy->priv().setIgnoredByResourceAllocator();
                     entry->fCachedAtlas->setOnFlushProxy(std::move(onFlushProxy));
                 }