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

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

Issue 1890903002: cc: Simplify Task and its derived classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_tile_task_runner
Patch Set: nits Created 4 years, 8 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_TILES_TILE_MANAGER_H_ 5 #ifndef CC_TILES_TILE_MANAGER_H_
6 #define CC_TILES_TILE_MANAGER_H_ 6 #define CC_TILES_TILE_MANAGER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include <memory> 11 #include <memory>
12 #include <set> 12 #include <set>
13 #include <unordered_map> 13 #include <unordered_map>
14 #include <utility> 14 #include <utility>
15 #include <vector> 15 #include <vector>
16 16
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/values.h" 18 #include "base/values.h"
19 #include "cc/base/unique_notifier.h" 19 #include "cc/base/unique_notifier.h"
20 #include "cc/playback/raster_source.h" 20 #include "cc/playback/raster_source.h"
21 #include "cc/raster/tile_task_runner.h"
22 #include "cc/raster/tile_task_worker_pool.h" 21 #include "cc/raster/tile_task_worker_pool.h"
23 #include "cc/resources/memory_history.h" 22 #include "cc/resources/memory_history.h"
24 #include "cc/resources/resource_pool.h" 23 #include "cc/resources/resource_pool.h"
25 #include "cc/tiles/eviction_tile_priority_queue.h" 24 #include "cc/tiles/eviction_tile_priority_queue.h"
26 #include "cc/tiles/image_decode_controller.h" 25 #include "cc/tiles/image_decode_controller.h"
27 #include "cc/tiles/raster_tile_priority_queue.h" 26 #include "cc/tiles/raster_tile_priority_queue.h"
28 #include "cc/tiles/tile.h" 27 #include "cc/tiles/tile.h"
29 #include "cc/tiles/tile_draw_info.h" 28 #include "cc/tiles/tile_draw_info.h"
30 29
31 namespace base { 30 namespace base {
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 private: 241 private:
243 int64_t memory_bytes_; 242 int64_t memory_bytes_;
244 int resource_count_; 243 int resource_count_;
245 }; 244 };
246 245
247 void CheckAndProcessCompletedTasks(); 246 void CheckAndProcessCompletedTasks();
248 void RasterTaskCompleted(Task* task); 247 void RasterTaskCompleted(Task* task);
249 248
250 void FreeResourcesForTile(Tile* tile); 249 void FreeResourcesForTile(Tile* tile);
251 void FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(Tile* tile); 250 void FreeResourcesForTileAndNotifyClientIfTileWasReadyToDraw(Tile* tile);
252 scoped_refptr<RasterTask> CreateRasterTask( 251 scoped_refptr<Task> CreateRasterTask(const PrioritizedTile& prioritized_tile);
253 const PrioritizedTile& prioritized_tile);
254 252
255 std::unique_ptr<EvictionTilePriorityQueue> 253 std::unique_ptr<EvictionTilePriorityQueue>
256 FreeTileResourcesUntilUsageIsWithinLimit( 254 FreeTileResourcesUntilUsageIsWithinLimit(
257 std::unique_ptr<EvictionTilePriorityQueue> eviction_priority_queue, 255 std::unique_ptr<EvictionTilePriorityQueue> eviction_priority_queue,
258 const MemoryUsage& limit, 256 const MemoryUsage& limit,
259 MemoryUsage* usage); 257 MemoryUsage* usage);
260 std::unique_ptr<EvictionTilePriorityQueue> 258 std::unique_ptr<EvictionTilePriorityQueue>
261 FreeTileResourcesWithLowerPriorityUntilUsageIsWithinLimit( 259 FreeTileResourcesWithLowerPriorityUntilUsageIsWithinLimit(
262 std::unique_ptr<EvictionTilePriorityQueue> eviction_priority_queue, 260 std::unique_ptr<EvictionTilePriorityQueue> eviction_priority_queue,
263 const MemoryUsage& limit, 261 const MemoryUsage& limit,
264 const TilePriority& oother_priority, 262 const TilePriority& oother_priority,
265 MemoryUsage* usage); 263 MemoryUsage* usage);
266 bool TilePriorityViolatesMemoryPolicy(const TilePriority& priority); 264 bool TilePriorityViolatesMemoryPolicy(const TilePriority& priority);
267 bool AreRequiredTilesReadyToDraw(RasterTilePriorityQueue::Type type) const; 265 bool AreRequiredTilesReadyToDraw(RasterTilePriorityQueue::Type type) const;
268 void CheckIfMoreTilesNeedToBePrepared(); 266 void CheckIfMoreTilesNeedToBePrepared();
269 void CheckAndIssueSignals(); 267 void CheckAndIssueSignals();
270 bool MarkTilesOutOfMemory( 268 bool MarkTilesOutOfMemory(
271 std::unique_ptr<RasterTilePriorityQueue> queue) const; 269 std::unique_ptr<RasterTilePriorityQueue> queue) const;
272 270
273 ResourceFormat DetermineResourceFormat(const Tile* tile) const; 271 ResourceFormat DetermineResourceFormat(const Tile* tile) const;
274 bool DetermineResourceRequiresSwizzle(const Tile* tile) const; 272 bool DetermineResourceRequiresSwizzle(const Tile* tile) const;
275 273
276 void DidFinishRunningTileTasksRequiredForActivation(); 274 void DidFinishRunningTileTasksRequiredForActivation();
277 void DidFinishRunningTileTasksRequiredForDraw(); 275 void DidFinishRunningTileTasksRequiredForDraw();
278 void DidFinishRunningAllTileTasks(); 276 void DidFinishRunningAllTileTasks();
279 277
280 scoped_refptr<TileTask> CreateTaskSetFinishedTask( 278 scoped_refptr<Task> CreateTaskSetFinishedTask(
281 void (TileManager::*callback)()); 279 void (TileManager::*callback)());
282 280
283 std::unique_ptr<base::trace_event::ConvertableToTraceFormat> 281 std::unique_ptr<base::trace_event::ConvertableToTraceFormat>
284 ScheduledTasksStateAsValue() const; 282 ScheduledTasksStateAsValue() const;
285 283
286 TileManagerClient* client_; 284 TileManagerClient* client_;
287 scoped_refptr<base::SequencedTaskRunner> task_runner_; 285 scoped_refptr<base::SequencedTaskRunner> task_runner_;
288 ResourcePool* resource_pool_; 286 ResourcePool* resource_pool_;
289 TileTaskWorkerPool* tile_task_worker_pool_; 287 TileTaskWorkerPool* tile_task_worker_pool_;
290 GlobalStateThatImpactsTilePriority global_state_; 288 GlobalStateThatImpactsTilePriority global_state_;
291 size_t scheduled_raster_task_limit_; 289 size_t scheduled_raster_task_limit_;
292 const bool use_partial_raster_; 290 const bool use_partial_raster_;
293 bool use_gpu_rasterization_; 291 bool use_gpu_rasterization_;
294 292
295 using TileMap = std::unordered_map<Tile::Id, Tile*>; 293 using TileMap = std::unordered_map<Tile::Id, Tile*>;
296 TileMap tiles_; 294 TileMap tiles_;
297 295
298 bool all_tiles_that_need_to_be_rasterized_are_scheduled_; 296 bool all_tiles_that_need_to_be_rasterized_are_scheduled_;
299 MemoryHistory::Entry memory_stats_from_last_assign_; 297 MemoryHistory::Entry memory_stats_from_last_assign_;
300 298
301 bool did_check_and_process_completed_tasks_since_last_schedule_tasks_; 299 bool did_check_and_process_completed_tasks_since_last_schedule_tasks_;
302 bool did_oom_on_last_assign_; 300 bool did_oom_on_last_assign_;
303 301
304 ImageDecodeController* image_decode_controller_; 302 ImageDecodeController* image_decode_controller_;
305 303
306 RasterTaskCompletionStats flush_stats_; 304 RasterTaskCompletionStats flush_stats_;
307 305
308 std::vector<Tile*> released_tiles_; 306 std::vector<Tile*> released_tiles_;
309 307
310 std::vector<scoped_refptr<TileTask>> orphan_tasks_; 308 Task::Vector orphan_tasks_;
311 309
312 TaskGraph graph_; 310 TaskGraph graph_;
313 scoped_refptr<TileTask> required_for_activation_done_task_; 311 scoped_refptr<Task> required_for_activation_done_task_;
314 scoped_refptr<TileTask> required_for_draw_done_task_; 312 scoped_refptr<Task> required_for_draw_done_task_;
315 scoped_refptr<TileTask> all_done_task_; 313 scoped_refptr<Task> all_done_task_;
316 314
317 UniqueNotifier more_tiles_need_prepare_check_notifier_; 315 UniqueNotifier more_tiles_need_prepare_check_notifier_;
318 316
319 struct Signals { 317 struct Signals {
320 Signals(); 318 Signals();
321 319
322 void reset(); 320 void reset();
323 321
324 bool ready_to_activate; 322 bool ready_to_activate;
325 bool did_notify_ready_to_activate; 323 bool did_notify_ready_to_activate;
(...skipping 13 matching lines...) Expand all
339 std::unordered_map<Tile::Id, std::vector<DrawImage>> scheduled_draw_images_; 337 std::unordered_map<Tile::Id, std::vector<DrawImage>> scheduled_draw_images_;
340 338
341 base::WeakPtrFactory<TileManager> task_set_finished_weak_ptr_factory_; 339 base::WeakPtrFactory<TileManager> task_set_finished_weak_ptr_factory_;
342 340
343 DISALLOW_COPY_AND_ASSIGN(TileManager); 341 DISALLOW_COPY_AND_ASSIGN(TileManager);
344 }; 342 };
345 343
346 } // namespace cc 344 } // namespace cc
347 345
348 #endif // CC_TILES_TILE_MANAGER_H_ 346 #endif // CC_TILES_TILE_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698