Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1718)

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 14061028: cc: Set tile manager memory policy in initializeRenderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove DCHECK Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index a96608952e5dde5824227e42ee3184b2f741a01e..292d865bb2df9f65f7220c6f49ba6aaa28ee89db 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -929,23 +929,29 @@ void LayerTreeHostImpl::EnforceManagedMemoryPolicy(
}
client_->SendManagedMemoryStats();
- if (tile_manager_) {
- GlobalStateThatImpactsTilePriority new_state(tile_manager_->GlobalState());
- new_state.memory_limit_in_bytes = visible_ ?
- policy.bytes_limit_when_visible :
- policy.bytes_limit_when_not_visible;
- // TODO(reveman): We should avoid keeping around unused resources if
- // possible. crbug.com/224475
- new_state.unused_memory_limit_in_bytes = static_cast<size_t>(
- (static_cast<int64>(new_state.memory_limit_in_bytes) *
- settings_.max_unused_resource_memory_percentage) / 100);
- new_state.memory_limit_policy =
- ManagedMemoryPolicy::PriorityCutoffToTileMemoryLimitPolicy(
- visible_ ?
- policy.priority_cutoff_when_visible :
- policy.priority_cutoff_when_not_visible);
- tile_manager_->SetGlobalState(new_state);
- }
+ UpdateTileManagerMemoryPolicy(policy);
+}
+
+void LayerTreeHostImpl::UpdateTileManagerMemoryPolicy(
+ const ManagedMemoryPolicy& policy) {
+ if (!tile_manager_)
+ return;
+
+ GlobalStateThatImpactsTilePriority new_state(tile_manager_->GlobalState());
+ new_state.memory_limit_in_bytes = visible_ ?
+ policy.bytes_limit_when_visible :
+ policy.bytes_limit_when_not_visible;
+ // TODO(reveman): We should avoid keeping around unused resources if
+ // possible. crbug.com/224475
+ new_state.unused_memory_limit_in_bytes = static_cast<size_t>(
+ (static_cast<int64>(new_state.memory_limit_in_bytes) *
+ settings_.max_unused_resource_memory_percentage) / 100);
+ new_state.memory_limit_policy =
+ ManagedMemoryPolicy::PriorityCutoffToTileMemoryLimitPolicy(
+ visible_ ?
+ policy.priority_cutoff_when_visible :
+ policy.priority_cutoff_when_not_visible);
+ tile_manager_->SetGlobalState(new_state);
}
bool LayerTreeHostImpl::HasImplThread() const {
@@ -1379,6 +1385,7 @@ bool LayerTreeHostImpl::InitializeRenderer(
settings_.use_color_estimator,
settings_.prediction_benchmarking,
rendering_stats_instrumentation_));
+ UpdateTileManagerMemoryPolicy(managed_memory_policy_);
}
if (output_surface->capabilities().has_parent_compositor) {

Powered by Google App Engine
This is Rietveld 408576698