summaryrefslogtreecommitdiffstats
path: root/cc/trees/layer_tree_host_impl.cc
diff options
context:
space:
mode:
authoralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 05:07:15 +0000
committeralokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-01 05:07:15 +0000
commitfbc293322412d2a41edd14dae1ae5cc6135f62ef (patch)
tree5bf315796ac3bec1931b41dc2b9eb55f75bdba9d /cc/trees/layer_tree_host_impl.cc
parentbaed42c24524270f2927f9f2b1f78645a2a31afb (diff)
downloadchromium_src-fbc293322412d2a41edd14dae1ae5cc6135f62ef.zip
chromium_src-fbc293322412d2a41edd14dae1ae5cc6135f62ef.tar.gz
chromium_src-fbc293322412d2a41edd14dae1ae5cc6135f62ef.tar.bz2
cc: Delete RenderSurface caching.
RenderSurface caching has been disabled for some time and getting in the way of optimizing OcclusionTracker. The proposed optimization cannot distinguish between inside and outside occlusion, which is needed by surface caching. The proposed optimization for OcclusionTracker is here: https://codereview.chromium.org/23708021/ BUG=276725 Review URL: https://codereview.chromium.org/23792012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226146 0039d316-1c4b-4281-b951-d872f2087c98
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*);