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 26c14925bf1d19c1c4f6e64d88e540e346f1f5ed..cb5cb997c0d05a36e73e39f16dc6d38940d848e1 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -152,11 +152,6 @@ size_t GetMaxTransferBufferUsageBytes( |
max_transfer_buffer_usage_bytes); |
} |
-size_t GetMaxStagingResourceCount() { |
- // Upper bound for number of staging resource to allow. |
- return 32; |
-} |
- |
size_t GetDefaultMemoryAllocationLimit() { |
// TODO(ccameron): (http://crbug.com/137094) This 64MB default is a straggler |
// from the old texture manager and is just to give us a default memory |
@@ -1234,7 +1229,7 @@ void LayerTreeHostImpl::UpdateTileManagerMemoryPolicy( |
100); |
DCHECK(resource_pool_); |
- resource_pool_->CheckBusyResources(false); |
+ resource_pool_->CheckBusyResources(); |
// Soft limit is used for resource pool such that memory returns to soft |
// limit after going over. |
resource_pool_->SetResourceUsageLimits( |
@@ -1242,15 +1237,6 @@ void LayerTreeHostImpl::UpdateTileManagerMemoryPolicy( |
unused_memory_limit_in_bytes, |
global_tile_state_.num_resources_limit); |
- // Release all staging resources when invisible. |
- if (staging_resource_pool_) { |
- staging_resource_pool_->CheckBusyResources(false); |
- staging_resource_pool_->SetResourceUsageLimits( |
- std::numeric_limits<size_t>::max(), |
- std::numeric_limits<size_t>::max(), |
- visible_ ? GetMaxStagingResourceCount() : 0); |
- } |
- |
DidModifyTilePriorities(); |
} |
@@ -1309,9 +1295,11 @@ void LayerTreeHostImpl::NotifyReadyToDraw() { |
void LayerTreeHostImpl::NotifyAllTileTasksCompleted() { |
// The tile tasks started by the most recent call to PrepareTiles have |
// completed. Now is a good time to free resources if necessary. |
- if (output_surface_ && global_tile_state_.hard_memory_limit_in_bytes == 0) { |
- output_surface_->SetWorkerContextShouldAggressivelyFreeResources( |
- true /* aggressively_free_resources */); |
+ if (global_tile_state_.hard_memory_limit_in_bytes == 0) { |
+ if (output_surface_) { |
+ output_surface_->SetWorkerContextShouldAggressivelyFreeResources( |
+ true /* aggressively_free_resources */); |
+ } |
} |
} |
@@ -1464,7 +1452,7 @@ void LayerTreeHostImpl::ReclaimResources(const CompositorFrameAck* ack) { |
// In OOM, we now might be able to release more resources that were held |
// because they were exported. |
if (resource_pool_) { |
- resource_pool_->CheckBusyResources(false); |
+ resource_pool_->CheckBusyResources(); |
resource_pool_->ReduceResourceUsage(); |
} |
// If we're not visible, we likely released resources, so we want to |
@@ -2076,8 +2064,7 @@ void LayerTreeHostImpl::CreateAndSetRenderer() { |
} |
void LayerTreeHostImpl::CreateTileManagerResources() { |
- CreateResourceAndTileTaskWorkerPool(&tile_task_worker_pool_, &resource_pool_, |
- &staging_resource_pool_); |
+ CreateResourceAndTileTaskWorkerPool(&tile_task_worker_pool_, &resource_pool_); |
// TODO(vmpstr): Initialize tile task limit at ctor time. |
tile_manager_->SetResources( |
resource_pool_.get(), tile_task_worker_pool_->AsTileTaskRunner(), |
@@ -2088,8 +2075,7 @@ void LayerTreeHostImpl::CreateTileManagerResources() { |
void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
scoped_ptr<TileTaskWorkerPool>* tile_task_worker_pool, |
- scoped_ptr<ResourcePool>* resource_pool, |
- scoped_ptr<ResourcePool>* staging_resource_pool) { |
+ scoped_ptr<ResourcePool>* resource_pool) { |
DCHECK(GetTaskRunner()); |
// Pass the single-threaded synchronous task graph runner to the worker pool |
@@ -2143,14 +2129,6 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
} |
if (settings_.use_one_copy) { |
- // Synchronous single-threaded mode depends on tiles being ready to |
- // draw when raster is complete. Therefore, it must use one of zero |
- // copy, software raster, or GPU raster. |
- DCHECK(!is_synchronous_single_threaded_); |
- |
- // We need to create a staging resource pool when using copy rasterizer. |
- *staging_resource_pool = |
- ResourcePool::Create(resource_provider_.get(), image_target); |
*resource_pool = |
ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
@@ -2160,9 +2138,8 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
*tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
GetTaskRunner(), task_graph_runner, context_provider, |
- resource_provider_.get(), staging_resource_pool_.get(), |
- max_copy_texture_chromium_size, |
- settings_.use_persistent_map_for_gpu_memory_buffers); |
+ resource_provider_.get(), max_copy_texture_chromium_size, |
+ settings_.use_persistent_map_for_gpu_memory_buffers, image_target); |
return; |
} |
@@ -2205,7 +2182,6 @@ void LayerTreeHostImpl::PostFrameTimingEvents( |
void LayerTreeHostImpl::CleanUpTileManager() { |
tile_manager_->FinishTasksAndCleanUp(); |
resource_pool_ = nullptr; |
- staging_resource_pool_ = nullptr; |
tile_task_worker_pool_ = nullptr; |
single_thread_synchronous_task_graph_runner_ = nullptr; |
} |
@@ -2238,8 +2214,7 @@ bool LayerTreeHostImpl::InitializeRenderer( |
proxy_->blocking_main_thread_task_runner(), |
settings_.renderer_settings.highp_threshold_min, |
settings_.renderer_settings.use_rgba_4444_textures, |
- settings_.renderer_settings.texture_id_allocation_chunk_size, |
- settings_.use_persistent_map_for_gpu_memory_buffers); |
+ settings_.renderer_settings.texture_id_allocation_chunk_size); |
CreateAndSetRenderer(); |