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

Side by Side Diff: cc/trees/single_thread_proxy.cc

Issue 1432463002: cc: Track BeginMainFrame more precisely in CompositorTimingHistory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase; fix typo Created 5 years, 1 month 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 | « cc/trees/proxy_impl.h ('k') | cc/trees/thread_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/trees/single_thread_proxy.h" 5 #include "cc/trees/single_thread_proxy.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/profiler/scoped_tracker.h" 8 #include "base/profiler/scoped_tracker.h"
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "cc/debug/benchmark_instrumentation.h" 10 #include "cc/debug/benchmark_instrumentation.h"
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 MainThreadTaskRunner()->PostTask( 745 MainThreadTaskRunner()->PostTask(
746 FROM_HERE, base::Bind(&SingleThreadProxy::BeginMainFrame, 746 FROM_HERE, base::Bind(&SingleThreadProxy::BeginMainFrame,
747 weak_factory_.GetWeakPtr(), begin_frame_args)); 747 weak_factory_.GetWeakPtr(), begin_frame_args));
748 } 748 }
749 749
750 void SingleThreadProxy::SendBeginMainFrameNotExpectedSoon() { 750 void SingleThreadProxy::SendBeginMainFrameNotExpectedSoon() {
751 layer_tree_host_->BeginMainFrameNotExpectedSoon(); 751 layer_tree_host_->BeginMainFrameNotExpectedSoon();
752 } 752 }
753 753
754 void SingleThreadProxy::BeginMainFrame(const BeginFrameArgs& begin_frame_args) { 754 void SingleThreadProxy::BeginMainFrame(const BeginFrameArgs& begin_frame_args) {
755 if (scheduler_on_impl_thread_) {
756 scheduler_on_impl_thread_->NotifyBeginMainFrameStarted(
757 base::TimeTicks::Now());
758 }
759
755 commit_requested_ = false; 760 commit_requested_ = false;
756 animate_requested_ = false; 761 animate_requested_ = false;
757 762
758 if (defer_commits_) { 763 if (defer_commits_) {
759 TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit", 764 TRACE_EVENT_INSTANT0("cc", "EarlyOut_DeferCommit",
760 TRACE_EVENT_SCOPE_THREAD); 765 TRACE_EVENT_SCOPE_THREAD);
761 BeginMainFrameAbortedOnImplThread( 766 BeginMainFrameAbortedOnImplThread(
762 CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT); 767 CommitEarlyOutReason::ABORTED_DEFERRED_COMMIT);
763 return; 768 return;
764 } 769 }
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 layer_tree_host_->RequestMainFrameUpdate(); 803 layer_tree_host_->RequestMainFrameUpdate();
799 804
800 // New commits requested inside UpdateLayers should be respected. 805 // New commits requested inside UpdateLayers should be respected.
801 commit_requested_ = false; 806 commit_requested_ = false;
802 807
803 layer_tree_host_->UpdateLayers(); 808 layer_tree_host_->UpdateLayers();
804 809
805 // TODO(enne): SingleThreadProxy does not support cancelling commits yet, 810 // TODO(enne): SingleThreadProxy does not support cancelling commits yet,
806 // search for CommitEarlyOutReason::FINISHED_NO_UPDATES inside 811 // search for CommitEarlyOutReason::FINISHED_NO_UPDATES inside
807 // thread_proxy.cc 812 // thread_proxy.cc
808 if (scheduler_on_impl_thread_) { 813 if (scheduler_on_impl_thread_)
809 scheduler_on_impl_thread_->NotifyBeginMainFrameStarted();
810 scheduler_on_impl_thread_->NotifyReadyToCommit(); 814 scheduler_on_impl_thread_->NotifyReadyToCommit();
811 }
812 } 815 }
813 816
814 void SingleThreadProxy::BeginMainFrameAbortedOnImplThread( 817 void SingleThreadProxy::BeginMainFrameAbortedOnImplThread(
815 CommitEarlyOutReason reason) { 818 CommitEarlyOutReason reason) {
816 DebugScopedSetImplThread impl(this); 819 DebugScopedSetImplThread impl(this);
817 DCHECK(scheduler_on_impl_thread_->CommitPending()); 820 DCHECK(scheduler_on_impl_thread_->CommitPending());
818 DCHECK(!layer_tree_host_impl_->pending_tree()); 821 DCHECK(!layer_tree_host_impl_->pending_tree());
819 822
820 layer_tree_host_impl_->BeginMainFrameAborted(reason); 823 layer_tree_host_impl_->BeginMainFrameAborted(reason);
821 scheduler_on_impl_thread_->BeginMainFrameAborted(reason); 824 scheduler_on_impl_thread_->BeginMainFrameAborted(reason);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 << "DidFinishImplFrame called while not inside an impl frame!"; 888 << "DidFinishImplFrame called while not inside an impl frame!";
886 inside_impl_frame_ = false; 889 inside_impl_frame_ = false;
887 #endif 890 #endif
888 } 891 }
889 892
890 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) { 893 void SingleThreadProxy::SendBeginFramesToChildren(const BeginFrameArgs& args) {
891 layer_tree_host_->SendBeginFramesToChildren(args); 894 layer_tree_host_->SendBeginFramesToChildren(args);
892 } 895 }
893 896
894 } // namespace cc 897 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/proxy_impl.h ('k') | cc/trees/thread_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698