Convert 565 and 4444 bitmaps to 8888 for Mac Metal.

Fixes a large number of GMs.

Bug: skia:8243
Change-Id: I8053ac218d894205d36a3a3cdc8b7a7ea2e27e71
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/208320
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/src/gpu/GrProxyProvider.cpp b/src/gpu/GrProxyProvider.cpp
index 1b30cc6..dad4d2f 100644
--- a/src/gpu/GrProxyProvider.cpp
+++ b/src/gpu/GrProxyProvider.cpp
@@ -217,11 +217,7 @@
         return nullptr;
     }
 
-    GrBackendFormat format = this->caps()->getBackendFormatFromColorType(info.colorType());
-    if (!format.isValid()) {
-        return nullptr;
-    }
-
+    SkColorType ct = info.colorType();
     if (!this->caps()->isConfigTexturable(config)) {
         SkBitmap copy8888;
         if (!copy8888.tryAllocPixels(info.makeColorType(kRGBA_8888_SkColorType)) ||
@@ -231,6 +227,12 @@
         copy8888.setImmutable();
         srcImage = SkMakeImageFromRasterBitmap(copy8888, kNever_SkCopyPixelsMode);
         config = kRGBA_8888_GrPixelConfig;
+        ct = kRGBA_8888_SkColorType;
+    }
+
+    GrBackendFormat format = this->caps()->getBackendFormatFromColorType(ct);
+    if (!format.isValid()) {
+        return nullptr;
     }
 
     if (SkToBool(descFlags & kRenderTarget_GrSurfaceFlag)) {