Index: cc/layer_tree_host_impl.cc |
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc |
index 581377e2b3397ef5f3c4eea7e8502b62b7626621..41d66499587e9d2ff8cb84b0dd96307abc061614 100644 |
--- a/cc/layer_tree_host_impl.cc |
+++ b/cc/layer_tree_host_impl.cc |
@@ -25,6 +25,7 @@ |
#include "cc/prioritized_texture_manager.h" |
#include "cc/render_pass_draw_quad.h" |
#include "cc/rendering_stats.h" |
+#include "cc/rendering_stats_subscriber.h" |
#include "cc/scrollbar_animation_controller.h" |
#include "cc/scrollbar_layer_impl.h" |
#include "cc/settings.h" |
@@ -676,7 +677,10 @@ void LayerTreeHostImpl::drawLayers(const FrameData& frame) |
// FIXME: use the frame begin time from the overall compositor scheduler. |
// This value is currently inaccessible because it is up in Chromium's |
// RenderWidget. |
- m_fpsCounter->markBeginningOfFrame(base::TimeTicks::Now()); |
+ base::TimeTicks now = base::TimeTicks::Now(); |
+ m_fpsCounter->markBeginningOfFrame(now); |
+ if (m_renderingStatsSubscriber) |
+ m_renderingStatsSubscriber->markBeginningOfFrame(now); |
if (m_settings.showDebugRects()) |
m_debugRectHistory->saveDebugRectsForCurrentFrame(m_rootLayerImpl.get(), *frame.renderSurfaceLayerList, frame.occludingScreenSpaceRects, settings()); |
@@ -1472,6 +1476,26 @@ void LayerTreeHostImpl::renderingStats(RenderingStats* stats) const |
stats->numMainThreadScrolls = m_numMainThreadScrolls; |
} |
+void LayerTreeHostImpl::startRecordingRenderingStats() |
+{ |
+ m_renderingStatsSubscriber = RenderingStatsSubscriber::create(); |
+} |
+ |
+void LayerTreeHostImpl::stopRecordingRenderingStats(RenderingStats* stats) |
+{ |
+ double frame_rate_average = 0.0; |
+ double frame_rate_standard_deviation = 0.0; |
+ |
+ m_renderingStatsSubscriber->getFPSAndStandardDeviation( |
+ frame_rate_average, |
+ frame_rate_standard_deviation); |
+ |
+ stats->frameRateAverage = frame_rate_average; |
+ stats->frameRateStandardDeviation = frame_rate_standard_deviation; |
+ |
+ m_renderingStatsSubscriber.reset(); |
+} |
+ |
void LayerTreeHostImpl::animateScrollbars(base::TimeTicks time) |
{ |
animateScrollbarsRecursive(m_rootLayerImpl.get(), time); |