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

Unified Diff: cc/resources/tile_manager.h

Issue 165603002: cc: Move GPU raster to DirectRasterWorkerPool. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/tile_manager.h
diff --git a/cc/resources/tile_manager.h b/cc/resources/tile_manager.h
index 51229526c89aefa6bfe7a0b4740676cbbc2be3a0..9754a7690d7bafcc3471b34231a8418643457291 100644
--- a/cc/resources/tile_manager.h
+++ b/cc/resources/tile_manager.h
@@ -23,6 +23,7 @@
#include "cc/resources/tile.h"
namespace cc {
+class RasterWorkerPoolDelegate;
class ResourceProvider;
class CC_EXPORT TileManagerClient {
@@ -100,9 +101,6 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
++resources_releasable_;
}
}
- RasterWorkerPool* RasterWorkerPoolForTesting() {
- return raster_worker_pool_.get();
- }
void SetGlobalStateForTesting(
const GlobalStateThatImpactsTilePriority& state) {
@@ -119,7 +117,9 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
protected:
TileManager(TileManagerClient* client,
ResourceProvider* resource_provider,
+ ContextProvider* context_provider,
scoped_ptr<RasterWorkerPool> raster_worker_pool,
+ scoped_ptr<RasterWorkerPool> direct_raster_worker_pool,
size_t max_raster_usage_bytes,
RenderingStatsInstrumentation* rendering_stats_instrumentation,
bool use_rasterize_on_demand);
@@ -160,23 +160,25 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
bool was_canceled);
inline size_t BytesConsumedIfAllocated(const Tile* tile) const {
- return Resource::MemorySizeBytes(tile->size(),
- raster_worker_pool_->GetResourceFormat());
+ return Resource::MemorySizeBytes(tile->size(), resource_format_);
}
RasterMode DetermineRasterMode(const Tile* tile) const;
void FreeResourceForTile(Tile* tile, RasterMode mode);
void FreeResourcesForTile(Tile* tile);
void FreeUnusedResourcesForTile(Tile* tile);
- RasterWorkerPool::Task CreateImageDecodeTask(Tile* tile,
- SkPixelRef* pixel_ref);
- RasterWorkerPool::RasterTask CreateRasterTask(Tile* tile);
+ scoped_refptr<internal::WorkerPoolTask> CreateImageDecodeTask(
+ Tile* tile,
+ SkPixelRef* pixel_ref);
+ scoped_refptr<internal::RasterWorkerPoolTask> CreateRasterTask(Tile* tile);
scoped_ptr<base::Value> GetMemoryRequirementsAsValue() const;
void UpdatePrioritizedTileSetIfNeeded();
TileManagerClient* client_;
+ ContextProvider* context_provider_;
+ ResourceFormat resource_format_;
scoped_ptr<ResourcePool> resource_pool_;
- scoped_ptr<RasterWorkerPool> raster_worker_pool_;
+ scoped_ptr<RasterWorkerPoolDelegate> raster_worker_pool_;
GlobalStateThatImpactsTilePriority global_state_;
typedef base::hash_map<Tile::Id, Tile*> TileMap;
@@ -203,7 +205,8 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
bool did_initialize_visible_tile_;
bool did_check_for_completed_tasks_since_last_schedule_tasks_;
- typedef base::hash_map<uint32_t, RasterWorkerPool::Task> PixelRefTaskMap;
+ typedef base::hash_map<uint32_t, scoped_refptr<internal::WorkerPoolTask> >
+ PixelRefTaskMap;
typedef base::hash_map<int, PixelRefTaskMap> LayerPixelRefTaskMap;
LayerPixelRefTaskMap image_decode_tasks_;
@@ -217,7 +220,8 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
bool use_rasterize_on_demand_;
// Queue used when scheduling raster tasks.
- RasterWorkerPool::RasterTask::Queue raster_tasks_;
+ RasterTaskQueue raster_queue_;
+ RasterTaskQueue gpu_raster_queue_;
DISALLOW_COPY_AND_ASSIGN(TileManager);
};

Powered by Google App Engine
This is Rietveld 408576698