Index: cc/tiles/tile_task_manager.cc |
diff --git a/cc/tiles/tile_task_manager.cc b/cc/tiles/tile_task_manager.cc |
index b57b0572d1af978d4b265581b5473f228f351f6d..aa6466ff35de1b30e8348e52564d905c9a00c901 100644 |
--- a/cc/tiles/tile_task_manager.cc |
+++ b/cc/tiles/tile_task_manager.cc |
@@ -15,19 +15,25 @@ |
// static |
std::unique_ptr<TileTaskManagerImpl> TileTaskManagerImpl::Create( |
+ std::unique_ptr<RasterBufferProvider> raster_buffer_provider, |
TaskGraphRunner* task_graph_runner) { |
- return base::WrapUnique<TileTaskManagerImpl>( |
- new TileTaskManagerImpl(task_graph_runner)); |
+ return base::WrapUnique<TileTaskManagerImpl>(new TileTaskManagerImpl( |
+ std::move(raster_buffer_provider), task_graph_runner)); |
} |
-TileTaskManagerImpl::TileTaskManagerImpl(TaskGraphRunner* task_graph_runner) |
- : task_graph_runner_(task_graph_runner), |
+TileTaskManagerImpl::TileTaskManagerImpl( |
+ std::unique_ptr<RasterBufferProvider> raster_buffer_provider, |
+ TaskGraphRunner* task_graph_runner) |
+ : raster_buffer_provider_(std::move(raster_buffer_provider)), |
+ task_graph_runner_(task_graph_runner), |
namespace_token_(task_graph_runner->GetNamespaceToken()) {} |
TileTaskManagerImpl::~TileTaskManagerImpl() {} |
void TileTaskManagerImpl::ScheduleTasks(TaskGraph* graph) { |
TRACE_EVENT0("cc", "TileTaskManagerImpl::ScheduleTasks"); |
+ |
+ raster_buffer_provider_->OrderingBarrier(); |
task_graph_runner_->ScheduleTasks(namespace_token_, graph); |
} |
@@ -51,6 +57,12 @@ |
TaskGraph empty; |
task_graph_runner_->ScheduleTasks(namespace_token_, &empty); |
task_graph_runner_->WaitForTasksToFinishRunning(namespace_token_); |
+ |
+ raster_buffer_provider_->Shutdown(); |
+} |
+ |
+RasterBufferProvider* TileTaskManagerImpl::GetRasterBufferProvider() const { |
+ return raster_buffer_provider_.get(); |
} |
} // namespace cc |