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

Unified Diff: cc/resources/tile_manager.h

Issue 69343005: Added preliminary support for tile rasterization with Ganesh (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month 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 ce9b2801336019e52d41f31826e4f94fdbd8e687..79dae8d933225c83606b72aef1ed67bb7504e391 100644
--- a/cc/resources/tile_manager.h
+++ b/cc/resources/tile_manager.h
@@ -14,6 +14,7 @@
#include "base/values.h"
#include "cc/base/ref_counted_managed.h"
#include "cc/debug/rendering_stats_instrumentation.h"
+#include "cc/resources/ganesh_rasterizer.h"
#include "cc/resources/managed_tile_state.h"
#include "cc/resources/memory_history.h"
#include "cc/resources/picture_pile_impl.h"
@@ -47,13 +48,16 @@ scoped_ptr<base::Value> RasterTaskCompletionStatsAsValue(
// by layers; they automatically register with the manager when they are
// created, and unregister from the manager when they are deleted.
class CC_EXPORT TileManager : public RasterWorkerPoolClient,
+ public GaneshRasterizerClient,
public RefCountedManager<Tile> {
public:
static scoped_ptr<TileManager> Create(
TileManagerClient* client,
ResourceProvider* resource_provider,
+ ContextProvider* context_provider,
size_t num_raster_threads,
RenderingStatsInstrumentation* rendering_stats_instrumentation,
+ bool use_ganesh,
reveman 2013/11/24 21:56:57 how do we plan to mark layers/tiles as candidates
slavi 2013/11/25 23:13:14 We need a heuristic in tile manager (search TODO(s
enne (OOO) 2013/11/25 23:14:10 I would really not like to have a global mode flag
bool use_map_image,
size_t max_transfer_buffer_usage_bytes,
size_t max_raster_usage_bytes);
@@ -115,10 +119,16 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
}
}
+ // GaneshRasterizerClient interface
+ virtual void OnGaneshRasterTaskCompleted(
+ Tile* tile, scoped_ptr<ResourcePool::Resource> resource,
+ bool was_canceled) OVERRIDE;
+
protected:
TileManager(TileManagerClient* client,
ResourceProvider* resource_provider,
scoped_ptr<RasterWorkerPool> raster_worker_pool,
+ scoped_ptr<GaneshRasterizer> ganesh_rasterizer,
size_t num_raster_threads,
size_t max_raster_usage_bytes,
RenderingStatsInstrumentation* rendering_stats_instrumentation);
@@ -174,12 +184,14 @@ class CC_EXPORT TileManager : public RasterWorkerPoolClient,
RasterWorkerPool::Task CreateImageDecodeTask(
Tile* tile, skia::LazyPixelRef* pixel_ref);
RasterWorkerPool::RasterTask CreateRasterTask(Tile* tile);
+ void CreateGaneshRasterTask(Tile* tile);
scoped_ptr<base::Value> GetMemoryRequirementsAsValue() const;
void UpdatePrioritizedTileSetIfNeeded();
TileManagerClient* client_;
scoped_ptr<ResourcePool> resource_pool_;
scoped_ptr<RasterWorkerPool> raster_worker_pool_;
+ scoped_ptr<GaneshRasterizer> ganesh_rasterizer_;
GlobalStateThatImpactsTilePriority global_state_;
typedef base::hash_map<Tile::Id, Tile*> TileMap;

Powered by Google App Engine
This is Rietveld 408576698