Don't abort analytic clipping if using MSAA until elements are examined

TBR=joshualitt@google.com

Review URL: https://codereview.chromium.org/1399223005
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp
index 4b464bb..e0a85d1 100644
--- a/src/gpu/GrClipMaskManager.cpp
+++ b/src/gpu/GrClipMaskManager.cpp
@@ -109,6 +109,7 @@
 }
 
 bool GrClipMaskManager::getAnalyticClipProcessor(const GrReducedClip::ElementList& elements,
+                                                 bool abortIfAA,
                                                  SkVector& clipToRTOffset,
                                                  const SkRect* drawBounds,
                                                  const GrFragmentProcessor** resultFP) {
@@ -151,16 +152,20 @@
         if (failed) {
             break;
         }
-
         if (!skip) {
             GrPrimitiveEdgeType edgeType;
             if (iter.get()->isAA()) {
+                if (abortIfAA) {
+                    failed = true;
+                    break;
+                }
                 edgeType =
                     invert ? kInverseFillAA_GrProcessorEdgeType : kFillAA_GrProcessorEdgeType;
             } else {
                 edgeType =
                     invert ? kInverseFillBW_GrProcessorEdgeType : kFillBW_GrProcessorEdgeType;
             }
+
             switch (iter.get()->getType()) {
                 case SkClipStack::Element::kPath_Type:
                     fps[fpCnt] = GrConvexPolyEffect::Create(edgeType, iter.get()->getPath(),
@@ -282,8 +287,9 @@
         bool disallowAnalyticAA = pipelineBuilder.getRenderTarget()->isUnifiedMultisampled();
         const GrFragmentProcessor* clipFP = nullptr;
         if (elements.isEmpty() ||
-            (requiresAA && !disallowAnalyticAA &&
-             this->getAnalyticClipProcessor(elements, clipToRTOffset, devBounds, &clipFP))) {
+            (requiresAA &&
+             this->getAnalyticClipProcessor(elements, disallowAnalyticAA, clipToRTOffset, devBounds,
+                                            &clipFP))) {
             SkIRect scissorSpaceIBounds(clipSpaceIBounds);
             scissorSpaceIBounds.offset(-clip.origin());
             if (nullptr == devBounds ||