| 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 a465c3217e2155e9f070d671e5f873ce0d9d073b..abf7619700592df0c56b44b5ef80210ee2250d63 100644
|
| --- a/cc/trees/layer_tree_host_impl.cc
|
| +++ b/cc/trees/layer_tree_host_impl.cc
|
| @@ -925,23 +925,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 {
|
| @@ -1376,6 +1382,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) {
|
|
|