Disable layer hoisting for non-8888 canvases

This just stops the bleeding. A real fix would propagate the canvas' backing type down to the layer hoister.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1957433002

Review-Url: https://codereview.chromium.org/1957433002
diff --git a/src/core/SkMultiPictureDraw.cpp b/src/core/SkMultiPictureDraw.cpp
index 26e446d..40d93b1 100644
--- a/src/core/SkMultiPictureDraw.cpp
+++ b/src/core/SkMultiPictureDraw.cpp
@@ -124,7 +124,9 @@
         // we only expect 1 context for all the canvases
         SkASSERT(data.fCanvas->getGrContext() == context);
 
-        if (!data.fPaint) {
+        if (!data.fPaint && 
+            (kRGBA_8888_SkColorType == data.fCanvas->imageInfo().colorType() ||
+             kBGRA_8888_SkColorType == data.fCanvas->imageInfo().colorType())) {
             SkRect clipBounds;
             if (!data.fCanvas->getClipBounds(&clipBounds)) {
                 continue;
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 54ed413..6992a45 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1784,7 +1784,9 @@
     ASSERT_SINGLE_OWNER
 #ifndef SK_IGNORE_GPU_LAYER_HOISTING
     // todo: should handle this natively
-    if (paint) {
+    if (paint ||
+        (kRGBA_8888_SkColorType != mainCanvas->imageInfo().colorType() &&
+         kBGRA_8888_SkColorType != mainCanvas->imageInfo().colorType())) {
         return false;
     }