Chromium Code Reviews| Index: cc/tiles/tile_manager.h |
| diff --git a/cc/tiles/tile_manager.h b/cc/tiles/tile_manager.h |
| index 86c66c4446efabb3b165138ebc0220b0ab5dca5b..1b08ae0eac6ca583720036e0881431c51509165f 100644 |
| --- a/cc/tiles/tile_manager.h |
| +++ b/cc/tiles/tile_manager.h |
| @@ -104,6 +104,26 @@ RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats); |
| // should no longer have any memory assigned to them. Tile objects are "owned" |
| // by layers; they automatically register with the manager when they are |
| // created, and unregister from the manager when they are deleted. |
| +// |
| +// The TileManager coordinates scheduling of prioritized raster and decode work |
| +// across 2 different subsystems, namely the TaskGraphRunner used primarily for |
| +// raster work and images which must be decoded before rasterization of a tile |
| +// can proceed, and the CheckerImageTracker used for images decoded |
| +// asynchronously from raster using the |image_worker_task_runner|. The order in |
| +// which work is scheduled across these systems is as follows: |
| +// |
| +// 1) RequiredForActivation/Draw Tiles: These are the highest priority tiles |
|
vmpstr
2017/06/20 18:41:01
Thanks for the comment! also you don't need to cap
Khushal
2017/06/21 03:35:57
Its a heading to the bullet point. Looked prettier
|
| +// which block scheduling of any decode work for checkered-images. |
| +// |
| +// 2) Pre-paint Tiles: These are offscreen tiles which fall within the |
| +// pre-raster distance. The work for these tiles continues in parallel with the |
| +// decode work for checkered images from visible/pre-paint tiles. |
| +// |
| +// 3) Pre-decode Tiles: These are offscreen tiles which are outside the |
| +// pre-raster distance but have their images pre-decoded and locked. Finishing |
| +// work for these tiles on the TaskGraph blocks starting decode work for |
| +// checker-imaged pre-decode tiles. |
| + |
| class CC_EXPORT TileManager : CheckerImageTrackerClient { |
| public: |
| TileManager(TileManagerClient* client, |
| @@ -332,7 +352,7 @@ class CC_EXPORT TileManager : CheckerImageTrackerClient { |
| scoped_refptr<TileTask> CreateTaskSetFinishedTask( |
| void (TileManager::*callback)()); |
| PrioritizedWorkToSchedule AssignGpuMemoryToTiles(); |
| - void ScheduleTasks(const PrioritizedWorkToSchedule& work_to_schedule); |
| + void ScheduleTasks(PrioritizedWorkToSchedule work_to_schedule); |
| void PartitionImagesForCheckering(const PrioritizedTile& prioritized_tile, |
| const gfx::ColorSpace& raster_color_space, |
| @@ -341,6 +361,7 @@ class CC_EXPORT TileManager : CheckerImageTrackerClient { |
| void AddCheckeredImagesToDecodeQueue( |
| const PrioritizedTile& prioritized_tile, |
| const gfx::ColorSpace& raster_color_space, |
| + CheckerImageTracker::DecodeType decode_type, |
| CheckerImageTracker::ImageDecodeQueue* image_decode_queue); |
| std::unique_ptr<base::trace_event::ConvertableToTraceFormat> |