Index: src/gpu/GrClipMaskManager.cpp |
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp |
index c591bf11826babd6fdfe9861994a1a8bc8da9e7b..4e732f10ac3e89e4056bd94c733b55c747bec01e 100644 |
--- a/src/gpu/GrClipMaskManager.cpp |
+++ b/src/gpu/GrClipMaskManager.cpp |
@@ -302,7 +302,7 @@ bool GrClipMaskManager::SetupClipping(GrContext* context, |
&clipFP)) { |
SkIRect scissorSpaceIBounds(clipSpaceIBounds); |
scissorSpaceIBounds.offset(-clip.origin()); |
- if (!SkRect::Make(scissorSpaceIBounds).contains(devBounds)) { |
+ if (!scissorSpaceIBounds.fuzzyContains(devBounds, GrClip::kScissorIgnoreFuzz)) { |
out->makeScissoredFPBased(std::move(clipFP), scissorSpaceIBounds); |
return true; |
} |
@@ -369,7 +369,11 @@ bool GrClipMaskManager::SetupClipping(GrContext* context, |
// use both stencil and scissor test to the bounds for the final draw. |
SkIRect scissorSpaceIBounds(clipSpaceIBounds); |
scissorSpaceIBounds.offset(clipSpaceToStencilSpaceOffset); |
- out->makeScissoredStencil(scissorSpaceIBounds); |
+ if (!scissorSpaceIBounds.fuzzyContains(devBounds, GrClip::kScissorIgnoreFuzz)) { |
+ out->makeScissoredStencil(scissorSpaceIBounds); |
csmartdalton
2016/07/08 21:20:45
Any reason we weren't passing devBounds here?
bsalomon
2016/07/08 22:49:00
We shouldn't be passing devBounds. This is suppose
|
+ } else { |
+ out->makeStencil(true, devBounds); |
+ } |
return true; |
} |