| Index: cc/trees/occlusion_tracker.cc
|
| diff --git a/cc/trees/occlusion_tracker.cc b/cc/trees/occlusion_tracker.cc
|
| index 5a27d7b1853f8acafc7e5c9b588e88a388679577..c5024047c9ad33a4c60d7c2ad7a2c44659bd129b 100644
|
| --- a/cc/trees/occlusion_tracker.cc
|
| +++ b/cc/trees/occlusion_tracker.cc
|
| @@ -233,9 +233,9 @@ void OcclusionTrackerBase<LayerType, RenderSurfaceType>::FinishedRenderTarget(
|
|
|
| // 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 (finished_target->mask_layer() ||
|
| - !SurfaceOpacityKnown(surface) ||
|
| + if (finished_target->mask_layer() || !SurfaceOpacityKnown(surface) ||
|
| surface->draw_opacity() < 1 ||
|
| + !finished_target->uses_default_blend_mode() ||
|
| target_is_only_for_copy_request ||
|
| finished_target->filters().HasFilterThatAffectsOpacity()) {
|
| stack_.back().occlusion_from_outside_target.Clear();
|
| @@ -414,6 +414,9 @@ void OcclusionTrackerBase<LayerType, RenderSurfaceType>::
|
| if (!LayerOpacityKnown(layer) || layer->draw_opacity() < 1)
|
| return;
|
|
|
| + if (!layer->uses_default_blend_mode())
|
| + return;
|
| +
|
| if (LayerIsInUnsorted3dRenderingContext(layer))
|
| return;
|
|
|
|
|