Index: content/common/gpu/texture_image_transport_surface.cc |
diff --git a/content/common/gpu/texture_image_transport_surface.cc b/content/common/gpu/texture_image_transport_surface.cc |
index d354bef215388de84b5c060a7ded228bdfd5b2fb..bd3b5033bfb61555dca432a32330f71872d7784a 100644 |
--- a/content/common/gpu/texture_image_transport_surface.cc |
+++ b/content/common/gpu/texture_image_transport_surface.cc |
@@ -205,8 +205,25 @@ void TextureImageTransportSurface::OnWillDestroyStub( |
stub_destroyed_ = true; |
} |
+void TextureImageTransportSurface::SetLatencyInfo( |
+ const WebKit::WebLatencyInfoImpl& latency_info) { |
+ if (latency_info_.rendererImplFrameNumber != |
+ latency_info.rendererImplFrameNumber) { |
+ TRACE_EVENT_ASYNC_BEGIN2("frame", "Renderer Frame", this, |
+ "frame_number", |
+ latency_info.rendererImplFrameNumber, |
+ "input_number", latency_info.inputNumber); |
+ } |
+ |
+ latency_info_ = latency_info; |
+} |
+ |
bool TextureImageTransportSurface::SwapBuffers() { |
DCHECK(backbuffer_suggested_allocation_); |
+ TRACE_EVENT_ASYNC_END2("frame", "Renderer Frame", this, |
+ "frame_number", latency_info_.rendererImplFrameNumber, |
+ "input_number", latency_info_.inputNumber); |
+ |
if (!frontbuffer_suggested_allocation_) |
return true; |
@@ -221,6 +238,7 @@ bool TextureImageTransportSurface::SwapBuffers() { |
GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; |
params.surface_handle = backbuffer_.surface_handle; |
params.size = backbuffer_.size; |
+ params.latency_info = latency_info_; |
helper_->SendAcceleratedSurfaceBuffersSwapped(params); |
DCHECK(!is_swap_buffers_pending_); |
@@ -231,6 +249,9 @@ bool TextureImageTransportSurface::SwapBuffers() { |
bool TextureImageTransportSurface::PostSubBuffer( |
int x, int y, int width, int height) { |
DCHECK(backbuffer_suggested_allocation_); |
+ TRACE_EVENT_ASYNC_END2("frame", "Renderer Frame", this, |
+ "frame_number", latency_info_.rendererImplFrameNumber, |
+ "input_number", latency_info_.inputNumber); |
if (!frontbuffer_suggested_allocation_) |
return true; |
const gfx::Rect new_damage_rect(x, y, width, height); |
@@ -256,6 +277,7 @@ bool TextureImageTransportSurface::PostSubBuffer( |
params.y = y; |
params.width = width; |
params.height = height; |
+ params.latency_info = latency_info_; |
helper_->SendAcceleratedSurfacePostSubBuffer(params); |
DCHECK(!is_swap_buffers_pending_); |