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

Side by Side Diff: cc/resources/tile_manager.h

Issue 862133002: Update from https://crrev.com/312398 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
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 #ifndef CC_RESOURCES_TILE_MANAGER_H_ 5 #ifndef CC_RESOURCES_TILE_MANAGER_H_
6 #define CC_RESOURCES_TILE_MANAGER_H_ 6 #define CC_RESOURCES_TILE_MANAGER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <queue> 9 #include <queue>
10 #include <set> 10 #include <set>
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 public: 92 public:
93 enum NamedTaskSet { 93 enum NamedTaskSet {
94 REQUIRED_FOR_ACTIVATION, 94 REQUIRED_FOR_ACTIVATION,
95 REQUIRED_FOR_DRAW, 95 REQUIRED_FOR_DRAW,
96 // PixelBufferTileTaskWorkerPool depends on ALL being last. 96 // PixelBufferTileTaskWorkerPool depends on ALL being last.
97 ALL 97 ALL
98 // Adding additional values requires increasing kNumberOfTaskSets in 98 // Adding additional values requires increasing kNumberOfTaskSets in
99 // rasterizer.h 99 // rasterizer.h
100 }; 100 };
101 101
102 COMPILE_ASSERT(NamedTaskSet::ALL == (kNumberOfTaskSets - 1), 102 static_assert(NamedTaskSet::ALL == (kNumberOfTaskSets - 1),
103 NamedTaskSet_ALL_not_kNumberOfTaskSets_minus_1); 103 "NamedTaskSet::ALL should be equal to kNumberOfTaskSets"
104 "minus 1");
104 105
105 static scoped_ptr<TileManager> Create(TileManagerClient* client, 106 static scoped_ptr<TileManager> Create(TileManagerClient* client,
106 base::SequencedTaskRunner* task_runner, 107 base::SequencedTaskRunner* task_runner,
107 ResourcePool* resource_pool, 108 ResourcePool* resource_pool,
108 TileTaskRunner* tile_task_runner, 109 TileTaskRunner* tile_task_runner,
109 Rasterizer* rasterizer, 110 Rasterizer* rasterizer,
110 size_t scheduled_raster_task_limit); 111 size_t scheduled_raster_task_limit);
111 ~TileManager() override; 112 ~TileManager() override;
112 113
113 // Assigns tile memory and schedules work to prepare tiles for drawing. 114 // Assigns tile memory and schedules work to prepare tiles for drawing.
(...skipping 17 matching lines...) Expand all
131 const; 132 const;
132 void BasicStateAsValueInto(base::debug::TracedValue* dict) const; 133 void BasicStateAsValueInto(base::debug::TracedValue* dict) const;
133 const MemoryHistory::Entry& memory_stats_from_last_assign() const { 134 const MemoryHistory::Entry& memory_stats_from_last_assign() const {
134 return memory_stats_from_last_assign_; 135 return memory_stats_from_last_assign_;
135 } 136 }
136 137
137 void InitializeTilesWithResourcesForTesting(const std::vector<Tile*>& tiles) { 138 void InitializeTilesWithResourcesForTesting(const std::vector<Tile*>& tiles) {
138 for (size_t i = 0; i < tiles.size(); ++i) { 139 for (size_t i = 0; i < tiles.size(); ++i) {
139 TileDrawInfo& draw_info = tiles[i]->draw_info(); 140 TileDrawInfo& draw_info = tiles[i]->draw_info();
140 draw_info.resource_ = 141 draw_info.resource_ =
141 resource_pool_->AcquireResource(tiles[i]->desired_texture_size()); 142 resource_pool_->AcquireResource(tiles[i]->desired_texture_size(),
143 resource_pool_->default_format());
142 } 144 }
143 } 145 }
144 146
145 void ReleaseTileResourcesForTesting(const std::vector<Tile*>& tiles) { 147 void ReleaseTileResourcesForTesting(const std::vector<Tile*>& tiles) {
146 for (size_t i = 0; i < tiles.size(); ++i) { 148 for (size_t i = 0; i < tiles.size(); ++i) {
147 Tile* tile = tiles[i]; 149 Tile* tile = tiles[i];
148 FreeResourcesForTile(tile); 150 FreeResourcesForTile(tile);
149 } 151 }
150 } 152 }
151 153
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 void DidFinishRunningTileTasks(TaskSet task_set) override; 195 void DidFinishRunningTileTasks(TaskSet task_set) override;
194 TaskSetCollection TasksThatShouldBeForcedToComplete() const override; 196 TaskSetCollection TasksThatShouldBeForcedToComplete() const override;
195 197
196 typedef std::vector<Tile*> TileVector; 198 typedef std::vector<Tile*> TileVector;
197 typedef std::set<Tile*> TileSet; 199 typedef std::set<Tile*> TileSet;
198 200
199 // Virtual for test 201 // Virtual for test
200 virtual void ScheduleTasks( 202 virtual void ScheduleTasks(
201 const TileVector& tiles_that_need_to_be_rasterized); 203 const TileVector& tiles_that_need_to_be_rasterized);
202 204
203 void AssignGpuMemoryToTiles(TileVector* tiles_that_need_to_be_rasterized, 205 void AssignGpuMemoryToTiles(RasterTilePriorityQueue* raster_priority_queue,
204 size_t scheduled_raser_task_limit, 206 size_t scheduled_raser_task_limit,
205 bool required_for_draw_only); 207 TileVector* tiles_that_need_to_be_rasterized);
206 208
207 void SynchronouslyRasterizeTiles( 209 void SynchronouslyRasterizeTiles(
208 const GlobalStateThatImpactsTilePriority& state); 210 const GlobalStateThatImpactsTilePriority& state);
209 211
210 private: 212 private:
211 class MemoryUsage { 213 class MemoryUsage {
212 public: 214 public:
213 MemoryUsage(); 215 MemoryUsage();
214 MemoryUsage(int64 memory_bytes, int resource_count); 216 MemoryUsage(int64 memory_bytes, int resource_count);
215 217
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 TileTaskQueue raster_queue_; 298 TileTaskQueue raster_queue_;
297 299
298 std::vector<scoped_refptr<RasterTask>> orphan_raster_tasks_; 300 std::vector<scoped_refptr<RasterTask>> orphan_raster_tasks_;
299 301
300 UniqueNotifier ready_to_activate_notifier_; 302 UniqueNotifier ready_to_activate_notifier_;
301 UniqueNotifier ready_to_draw_notifier_; 303 UniqueNotifier ready_to_draw_notifier_;
302 UniqueNotifier ready_to_activate_check_notifier_; 304 UniqueNotifier ready_to_activate_check_notifier_;
303 UniqueNotifier ready_to_draw_check_notifier_; 305 UniqueNotifier ready_to_draw_check_notifier_;
304 UniqueNotifier more_tiles_need_prepare_check_notifier_; 306 UniqueNotifier more_tiles_need_prepare_check_notifier_;
305 307
306 RasterTilePriorityQueue raster_priority_queue_;
307 EvictionTilePriorityQueue eviction_priority_queue_; 308 EvictionTilePriorityQueue eviction_priority_queue_;
308 bool eviction_priority_queue_is_up_to_date_; 309 bool eviction_priority_queue_is_up_to_date_;
309 310
310 bool did_notify_ready_to_activate_; 311 bool did_notify_ready_to_activate_;
311 bool did_notify_ready_to_draw_; 312 bool did_notify_ready_to_draw_;
312 313
313 DISALLOW_COPY_AND_ASSIGN(TileManager); 314 DISALLOW_COPY_AND_ASSIGN(TileManager);
314 }; 315 };
315 316
316 } // namespace cc 317 } // namespace cc
317 318
318 #endif // CC_RESOURCES_TILE_MANAGER_H_ 319 #endif // CC_RESOURCES_TILE_MANAGER_H_
OLDNEW
« no previous file with comments | « cc/resources/tile.cc ('k') | cc/resources/tile_manager.cc » ('j') | shell/BUILD.gn » ('J')

Powered by Google App Engine
This is Rietveld 408576698