Remove style application from GrPathRenderer subclasses

Now that GrPathRenderer is using GrShape it is possible to get a key for a path that was computed by applying style to an original path.

This improves path renderer subclass selection, particularly when a post-styled path happens to work with a simpler path renderer (e.g. it is convex). Previously a more expensive path renderer may have applied the style and rendered it (e.g. the distance field PR)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2064753003

Review-Url: https://codereview.chromium.org/2064753003
diff --git a/src/gpu/batches/GrStencilAndCoverPathRenderer.cpp b/src/gpu/batches/GrStencilAndCoverPathRenderer.cpp
index 0995310..4139629 100644
--- a/src/gpu/batches/GrStencilAndCoverPathRenderer.cpp
+++ b/src/gpu/batches/GrStencilAndCoverPathRenderer.cpp
@@ -33,8 +33,10 @@
 }
 
 bool GrStencilAndCoverPathRenderer::onCanDrawPath(const CanDrawPathArgs& args) const {
-    // GrPath doesn't support hairline paths.
-    if (args.fShape->style().couldBeHairline()) {
+    // GrPath doesn't support hairline paths. An arbitrary path effect could produce a hairline
+    // path.
+    if (args.fShape->style().strokeRec().isHairlineStyle() ||
+        args.fShape->style().hasNonDashPathEffect()) {
         return false;
     }
     if (args.fHasUserStencilSettings) {