| Index: cc/tile_manager.cc
|
| diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
|
| index 612e39dcb3c87cbc9782a9176d6552e3ad78678f..d76d83299206dcd40f26450daef1625b5c6c8fe0 100644
|
| --- a/cc/tile_manager.cc
|
| +++ b/cc/tile_manager.cc
|
| @@ -463,8 +463,9 @@ void TileManager::AssignGpuMemoryToTiles() {
|
| DidTileRasterStateChange(tile, IDLE_STATE);
|
| }
|
|
|
| - size_t bytes_left = global_state_.memory_limit_in_bytes - unreleasable_bytes;
|
| + size_t bytes_allocatable = global_state_.memory_limit_in_bytes - unreleasable_bytes;
|
| size_t bytes_that_exceeded_memory_budget = 0;
|
| + size_t bytes_left = bytes_allocatable;
|
| for (TileVector::iterator it = tiles_.begin(); it != tiles_.end(); ++it) {
|
| Tile* tile = *it;
|
| size_t tile_bytes = tile->bytes_consumed_if_allocated();
|
| @@ -492,14 +493,17 @@ void TileManager::AssignGpuMemoryToTiles() {
|
| }
|
| }
|
|
|
| - if (bytes_that_exceeded_memory_budget)
|
| - ever_exceeded_memory_budget_ = true;
|
| -
|
| + ever_exceeded_memory_budget_ |= bytes_that_exceeded_memory_budget > 0;
|
| if (ever_exceeded_memory_budget_) {
|
| TRACE_COUNTER_ID2("cc", "over_memory_budget", this,
|
| "budget", global_state_.memory_limit_in_bytes,
|
| "over", bytes_that_exceeded_memory_budget);
|
| }
|
| + memory_stats_from_last_assign_.bytes_allocated =
|
| + bytes_allocatable - bytes_left;
|
| + memory_stats_from_last_assign_.bytes_unreleasable = unreleasable_bytes;
|
| + memory_stats_from_last_assign_.bytes_over =
|
| + bytes_that_exceeded_memory_budget;
|
|
|
| // Reverse two tiles_that_need_* vectors such that pop_back gets
|
| // the highest priority tile.
|
|
|