GPU clear values: just 4 floats

We previously represented these as SkPMColor4f. However, upcoming
changes will add limited support for clearing/drawing to unpremul
dst. Just store the clear values as four floats without assigned
interpretation.

Also, noticed a bug by code inspection: we weren't accounting for
write view swizzle in GrRTC. Fixed and added gm to test.

Bug: skia:11019
Change-Id: I1bce1f6c97a156c0377ebad1b166eb641362b67a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/340098
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/GrOpsTask.cpp b/src/gpu/GrOpsTask.cpp
index 9f95b37..6316a14 100644
--- a/src/gpu/GrOpsTask.cpp
+++ b/src/gpu/GrOpsTask.cpp
@@ -509,7 +509,7 @@
                                            GrSurfaceOrigin origin,
                                            const SkIRect& bounds,
                                            GrLoadOp colorLoadOp,
-                                           const SkPMColor4f& loadClearColor,
+                                           const std::array<float, 4>& loadClearColor,
                                            GrLoadOp stencilLoadOp,
                                            GrStoreOp stencilStoreOp,
                                            const SkTArray<GrSurfaceProxy*, true>& sampledProxies,
@@ -653,7 +653,7 @@
     return true;
 }
 
-void GrOpsTask::setColorLoadOp(GrLoadOp op, const SkPMColor4f& color) {
+void GrOpsTask::setColorLoadOp(GrLoadOp op, std::array<float, 4> color) {
     fColorLoadOp = op;
     fLoadClearColor = color;
     if (GrLoadOp::kClear == fColorLoadOp) {
@@ -701,7 +701,11 @@
             SkDebugf("kLoad\n");
             break;
         case GrLoadOp::kClear:
-            SkDebugf("kClear (0x%x)\n", fLoadClearColor.toBytes_RGBA());
+            SkDebugf("kClear {%g, %g, %g, %g}\n",
+                     fLoadClearColor[0],
+                     fLoadClearColor[1],
+                     fLoadClearColor[2],
+                     fLoadClearColor[3]);
             break;
         case GrLoadOp::kDiscard:
             SkDebugf("kDiscard\n");