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

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

Issue 154003006: cc: Switch to vector based TaskGraph implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: build fix Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « cc/resources/raster_worker_pool.cc ('k') | cc/resources/task_graph_runner.h » ('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 "cc/test/lap_timer.h" 8 #include "cc/test/lap_timer.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "testing/perf/perf_test.h" 10 #include "testing/perf/perf_test.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 virtual void OnRasterTasksFinished() OVERRIDE { NOTREACHED(); } 72 virtual void OnRasterTasksFinished() OVERRIDE { NOTREACHED(); }
73 virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE { 73 virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE {
74 NOTREACHED(); 74 NOTREACHED();
75 } 75 }
76 76
77 void SetRasterTasks(RasterTask::Queue* queue) { 77 void SetRasterTasks(RasterTask::Queue* queue) {
78 RasterWorkerPool::SetRasterTasks(queue); 78 RasterWorkerPool::SetRasterTasks(queue);
79 } 79 }
80 80
81 void BuildTaskGraph() { 81 void BuildTaskGraph() {
82 unsigned priority = 0; 82 unsigned priority = 2u;
83 TaskGraph graph; 83 internal::TaskGraph graph;
84 84
85 scoped_refptr<internal::WorkerPoolTask> 85 scoped_refptr<internal::WorkerPoolTask>
86 raster_required_for_activation_finished_task( 86 raster_required_for_activation_finished_task(
87 CreateRasterRequiredForActivationFinishedTask( 87 CreateRasterRequiredForActivationFinishedTask(
88 raster_tasks_required_for_activation().size())); 88 raster_tasks_required_for_activation().size()));
89 internal::GraphNode* raster_required_for_activation_finished_node =
90 CreateGraphNodeForTask(
91 raster_required_for_activation_finished_task.get(),
92 priority++,
93 &graph);
94
95 scoped_refptr<internal::WorkerPoolTask> raster_finished_task( 89 scoped_refptr<internal::WorkerPoolTask> raster_finished_task(
96 CreateRasterFinishedTask()); 90 CreateRasterFinishedTask());
97 internal::GraphNode* raster_finished_node = 91
98 CreateGraphNodeForTask(raster_finished_task.get(), priority++, &graph); 92 size_t raster_required_for_activation_finished_dependencies = 0u;
93 size_t raster_finished_dependencies = 0u;
99 94
100 for (RasterTaskVector::const_iterator it = raster_tasks().begin(); 95 for (RasterTaskVector::const_iterator it = raster_tasks().begin();
101 it != raster_tasks().end(); 96 it != raster_tasks().end();
102 ++it) { 97 ++it) {
103 internal::RasterWorkerPoolTask* task = it->get(); 98 internal::RasterWorkerPoolTask* task = it->get();
104 99
105 internal::GraphNode* node = CreateGraphNodeForRasterTask(
106 task, task->dependencies(), priority++, &graph);
107
108 if (IsRasterTaskRequiredForActivation(task)) { 100 if (IsRasterTaskRequiredForActivation(task)) {
109 raster_required_for_activation_finished_node->add_dependency(); 101 raster_required_for_activation_finished_dependencies++;
110 node->add_dependent(raster_required_for_activation_finished_node); 102 graph.edges.push_back(internal::TaskGraph::Edge(
103 task, raster_required_for_activation_finished_task.get()));
111 } 104 }
112 105
113 raster_finished_node->add_dependency(); 106 InsertNodeForRasterTask(&graph, task, task->dependencies(), priority++);
114 node->add_dependent(raster_finished_node); 107
108 raster_finished_dependencies++;
109 graph.edges.push_back(
110 internal::TaskGraph::Edge(task, raster_finished_task.get()));
115 } 111 }
112
113 InsertNodeForTask(&graph,
114 raster_required_for_activation_finished_task.get(),
115 0u,
116 raster_required_for_activation_finished_dependencies);
117 InsertNodeForTask(
118 &graph, raster_finished_task.get(), 1u, raster_finished_dependencies);
116 } 119 }
117 120
118 private: 121 private:
119 DISALLOW_COPY_AND_ASSIGN(PerfRasterWorkerPool); 122 DISALLOW_COPY_AND_ASSIGN(PerfRasterWorkerPool);
120 }; 123 };
121 124
122 class RasterWorkerPoolPerfTest : public testing::Test { 125 class RasterWorkerPoolPerfTest : public testing::Test {
123 public: 126 public:
124 RasterWorkerPoolPerfTest() 127 RasterWorkerPoolPerfTest()
125 : timer_(kWarmupRuns, 128 : timer_(kWarmupRuns,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 RunBuildTaskGraphTest("10_4", 10, 4); 214 RunBuildTaskGraphTest("10_4", 10, 4);
212 RunBuildTaskGraphTest("100_4", 100, 4); 215 RunBuildTaskGraphTest("100_4", 100, 4);
213 RunBuildTaskGraphTest("1000_4", 1000, 4); 216 RunBuildTaskGraphTest("1000_4", 1000, 4);
214 RunBuildTaskGraphTest("10_16", 10, 16); 217 RunBuildTaskGraphTest("10_16", 10, 16);
215 RunBuildTaskGraphTest("100_16", 100, 16); 218 RunBuildTaskGraphTest("100_16", 100, 16);
216 RunBuildTaskGraphTest("1000_16", 1000, 16); 219 RunBuildTaskGraphTest("1000_16", 1000, 16);
217 } 220 }
218 221
219 } // namespace 222 } // namespace
220 } // namespace cc 223 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/raster_worker_pool.cc ('k') | cc/resources/task_graph_runner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698