| Index: cc/tile_manager.cc
|
| diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
|
| index 527e0933fe4819f61b9d45930533db1e69bd40c5..2ad1d45f9f3df4dd016d722b3d43d33d94b8e679 100644
|
| --- a/cc/tile_manager.cc
|
| +++ b/cc/tile_manager.cc
|
| @@ -495,7 +495,7 @@ void TileManager::AssignGpuMemoryToTiles() {
|
| }
|
|
|
| size_t bytes_allocatable = global_state_.memory_limit_in_bytes - unreleasable_bytes;
|
| - size_t bytes_that_exceeded_memory_budget = 0;
|
| + size_t bytes_that_exceeded_memory_budget_in_now_bin = 0;
|
| size_t bytes_left = bytes_allocatable;
|
| for (TileVector::iterator it = tiles_.begin(); it != tiles_.end(); ++it) {
|
| Tile* tile = *it;
|
| @@ -511,7 +511,9 @@ void TileManager::AssignGpuMemoryToTiles() {
|
| }
|
| if (tile_bytes > bytes_left) {
|
| managed_tile_state.can_use_gpu_memory = false;
|
| - bytes_that_exceeded_memory_budget += tile_bytes;
|
| + if (managed_tile_state.bin[HIGH_PRIORITY_BIN] == NOW_BIN ||
|
| + managed_tile_state.bin[LOW_PRIORITY_BIN] == NOW_BIN)
|
| + bytes_that_exceeded_memory_budget_in_now_bin += tile_bytes;
|
| FreeResourcesForTile(tile);
|
| continue;
|
| }
|
| @@ -524,11 +526,12 @@ void TileManager::AssignGpuMemoryToTiles() {
|
| }
|
| }
|
|
|
| - ever_exceeded_memory_budget_ |= bytes_that_exceeded_memory_budget > 0;
|
| + ever_exceeded_memory_budget_ |=
|
| + bytes_that_exceeded_memory_budget_in_now_bin > 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);
|
| + "over", bytes_that_exceeded_memory_budget_in_now_bin);
|
| }
|
| memory_stats_from_last_assign_.total_budget_in_bytes =
|
| global_state_.memory_limit_in_bytes;
|
| @@ -536,7 +539,7 @@ void TileManager::AssignGpuMemoryToTiles() {
|
| 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;
|
| + bytes_that_exceeded_memory_budget_in_now_bin;
|
|
|
| // Reverse two tiles_that_need_* vectors such that pop_back gets
|
| // the highest priority tile.
|
|
|