summaryrefslogtreecommitdiffstats
path: root/cc/resources
diff options
context:
space:
mode:
authorvmpstr@chromium.org <vmpstr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-05 19:12:09 +0000
committervmpstr@chromium.org <vmpstr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-05 19:12:09 +0000
commit31aab133ff26abd21532f2216036a4289e7666b4 (patch)
tree0a99a795fb9ec2b096b2b9179ee2e30853fa1548 /cc/resources
parent3a89544aa19ee3a9895a4102a1ee0677125425ee (diff)
downloadchromium_src-31aab133ff26abd21532f2216036a4289e7666b4.zip
chromium_src-31aab133ff26abd21532f2216036a4289e7666b4.tar.gz
chromium_src-31aab133ff26abd21532f2216036a4289e7666b4.tar.bz2
cc: Added scheduled priority into tracing
This patch adds a priority onto tile, which is updated during the assign gpu memory call. This should allow us to visually inspect the order in which the tiles are scheduled (in trace-viewer) R=nduca@chromium.org Review URL: https://chromiumcodereview.appspot.com/21659002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215651 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources')
-rw-r--r--cc/resources/managed_tile_state.cc4
-rw-r--r--cc/resources/managed_tile_state.h3
-rw-r--r--cc/resources/tile_manager.cc4
3 files changed, 10 insertions, 1 deletions
diff --git a/cc/resources/managed_tile_state.cc b/cc/resources/managed_tile_state.cc
index e375a93..f5607ea 100644
--- a/cc/resources/managed_tile_state.cc
+++ b/cc/resources/managed_tile_state.cc
@@ -54,7 +54,8 @@ ManagedTileState::ManagedTileState()
required_for_activation(false),
time_to_needed_in_seconds(std::numeric_limits<float>::infinity()),
distance_to_visible_in_pixels(std::numeric_limits<float>::infinity()),
- visible_and_ready_to_draw(false) {
+ visible_and_ready_to_draw(false),
+ scheduled_priority(0) {
for (int i = 0; i < NUM_TREES; ++i) {
tree_bin[i] = NEVER_BIN;
bin[i] = NEVER_BIN;
@@ -113,6 +114,7 @@ scoped_ptr<base::Value> ManagedTileState::AsValue() const {
"is_transparent",
tile_versions[raster_mode].mode_ == TileVersion::SOLID_COLOR_MODE &&
!SkColorGetA(tile_versions[raster_mode].solid_color_));
+ state->SetInteger("scheduled_priority", scheduled_priority);
return state.PassAs<base::Value>();
}
diff --git a/cc/resources/managed_tile_state.h b/cc/resources/managed_tile_state.h
index 1d478dd..2f61b39 100644
--- a/cc/resources/managed_tile_state.h
+++ b/cc/resources/managed_tile_state.h
@@ -156,6 +156,9 @@ class CC_EXPORT ManagedTileState {
float time_to_needed_in_seconds;
float distance_to_visible_in_pixels;
bool visible_and_ready_to_draw;
+
+ // Priority for this state from the last time we assigned memory.
+ unsigned scheduled_priority;
};
} // namespace cc
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index 0c4103e..ec9765f 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -510,12 +510,16 @@ void TileManager::AssignGpuMemoryToTiles(
size_t bytes_left = bytes_allocatable;
size_t resources_left = resources_allocatable;
bool oomed = false;
+
+ unsigned schedule_priority = 1u;
for (TileRefVector::const_iterator it = sorted_tiles.begin();
it != sorted_tiles.end();
++it) {
Tile* tile = it->get();
ManagedTileState& mts = tile->managed_state();
+ mts.scheduled_priority = schedule_priority++;
+
mts.raster_mode = DetermineRasterMode(tile);
ManagedTileState::TileVersion& tile_version =