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 6f5011f14066870e926c1747441a414b98259824..3a8ea2cd740ad47674c05ec8a405243975f591cc 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 |
@@ -1235,7 +1230,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( |
@@ -1243,14 +1238,7 @@ 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); |
- } |
+ tile_task_worker_pool_->ReleaseFreeMemory(); |
DidModifyTilePriorities(); |
} |
@@ -1465,7 +1453,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 |
@@ -2079,8 +2067,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(), |
@@ -2091,8 +2078,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 |
@@ -2146,14 +2132,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); |
@@ -2163,9 +2141,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; |
} |
@@ -2208,7 +2185,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; |
} |
@@ -2241,8 +2217,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(); |