summaryrefslogtreecommitdiff
path: root/chromium/cc/debug/rendering_stats.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/debug/rendering_stats.h')
-rw-r--r--chromium/cc/debug/rendering_stats.h106
1 files changed, 65 insertions, 41 deletions
diff --git a/chromium/cc/debug/rendering_stats.h b/chromium/cc/debug/rendering_stats.h
index eb01a571b11..ee13706034a 100644
--- a/chromium/cc/debug/rendering_stats.h
+++ b/chromium/cc/debug/rendering_stats.h
@@ -8,55 +8,79 @@
#include "base/basictypes.h"
#include "base/time/time.h"
#include "cc/base/cc_export.h"
+#include "cc/debug/traced_value.h"
namespace cc {
-struct CC_EXPORT RenderingStats {
+// In conjunction with EnumerateFields, this allows the embedder to
+// enumerate the values in this structure without
+// having to embed references to its specific member variables. This
+// simplifies the addition of new fields to this type.
+class RenderingStatsEnumerator {
+ public:
+ virtual void AddInt64(const char* name, int64 value) = 0;
+ virtual void AddDouble(const char* name, double value) = 0;
+ virtual void AddInt(const char* name, int value) = 0;
+ virtual void AddTimeDeltaInSecondsF(const char* name,
+ const base::TimeDelta& value) = 0;
+
+ protected:
+ virtual ~RenderingStatsEnumerator() {}
+};
+
+struct CC_EXPORT MainThreadRenderingStats {
+ // Note: when adding new members, please remember to update EnumerateFields
+ // and Add in rendering_stats.cc.
+
int64 animation_frame_count;
int64 screen_frame_count;
- int64 dropped_frame_count;
- base::TimeDelta total_paint_time;
- base::TimeDelta total_record_time;
- base::TimeDelta total_rasterize_time;
- base::TimeDelta total_rasterize_time_for_now_bins_on_pending_tree;
- base::TimeDelta total_commit_time;
- base::TimeDelta best_rasterize_time;
- int64 total_commit_count;
- int64 total_pixels_painted;
- int64 total_pixels_recorded;
- int64 total_pixels_rasterized;
- int64 num_impl_thread_scrolls;
- int64 num_main_thread_scrolls;
- int64 num_layers_drawn;
- int64 num_missing_tiles;
- int64 total_deferred_image_decode_count;
- int64 total_deferred_image_cache_hit_count;
- int64 total_image_gathering_count;
- int64 total_tiles_analyzed;
- int64 solid_color_tiles_analyzed;
- base::TimeDelta total_deferred_image_decode_time;
- base::TimeDelta total_image_gathering_time;
- base::TimeDelta total_tile_analysis_time;
+ base::TimeDelta paint_time;
+ base::TimeDelta record_time;
+ base::TimeDelta commit_time;
+ int64 commit_count;
+ int64 painted_pixel_count;
+ int64 recorded_pixel_count;
+ int64 image_gathering_count;
+ base::TimeDelta image_gathering_time;
+
+ MainThreadRenderingStats();
+ void IssueTraceEvent() const;
+ scoped_ptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const;
+ void Add(const MainThreadRenderingStats& other);
+};
+
+struct CC_EXPORT ImplThreadRenderingStats {
// Note: when adding new members, please remember to update EnumerateFields
// and Add in rendering_stats.cc.
- RenderingStats();
-
- // In conjunction with EnumerateFields, this allows the embedder to
- // enumerate the values in this structure without
- // having to embed references to its specific member variables. This
- // simplifies the addition of new fields to this type.
- class Enumerator {
- public:
- virtual void AddInt64(const char* name, int64 value) = 0;
- virtual void AddDouble(const char* name, double value) = 0;
- virtual void AddInt(const char* name, int value) = 0;
- virtual void AddTimeDeltaInSecondsF(const char* name,
- const base::TimeDelta& value) = 0;
-
- protected:
- virtual ~Enumerator() {}
- };
+ int64 screen_frame_count;
+ int64 dropped_frame_count;
+ base::TimeDelta rasterize_time;
+ base::TimeDelta rasterize_time_for_now_bins_on_pending_tree;
+ base::TimeDelta best_rasterize_time;
+ int64 rasterized_pixel_count;
+ int64 impl_thread_scroll_count;
+ int64 main_thread_scroll_count;
+ int64 drawn_layer_count;
+ int64 missing_tile_count;
+ int64 deferred_image_decode_count;
+ int64 deferred_image_cache_hit_count;
+ int64 tile_analysis_count;
+ int64 solid_color_tile_analysis_count;
+ base::TimeDelta deferred_image_decode_time;
+ base::TimeDelta tile_analysis_time;
+
+ ImplThreadRenderingStats();
+ void IssueTraceEvent() const;
+ scoped_ptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const;
+ void Add(const ImplThreadRenderingStats& other);
+};
+
+struct CC_EXPORT RenderingStats {
+ typedef RenderingStatsEnumerator Enumerator;
+
+ MainThreadRenderingStats main_stats;
+ ImplThreadRenderingStats impl_stats;
// Outputs the fields in this structure to the provided enumerator.
void EnumerateFields(Enumerator* enumerator) const;