summaryrefslogtreecommitdiffstats
path: root/cc/tile_manager.h
diff options
context:
space:
mode:
authorreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-05 19:06:18 +0000
committerreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-05 19:06:18 +0000
commit020909963f5684d47c99bd12a3d3cd246bfe8132 (patch)
tree19ff1275575703bb4bd2ae5d00133bcb4d336bc0 /cc/tile_manager.h
parent212b0e3e8df63c4dcf7b13f997ef3319f6ab6947 (diff)
downloadchromium_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.h15
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_;
};