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)) {