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

Side by Side Diff: cc/test/fake_tile_manager.cc

Issue 165603002: cc: Move GPU raster to DirectRasterWorkerPool. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
« cc/resources/tile_manager.cc ('K') | « cc/test/fake_tile_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/test/fake_tile_manager.h" 5 #include "cc/test/fake_tile_manager.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <limits> 8 #include <limits>
9 9
10 #include "cc/resources/raster_worker_pool.h" 10 #include "cc/resources/raster_worker_pool.h"
11 11
12 namespace cc { 12 namespace cc {
13 13
14 namespace { 14 namespace {
15 15
16 class FakeTaskGraphRunner : public internal::TaskGraphRunner {
17 public:
18 FakeTaskGraphRunner() : internal::TaskGraphRunner(0, "CompositorRaster") {}
19 };
20 base::LazyInstance<FakeTaskGraphRunner> g_task_graph_runner =
21 LAZY_INSTANCE_INITIALIZER;
22
23 class FakeRasterWorkerPool : public RasterWorkerPool { 16 class FakeRasterWorkerPool : public RasterWorkerPool {
24 public: 17 public:
25 FakeRasterWorkerPool() 18 FakeRasterWorkerPool() : RasterWorkerPool(NULL, NULL) {}
26 : RasterWorkerPool(g_task_graph_runner.Pointer(), NULL, NULL) {}
27 19
28 // Overridden from RasterWorkerPool: 20 // Overridden from RasterWorkerPool:
29 virtual void ScheduleTasks(RasterTask::Queue* queue) OVERRIDE { 21 virtual void ScheduleTasks(RasterTaskQueue* queue) OVERRIDE {
30 for (RasterTaskQueueIterator it(queue); it; ++it) { 22 for (RasterTaskQueueIterator it(queue); it; ++it) {
31 internal::RasterWorkerPoolTask* task = *it; 23 internal::RasterWorkerPoolTask* task = *it;
32 24
33 task->DidSchedule(); 25 task->DidSchedule();
34 26
35 completed_tasks_.push_back(task); 27 completed_tasks_.push_back(task);
36 } 28 }
37 } 29 }
38 virtual void CheckForCompletedTasks() OVERRIDE { 30 virtual void CheckForCompletedTasks() OVERRIDE {
39 internal::Task::Vector completed_tasks;
40 CollectCompletedWorkerPoolTasks(&completed_tasks);
41
42 while (!completed_tasks_.empty()) { 31 while (!completed_tasks_.empty()) {
43 internal::WorkerPoolTask* task = completed_tasks_.front().get(); 32 internal::WorkerPoolTask* task = completed_tasks_.front().get();
44 33
45 task->WillComplete(); 34 task->WillComplete();
46 task->DidComplete(); 35 task->DidComplete();
47 task->RunReplyOnOriginThread(); 36 task->RunReplyOnOriginThread();
48 37
49 completed_tasks_.pop_front(); 38 completed_tasks_.pop_front();
50 } 39 }
51 } 40 }
(...skipping 21 matching lines...) Expand all
73 virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE {} 62 virtual void OnRasterTasksRequiredForActivationFinished() OVERRIDE {}
74 63
75 TaskDeque completed_tasks_; 64 TaskDeque completed_tasks_;
76 }; 65 };
77 66
78 } // namespace 67 } // namespace
79 68
80 FakeTileManager::FakeTileManager(TileManagerClient* client) 69 FakeTileManager::FakeTileManager(TileManagerClient* client)
81 : TileManager(client, 70 : TileManager(client,
82 NULL, 71 NULL,
72 NULL,
73 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
83 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool), 74 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
84 std::numeric_limits<unsigned>::max(), 75 std::numeric_limits<unsigned>::max(),
85 NULL, 76 NULL,
86 true) {} 77 true) {}
87 78
88 FakeTileManager::FakeTileManager(TileManagerClient* client, 79 FakeTileManager::FakeTileManager(TileManagerClient* client,
89 ResourceProvider* resource_provider) 80 ResourceProvider* resource_provider)
90 : TileManager(client, 81 : TileManager(client,
91 resource_provider, 82 resource_provider,
83 NULL,
84 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
92 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool), 85 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
93 std::numeric_limits<unsigned>::max(), 86 std::numeric_limits<unsigned>::max(),
94 NULL, 87 NULL,
95 true) {} 88 true) {}
96 89
97 FakeTileManager::FakeTileManager(TileManagerClient* client, 90 FakeTileManager::FakeTileManager(TileManagerClient* client,
98 ResourceProvider* resource_provider, 91 ResourceProvider* resource_provider,
99 bool allow_on_demand_raster) 92 bool allow_on_demand_raster)
100 : TileManager(client, 93 : TileManager(client,
101 resource_provider, 94 resource_provider,
95 NULL,
96 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
102 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool), 97 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
103 std::numeric_limits<unsigned>::max(), 98 std::numeric_limits<unsigned>::max(),
104 NULL, 99 NULL,
105 allow_on_demand_raster) {} 100 allow_on_demand_raster) {}
106 101
107 FakeTileManager::FakeTileManager(TileManagerClient* client, 102 FakeTileManager::FakeTileManager(TileManagerClient* client,
108 ResourceProvider* resource_provider, 103 ResourceProvider* resource_provider,
109 size_t raster_task_limit_bytes) 104 size_t raster_task_limit_bytes)
110 : TileManager(client, 105 : TileManager(client,
111 resource_provider, 106 resource_provider,
107 NULL,
108 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
112 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool), 109 make_scoped_ptr<RasterWorkerPool>(new FakeRasterWorkerPool),
113 raster_task_limit_bytes, 110 raster_task_limit_bytes,
114 NULL, 111 NULL,
115 true) {} 112 true) {}
116 113
117 FakeTileManager::~FakeTileManager() {} 114 FakeTileManager::~FakeTileManager() {}
118 115
119 void FakeTileManager::AssignMemoryToTiles( 116 void FakeTileManager::AssignMemoryToTiles(
120 const GlobalStateThatImpactsTilePriority& state) { 117 const GlobalStateThatImpactsTilePriority& state) {
121 tiles_for_raster.clear(); 118 tiles_for_raster.clear();
122 all_tiles.Clear(); 119 all_tiles.Clear();
123 120
124 SetGlobalStateForTesting(state); 121 SetGlobalStateForTesting(state);
125 GetTilesWithAssignedBins(&all_tiles); 122 GetTilesWithAssignedBins(&all_tiles);
126 AssignGpuMemoryToTiles(&all_tiles, &tiles_for_raster); 123 AssignGpuMemoryToTiles(&all_tiles, &tiles_for_raster);
127 } 124 }
128 125
129 bool FakeTileManager::HasBeenAssignedMemory(Tile* tile) { 126 bool FakeTileManager::HasBeenAssignedMemory(Tile* tile) {
130 return std::find(tiles_for_raster.begin(), 127 return std::find(tiles_for_raster.begin(),
131 tiles_for_raster.end(), 128 tiles_for_raster.end(),
132 tile) != tiles_for_raster.end(); 129 tile) != tiles_for_raster.end();
133 } 130 }
134 131
135 void FakeTileManager::CheckForCompletedTasks() {
136 RasterWorkerPoolForTesting()->CheckForCompletedTasks();
137 }
138
139 void FakeTileManager::DidFinishRunningTasksForTesting() { 132 void FakeTileManager::DidFinishRunningTasksForTesting() {
140 DidFinishRunningTasks(); 133 DidFinishRunningTasks();
141 } 134 }
142 135
143 void FakeTileManager::Release(Tile* tile) { 136 void FakeTileManager::Release(Tile* tile) {
144 TileManager::Release(tile); 137 TileManager::Release(tile);
145 CleanUpReleasedTiles(); 138 CleanUpReleasedTiles();
146 } 139 }
147 140
148 } // namespace cc 141 } // namespace cc
OLDNEW
« cc/resources/tile_manager.cc ('K') | « cc/test/fake_tile_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698