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

Side by Side Diff: content/renderer/gpu/render_widget_compositor.cc

Issue 521613002: Pass more frame timing information to Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add more frame timings. Created 6 years, 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/renderer/gpu/render_widget_compositor.h" 5 #include "content/renderer/gpu/render_widget_compositor.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <string> 8 #include <string>
9 9
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 } 752 }
753 753
754 void RenderWidgetCompositor::DidBeginMainFrame() { 754 void RenderWidgetCompositor::DidBeginMainFrame() {
755 widget_->InstrumentDidBeginFrame(); 755 widget_->InstrumentDidBeginFrame();
756 } 756 }
757 757
758 void RenderWidgetCompositor::BeginMainFrame(const cc::BeginFrameArgs& args) { 758 void RenderWidgetCompositor::BeginMainFrame(const cc::BeginFrameArgs& args) {
759 VLOG(2) << "RenderWidgetCompositor::BeginMainFrame"; 759 VLOG(2) << "RenderWidgetCompositor::BeginMainFrame";
760 begin_main_frame_time_ = args.frame_time; 760 begin_main_frame_time_ = args.frame_time;
761 begin_main_frame_interval_ = args.interval; 761 begin_main_frame_interval_ = args.interval;
762 double frame_time = (args.frame_time - base::TimeTicks()).InSecondsF(); 762 double frame_time_sec = (args.frame_time - base::TimeTicks()).InSecondsF();
763 WebBeginFrameArgs web_begin_frame_args = WebBeginFrameArgs(frame_time); 763 double deadline_sec = (args.deadline - base::TimeTicks()).InSecondsF();
764 double interval_sec = args.interval.InSecondsF();
picksi1 2014/09/02 14:50:40 Is base::TimeTicks() potentially slow? Should we c
Sami 2014/09/02 14:53:30 It only constructs a TimeTicks instance that holds
765 WebBeginFrameArgs web_begin_frame_args =
766 WebBeginFrameArgs(frame_time_sec, deadline_sec, interval_sec);
764 widget_->webwidget()->beginFrame(web_begin_frame_args); 767 widget_->webwidget()->beginFrame(web_begin_frame_args);
765 } 768 }
766 769
767 void RenderWidgetCompositor::Layout() { 770 void RenderWidgetCompositor::Layout() {
768 widget_->webwidget()->layout(); 771 widget_->webwidget()->layout();
769 } 772 }
770 773
771 void RenderWidgetCompositor::ApplyScrollAndScale( 774 void RenderWidgetCompositor::ApplyScrollAndScale(
772 const gfx::Vector2d& scroll_delta, 775 const gfx::Vector2d& scroll_delta,
773 float page_scale) { 776 float page_scale) {
(...skipping 20 matching lines...) Expand all
794 if (idle_time > base::TimeDelta()) { 797 if (idle_time > base::TimeDelta()) {
795 // Convert to 32-bit microseconds first to avoid costly 64-bit division. 798 // Convert to 32-bit microseconds first to avoid costly 64-bit division.
796 int32 idle_time_in_us = idle_time.InMicroseconds(); 799 int32 idle_time_in_us = idle_time.InMicroseconds();
797 int32 idle_time_in_ms = idle_time_in_us / 1000; 800 int32 idle_time_in_ms = idle_time_in_us / 1000;
798 blink::mainThreadIsolate()->IdleNotification(idle_time_in_ms); 801 blink::mainThreadIsolate()->IdleNotification(idle_time_in_ms);
799 } 802 }
800 } 803 }
801 804
802 widget_->DidCommitCompositorFrame(); 805 widget_->DidCommitCompositorFrame();
803 widget_->didBecomeReadyForAdditionalInput(); 806 widget_->didBecomeReadyForAdditionalInput();
807 widget_->webwidget()->didCommitFrameToCompositor();
804 } 808 }
805 809
806 void RenderWidgetCompositor::DidCommitAndDrawFrame() { 810 void RenderWidgetCompositor::DidCommitAndDrawFrame() {
807 widget_->didCommitAndDrawCompositorFrame(); 811 widget_->didCommitAndDrawCompositorFrame();
808 } 812 }
809 813
810 void RenderWidgetCompositor::DidCompleteSwapBuffers() { 814 void RenderWidgetCompositor::DidCompleteSwapBuffers() {
811 widget_->didCompleteSwapBuffers(); 815 widget_->didCompleteSwapBuffers();
812 if (!threaded_) 816 if (!threaded_)
813 widget_->OnSwapBuffersComplete(); 817 widget_->OnSwapBuffersComplete();
(...skipping 11 matching lines...) Expand all
825 widget_->OnSwapBuffersAborted(); 829 widget_->OnSwapBuffersAborted();
826 } 830 }
827 831
828 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() { 832 void RenderWidgetCompositor::RateLimitSharedMainThreadContext() {
829 cc::ContextProvider* provider = 833 cc::ContextProvider* provider =
830 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 834 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
831 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM(); 835 provider->ContextGL()->RateLimitOffscreenContextCHROMIUM();
832 } 836 }
833 837
834 } // namespace content 838 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698