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

Unified Diff: content/browser/renderer_host/render_widget_host_view_aura.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
Index: content/browser/renderer_host/render_widget_host_view_aura.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 49ef41bdbf3c2fd5507f79ae94ec132b5bd4c33c..6d429651784d9aff3ca7d4ae85ba315fb517b3aa 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -889,6 +889,14 @@ void RenderWidgetHostViewAura::AcceleratedSurfaceBuffersSwapped(
if (compositor) {
gfx::Size surface_size = ConvertSizeToDIP(this, params_in_pixel.size);
window_->SchedulePaintInRect(gfx::Rect(surface_size));
+
+ FrameLatency frame_latency;
+ frame_latency.latency_info = params_in_pixel.latency_info;
+ frame_latency.latency_info.browserMainFrameNumber =
+ compositor->SetInputNumber(frame_latency.latency_info.inputNumber);
+ frame_latency.gpu_host_id = gpu_host_id;
+ frame_latency.route_id = params_in_pixel.route_id;
+ frame_queue_.push(frame_latency);
}
SwapBuffersCompleted(ack_params);
@@ -950,6 +958,14 @@ void RenderWidgetHostViewAura::AcceleratedSurfacePostSubBuffer(
rect_to_paint.Inset(-1, -1);
rect_to_paint.Intersect(window_->bounds());
+ FrameLatency frame_latency;
+ frame_latency.latency_info = params_in_pixel.latency_info;
+ frame_latency.latency_info.browserMainFrameNumber =
+ compositor->SetInputNumber(frame_latency.latency_info.inputNumber);
+ frame_latency.gpu_host_id = gpu_host_id;
+ frame_latency.route_id = params_in_pixel.route_id;
+ frame_queue_.push(frame_latency);
+
window_->SchedulePaintInRect(rect_to_paint);
}
@@ -1755,6 +1771,28 @@ void RenderWidgetHostViewAura::OnCompositingLockStateChanged(
}
}
+void RenderWidgetHostViewAura::OnReceivedLatencyInfo(
+ ui::Compositor* compositor,
+ const cc::LatencyInfo& latency_info) {
+ while (!frame_queue_.empty()) {
+ const FrameLatency& frame_latency = frame_queue_.front();
+ if (latency_info.rendererMainFrameNumber <
+ frame_latency.latency_info.browserMainFrameNumber)
+ break;
+
+ cc::LatencyInfo real_latency_info = frame_latency.latency_info;
+ real_latency_info.browserMainFrameNumber =
+ latency_info.rendererMainFrameNumber;
+ real_latency_info.browserImplFrameNumber =
+ latency_info.rendererImplFrameNumber;
+ real_latency_info.swapTimestamp = latency_info.swapTimestamp;
+ RenderWidgetHostImpl::NotifyFrameDisplayed(frame_latency.route_id,
+ frame_latency.gpu_host_id,
+ real_latency_info);
+ frame_queue_.pop();
+ }
+}
+
////////////////////////////////////////////////////////////////////////////////
// RenderWidgetHostViewAura, ImageTransportFactoryObserver implementation:
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_aura.h ('k') | content/common/gpu/client/command_buffer_proxy_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698