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

Unified Diff: cc/tile_manager.cc

Issue 12096112: [cc] Trace detailed tile info when --trace-all-rendered-frames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: cc/tile_manager.cc
diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
index 612e39dcb3c87cbc9782a9176d6552e3ad78678f..01f3a767eb66efa354f421ae9b53332147383954 100644
--- a/cc/tile_manager.cc
+++ b/cc/tile_manager.cc
@@ -94,6 +94,44 @@ scoped_ptr<base::Value> TileManagerBinAsValue(TileManagerBin bin) {
}
}
+scoped_ptr<base::Value> TileManagerBinPriorityAsValue(
+ TileManagerBinPriority bin_priority) {
+ switch (bin_priority) {
+ case HIGH_PRIORITY_BIN:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "HIGH_PRIORITY_BIN"));
+ case LOW_PRIORITY_BIN:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "LOW_PRIORITY_BIN"));
+ default:
+ DCHECK(false) << "Unrecognized TileManagerBinPriority value";
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "<unknown TileManagerBinPriority value>"));
+ }
+}
+
+scoped_ptr<base::Value> TileRasterStateAsValue(
+ TileRasterState raster_state) {
+ switch (raster_state) {
+ case IDLE_STATE:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "IDLE_STATE"));
+ case WAITING_FOR_RASTER_STATE:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "WAITING_FOR_RASTER_STATE"));
+ case RASTER_STATE:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "RASTER_STATE"));
+ case SET_PIXELS_STATE:
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "SET_PIXELS_STATE"));
+ default:
+ DCHECK(false) << "Unrecognized TileRasterState value";
+ return scoped_ptr<base::Value>(base::Value::CreateStringValue(
+ "<unknown TileRasterState value>"));
+ }
+}
+
ManagedTileState::ManagedTileState()
: can_use_gpu_memory(false),
can_be_freed(true),
@@ -111,6 +149,21 @@ ManagedTileState::~ManagedTileState() {
DCHECK(!resource_is_being_initialized);
}
+scoped_ptr<base::Value> ManagedTileState::AsValue() const {
+ scoped_ptr<base::DictionaryValue> state(new base::DictionaryValue());
+ state->SetBoolean("can_use_gpu_memory", can_use_gpu_memory);
+ state->SetBoolean("can_be_freed", can_be_freed);
+ state->SetBoolean("has_resource", resource.get() != 0);
+ state->SetBoolean("resource_is_being_initialized", resource_is_being_initialized);
+ state->Set("raster_state", TileRasterStateAsValue(raster_state).release());
+ state->Set("bin.0", TileManagerBinAsValue(bin[0]).release());
+ state->Set("bin.1", TileManagerBinAsValue(bin[0]).release());
+ state->Set("gpu_memmgr_stats_bin", TileManagerBinAsValue(bin[0]).release());
+ state->Set("resolution", TileResolutionAsValue(resolution).release());
+ state->SetDouble("time_to_needed_in_seconds", time_to_needed_in_seconds);
+ return state.PassAs<base::Value>();
+}
+
TileManager::TileManager(
TileManagerClient* client,
ResourceProvider* resource_provider,
@@ -316,7 +369,8 @@ void TileManager::ManageTiles() {
// Assign gpu memory and determine what tiles need to be rasterized.
AssignGpuMemoryToTiles();
- TRACE_EVENT_INSTANT1("cc", "DidManage", "state", ValueToString(AsValue()));
+ TRACE_EVENT_INSTANT1("cc", "DidManage", "state",
+ ValueToString(AsValue()));
// Finally, kick the rasterizer.
DispatchMoreTasks();
@@ -380,6 +434,12 @@ scoped_ptr<base::Value> TileManager::AsValue() const {
state->Set("memory_requirements", GetMemoryRequirementsAsValue().release());
return state.PassAs<base::Value>();
}
+scoped_ptr<base::Value> TileManager::AllTilesAsValue() const {
+ scoped_ptr<base::ListValue> state(new base::ListValue());
+ for (size_t i = 0; i < tiles_.size(); i++)
+ state->Append(tiles_[i]->AsValue().release());
+ return state.PassAs<base::Value>();
+}
scoped_ptr<base::Value> TileManager::GetMemoryRequirementsAsValue() const {
scoped_ptr<base::DictionaryValue> requirements(

Powered by Google App Engine
This is Rietveld 408576698