| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |