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

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

Issue 516663004: Add a bunch of vlogs to RAF related calls in chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
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/thread_proxy.h" 5 #include "cc/trees/thread_proxy.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 } 670 }
671 671
672 void ThreadProxy::FinishAllRenderingOnImplThread(CompletionEvent* completion) { 672 void ThreadProxy::FinishAllRenderingOnImplThread(CompletionEvent* completion) {
673 TRACE_EVENT0("cc", "ThreadProxy::FinishAllRenderingOnImplThread"); 673 TRACE_EVENT0("cc", "ThreadProxy::FinishAllRenderingOnImplThread");
674 DCHECK(IsImplThread()); 674 DCHECK(IsImplThread());
675 impl().layer_tree_host_impl->FinishAllRendering(); 675 impl().layer_tree_host_impl->FinishAllRendering();
676 completion->Signal(); 676 completion->Signal();
677 } 677 }
678 678
679 void ThreadProxy::ScheduledActionSendBeginMainFrame() { 679 void ThreadProxy::ScheduledActionSendBeginMainFrame() {
680 VLOG(2) << "ThreadProxy::ScheduledActionSendBeginMainFrame";
680 unsigned int begin_frame_id = nextBeginFrameId++; 681 unsigned int begin_frame_id = nextBeginFrameId++;
681 benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task( 682 benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task(
682 benchmark_instrumentation::kSendBeginFrame, begin_frame_id); 683 benchmark_instrumentation::kSendBeginFrame, begin_frame_id);
683 scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state( 684 scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state(
684 new BeginMainFrameAndCommitState); 685 new BeginMainFrameAndCommitState);
685 begin_main_frame_state->begin_frame_id = begin_frame_id; 686 begin_main_frame_state->begin_frame_id = begin_frame_id;
686 begin_main_frame_state->begin_frame_args = 687 begin_main_frame_state->begin_frame_args =
687 impl().layer_tree_host_impl->CurrentBeginFrameArgs(); 688 impl().layer_tree_host_impl->CurrentBeginFrameArgs();
688 begin_main_frame_state->scroll_info = 689 begin_main_frame_state->scroll_info =
689 impl().layer_tree_host_impl->ProcessScrollDeltas(); 690 impl().layer_tree_host_impl->ProcessScrollDeltas();
(...skipping 18 matching lines...) Expand all
708 } 709 }
709 710
710 void ThreadProxy::BeginMainFrame( 711 void ThreadProxy::BeginMainFrame(
711 scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state) { 712 scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state) {
712 benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task( 713 benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task(
713 benchmark_instrumentation::kDoBeginFrame, 714 benchmark_instrumentation::kDoBeginFrame,
714 begin_main_frame_state->begin_frame_id); 715 begin_main_frame_state->begin_frame_id);
715 TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("cc.BeginMainFrame"); 716 TRACE_EVENT_SYNTHETIC_DELAY_BEGIN("cc.BeginMainFrame");
716 DCHECK(IsMainThread()); 717 DCHECK(IsMainThread());
717 718
719 VLOG(2) << "ThreadProxy::BeginMainFrame - BEGIN";
720
718 if (main().defer_commits) { 721 if (main().defer_commits) {
719 main().pending_deferred_commit = begin_main_frame_state.Pass(); 722 main().pending_deferred_commit = begin_main_frame_state.Pass();
720 layer_tree_host()->DidDeferCommit(); 723 layer_tree_host()->DidDeferCommit();
721 TRACE_EVENT_INSTANT0( 724 TRACE_EVENT_INSTANT0(
722 "cc", "EarlyOut_DeferCommits", TRACE_EVENT_SCOPE_THREAD); 725 "cc", "EarlyOut_DeferCommits", TRACE_EVENT_SCOPE_THREAD);
726 VLOG(2) << "ThreadProxy::BeginMainFrame: EarlyOut_DeferCommits";
723 return; 727 return;
724 } 728 }
725 729
726 // If the commit finishes, LayerTreeHost will transfer its swap promises to 730 // If the commit finishes, LayerTreeHost will transfer its swap promises to
727 // LayerTreeImpl. The destructor of ScopedSwapPromiseChecker aborts the 731 // LayerTreeImpl. The destructor of ScopedSwapPromiseChecker aborts the
728 // remaining swap promises. 732 // remaining swap promises.
729 ScopedAbortRemainingSwapPromises swap_promise_checker(layer_tree_host()); 733 ScopedAbortRemainingSwapPromises swap_promise_checker(layer_tree_host());
730 734
731 main().commit_requested = false; 735 main().commit_requested = false;
732 main().commit_request_sent_to_impl_thread = false; 736 main().commit_request_sent_to_impl_thread = false;
733 main().animate_requested = false; 737 main().animate_requested = false;
734 738
735 if (!layer_tree_host()->visible()) { 739 if (!layer_tree_host()->visible()) {
736 TRACE_EVENT_INSTANT0("cc", "EarlyOut_NotVisible", TRACE_EVENT_SCOPE_THREAD); 740 TRACE_EVENT_INSTANT0("cc", "EarlyOut_NotVisible", TRACE_EVENT_SCOPE_THREAD);
741 VLOG(2) << "ThreadProxy::BeginMainFrame: EarlyOut_NotVisible";
737 bool did_handle = false; 742 bool did_handle = false;
738 Proxy::ImplThreadTaskRunner()->PostTask( 743 Proxy::ImplThreadTaskRunner()->PostTask(
739 FROM_HERE, 744 FROM_HERE,
740 base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread, 745 base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread,
741 impl_thread_weak_ptr_, 746 impl_thread_weak_ptr_,
742 did_handle)); 747 did_handle));
743 return; 748 return;
744 } 749 }
745 750
746 if (layer_tree_host()->output_surface_lost()) { 751 if (layer_tree_host()->output_surface_lost()) {
747 TRACE_EVENT_INSTANT0( 752 TRACE_EVENT_INSTANT0(
748 "cc", "EarlyOut_OutputSurfaceLost", TRACE_EVENT_SCOPE_THREAD); 753 "cc", "EarlyOut_OutputSurfaceLost", TRACE_EVENT_SCOPE_THREAD);
754 VLOG(2) << "ThreadProxy::BeginMainFrame: EarlyOut_OutputSurfaceLost";
749 bool did_handle = false; 755 bool did_handle = false;
750 Proxy::ImplThreadTaskRunner()->PostTask( 756 Proxy::ImplThreadTaskRunner()->PostTask(
751 FROM_HERE, 757 FROM_HERE,
752 base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread, 758 base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread,
753 impl_thread_weak_ptr_, 759 impl_thread_weak_ptr_,
754 did_handle)); 760 did_handle));
755 return; 761 return;
756 } 762 }
757 763
758 // Do not notify the impl thread of commit requests that occur during 764 // Do not notify the impl thread of commit requests that occur during
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 816
811 bool updated = layer_tree_host()->UpdateLayers(queue.get()); 817 bool updated = layer_tree_host()->UpdateLayers(queue.get());
812 818
813 layer_tree_host()->WillCommit(); 819 layer_tree_host()->WillCommit();
814 820
815 // Before calling animate, we set main().animate_requested to false. If it is 821 // Before calling animate, we set main().animate_requested to false. If it is
816 // true now, it means SetNeedAnimate was called again, but during a state when 822 // true now, it means SetNeedAnimate was called again, but during a state when
817 // main().commit_request_sent_to_impl_thread = true. We need to force that 823 // main().commit_request_sent_to_impl_thread = true. We need to force that
818 // call to happen again now so that the commit request is sent to the impl 824 // call to happen again now so that the commit request is sent to the impl
819 // thread. 825 // thread.
820 if (main().animate_requested) { 826 if (main().animate_requested) {
Ken Russell (switch to Gerrit) 2014/08/29 22:25:43 Should this branch be instrumented too? As well as
Zhenyao Mo 2014/08/29 23:11:11 The logging I added are on the direct call stack t
821 // Forces SetNeedsAnimate to consider posting a commit task. 827 // Forces SetNeedsAnimate to consider posting a commit task.
822 main().animate_requested = false; 828 main().animate_requested = false;
823 SetNeedsAnimate(); 829 SetNeedsAnimate();
824 } 830 }
825 831
826 if (!updated && can_cancel_this_commit) { 832 if (!updated && can_cancel_this_commit) {
827 TRACE_EVENT_INSTANT0("cc", "EarlyOut_NoUpdates", TRACE_EVENT_SCOPE_THREAD); 833 TRACE_EVENT_INSTANT0("cc", "EarlyOut_NoUpdates", TRACE_EVENT_SCOPE_THREAD);
834 VLOG(2) << "ThreadProxy::BeginMainFrame: EarlyOut_NoUpdates";
828 bool did_handle = true; 835 bool did_handle = true;
829 Proxy::ImplThreadTaskRunner()->PostTask( 836 Proxy::ImplThreadTaskRunner()->PostTask(
830 FROM_HERE, 837 FROM_HERE,
831 base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread, 838 base::Bind(&ThreadProxy::BeginMainFrameAbortedOnImplThread,
832 impl_thread_weak_ptr_, 839 impl_thread_weak_ptr_,
833 did_handle)); 840 did_handle));
834 841
835 // Although the commit is internally aborted, this is because it has been 842 // Although the commit is internally aborted, this is because it has been
836 // detected to be a no-op. From the perspective of an embedder, this commit 843 // detected to be a no-op. From the perspective of an embedder, this commit
837 // went through, and input should no longer be throttled, etc. 844 // went through, and input should no longer be throttled, etc.
(...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after
1390 1397
1391 impl().timing_history.DidActivateSyncTree(); 1398 impl().timing_history.DidActivateSyncTree();
1392 } 1399 }
1393 1400
1394 void ThreadProxy::DidManageTiles() { 1401 void ThreadProxy::DidManageTiles() {
1395 DCHECK(IsImplThread()); 1402 DCHECK(IsImplThread());
1396 impl().scheduler->DidManageTiles(); 1403 impl().scheduler->DidManageTiles();
1397 } 1404 }
1398 1405
1399 } // namespace cc 1406 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698