diff options
author | dominikg@chromium.org <dominikg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-21 15:08:06 +0000 |
---|---|---|
committer | dominikg@chromium.org <dominikg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-21 15:08:06 +0000 |
commit | dfb6e5ee242f8d672ba1ffb3ca39b06be5ce1332 (patch) | |
tree | 563d684ce17240697ad5ec8b0bff64c24873c131 /cc/debug/rendering_stats.h | |
parent | c1b7d3524c10d8405d95bc13d12ae196b1de8300 (diff) | |
download | chromium_src-dfb6e5ee242f8d672ba1ffb3ca39b06be5ce1332.zip chromium_src-dfb6e5ee242f8d672ba1ffb3ca39b06be5ce1332.tar.gz chromium_src-dfb6e5ee242f8d672ba1ffb3ca39b06be5ce1332.tar.bz2 |
Add duration estimation data to RenderingStats.
The deadline scheduler in the Chrome compositor relies on runtime estimations of
various stages in the rendering pipeline. This patch adds the actual and
estimated runtimes of these stages to RenderingStats so they will be available
in tracing output. This will allow us to tune the estimators.
BUG=243459
Review URL: https://codereview.chromium.org/363003002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284428 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/debug/rendering_stats.h')
-rw-r--r-- | cc/debug/rendering_stats.h | 80 |
1 files changed, 54 insertions, 26 deletions
diff --git a/cc/debug/rendering_stats.h b/cc/debug/rendering_stats.h index bd3b7c7..a6edff1 100644 --- a/cc/debug/rendering_stats.h +++ b/cc/debug/rendering_stats.h @@ -5,45 +5,73 @@ #ifndef CC_DEBUG_RENDERING_STATS_H_ #define CC_DEBUG_RENDERING_STATS_H_ +#include <list> + #include "base/basictypes.h" #include "base/time/time.h" +#include "base/values.h" #include "cc/base/cc_export.h" #include "cc/debug/traced_value.h" namespace cc { -struct CC_EXPORT MainThreadRenderingStats { - // Note: when adding new members, please remember to update EnumerateFields - // and Add in rendering_stats.cc. +struct CC_EXPORT RenderingStats { + // Stores a sequence of TimeDelta objects. + class CC_EXPORT TimeDeltaList { + public: + TimeDeltaList(); + ~TimeDeltaList(); - int64 frame_count; - base::TimeDelta paint_time; - int64 painted_pixel_count; - base::TimeDelta record_time; - int64 recorded_pixel_count; + void Append(base::TimeDelta value); + scoped_ptr<base::ListValue> AsListValueInMilliseconds() const; + void Add(const TimeDeltaList& other); - MainThreadRenderingStats(); - scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const; - void Add(const MainThreadRenderingStats& other); -}; + private: + std::list<base::TimeDelta> values; + }; -struct CC_EXPORT ImplThreadRenderingStats { - // Note: when adding new members, please remember to update EnumerateFields - // and Add in rendering_stats.cc. + struct CC_EXPORT MainThreadRenderingStats { + // Note: when adding new members, please remember to update Add in + // rendering_stats.cc. - int64 frame_count; - base::TimeDelta rasterize_time; - base::TimeDelta analysis_time; - int64 rasterized_pixel_count; - int64 visible_content_area; - int64 approximated_visible_content_area; + int64 frame_count; + base::TimeDelta paint_time; + int64 painted_pixel_count; + base::TimeDelta record_time; + int64 recorded_pixel_count; - ImplThreadRenderingStats(); - scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData() const; - void Add(const ImplThreadRenderingStats& other); -}; + MainThreadRenderingStats(); + ~MainThreadRenderingStats(); + scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData() + const; + void Add(const MainThreadRenderingStats& other); + }; + + struct CC_EXPORT ImplThreadRenderingStats { + // Note: when adding new members, please remember to update Add in + // rendering_stats.cc. + + int64 frame_count; + base::TimeDelta rasterize_time; + base::TimeDelta analysis_time; + int64 rasterized_pixel_count; + int64 visible_content_area; + int64 approximated_visible_content_area; + + TimeDeltaList draw_duration; + TimeDeltaList draw_duration_estimate; + TimeDeltaList begin_main_frame_to_commit_duration; + TimeDeltaList begin_main_frame_to_commit_duration_estimate; + TimeDeltaList commit_to_activate_duration; + TimeDeltaList commit_to_activate_duration_estimate; + + ImplThreadRenderingStats(); + ~ImplThreadRenderingStats(); + scoped_refptr<base::debug::ConvertableToTraceFormat> AsTraceableData() + const; + void Add(const ImplThreadRenderingStats& other); + }; -struct CC_EXPORT RenderingStats { MainThreadRenderingStats main_stats; ImplThreadRenderingStats impl_stats; |