Emit dumpInfo string when processor opt test fails

Add missing implementation for ComposeTwo, and provide more information in
ComposeOne.

BUG=skia:

Change-Id: Id2406bcb51a6419a763ff9e6e572f5c6c70c4c76
Reviewed-on: https://skia-review.googlesource.com/9699
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/gpu/effects/GrXfermodeFragmentProcessor.cpp b/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
index 923c82f..9671919 100644
--- a/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
+++ b/src/gpu/effects/GrXfermodeFragmentProcessor.cpp
@@ -40,6 +40,18 @@
 
     const char* name() const override { return "ComposeTwo"; }
 
+    SkString dumpInfo() const override {
+        SkString str;
+
+        str.appendf("Mode: %s", SkBlendMode_Name(fMode));
+
+        for (int i = 0; i < this->numChildProcessors(); ++i) {
+            str.appendf(" [%s %s]",
+                        this->childProcessor(i).name(), this->childProcessor(i).dumpInfo().c_str());
+        }
+        return str;
+    }
+
     void onGetGLSLProcessorKey(const GrShaderCaps& caps, GrProcessorKeyBuilder* b) const override {
         b->add32((int)fMode);
     }
@@ -248,8 +260,12 @@
     SkString dumpInfo() const override {
         SkString str;
 
+        str.appendf("Mode: %s, Child: %s",
+                    SkBlendMode_Name(fMode), kDst_Child == fChild ? "Dst" : "Src");
+
         for (int i = 0; i < this->numChildProcessors(); ++i) {
-            str.append(this->childProcessor(i).dumpInfo());
+            str.appendf(" [%s %s]",
+                        this->childProcessor(i).name(), this->childProcessor(i).dumpInfo().c_str());
         }
         return str;
     }