| Index: src/gpu/GrClipMaskManager.cpp | 
| diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp | 
| index c591bf11826babd6fdfe9861994a1a8bc8da9e7b..13dafea0e4dfb43e766fd6bdf0b95697a46c4a32 100644 | 
| --- a/src/gpu/GrClipMaskManager.cpp | 
| +++ b/src/gpu/GrClipMaskManager.cpp | 
| @@ -115,7 +115,7 @@ bool GrClipMaskManager::PathNeedsSWRenderer(GrContext* context, | 
| * entire clip should be rendered in SW and then uploaded en masse to the gpu. | 
| */ | 
| bool GrClipMaskManager::UseSWOnlyPath(GrContext* context, | 
| -                                      const GrPipelineBuilder& pipelineBuilder, | 
| +                                      bool hasUserStencilSettings, | 
| const GrDrawContext* drawContext, | 
| const SkVector& clipToMaskOffset, | 
| const GrReducedClip::ElementList& elements) { | 
| @@ -135,7 +135,7 @@ bool GrClipMaskManager::UseSWOnlyPath(GrContext* context, | 
| bool needsStencil = invert || | 
| SkRegion::kIntersect_Op == op || SkRegion::kReverseDifference_Op == op; | 
|  | 
| -        if (PathNeedsSWRenderer(context, pipelineBuilder.hasUserStencilSettings(), | 
| +        if (PathNeedsSWRenderer(context, hasUserStencilSettings, | 
| drawContext, translate, element, nullptr, needsStencil)) { | 
| return true; | 
| } | 
| @@ -226,10 +226,11 @@ static bool get_analytic_clip_processor(const GrReducedClip::ElementList& elemen | 
| // sort out what kind of clip mask needs to be created: alpha, stencil, | 
| // scissor, or entirely software | 
| bool GrClipMaskManager::SetupClipping(GrContext* context, | 
| -                                      const GrPipelineBuilder& pipelineBuilder, | 
| GrDrawContext* drawContext, | 
| const GrClipStackClip& clip, | 
| const SkRect* origDevBounds, | 
| +                                      bool useHWAA, | 
| +                                      bool hasUserStencilSettings, | 
| GrAppliedClip* out) { | 
| if (!clip.clipStack() || clip.clipStack()->isWideOpen()) { | 
| return true; | 
| @@ -293,8 +294,7 @@ bool GrClipMaskManager::SetupClipping(GrContext* context, | 
| // With a single color sample, any coverage info is lost from color once it hits the | 
| // color buffer anyway, so we may as well use coverage AA if nothing else in the pipe | 
| // is multisampled. | 
| -            disallowAnalyticAA = pipelineBuilder.isHWAntialias() || | 
| -                                 pipelineBuilder.hasUserStencilSettings(); | 
| +            disallowAnalyticAA = useHWAA || hasUserStencilSettings; | 
| } | 
| sk_sp<GrFragmentProcessor> clipFP; | 
| if (requiresAA && | 
| @@ -321,7 +321,7 @@ bool GrClipMaskManager::SetupClipping(GrContext* context, | 
| SkIntToScalar(-clipSpaceIBounds.fTop) | 
| }; | 
|  | 
| -        if (UseSWOnlyPath(context, pipelineBuilder, drawContext, | 
| +        if (UseSWOnlyPath(context, hasUserStencilSettings, drawContext, | 
| clipToMaskOffset, elements)) { | 
| // The clip geometry is complex enough that it will be more efficient to create it | 
| // entirely in software | 
|  |