summaryrefslogtreecommitdiffstats
path: root/cc/trees/layer_tree_host_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/trees/layer_tree_host_impl.cc')
-rw-r--r--cc/trees/layer_tree_host_impl.cc36
1 files changed, 3 insertions, 33 deletions
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 60272111..461e1d6 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -762,19 +762,15 @@ bool LayerTreeHostImpl::CalculateRenderPasses(FrameData* frame) {
&append_quads_data);
} else if (it.represents_itself() &&
!it->visible_content_rect().IsEmpty()) {
- bool has_occlusion_from_outside_target_surface;
bool impl_draw_transform_is_unknown = false;
- if (occlusion_tracker.Occluded(
+ bool occluded = occlusion_tracker.Occluded(
it->render_target(),
it->visible_content_rect(),
it->draw_transform(),
impl_draw_transform_is_unknown,
it->is_clipped(),
- it->clip_rect(),
- &has_occlusion_from_outside_target_surface)) {
- append_quads_data.had_occlusion_from_outside_target_surface |=
- has_occlusion_from_outside_target_surface;
- } else if (it->WillDraw(draw_mode, resource_provider_.get())) {
+ it->clip_rect());
+ if (!occluded && it->WillDraw(draw_mode, resource_provider_.get())) {
DCHECK_EQ(active_tree_, it->layer_tree_impl());
frame->will_draw_layers.push_back(*it);
@@ -807,9 +803,6 @@ bool LayerTreeHostImpl::CalculateRenderPasses(FrameData* frame) {
++layers_drawn;
}
- if (append_quads_data.had_occlusion_from_outside_target_surface)
- target_render_pass->has_occlusion_from_outside_target_surface = true;
-
if (append_quads_data.num_missing_tiles) {
rendering_stats_instrumentation_->AddMissingTiles(
append_quads_data.num_missing_tiles);
@@ -860,8 +853,6 @@ bool LayerTreeHostImpl::CalculateRenderPasses(FrameData* frame) {
RemoveRenderPasses(CullRenderPassesWithNoQuads(), frame);
renderer_->DecideRenderPassAllocationsForFrame(frame->render_passes);
- RemoveRenderPasses(CullRenderPassesWithCachedTextures(renderer_.get()),
- frame);
// Any copy requests left in the tree are not going to get serviced, and
// should be aborted.
@@ -959,24 +950,6 @@ static void RemoveRenderPassesRecursive(RenderPass::Id remove_render_pass_id,
}
}
-bool LayerTreeHostImpl::CullRenderPassesWithCachedTextures::
- ShouldRemoveRenderPass(const RenderPassDrawQuad& quad,
- const FrameData& frame) const {
- DCHECK(renderer_);
- bool quad_has_damage = !quad.contents_changed_since_last_frame.IsEmpty();
- bool quad_has_cached_resource =
- renderer_->HaveCachedResourcesForRenderPassId(quad.render_pass_id);
- if (quad_has_damage) {
- TRACE_EVENT0("cc", "CullRenderPassesWithCachedTextures have damage");
- return false;
- } else if (!quad_has_cached_resource) {
- TRACE_EVENT0("cc", "CullRenderPassesWithCachedTextures have no texture");
- return false;
- }
- TRACE_EVENT0("cc", "CullRenderPassesWithCachedTextures dropped!");
- return true;
-}
-
bool LayerTreeHostImpl::CullRenderPassesWithNoQuads::ShouldRemoveRenderPass(
const RenderPassDrawQuad& quad, const FrameData& frame) const {
const RenderPass* render_pass =
@@ -1005,9 +978,6 @@ bool LayerTreeHostImpl::CullRenderPassesWithNoQuads::ShouldRemoveRenderPass(
// Defined for linking tests.
template CC_EXPORT void LayerTreeHostImpl::RemoveRenderPasses<
- LayerTreeHostImpl::CullRenderPassesWithCachedTextures>(
- CullRenderPassesWithCachedTextures culler, FrameData* frame);
-template CC_EXPORT void LayerTreeHostImpl::RemoveRenderPasses<
LayerTreeHostImpl::CullRenderPassesWithNoQuads>(
CullRenderPassesWithNoQuads culler, FrameData*);