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

Unified Diff: cc/raster/gpu_tile_task_worker_pool.cc

Issue 1470113002: Move TaskGraph creation to TileManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pinchfix
Patch Set: feedback Created 5 years 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
« no previous file with comments | « cc/raster/gpu_tile_task_worker_pool.h ('k') | cc/raster/one_copy_tile_task_worker_pool.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/raster/gpu_tile_task_worker_pool.cc
diff --git a/cc/raster/gpu_tile_task_worker_pool.cc b/cc/raster/gpu_tile_task_worker_pool.cc
index 59c091116f93869f6e8aecab55f05fd64763abfd..306d5d1dbdb7cbdbc08dcc61ae147817ed73d31b 100644
--- a/cc/raster/gpu_tile_task_worker_pool.cc
+++ b/cc/raster/gpu_tile_task_worker_pool.cc
@@ -102,10 +102,7 @@ GpuTileTaskWorkerPool::GpuTileTaskWorkerPool(
rasterizer_(new GpuRasterizer(context_provider,
resource_provider,
use_distance_field_text,
- gpu_rasterization_msaa_sample_count)),
- task_set_finished_weak_ptr_factory_(this),
- weak_ptr_factory_(this) {
-}
+ gpu_rasterization_msaa_sample_count)) {}
GpuTileTaskWorkerPool::~GpuTileTaskWorkerPool() {
DCHECK_EQ(0u, completed_tasks_.size());
@@ -115,10 +112,6 @@ TileTaskRunner* GpuTileTaskWorkerPool::AsTileTaskRunner() {
return this;
}
-void GpuTileTaskWorkerPool::SetClient(TileTaskRunnerClient* client) {
- client_ = client;
-}
-
void GpuTileTaskWorkerPool::Shutdown() {
TRACE_EVENT0("cc", "GpuTileTaskWorkerPool::Shutdown");
@@ -127,56 +120,10 @@ void GpuTileTaskWorkerPool::Shutdown() {
task_graph_runner_->WaitForTasksToFinishRunning(namespace_token_);
}
-void GpuTileTaskWorkerPool::ScheduleTasks(TileTaskQueue* queue) {
+void GpuTileTaskWorkerPool::ScheduleTasks(TaskGraph* graph) {
TRACE_EVENT0("cc", "GpuTileTaskWorkerPool::ScheduleTasks");
- // Mark all task sets as pending.
- tasks_pending_.set();
-
- size_t priority = kTileTaskPriorityBase;
-
- graph_.Reset();
-
- // Cancel existing OnTaskSetFinished callbacks.
- task_set_finished_weak_ptr_factory_.InvalidateWeakPtrs();
-
- scoped_refptr<TileTask> new_task_set_finished_tasks[kNumberOfTaskSets];
-
- size_t task_count[kNumberOfTaskSets] = {0};
-
- for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) {
- new_task_set_finished_tasks[task_set] = CreateTaskSetFinishedTask(
- task_runner_.get(),
- base::Bind(&GpuTileTaskWorkerPool::OnTaskSetFinished,
- task_set_finished_weak_ptr_factory_.GetWeakPtr(), task_set));
- }
-
- for (TileTaskQueue::Item::Vector::const_iterator it = queue->items.begin();
- it != queue->items.end(); ++it) {
- const TileTaskQueue::Item& item = *it;
- RasterTask* task = item.task;
- DCHECK(!task->HasCompleted());
-
- for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) {
- if (!item.task_sets[task_set])
- continue;
-
- ++task_count[task_set];
-
- graph_.edges.push_back(
- TaskGraph::Edge(task, new_task_set_finished_tasks[task_set].get()));
- }
-
- InsertNodesForRasterTask(&graph_, task, task->dependencies(), priority++);
- }
-
- for (TaskSet task_set = 0; task_set < kNumberOfTaskSets; ++task_set) {
- InsertNodeForTask(&graph_, new_task_set_finished_tasks[task_set].get(),
- kTaskSetFinishedTaskPriorityBase + task_set,
- task_count[task_set]);
- }
-
- ScheduleTasksOnOriginThread(this, &graph_);
+ ScheduleTasksOnOriginThread(this, graph);
// Barrier to sync any new resources to the worker context.
rasterizer_->resource_provider()
@@ -185,11 +132,7 @@ void GpuTileTaskWorkerPool::ScheduleTasks(TileTaskQueue* queue) {
->ContextGL()
->OrderingBarrierCHROMIUM();
- task_graph_runner_->ScheduleTasks(namespace_token_, &graph_);
-
- std::copy(new_task_set_finished_tasks,
- new_task_set_finished_tasks + kNumberOfTaskSets,
- task_set_finished_tasks_);
+ task_graph_runner_->ScheduleTasks(namespace_token_, graph);
}
void GpuTileTaskWorkerPool::CheckForCompletedTasks() {
@@ -236,13 +179,4 @@ void GpuTileTaskWorkerPool::ReleaseBufferForRaster(
// Nothing to do here. RasterBufferImpl destructor cleans up after itself.
}
-void GpuTileTaskWorkerPool::OnTaskSetFinished(TaskSet task_set) {
- TRACE_EVENT1("cc", "GpuTileTaskWorkerPool::OnTaskSetFinished", "task_set",
- task_set);
-
- DCHECK(tasks_pending_[task_set]);
- tasks_pending_[task_set] = false;
- client_->DidFinishRunningTileTasks(task_set);
-}
-
} // namespace cc
« no previous file with comments | « cc/raster/gpu_tile_task_worker_pool.h ('k') | cc/raster/one_copy_tile_task_worker_pool.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698