| Index: cc/resources/raster_worker_pool_perftest.cc
|
| diff --git a/cc/resources/raster_worker_pool_perftest.cc b/cc/resources/raster_worker_pool_perftest.cc
|
| index f99184554e7ab5e567296f7d5bb6078b46a982e7..c8f1d8479c72c8a25e0fbff4fede81437a935d27 100644
|
| --- a/cc/resources/raster_worker_pool_perftest.cc
|
| +++ b/cc/resources/raster_worker_pool_perftest.cc
|
| @@ -38,6 +38,12 @@ class PerfRasterWorkerPool : public RasterWorkerPool {
|
| virtual void ScheduleTasks(RasterTask::Queue* queue) OVERRIDE {
|
| NOTREACHED();
|
| }
|
| + virtual void OnRasterTasksFinished() OVERRIDE {
|
| + NOTREACHED();
|
| + }
|
| + virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE {
|
| + NOTREACHED();
|
| + }
|
|
|
| void SetRasterTasks(RasterTask::Queue* queue) {
|
| RasterWorkerPool::SetRasterTasks(queue);
|
| @@ -56,7 +62,24 @@ class PerfRasterWorkerPool : public RasterWorkerPool {
|
| }
|
|
|
| void BuildTaskGraph() {
|
| - RasterTaskGraph graph;
|
| + unsigned priority = 0;
|
| + TaskGraph graph;
|
| +
|
| + scoped_refptr<internal::WorkerPoolTask>
|
| + raster_required_for_activation_finished_task(
|
| + CreateRasterRequiredForActivationFinishedTask());
|
| + internal::GraphNode* raster_required_for_activation_finished_node =
|
| + CreateGraphNodeForTask(
|
| + raster_required_for_activation_finished_task.get(),
|
| + priority++,
|
| + &graph);
|
| +
|
| + scoped_refptr<internal::WorkerPoolTask> raster_finished_task(
|
| + CreateRasterFinishedTask());
|
| + internal::GraphNode* raster_finished_node =
|
| + CreateGraphNodeForTask(raster_finished_task.get(),
|
| + priority++,
|
| + &graph);
|
|
|
| for (RasterTaskVector::const_iterator it = raster_tasks().begin();
|
| it != raster_tasks().end(); ++it) {
|
| @@ -66,7 +89,21 @@ class PerfRasterWorkerPool : public RasterWorkerPool {
|
| DCHECK(perf_it != perf_tasks_.end());
|
| if (perf_it != perf_tasks_.end()) {
|
| internal::WorkerPoolTask* perf_task = perf_it->second.get();
|
| - graph.InsertRasterTask(perf_task, task->dependencies());
|
| +
|
| + internal::GraphNode* perf_node =
|
| + CreateGraphNodeForRasterTask(perf_task,
|
| + task->dependencies(),
|
| + priority++,
|
| + &graph);
|
| +
|
| + if (IsRasterTaskRequiredForActivation(task)) {
|
| + raster_required_for_activation_finished_node->add_dependency();
|
| + perf_node->add_dependent(
|
| + raster_required_for_activation_finished_node);
|
| + }
|
| +
|
| + raster_finished_node->add_dependency();
|
| + perf_node->add_dependent(raster_finished_node);
|
| }
|
| }
|
| }
|
|
|