diff options
author | vmpstr@chromium.org <vmpstr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-05 19:12:09 +0000 |
---|---|---|
committer | vmpstr@chromium.org <vmpstr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-05 19:12:09 +0000 |
commit | 31aab133ff26abd21532f2216036a4289e7666b4 (patch) | |
tree | 0a99a795fb9ec2b096b2b9179ee2e30853fa1548 /cc/resources | |
parent | 3a89544aa19ee3a9895a4102a1ee0677125425ee (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | cc/resources/managed_tile_state.h | 3 | ||||
-rw-r--r-- | cc/resources/tile_manager.cc | 4 |
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 = |