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

Unified Diff: cc/scheduler/scheduler.h

Issue 2392113003: Reland of cc: Remove frame queuing from the scheduler. (Closed)
Patch Set: rebase Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | cc/scheduler/scheduler.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/scheduler.h
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
index 57470da922e0021a0dc9a6662c58fa25ff51249a..235a4f8e4e2974d816eea81d1d294cdae1968cfc 100644
--- a/cc/scheduler/scheduler.h
+++ b/cc/scheduler/scheduler.h
@@ -61,6 +61,10 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
std::unique_ptr<CompositorTimingHistory> compositor_timing_history);
~Scheduler() override;
+ // This is needed so that the scheduler doesn't perform spurious actions while
+ // the compositor is being torn down.
+ void Stop();
+
// BeginFrameObserverBase
void OnBeginFrameSourcePausedChanged(bool paused) override;
bool OnBeginFrameDerivedImpl(const BeginFrameArgs& args) override;
@@ -150,27 +154,26 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
std::unique_ptr<CompositorTimingHistory> compositor_timing_history_;
- std::deque<BeginFrameArgs> begin_retro_frame_args_;
SchedulerStateMachine::BeginImplFrameDeadlineMode
begin_impl_frame_deadline_mode_;
BeginFrameTracker begin_impl_frame_tracker_;
BeginFrameArgs begin_main_frame_args_;
- base::Closure begin_retro_frame_closure_;
base::Closure begin_impl_frame_deadline_closure_;
- base::CancelableClosure begin_retro_frame_task_;
base::CancelableClosure begin_impl_frame_deadline_task_;
+ base::CancelableClosure missed_begin_frame_task_;
SchedulerStateMachine state_machine_;
bool inside_process_scheduled_actions_;
SchedulerStateMachine::Action inside_action_;
+ bool stopped_;
+
private:
void ScheduleBeginImplFrameDeadline();
void ScheduleBeginImplFrameDeadlineIfNeeded();
void BeginImplFrameNotExpectedSoon();
void SetupNextBeginFrameIfNeeded();
- void PostBeginRetroFrameIfNeeded();
void DrawAndSwapIfPossible();
void DrawAndSwapForced();
void ProcessScheduledActions();
@@ -184,7 +187,6 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
base::TimeDelta bmf_to_activate_estimate) const;
void AdvanceCommitStateIfPossible();
bool IsBeginMainFrameSentOrStarted() const;
- void BeginRetroFrame();
void BeginImplFrameWithDeadline(const BeginFrameArgs& args);
void BeginImplFrameSynchronous(const BeginFrameArgs& args);
void BeginImplFrame(const BeginFrameArgs& args);
« no previous file with comments | « no previous file | cc/scheduler/scheduler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698