Index: cc/occlusion_tracker.cc |
diff --git a/cc/occlusion_tracker.cc b/cc/occlusion_tracker.cc |
index 083e366ec3718a4a90eb37bb9b6945051a3971e3..a2ff64be6b8536b460befe4af605e9a33a782fb9 100644 |
--- a/cc/occlusion_tracker.cc |
+++ b/cc/occlusion_tracker.cc |
@@ -100,7 +100,9 @@ void CCOcclusionTrackerBase<LayerType, RenderSurfaceType>::finishedRenderTarget( |
RenderSurfaceType* surface = finishedTarget->renderSurface(); |
// If the occlusion within the surface can not be applied to things outside of the surface's subtree, then clear the occlusion here so it won't be used. |
- if (finishedTarget->maskLayer() || !surfaceOpacityKnown(surface) || surface->drawOpacity() < 1 || finishedTarget->filters().hasFilterThatAffectsOpacity()) { |
+ // TODO(senorblanco): Make this smarter for SkImageFilter case: once |
+ // SkImageFilters can report affectsOpacity(), call that. |
+ if (finishedTarget->maskLayer() || !surfaceOpacityKnown(surface) || surface->drawOpacity() < 1 || finishedTarget->filters().hasFilterThatAffectsOpacity() || finishedTarget->filter()) { |
m_stack.last().occlusionInScreen = Region(); |
m_stack.last().occlusionInTarget = Region(); |
} else { |