Add gpu implementation of OverdrawXfermode
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1607253002

Committed: https://skia.googlesource.com/skia/+/8bc3cf88bbf5e5d5724356f076931bb70a6117ba

Review URL: https://codereview.chromium.org/1607253002
diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
index 94d3dd6..c443e1e 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
@@ -559,17 +559,8 @@
         GrGLSLBlend::AppendMode(fragBuilder, srcColor, dstColor, outColor, xp.getXfermode());
 
         // Apply coverage.
-        if (xp.dstReadUsesMixedSamples()) {
-            if (srcCoverage) {
-                fragBuilder->codeAppendf("%s *= %s;", outColor, srcCoverage);
-                fragBuilder->codeAppendf("%s = %s;", outColorSecondary, srcCoverage);
-            } else {
-                fragBuilder->codeAppendf("%s = vec4(1.0);", outColorSecondary);
-            }
-        } else if (srcCoverage) {
-            fragBuilder->codeAppendf("%s = %s * %s + (vec4(1.0) - %s) * %s;",
-                                     outColor, srcCoverage, outColor, srcCoverage, dstColor);
-        }
+        INHERITED::DefaultCoverageModulation(fragBuilder, srcCoverage, dstColor, outColor,
+                                             outColorSecondary, xp);
     }
 
     void onSetData(const GrGLSLProgramDataManager&, const GrXferProcessor&) override {}