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

Side by Side Diff: cc/scheduler/scheduler.cc

Issue 2314323003: cc: Remove ScopedTrackers in SingleThreadProxy. (Closed)
Patch Set: scopedtrackers: rebase Created 4 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 | cc/trees/single_thread_proxy.cc » ('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/scheduler/scheduler.h" 5 #include "cc/scheduler/scheduler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 void Scheduler::OnBeginImplFrameDeadline() { 585 void Scheduler::OnBeginImplFrameDeadline() {
586 TRACE_EVENT0("cc,benchmark", "Scheduler::OnBeginImplFrameDeadline"); 586 TRACE_EVENT0("cc,benchmark", "Scheduler::OnBeginImplFrameDeadline");
587 begin_impl_frame_deadline_task_.Cancel(); 587 begin_impl_frame_deadline_task_.Cancel();
588 // We split the deadline actions up into two phases so the state machine 588 // We split the deadline actions up into two phases so the state machine
589 // has a chance to trigger actions that should occur durring and after 589 // has a chance to trigger actions that should occur durring and after
590 // the deadline separately. For example: 590 // the deadline separately. For example:
591 // * Sending the BeginMainFrame will not occur after the deadline in 591 // * Sending the BeginMainFrame will not occur after the deadline in
592 // order to wait for more user-input before starting the next commit. 592 // order to wait for more user-input before starting the next commit.
593 // * Creating a new OuputSurface will not occur during the deadline in 593 // * Creating a new OuputSurface will not occur during the deadline in
594 // order to allow the state machine to "settle" first. 594 // order to allow the state machine to "settle" first.
595
596 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed.
597 tracked_objects::ScopedTracker tracking_profile1(
598 FROM_HERE_WITH_EXPLICIT_FUNCTION(
599 "461509 Scheduler::OnBeginImplFrameDeadline1"));
600 compositor_timing_history_->WillFinishImplFrame( 595 compositor_timing_history_->WillFinishImplFrame(
601 state_machine_.needs_redraw()); 596 state_machine_.needs_redraw());
602 state_machine_.OnBeginImplFrameDeadline(); 597 state_machine_.OnBeginImplFrameDeadline();
603 ProcessScheduledActions(); 598 ProcessScheduledActions();
604 FinishImplFrame(); 599 FinishImplFrame();
605 } 600 }
606 601
607 void Scheduler::DrawAndSwapIfPossible() { 602 void Scheduler::DrawAndSwapIfPossible() {
608 bool drawing_with_new_active_tree = 603 bool drawing_with_new_active_tree =
609 state_machine_.active_tree_needs_first_draw(); 604 state_machine_.active_tree_needs_first_draw();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 break; 654 break;
660 case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME: 655 case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME:
661 compositor_timing_history_->WillBeginMainFrame( 656 compositor_timing_history_->WillBeginMainFrame(
662 begin_main_frame_args_.on_critical_path, 657 begin_main_frame_args_.on_critical_path,
663 begin_main_frame_args_.frame_time); 658 begin_main_frame_args_.frame_time);
664 state_machine_.WillSendBeginMainFrame(); 659 state_machine_.WillSendBeginMainFrame();
665 // TODO(brianderson): Pass begin_main_frame_args_ directly to client. 660 // TODO(brianderson): Pass begin_main_frame_args_ directly to client.
666 client_->ScheduledActionSendBeginMainFrame(begin_main_frame_args_); 661 client_->ScheduledActionSendBeginMainFrame(begin_main_frame_args_);
667 break; 662 break;
668 case SchedulerStateMachine::ACTION_COMMIT: { 663 case SchedulerStateMachine::ACTION_COMMIT: {
669 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
670 // fixed.
671 tracked_objects::ScopedTracker tracking_profile4(
672 FROM_HERE_WITH_EXPLICIT_FUNCTION(
673 "461509 Scheduler::ProcessScheduledActions4"));
674 bool commit_has_no_updates = false; 664 bool commit_has_no_updates = false;
675 state_machine_.WillCommit(commit_has_no_updates); 665 state_machine_.WillCommit(commit_has_no_updates);
676 client_->ScheduledActionCommit(); 666 client_->ScheduledActionCommit();
677 break; 667 break;
678 } 668 }
679 case SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE: 669 case SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE:
680 compositor_timing_history_->WillActivate(); 670 compositor_timing_history_->WillActivate();
681 state_machine_.WillActivate(); 671 state_machine_.WillActivate();
682 client_->ScheduledActionActivateSyncTree(); 672 client_->ScheduledActionActivateSyncTree();
683 compositor_timing_history_->DidActivate(); 673 compositor_timing_history_->DidActivate();
684 break; 674 break;
685 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE: { 675 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE:
686 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
687 // fixed.
688 tracked_objects::ScopedTracker tracking_profile6(
689 FROM_HERE_WITH_EXPLICIT_FUNCTION(
690 "461509 Scheduler::ProcessScheduledActions6"));
691 DrawAndSwapIfPossible(); 676 DrawAndSwapIfPossible();
692 break; 677 break;
693 }
694 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED: 678 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED:
695 DrawAndSwapForced(); 679 DrawAndSwapForced();
696 break; 680 break;
697 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: { 681 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: {
698 // No action is actually performed, but this allows the state machine to 682 // No action is actually performed, but this allows the state machine to
699 // drain the pipeline without actually drawing. 683 // drain the pipeline without actually drawing.
700 state_machine_.AbortDrawAndSwap(); 684 state_machine_.AbortDrawAndSwap();
701 compositor_timing_history_->DrawAborted(); 685 compositor_timing_history_->DrawAborted();
702 break; 686 break;
703 } 687 }
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 } 818 }
835 819
836 bool Scheduler::IsBeginMainFrameSentOrStarted() const { 820 bool Scheduler::IsBeginMainFrameSentOrStarted() const {
837 return (state_machine_.begin_main_frame_state() == 821 return (state_machine_.begin_main_frame_state() ==
838 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT || 822 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT ||
839 state_machine_.begin_main_frame_state() == 823 state_machine_.begin_main_frame_state() ==
840 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED); 824 SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_STARTED);
841 } 825 }
842 826
843 } // namespace cc 827 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/trees/single_thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698