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

Side by Side Diff: cc/resources/tile_manager.cc

Issue 643993005: Remove limit on number of resources in cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/tile_manager.h" 5 #include "cc/resources/tile_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <string> 9 #include <string>
10 10
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 // resource(s) was returned. Note that in that case, one also need to 540 // resource(s) was returned. Note that in that case, one also need to
541 // invalidate when releasing some resource from the pool. 541 // invalidate when releasing some resource from the pool.
542 resource_pool_->CheckBusyResources(); 542 resource_pool_->CheckBusyResources();
543 543
544 // Now give memory out to the tiles until we're out, and build 544 // Now give memory out to the tiles until we're out, and build
545 // the needs-to-be-rasterized queue. 545 // the needs-to-be-rasterized queue.
546 unsigned schedule_priority = 1u; 546 unsigned schedule_priority = 1u;
547 all_tiles_that_need_to_be_rasterized_are_scheduled_ = true; 547 all_tiles_that_need_to_be_rasterized_are_scheduled_ = true;
548 bool had_enough_memory_to_schedule_tiles_needed_now = true; 548 bool had_enough_memory_to_schedule_tiles_needed_now = true;
549 549
550 MemoryUsage hard_memory_limit(global_state_.hard_memory_limit_in_bytes, 550 MemoryUsage hard_memory_limit(global_state_.hard_memory_limit_in_bytes);
551 global_state_.num_resources_limit); 551 MemoryUsage soft_memory_limit(global_state_.soft_memory_limit_in_bytes);
552 MemoryUsage soft_memory_limit(global_state_.soft_memory_limit_in_bytes, 552 MemoryUsage memory_usage(resource_pool_->acquired_memory_usage_bytes());
553 global_state_.num_resources_limit);
554 MemoryUsage memory_usage(resource_pool_->acquired_memory_usage_bytes(),
555 resource_pool_->acquired_resource_count());
556 553
557 eviction_priority_queue_is_up_to_date_ = false; 554 eviction_priority_queue_is_up_to_date_ = false;
558 client_->BuildRasterQueue(&raster_priority_queue_, 555 client_->BuildRasterQueue(&raster_priority_queue_,
559 global_state_.tree_priority); 556 global_state_.tree_priority);
560 557
561 while (!raster_priority_queue_.IsEmpty()) { 558 while (!raster_priority_queue_.IsEmpty()) {
562 Tile* tile = raster_priority_queue_.Top(); 559 Tile* tile = raster_priority_queue_.Top();
563 TilePriority priority = tile->combined_priority(); 560 TilePriority priority = tile->combined_priority();
564 561
565 if (TilePriorityViolatesMemoryPolicy(priority)) { 562 if (TilePriorityViolatesMemoryPolicy(priority)) {
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
870 void TileManager::CheckIfReadyToActivate() { 867 void TileManager::CheckIfReadyToActivate() {
871 TRACE_EVENT0("cc", "TileManager::CheckIfReadyToActivate"); 868 TRACE_EVENT0("cc", "TileManager::CheckIfReadyToActivate");
872 869
873 rasterizer_->CheckForCompletedTasks(); 870 rasterizer_->CheckForCompletedTasks();
874 did_check_for_completed_tasks_since_last_schedule_tasks_ = true; 871 did_check_for_completed_tasks_since_last_schedule_tasks_ = true;
875 872
876 if (IsReadyToActivate()) 873 if (IsReadyToActivate())
877 client_->NotifyReadyToActivate(); 874 client_->NotifyReadyToActivate();
878 } 875 }
879 876
880 TileManager::MemoryUsage::MemoryUsage() : memory_bytes_(0), resource_count_(0) { 877 TileManager::MemoryUsage::MemoryUsage() : memory_bytes_(0) {
881 } 878 }
882 879
883 TileManager::MemoryUsage::MemoryUsage(int64 memory_bytes, int resource_count) 880 TileManager::MemoryUsage::MemoryUsage(int64 memory_bytes)
884 : memory_bytes_(memory_bytes), resource_count_(resource_count) { 881 : memory_bytes_(memory_bytes) {
885 } 882 }
886 883
887 // static 884 // static
888 TileManager::MemoryUsage TileManager::MemoryUsage::FromConfig( 885 TileManager::MemoryUsage TileManager::MemoryUsage::FromConfig(
889 const gfx::Size& size, 886 const gfx::Size& size,
890 ResourceFormat format) { 887 ResourceFormat format) {
891 return MemoryUsage(Resource::MemorySizeBytes(size, format), 1); 888 return MemoryUsage(Resource::MemorySizeBytes(size, format));
892 } 889 }
893 890
894 // static 891 // static
895 TileManager::MemoryUsage TileManager::MemoryUsage::FromTile(const Tile* tile) { 892 TileManager::MemoryUsage TileManager::MemoryUsage::FromTile(const Tile* tile) {
896 const ManagedTileState& mts = tile->managed_state(); 893 const ManagedTileState& mts = tile->managed_state();
897 if (mts.draw_info.resource_) { 894 if (mts.draw_info.resource_) {
898 return MemoryUsage::FromConfig(tile->size(), 895 return MemoryUsage::FromConfig(tile->size(),
899 mts.draw_info.resource_->format()); 896 mts.draw_info.resource_->format());
900 } 897 }
901 return MemoryUsage(); 898 return MemoryUsage();
902 } 899 }
903 900
904 TileManager::MemoryUsage& TileManager::MemoryUsage::operator+=( 901 TileManager::MemoryUsage& TileManager::MemoryUsage::operator+=(
905 const MemoryUsage& other) { 902 const MemoryUsage& other) {
906 memory_bytes_ += other.memory_bytes_; 903 memory_bytes_ += other.memory_bytes_;
907 resource_count_ += other.resource_count_;
908 return *this; 904 return *this;
909 } 905 }
910 906
911 TileManager::MemoryUsage& TileManager::MemoryUsage::operator-=( 907 TileManager::MemoryUsage& TileManager::MemoryUsage::operator-=(
912 const MemoryUsage& other) { 908 const MemoryUsage& other) {
913 memory_bytes_ -= other.memory_bytes_; 909 memory_bytes_ -= other.memory_bytes_;
914 resource_count_ -= other.resource_count_;
915 return *this; 910 return *this;
916 } 911 }
917 912
918 TileManager::MemoryUsage TileManager::MemoryUsage::operator-( 913 TileManager::MemoryUsage TileManager::MemoryUsage::operator-(
919 const MemoryUsage& other) { 914 const MemoryUsage& other) {
920 MemoryUsage result = *this; 915 MemoryUsage result = *this;
921 result -= other; 916 result -= other;
922 return result; 917 return result;
923 } 918 }
924 919
925 bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const { 920 bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const {
926 return memory_bytes_ > limit.memory_bytes_ || 921 return memory_bytes_ > limit.memory_bytes_;
927 resource_count_ > limit.resource_count_;
928 } 922 }
929 923
930 } // namespace cc 924 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698