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

Unified Diff: cc/layer_tree_host_impl.cc

Issue 11293121: Add latency measurement system (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: create cc::LatencyInfo Created 7 years, 12 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
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layer_tree_host_impl.cc
diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc
index 55f6452ded8bc55344b72f71dc08478de00335a7..96b1bd6ac613e50e2e152e59ed2c4e6acfe48449 100644
--- a/cc/layer_tree_host_impl.cc
+++ b/cc/layer_tree_host_impl.cc
@@ -317,6 +317,7 @@ OutputSurface* LayerTreeHostImpl::outputSurface() const
void LayerTreeHostImpl::animate(base::TimeTicks monotonicTime, base::Time wallClockTime)
{
+ setLatencyInfo(LatencyInfo());
animatePageScale(monotonicTime);
animateLayers(monotonicTime, wallClockTime);
animateScrollbars(monotonicTime);
@@ -938,10 +939,29 @@ bool LayerTreeHostImpl::swapBuffers()
{
DCHECK(m_renderer);
+ m_createdFrame = false;
+ TRACE_EVENT_ASYNC_END2("cc", "Frame", this, "implFrameNumber", m_latencyInfo.rendererImplFrameNumber, "mainFrameNumber", m_latencyInfo.rendererMainFrameNumber);
+ TRACE_EVENT_INSTANT1("cc", "Frame", "inputNumber", m_latencyInfo.inputNumber);
m_fpsCounter->markEndOfFrame();
return m_renderer->swapBuffers();
}
+void LayerTreeHostImpl::setLatencyInfo(const LatencyInfo& latency_info) {
+ m_latencyInfo.rendererMainFrameNumber = std::max(latency_info.rendererMainFrameNumber, m_latencyInfo.rendererMainFrameNumber);
+ m_latencyInfo.rendererImplFrameNumber = std::max(latency_info.rendererImplFrameNumber, m_latencyInfo.rendererImplFrameNumber);
+ m_latencyInfo.inputNumber = std::max(latency_info.inputNumber, m_latencyInfo.inputNumber);
+ if (!m_createdFrame) {
+ m_createdFrame = true;
+ m_latencyInfo.rendererImplFrameNumber++;
+ TRACE_EVENT_ASYNC_BEGIN2("cc", "Frame", this, "implFrameNumber", m_latencyInfo.rendererImplFrameNumber, "mainFrameNumber", m_latencyInfo.rendererMainFrameNumber);
+ }
+ m_outputSurface->SetLatencyInfo(m_latencyInfo);
+}
+
+void LayerTreeHostImpl::OnReceivedLatencyInfo(const LatencyInfo& latency_info) {
+ m_client->onReceivedLatencyInfo(latency_info);
+}
+
const gfx::Size& LayerTreeHostImpl::deviceViewportSize() const
{
return m_deviceViewportSize;
@@ -1332,7 +1352,8 @@ static gfx::Vector2dF scrollLayerWithLocalDelta(LayerImpl& layerImpl, gfx::Vecto
return layerImpl.scrollDelta() - previousDelta;
}
-bool LayerTreeHostImpl::scrollBy(const gfx::Point& viewportPoint,
+bool LayerTreeHostImpl::scrollBy(int64 input_number,
+ const gfx::Point& viewportPoint,
const gfx::Vector2d& scrollDelta)
{
TRACE_EVENT0("cc", "LayerTreeHostImpl::scrollBy");
@@ -1380,6 +1401,9 @@ bool LayerTreeHostImpl::scrollBy(const gfx::Point& viewportPoint,
}
if (didScroll) {
+ LatencyInfo latency_info;
+ latency_info.inputNumber = input_number;
+ setLatencyInfo(latency_info);
m_client->setNeedsCommitOnImplThread();
m_client->setNeedsRedrawOnImplThread();
setNeedsUpdateDrawProperties();
« no previous file with comments | « cc/layer_tree_host_impl.h ('k') | cc/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698