| Index: cc/debug/rendering_stats.cc
|
| diff --git a/cc/debug/rendering_stats.cc b/cc/debug/rendering_stats.cc
|
| index 12c54530c71e573e09e640fd79f5e962f85ed34b..e8a758cf903612a43342c2d088ac5e5bddd00261 100644
|
| --- a/cc/debug/rendering_stats.cc
|
| +++ b/cc/debug/rendering_stats.cc
|
| @@ -2,98 +2,185 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "base/values.h"
|
| #include "cc/debug/rendering_stats.h"
|
|
|
| namespace cc {
|
|
|
| -RenderingStats::RenderingStats()
|
| - : animation_frame_count(0),
|
| - screen_frame_count(0),
|
| +MainThreadRenderingStats::MainThreadRenderingStats()
|
| + : animation_frame_count(0),
|
| + screen_frame_count(0),
|
| + commit_count(0),
|
| + painted_pixel_count(0),
|
| + recorded_pixel_count(0),
|
| + image_gathering_count(0) {}
|
| +
|
| +ImplThreadRenderingStats::ImplThreadRenderingStats()
|
| + : screen_frame_count(0),
|
| dropped_frame_count(0),
|
| - total_commit_count(0),
|
| - total_pixels_painted(0),
|
| - total_pixels_recorded(0),
|
| - total_pixels_rasterized(0),
|
| - num_impl_thread_scrolls(0),
|
| - num_main_thread_scrolls(0),
|
| - num_layers_drawn(0),
|
| - num_missing_tiles(0),
|
| - total_deferred_image_decode_count(0),
|
| - total_deferred_image_cache_hit_count(0),
|
| - total_image_gathering_count(0),
|
| - total_tiles_analyzed(0),
|
| - solid_color_tiles_analyzed(0) {}
|
| + rasterized_pixel_count(0),
|
| + impl_thread_scroll_count(0),
|
| + main_thread_scroll_count(0),
|
| + drawn_layer_count(0),
|
| + missing_tile_count(0),
|
| + deferred_image_decode_count(0),
|
| + deferred_image_cache_hit_count(0),
|
| + tile_analysis_count(0),
|
| + solid_color_tile_analysis_count(0) {}
|
|
|
| -void RenderingStats::EnumerateFields(Enumerator* enumerator) const {
|
| +void MainThreadRenderingStats::EnumerateFields(
|
| + RenderingStatsEnumerator* enumerator) const {
|
| enumerator->AddInt64("numAnimationFrames", animation_frame_count);
|
| enumerator->AddInt64("numFramesSentToScreen", screen_frame_count);
|
| - enumerator->AddInt64("droppedFrameCount", dropped_frame_count);
|
| enumerator->AddDouble("totalPaintTimeInSeconds",
|
| - total_paint_time.InSecondsF());
|
| + paint_time.InSecondsF());
|
| enumerator->AddDouble("totalRecordTimeInSeconds",
|
| - total_record_time.InSecondsF());
|
| + record_time.InSecondsF());
|
| + enumerator->AddDouble("totalCommitTimeInSeconds",
|
| + commit_time.InSecondsF());
|
| + enumerator->AddInt64("totalCommitCount", commit_count);
|
| + enumerator->AddInt64("totalPixelsPainted", painted_pixel_count);
|
| + enumerator->AddInt64("totalPixelsRecorded", recorded_pixel_count);
|
| + enumerator->AddInt64("totalImageGatheringCount",
|
| + image_gathering_count);
|
| + enumerator->AddDouble("totalImageGatheringTimeInSeconds",
|
| + image_gathering_time.InSecondsF());
|
| +}
|
| +
|
| +void ImplThreadRenderingStats::EnumerateFields(
|
| + RenderingStatsEnumerator* enumerator) const {
|
| + enumerator->AddInt64("numFramesSentToScreen", screen_frame_count);
|
| + enumerator->AddInt64("droppedFrameCount", dropped_frame_count);
|
| enumerator->AddDouble("totalRasterizeTimeInSeconds",
|
| - total_rasterize_time.InSecondsF());
|
| + rasterize_time.InSecondsF());
|
| enumerator->AddDouble(
|
| "totalRasterizeTimeForNowBinsOnPendingTree",
|
| - total_rasterize_time_for_now_bins_on_pending_tree.InSecondsF());
|
| - enumerator->AddDouble("totalCommitTimeInSeconds",
|
| - total_commit_time.InSecondsF());
|
| + rasterize_time_for_now_bins_on_pending_tree.InSecondsF());
|
| enumerator->AddDouble("bestRasterizeTimeInSeconds",
|
| best_rasterize_time.InSecondsF());
|
| - enumerator->AddInt64("totalCommitCount", total_commit_count);
|
| - enumerator->AddInt64("totalPixelsPainted", total_pixels_painted);
|
| - enumerator->AddInt64("totalPixelsRecorded", total_pixels_recorded);
|
| - enumerator->AddInt64("totalPixelsRasterized", total_pixels_rasterized);
|
| - enumerator->AddInt64("numImplThreadScrolls", num_impl_thread_scrolls);
|
| - enumerator->AddInt64("numMainThreadScrolls", num_main_thread_scrolls);
|
| - enumerator->AddInt64("numLayersDrawn", num_layers_drawn);
|
| - enumerator->AddInt64("numMissingTiles", num_missing_tiles);
|
| + enumerator->AddInt64("totalPixelsRasterized", rasterized_pixel_count);
|
| + enumerator->AddInt64("numImplThreadScrolls", impl_thread_scroll_count);
|
| + enumerator->AddInt64("numMainThreadScrolls", main_thread_scroll_count);
|
| + enumerator->AddInt64("numLayersDrawn", drawn_layer_count);
|
| + enumerator->AddInt64("numMissingTiles", missing_tile_count);
|
| enumerator->AddInt64("totalDeferredImageDecodeCount",
|
| - total_deferred_image_decode_count);
|
| - enumerator->AddInt64("totalTilesAnalyzed", total_tiles_analyzed);
|
| + deferred_image_decode_count);
|
| + enumerator->AddInt64("totalTilesAnalyzed", tile_analysis_count);
|
| enumerator->AddInt64("solidColorTilesAnalyzed",
|
| - solid_color_tiles_analyzed);
|
| + solid_color_tile_analysis_count);
|
| enumerator->AddInt64("totalDeferredImageCacheHitCount",
|
| - total_deferred_image_cache_hit_count);
|
| - enumerator->AddInt64("totalImageGatheringCount",
|
| - total_image_gathering_count);
|
| + deferred_image_cache_hit_count);
|
| enumerator->AddDouble("totalDeferredImageDecodeTimeInSeconds",
|
| - total_deferred_image_decode_time.InSecondsF());
|
| - enumerator->AddDouble("totalImageGatheringTimeInSeconds",
|
| - total_image_gathering_time.InSecondsF());
|
| + deferred_image_decode_time.InSecondsF());
|
| enumerator->AddDouble("totalTileAnalysisTimeInSeconds",
|
| - total_tile_analysis_time.InSecondsF());
|
| + tile_analysis_time.InSecondsF());
|
| }
|
|
|
| -void RenderingStats::Add(const RenderingStats& other) {
|
| +void RenderingStats::EnumerateFields(Enumerator* enumerator) const {
|
| + main_stats.EnumerateFields(enumerator);
|
| + impl_stats.EnumerateFields(enumerator);
|
| +}
|
| +
|
| +scoped_ptr<base::debug::ConvertableToTraceFormat>
|
| +MainThreadRenderingStats::AsTraceableData() const {
|
| + scoped_ptr<base::DictionaryValue> record_data(new base::DictionaryValue());
|
| + record_data->SetInteger("animation_frame_count",
|
| + animation_frame_count);
|
| + record_data->SetInteger("screen_frame_count",
|
| + screen_frame_count);
|
| + record_data->SetDouble("paint_time",
|
| + paint_time.InSecondsF());
|
| + record_data->SetDouble("record_time",
|
| + record_time.InSecondsF());
|
| + record_data->SetDouble("commit_time",
|
| + commit_time.InSecondsF());
|
| + record_data->SetInteger("commit_count",
|
| + commit_count);
|
| + record_data->SetInteger("painted_pixel_count",
|
| + painted_pixel_count);
|
| + record_data->SetInteger("recorded_pixel_count",
|
| + recorded_pixel_count);
|
| + record_data->SetInteger("image_gathering_count",
|
| + image_gathering_count);
|
| + return TracedValue::FromValue(record_data.release());
|
| +}
|
| +
|
| +scoped_ptr<base::debug::ConvertableToTraceFormat>
|
| +ImplThreadRenderingStats::AsTraceableData() const {
|
| + scoped_ptr<base::DictionaryValue> record_data(new base::DictionaryValue());
|
| + record_data->SetInteger("screen_frame_count",
|
| + screen_frame_count);
|
| + record_data->SetInteger("dropped_frame_count",
|
| + dropped_frame_count);
|
| + record_data->SetDouble("rasterize_time",
|
| + rasterize_time.InSecondsF());
|
| + record_data->SetDouble(
|
| + "rasterize_time_for_now_bins_on_pending_tree",
|
| + rasterize_time_for_now_bins_on_pending_tree.InSecondsF());
|
| + record_data->SetDouble("best_rasterize_time",
|
| + best_rasterize_time.InSecondsF());
|
| + record_data->SetInteger("rasterized_pixel_count",
|
| + rasterized_pixel_count);
|
| + record_data->SetInteger("impl_thread_scroll_count",
|
| + impl_thread_scroll_count);
|
| + record_data->SetInteger("main_thread_scroll_count",
|
| + main_thread_scroll_count);
|
| + record_data->SetInteger("drawn_layer_count",
|
| + drawn_layer_count);
|
| + record_data->SetInteger("missing_tile_count",
|
| + missing_tile_count);
|
| + record_data->SetInteger("deferred_image_decode_count",
|
| + deferred_image_decode_count);
|
| + record_data->SetInteger("deferred_image_cache_hit_count",
|
| + deferred_image_cache_hit_count);
|
| + record_data->SetInteger("tile_analysis_count",
|
| + tile_analysis_count);
|
| + record_data->SetInteger("solid_color_tile_analysis_count",
|
| + solid_color_tile_analysis_count);
|
| + record_data->SetDouble("deferred_image_decode_time",
|
| + deferred_image_decode_time.InSecondsF());
|
| + record_data->SetDouble("tile_analysis_time",
|
| + tile_analysis_time.InSecondsF());
|
| + return TracedValue::FromValue(record_data.release());
|
| +}
|
| +
|
| +
|
| +void MainThreadRenderingStats::Add(const MainThreadRenderingStats& other) {
|
| animation_frame_count += other.animation_frame_count;
|
| screen_frame_count += other.screen_frame_count;
|
| + paint_time += other.paint_time;
|
| + record_time += other.record_time;
|
| + commit_time += other.commit_time;
|
| + commit_count += other.commit_count;
|
| + painted_pixel_count += other.painted_pixel_count;
|
| + recorded_pixel_count += other.recorded_pixel_count;
|
| + image_gathering_count += other.image_gathering_count;
|
| + image_gathering_time += other.image_gathering_time;
|
| +}
|
| +
|
| +void ImplThreadRenderingStats::Add(const ImplThreadRenderingStats& other) {
|
| + screen_frame_count += other.screen_frame_count;
|
| dropped_frame_count += other.dropped_frame_count;
|
| - total_paint_time += other.total_paint_time;
|
| - total_record_time += other.total_record_time;
|
| - total_rasterize_time += other.total_rasterize_time;
|
| - total_rasterize_time_for_now_bins_on_pending_tree +=
|
| - other.total_rasterize_time_for_now_bins_on_pending_tree;
|
| - total_commit_time += other.total_commit_time;
|
| + rasterize_time += other.rasterize_time;
|
| + rasterize_time_for_now_bins_on_pending_tree +=
|
| + other.rasterize_time_for_now_bins_on_pending_tree;
|
| best_rasterize_time += other.best_rasterize_time;
|
| - total_commit_count += other.total_commit_count;
|
| - total_pixels_painted += other.total_pixels_painted;
|
| - total_pixels_recorded += other.total_pixels_recorded;
|
| - total_pixels_rasterized += other.total_pixels_rasterized;
|
| - num_impl_thread_scrolls += other.num_impl_thread_scrolls;
|
| - num_main_thread_scrolls += other.num_main_thread_scrolls;
|
| - num_layers_drawn += other.num_layers_drawn;
|
| - num_missing_tiles += other.num_missing_tiles;
|
| - total_deferred_image_decode_count += other.total_deferred_image_decode_count;
|
| - total_deferred_image_cache_hit_count +=
|
| - other.total_deferred_image_cache_hit_count;
|
| - total_image_gathering_count += other.total_image_gathering_count;
|
| - total_deferred_image_decode_time += other.total_deferred_image_decode_time;
|
| - total_image_gathering_time += other.total_image_gathering_time;
|
| - total_tiles_analyzed += other.total_tiles_analyzed;
|
| - solid_color_tiles_analyzed += other.solid_color_tiles_analyzed;
|
| - total_tile_analysis_time += other.total_tile_analysis_time;
|
| + rasterized_pixel_count += other.rasterized_pixel_count;
|
| + impl_thread_scroll_count += other.impl_thread_scroll_count;
|
| + main_thread_scroll_count += other.main_thread_scroll_count;
|
| + drawn_layer_count += other.drawn_layer_count;
|
| + missing_tile_count += other.missing_tile_count;
|
| + deferred_image_decode_count += other.deferred_image_decode_count;
|
| + deferred_image_cache_hit_count += other.deferred_image_cache_hit_count;
|
| + deferred_image_decode_time += other.deferred_image_decode_time;
|
| + tile_analysis_count += other.tile_analysis_count;
|
| + solid_color_tile_analysis_count += other.solid_color_tile_analysis_count;
|
| + tile_analysis_time += other.tile_analysis_time;
|
| +}
|
| +
|
| +void RenderingStats::Add(const RenderingStats& other) {
|
| + main_stats.Add(other.main_stats);
|
| + impl_stats.Add(other.impl_stats);
|
| }
|
|
|
| } // namespace cc
|
|
|