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

Side by Side Diff: cc/resources/raster_worker_pool_perftest.cc

Issue 17351017: Re-land: cc: Add raster finished signals to RasterWorkerPool. (Closed) Base URL: http://git.chromium.org/chromium/src.git@new-graph-build
Patch Set: fix flaky unit tests Created 7 years, 5 months 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 unified diff | Download patch
« no previous file with comments | « cc/resources/raster_worker_pool.cc ('k') | cc/resources/raster_worker_pool_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/raster_worker_pool.h" 5 #include "cc/resources/raster_worker_pool.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace cc { 10 namespace cc {
(...skipping 20 matching lines...) Expand all
31 virtual ~PerfRasterWorkerPool() {} 31 virtual ~PerfRasterWorkerPool() {}
32 32
33 static scoped_ptr<PerfRasterWorkerPool> Create() { 33 static scoped_ptr<PerfRasterWorkerPool> Create() {
34 return make_scoped_ptr(new PerfRasterWorkerPool); 34 return make_scoped_ptr(new PerfRasterWorkerPool);
35 } 35 }
36 36
37 // Overridden from RasterWorkerPool: 37 // Overridden from RasterWorkerPool:
38 virtual void ScheduleTasks(RasterTask::Queue* queue) OVERRIDE { 38 virtual void ScheduleTasks(RasterTask::Queue* queue) OVERRIDE {
39 NOTREACHED(); 39 NOTREACHED();
40 } 40 }
41 virtual void OnRasterTasksFinished() OVERRIDE {
42 NOTREACHED();
43 }
44 virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE {
45 NOTREACHED();
46 }
41 47
42 void SetRasterTasks(RasterTask::Queue* queue) { 48 void SetRasterTasks(RasterTask::Queue* queue) {
43 RasterWorkerPool::SetRasterTasks(queue); 49 RasterWorkerPool::SetRasterTasks(queue);
44 50
45 TaskMap perf_tasks; 51 TaskMap perf_tasks;
46 for (RasterTaskVector::const_iterator it = raster_tasks().begin(); 52 for (RasterTaskVector::const_iterator it = raster_tasks().begin();
47 it != raster_tasks().end(); ++it) { 53 it != raster_tasks().end(); ++it) {
48 internal::RasterWorkerPoolTask* task = it->get(); 54 internal::RasterWorkerPoolTask* task = it->get();
49 55
50 scoped_refptr<internal::WorkerPoolTask> new_perf_task( 56 scoped_refptr<internal::WorkerPoolTask> new_perf_task(
51 new PerfWorkerPoolTaskImpl); 57 new PerfWorkerPoolTaskImpl);
52 perf_tasks[task] = new_perf_task; 58 perf_tasks[task] = new_perf_task;
53 } 59 }
54 60
55 perf_tasks_.swap(perf_tasks); 61 perf_tasks_.swap(perf_tasks);
56 } 62 }
57 63
58 void BuildTaskGraph() { 64 void BuildTaskGraph() {
59 RasterTaskGraph graph; 65 unsigned priority = 0;
66 TaskGraph graph;
67
68 scoped_refptr<internal::WorkerPoolTask>
69 raster_required_for_activation_finished_task(
70 CreateRasterRequiredForActivationFinishedTask());
71 internal::GraphNode* raster_required_for_activation_finished_node =
72 CreateGraphNodeForTask(
73 raster_required_for_activation_finished_task.get(),
74 priority++,
75 &graph);
76
77 scoped_refptr<internal::WorkerPoolTask> raster_finished_task(
78 CreateRasterFinishedTask());
79 internal::GraphNode* raster_finished_node =
80 CreateGraphNodeForTask(raster_finished_task.get(),
81 priority++,
82 &graph);
60 83
61 for (RasterTaskVector::const_iterator it = raster_tasks().begin(); 84 for (RasterTaskVector::const_iterator it = raster_tasks().begin();
62 it != raster_tasks().end(); ++it) { 85 it != raster_tasks().end(); ++it) {
63 internal::RasterWorkerPoolTask* task = it->get(); 86 internal::RasterWorkerPoolTask* task = it->get();
64 87
65 TaskMap::iterator perf_it = perf_tasks_.find(task); 88 TaskMap::iterator perf_it = perf_tasks_.find(task);
66 DCHECK(perf_it != perf_tasks_.end()); 89 DCHECK(perf_it != perf_tasks_.end());
67 if (perf_it != perf_tasks_.end()) { 90 if (perf_it != perf_tasks_.end()) {
68 internal::WorkerPoolTask* perf_task = perf_it->second.get(); 91 internal::WorkerPoolTask* perf_task = perf_it->second.get();
69 graph.InsertRasterTask(perf_task, task->dependencies()); 92
93 internal::GraphNode* perf_node =
94 CreateGraphNodeForRasterTask(perf_task,
95 task->dependencies(),
96 priority++,
97 &graph);
98
99 if (IsRasterTaskRequiredForActivation(task)) {
100 raster_required_for_activation_finished_node->add_dependency();
101 perf_node->add_dependent(
102 raster_required_for_activation_finished_node);
103 }
104
105 raster_finished_node->add_dependency();
106 perf_node->add_dependent(raster_finished_node);
70 } 107 }
71 } 108 }
72 } 109 }
73 110
74 private: 111 private:
75 TaskMap perf_tasks_; 112 TaskMap perf_tasks_;
76 113
77 DISALLOW_COPY_AND_ASSIGN(PerfRasterWorkerPool); 114 DISALLOW_COPY_AND_ASSIGN(PerfRasterWorkerPool);
78 }; 115 };
79 116
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 RunBuildTaskGraphTest("build_task_graph_100_4", 100, 4); 227 RunBuildTaskGraphTest("build_task_graph_100_4", 100, 4);
191 RunBuildTaskGraphTest("build_task_graph_1000_4", 1000, 4); 228 RunBuildTaskGraphTest("build_task_graph_1000_4", 1000, 4);
192 RunBuildTaskGraphTest("build_task_graph_10_16", 10, 16); 229 RunBuildTaskGraphTest("build_task_graph_10_16", 10, 16);
193 RunBuildTaskGraphTest("build_task_graph_100_16", 100, 16); 230 RunBuildTaskGraphTest("build_task_graph_100_16", 100, 16);
194 RunBuildTaskGraphTest("build_task_graph_1000_16", 1000, 16); 231 RunBuildTaskGraphTest("build_task_graph_1000_16", 1000, 16);
195 } 232 }
196 233
197 } // namespace 234 } // namespace
198 235
199 } // namespace cc 236 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/raster_worker_pool.cc ('k') | cc/resources/raster_worker_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698