| Index: cc/trees/occlusion_tracker.cc
|
| diff --git a/cc/trees/occlusion_tracker.cc b/cc/trees/occlusion_tracker.cc
|
| index 523b01f830f4a52408dbfb401a4f82ccbdaa4197..afa11dcf7456a09708f2353db603d5eaa9fe76c1 100644
|
| --- a/cc/trees/occlusion_tracker.cc
|
| +++ b/cc/trees/occlusion_tracker.cc
|
| @@ -190,15 +190,17 @@ void OcclusionTracker::FinishedRenderTarget(
|
|
|
| // Readbacks always happen on render targets so we only need to check
|
| // for readbacks here.
|
| - bool target_is_only_for_copy_request =
|
| - finished_target_surface->HasCopyRequest() && is_hidden;
|
| + bool target_is_only_for_copy_request_or_force_render_surface =
|
| + (finished_target_surface->HasCopyRequest() ||
|
| + finished_target_surface->ForceRenderSurface()) &&
|
| + is_hidden;
|
|
|
| // 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_surface->HasMask() ||
|
| finished_target_surface->draw_opacity() < 1 ||
|
| !finished_target_surface->UsesDefaultBlendMode() ||
|
| - target_is_only_for_copy_request ||
|
| + target_is_only_for_copy_request_or_force_render_surface ||
|
| finished_target_surface->Filters().HasFilterThatAffectsOpacity()) {
|
| stack_.back().occlusion_from_outside_target.Clear();
|
| stack_.back().occlusion_from_inside_target.Clear();
|
|
|