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

Unified Diff: cc/tiles/tile_manager.cc

Issue 1227183002: Revert of cc: Make tile manager object persist for the length of LTHI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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
« no previous file with comments | « cc/tiles/tile_manager.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tiles/tile_manager.cc
diff --git a/cc/tiles/tile_manager.cc b/cc/tiles/tile_manager.cc
index e0aa96a394c8c6871893b652be81e65491ab4749..e92a3df33b30d368d9a0058b51b60785663f0eba 100644
--- a/cc/tiles/tile_manager.cc
+++ b/cc/tiles/tile_manager.cc
@@ -228,19 +228,24 @@
scoped_ptr<TileManager> TileManager::Create(
TileManagerClient* client,
base::SequencedTaskRunner* task_runner,
+ ResourcePool* resource_pool,
+ TileTaskRunner* tile_task_runner,
size_t scheduled_raster_task_limit) {
- return make_scoped_ptr(
- new TileManager(client, task_runner, scheduled_raster_task_limit));
+ return make_scoped_ptr(new TileManager(client, task_runner, resource_pool,
+ tile_task_runner,
+ scheduled_raster_task_limit));
}
TileManager::TileManager(
TileManagerClient* client,
const scoped_refptr<base::SequencedTaskRunner>& task_runner,
+ ResourcePool* resource_pool,
+ TileTaskRunner* tile_task_runner,
size_t scheduled_raster_task_limit)
: client_(client),
task_runner_(task_runner),
- resource_pool_(nullptr),
- tile_task_runner_(nullptr),
+ resource_pool_(resource_pool),
+ tile_task_runner_(tile_task_runner),
scheduled_raster_task_limit_(scheduled_raster_task_limit),
all_tiles_that_need_to_be_rasterized_are_scheduled_(true),
did_check_for_completed_tasks_since_last_schedule_tasks_(true),
@@ -254,16 +259,12 @@
base::Unretained(this))),
has_scheduled_tile_tasks_(false),
prepare_tiles_count_(0u) {
+ tile_task_runner_->SetClient(this);
}
TileManager::~TileManager() {
- FinishTasksAndCleanUp();
-}
-
-void TileManager::FinishTasksAndCleanUp() {
- if (!tile_task_runner_)
- return;
-
+ // Reset global state and manage. This should cause
+ // our memory usage to drop to zero.
global_state_ = GlobalStateThatImpactsTilePriority();
TileTaskQueue empty;
@@ -277,21 +278,6 @@
FreeResourcesForReleasedTiles();
CleanUpReleasedTiles();
-
- tile_task_runner_ = nullptr;
- resource_pool_ = nullptr;
- more_tiles_need_prepare_check_notifier_.Cancel();
- signals_check_notifier_.Cancel();
-}
-
-void TileManager::SetResources(ResourcePool* resource_pool,
- TileTaskRunner* tile_task_runner) {
- DCHECK(!tile_task_runner_);
- DCHECK(tile_task_runner);
-
- resource_pool_ = resource_pool;
- tile_task_runner_ = tile_task_runner;
- tile_task_runner_->SetClient(this);
}
void TileManager::Release(Tile* tile) {
@@ -338,8 +324,6 @@
void TileManager::DidFinishRunningTileTasks(TaskSet task_set) {
TRACE_EVENT1("cc", "TileManager::DidFinishRunningTileTasks", "task_set",
TaskSetName(task_set));
- DCHECK(resource_pool_);
- DCHECK(tile_task_runner_);
switch (task_set) {
case ALL: {
@@ -376,18 +360,12 @@
NOTREACHED();
}
-bool TileManager::PrepareTiles(
+void TileManager::PrepareTiles(
const GlobalStateThatImpactsTilePriority& state) {
++prepare_tiles_count_;
TRACE_EVENT1("cc", "TileManager::PrepareTiles", "prepare_tiles_id",
prepare_tiles_count_);
-
- if (!tile_task_runner_) {
- TRACE_EVENT_INSTANT0("cc", "PrepareTiles aborted",
- TRACE_EVENT_SCOPE_THREAD);
- return false;
- }
signals_.reset();
global_state_ = state;
@@ -425,16 +403,10 @@
TRACE_COUNTER_ID1("cc", "unused_memory_bytes", this,
resource_pool_->total_memory_usage_bytes() -
resource_pool_->acquired_memory_usage_bytes());
- return true;
}
void TileManager::Flush() {
TRACE_EVENT0("cc", "TileManager::Flush");
-
- if (!tile_task_runner_) {
- TRACE_EVENT_INSTANT0("cc", "Flush aborted", TRACE_EVENT_SCOPE_THREAD);
- return;
- }
tile_task_runner_->CheckForCompletedTasks();
@@ -532,9 +504,6 @@
PrioritizedTileVector* tiles_that_need_to_be_rasterized) {
TRACE_EVENT_BEGIN0("cc", "TileManager::AssignGpuMemoryToTiles");
- DCHECK(resource_pool_);
- DCHECK(tile_task_runner_);
-
// Maintain the list of released resources that can potentially be re-used
// or deleted. If this operation becomes expensive too, only do this after
// some resource(s) was returned. Note that in that case, one also need to
@@ -852,9 +821,6 @@
int layer_id,
int source_frame_number,
int flags) {
- // We need to have a tile task worker pool to do anything meaningful with
- // tiles.
- DCHECK(tile_task_runner_);
ScopedTilePtr tile(new Tile(this, desired_texture_size, content_rect,
contents_scale, layer_id, source_frame_number,
flags));
« no previous file with comments | « cc/tiles/tile_manager.h ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698