Index: src/gpu/GrDrawContext.cpp |
diff --git a/src/gpu/GrDrawContext.cpp b/src/gpu/GrDrawContext.cpp |
index d64273a8288bcb776d22a44190c3999258e97e21..a5ec95409bcf6a1437b1fe2b239243e1ec8e1538 100644 |
--- a/src/gpu/GrDrawContext.cpp |
+++ b/src/gpu/GrDrawContext.cpp |
@@ -680,21 +680,22 @@ void GrDrawContext::internalDrawPath(GrPipelineBuilder* pipelineBuilder, |
// thing WRT to the blend then we'll need some query on the PR. |
bool useCoverageAA = useAA && |
!pipelineBuilder->getRenderTarget()->isUnifiedMultisampled(); |
- |
+ bool isStencilDisabled = pipelineBuilder->getStencil().isDisabled(); |
+ bool isStencilBufferMSAA = pipelineBuilder->getRenderTarget()->isStencilBufferMultisampled(); |
GrPathRendererChain::DrawType type = |
- useCoverageAA ? GrPathRendererChain::kColorAntiAlias_DrawType : |
- GrPathRendererChain::kColor_DrawType; |
+ useCoverageAA ? GrPathRendererChain::kColorAntiAlias_DrawType |
+ : GrPathRendererChain::kColor_DrawType; |
const SkPath* pathPtr = &path; |
SkTLazy<SkPath> tmpPath; |
const GrStrokeInfo* strokeInfoPtr = &strokeInfo; |
// Try a 1st time without stroking the path and without allowing the SW renderer |
- GrPathRenderer* pr = fDrawingManager->getContext()->getPathRenderer(*pipelineBuilder, |
- viewMatrix, *pathPtr, |
+ GrPathRenderer* pr = fDrawingManager->getContext()->getPathRenderer(viewMatrix, *pathPtr, |
*strokeInfoPtr, false, |
- type); |
+ type, isStencilDisabled, |
+ isStencilBufferMSAA); |
GrStrokeInfo dashlessStrokeInfo(strokeInfo, false); |
if (nullptr == pr && strokeInfo.isDashed()) { |
@@ -707,9 +708,9 @@ void GrDrawContext::internalDrawPath(GrPipelineBuilder* pipelineBuilder, |
return; |
} |
strokeInfoPtr = &dashlessStrokeInfo; |
- pr = fDrawingManager->getContext()->getPathRenderer(*pipelineBuilder, viewMatrix, |
- *pathPtr, *strokeInfoPtr, |
- false, type); |
+ pr = fDrawingManager->getContext()->getPathRenderer(viewMatrix, *pathPtr, *strokeInfoPtr, |
+ false, type, isStencilDisabled, |
+ isStencilBufferMSAA); |
} |
if (nullptr == pr) { |
@@ -732,9 +733,9 @@ void GrDrawContext::internalDrawPath(GrPipelineBuilder* pipelineBuilder, |
} |
// This time, allow SW renderer |
- pr = fDrawingManager->getContext()->getPathRenderer(*pipelineBuilder, viewMatrix, |
- *pathPtr, *strokeInfoPtr, |
- true, type); |
+ pr = fDrawingManager->getContext()->getPathRenderer(viewMatrix, *pathPtr, *strokeInfoPtr, |
+ true, type, isStencilDisabled, |
+ isStencilBufferMSAA); |
} |
if (nullptr == pr) { |