diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-05 19:06:18 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-05 19:06:18 +0000 |
commit | 020909963f5684d47c99bd12a3d3cd246bfe8132 (patch) | |
tree | 19ff1275575703bb4bd2ae5d00133bcb4d336bc0 /cc/tile_manager.h | |
parent | 212b0e3e8df63c4dcf7b13f997ef3319f6ab6947 (diff) | |
download | chromium_src-020909963f5684d47c99bd12a3d3cd246bfe8132.zip chromium_src-020909963f5684d47c99bd12a3d3cd246bfe8132.tar.gz chromium_src-020909963f5684d47c99bd12a3d3cd246bfe8132.tar.bz2 |
cc: Reduce picture cloning by creating at most one clone per raster thread.
This adds raster sequences to the TileManager. Raster tasks posted to
the same sequence are guaranteed to run in sequential order, which means
only one picture clone per sequence is required. We use the same number
of raster sequences as raster threads.
BUG=155209
TEST=manual
Review URL: https://chromiumcodereview.appspot.com/11419262
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171267 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/tile_manager.h')
-rw-r--r-- | cc/tile_manager.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/cc/tile_manager.h b/cc/tile_manager.h index 4a02ded..43c9064 100644 --- a/cc/tile_manager.h +++ b/cc/tile_manager.h @@ -12,16 +12,13 @@ #include "cc/resource_pool.h" #include "cc/tile_priority.h" -namespace base { -class SequencedWorkerPool; -} - namespace cc { +class RasterThread; +class ResourceProvider; class Tile; class TileVersion; struct RenderingStats; -class ResourceProvider; class CC_EXPORT TileManagerClient { public: @@ -92,7 +89,7 @@ class CC_EXPORT TileManager { void FreeResourcesForTile(Tile*); void ScheduleManageTiles(); void DispatchMoreRasterTasks(); - void DispatchOneRasterTask(scoped_refptr<Tile>); + void DispatchOneRasterTask(RasterThread*, scoped_refptr<Tile>); void OnRasterTaskCompleted( scoped_refptr<Tile>, scoped_ptr<ResourcePool::Resource>, @@ -103,9 +100,6 @@ class CC_EXPORT TileManager { TileManagerClient* client_; scoped_ptr<ResourcePool> resource_pool_; bool manage_tiles_pending_; - int pending_raster_tasks_; - size_t num_raster_threads_; - scoped_refptr<base::SequencedWorkerPool> worker_pool_; GlobalStateThatImpactsTilePriority global_state_; @@ -113,6 +107,9 @@ class CC_EXPORT TileManager { TileVector tiles_; TileVector tiles_that_need_to_be_rasterized_; + typedef ScopedPtrVector<RasterThread> RasterThreadVector; + RasterThreadVector raster_threads_; + RenderingStats rendering_stats_; }; |