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

Side by Side 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, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_aura.h" 5 #include "content/browser/renderer_host/render_widget_host_view_aura.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/debug/trace_event.h" 10 #include "base/debug/trace_event.h"
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after
882 surface_rect, surface_rect, params_in_pixel.mailbox_name, &ack_params)) 882 surface_rect, surface_rect, params_in_pixel.mailbox_name, &ack_params))
883 return; 883 return;
884 884
885 previous_damage_.setRect(RectToSkIRect(surface_rect)); 885 previous_damage_.setRect(RectToSkIRect(surface_rect));
886 skipped_damage_.setEmpty(); 886 skipped_damage_.setEmpty();
887 887
888 ui::Compositor* compositor = GetCompositor(); 888 ui::Compositor* compositor = GetCompositor();
889 if (compositor) { 889 if (compositor) {
890 gfx::Size surface_size = ConvertSizeToDIP(this, params_in_pixel.size); 890 gfx::Size surface_size = ConvertSizeToDIP(this, params_in_pixel.size);
891 window_->SchedulePaintInRect(gfx::Rect(surface_size)); 891 window_->SchedulePaintInRect(gfx::Rect(surface_size));
892
893 FrameLatency frame_latency;
894 frame_latency.latency_info = params_in_pixel.latency_info;
895 frame_latency.latency_info.browserMainFrameNumber =
896 compositor->SetInputNumber(frame_latency.latency_info.inputNumber);
897 frame_latency.gpu_host_id = gpu_host_id;
898 frame_latency.route_id = params_in_pixel.route_id;
899 frame_queue_.push(frame_latency);
892 } 900 }
893 901
894 SwapBuffersCompleted(ack_params); 902 SwapBuffersCompleted(ack_params);
895 } 903 }
896 904
897 void RenderWidgetHostViewAura::AcceleratedSurfacePostSubBuffer( 905 void RenderWidgetHostViewAura::AcceleratedSurfacePostSubBuffer(
898 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params_in_pixel, 906 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params_in_pixel,
899 int gpu_host_id) { 907 int gpu_host_id) {
900 const gfx::Rect surface_rect = 908 const gfx::Rect surface_rect =
901 gfx::Rect(gfx::Point(), params_in_pixel.surface_size); 909 gfx::Rect(gfx::Point(), params_in_pixel.surface_size);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
943 surface_size_in_pixel.height() - params_in_pixel.y - 951 surface_size_in_pixel.height() - params_in_pixel.y -
944 params_in_pixel.height, 952 params_in_pixel.height,
945 params_in_pixel.width, 953 params_in_pixel.width,
946 params_in_pixel.height)); 954 params_in_pixel.height));
947 955
948 // Damage may not have been DIP aligned, so inflate damage to compensate 956 // Damage may not have been DIP aligned, so inflate damage to compensate
949 // for any round-off error. 957 // for any round-off error.
950 rect_to_paint.Inset(-1, -1); 958 rect_to_paint.Inset(-1, -1);
951 rect_to_paint.Intersect(window_->bounds()); 959 rect_to_paint.Intersect(window_->bounds());
952 960
961 FrameLatency frame_latency;
962 frame_latency.latency_info = params_in_pixel.latency_info;
963 frame_latency.latency_info.browserMainFrameNumber =
964 compositor->SetInputNumber(frame_latency.latency_info.inputNumber);
965 frame_latency.gpu_host_id = gpu_host_id;
966 frame_latency.route_id = params_in_pixel.route_id;
967 frame_queue_.push(frame_latency);
968
953 window_->SchedulePaintInRect(rect_to_paint); 969 window_->SchedulePaintInRect(rect_to_paint);
954 } 970 }
955 971
956 SwapBuffersCompleted(ack_params); 972 SwapBuffersCompleted(ack_params);
957 } 973 }
958 974
959 void RenderWidgetHostViewAura::AcceleratedSurfaceSuspend() { 975 void RenderWidgetHostViewAura::AcceleratedSurfaceSuspend() {
960 } 976 }
961 977
962 bool RenderWidgetHostViewAura::HasAcceleratedSurface( 978 bool RenderWidgetHostViewAura::HasAcceleratedSurface(
(...skipping 785 matching lines...) Expand 10 before | Expand all | Expand 10 after
1748 1764
1749 void RenderWidgetHostViewAura::OnCompositingLockStateChanged( 1765 void RenderWidgetHostViewAura::OnCompositingLockStateChanged(
1750 ui::Compositor* compositor) { 1766 ui::Compositor* compositor) {
1751 // A compositor lock that is part of a resize lock timed out. We 1767 // A compositor lock that is part of a resize lock timed out. We
1752 // should display a renderer frame. 1768 // should display a renderer frame.
1753 if (!compositor->IsLocked() && can_lock_compositor_ == YES_DID_LOCK) { 1769 if (!compositor->IsLocked() && can_lock_compositor_ == YES_DID_LOCK) {
1754 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME; 1770 can_lock_compositor_ = NO_PENDING_RENDERER_FRAME;
1755 } 1771 }
1756 } 1772 }
1757 1773
1774 void RenderWidgetHostViewAura::OnReceivedLatencyInfo(
1775 ui::Compositor* compositor,
1776 const cc::LatencyInfo& latency_info) {
1777 while (!frame_queue_.empty()) {
1778 const FrameLatency& frame_latency = frame_queue_.front();
1779 if (latency_info.rendererMainFrameNumber <
1780 frame_latency.latency_info.browserMainFrameNumber)
1781 break;
1782
1783 cc::LatencyInfo real_latency_info = frame_latency.latency_info;
1784 real_latency_info.browserMainFrameNumber =
1785 latency_info.rendererMainFrameNumber;
1786 real_latency_info.browserImplFrameNumber =
1787 latency_info.rendererImplFrameNumber;
1788 real_latency_info.swapTimestamp = latency_info.swapTimestamp;
1789 RenderWidgetHostImpl::NotifyFrameDisplayed(frame_latency.route_id,
1790 frame_latency.gpu_host_id,
1791 real_latency_info);
1792 frame_queue_.pop();
1793 }
1794 }
1795
1758 //////////////////////////////////////////////////////////////////////////////// 1796 ////////////////////////////////////////////////////////////////////////////////
1759 // RenderWidgetHostViewAura, ImageTransportFactoryObserver implementation: 1797 // RenderWidgetHostViewAura, ImageTransportFactoryObserver implementation:
1760 1798
1761 void RenderWidgetHostViewAura::OnLostResources() { 1799 void RenderWidgetHostViewAura::OnLostResources() {
1762 current_surface_ = NULL; 1800 current_surface_ = NULL;
1763 UpdateExternalTexture(); 1801 UpdateExternalTexture();
1764 locks_pending_commit_.clear(); 1802 locks_pending_commit_.clear();
1765 1803
1766 DCHECK(!shared_surface_handle_.is_null()); 1804 DCHECK(!shared_surface_handle_.is_null());
1767 ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); 1805 ImageTransportFactory* factory = ImageTransportFactory::GetInstance();
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1968 RenderWidgetHost* widget) { 2006 RenderWidgetHost* widget) {
1969 return new RenderWidgetHostViewAura(widget); 2007 return new RenderWidgetHostViewAura(widget);
1970 } 2008 }
1971 2009
1972 // static 2010 // static
1973 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) { 2011 void RenderWidgetHostViewPort::GetDefaultScreenInfo(WebScreenInfo* results) {
1974 GetScreenInfoForWindow(results, NULL); 2012 GetScreenInfoForWindow(results, NULL);
1975 } 2013 }
1976 2014
1977 } // namespace content 2015 } // namespace content
OLDNEW
« 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