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

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

Issue 2339633003: Reland of cc: Remove frame queuing from the scheduler. (Closed)
Patch Set: prevent draw if commit is pending 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
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 #ifndef CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_ 5 #ifndef CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_
6 #define CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_ 6 #define CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 10
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 BEGIN_IMPL_FRAME_DEADLINE_MODE_BLOCKED_ON_READY_TO_DRAW, 75 BEGIN_IMPL_FRAME_DEADLINE_MODE_BLOCKED_ON_READY_TO_DRAW,
76 }; 76 };
77 static const char* BeginImplFrameDeadlineModeToString( 77 static const char* BeginImplFrameDeadlineModeToString(
78 BeginImplFrameDeadlineMode mode); 78 BeginImplFrameDeadlineMode mode);
79 79
80 enum BeginMainFrameState { 80 enum BeginMainFrameState {
81 BEGIN_MAIN_FRAME_STATE_IDLE, 81 BEGIN_MAIN_FRAME_STATE_IDLE,
82 BEGIN_MAIN_FRAME_STATE_SENT, 82 BEGIN_MAIN_FRAME_STATE_SENT,
83 BEGIN_MAIN_FRAME_STATE_STARTED, 83 BEGIN_MAIN_FRAME_STATE_STARTED,
84 BEGIN_MAIN_FRAME_STATE_READY_TO_COMMIT, 84 BEGIN_MAIN_FRAME_STATE_READY_TO_COMMIT,
85 BEGIN_MAIN_FRAME_STATE_WAITING_FOR_ACTIVATION,
86 BEGIN_MAIN_FRAME_STATE_WAITING_FOR_DRAW,
87 }; 85 };
88 static const char* BeginMainFrameStateToString(BeginMainFrameState state); 86 static const char* BeginMainFrameStateToString(BeginMainFrameState state);
89 87
90 enum ForcedRedrawOnTimeoutState { 88 enum ForcedRedrawOnTimeoutState {
91 FORCED_REDRAW_STATE_IDLE, 89 FORCED_REDRAW_STATE_IDLE,
92 FORCED_REDRAW_STATE_WAITING_FOR_COMMIT, 90 FORCED_REDRAW_STATE_WAITING_FOR_COMMIT,
93 FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION, 91 FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION,
94 FORCED_REDRAW_STATE_WAITING_FOR_DRAW, 92 FORCED_REDRAW_STATE_WAITING_FOR_DRAW,
95 }; 93 };
96 static const char* ForcedRedrawOnTimeoutStateToString( 94 static const char* ForcedRedrawOnTimeoutStateToString(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 147
150 // Indicates that the system has entered and left a BeginImplFrame callback. 148 // Indicates that the system has entered and left a BeginImplFrame callback.
151 // The scheduler will not draw more than once in a given BeginImplFrame 149 // The scheduler will not draw more than once in a given BeginImplFrame
152 // callback nor send more than one BeginMainFrame message. 150 // callback nor send more than one BeginMainFrame message.
153 void OnBeginImplFrame(); 151 void OnBeginImplFrame();
154 // Indicates that the scheduler has entered the draw phase. The scheduler 152 // Indicates that the scheduler has entered the draw phase. The scheduler
155 // will not draw more than once in a single draw phase. 153 // will not draw more than once in a single draw phase.
156 // TODO(sunnyps): Rename OnBeginImplFrameDeadline to OnDraw or similar. 154 // TODO(sunnyps): Rename OnBeginImplFrameDeadline to OnDraw or similar.
157 void OnBeginImplFrameDeadline(); 155 void OnBeginImplFrameDeadline();
158 void OnBeginImplFrameIdle(); 156 void OnBeginImplFrameIdle();
157
158 int current_frame_number() const { return current_frame_number_; }
159
159 BeginImplFrameState begin_impl_frame_state() const { 160 BeginImplFrameState begin_impl_frame_state() const {
160 return begin_impl_frame_state_; 161 return begin_impl_frame_state_;
161 } 162 }
162 BeginImplFrameDeadlineMode CurrentBeginImplFrameDeadlineMode() const; 163 BeginImplFrameDeadlineMode CurrentBeginImplFrameDeadlineMode() const;
163 164
164 // If the main thread didn't manage to produce a new frame in time for the 165 // If the main thread didn't manage to produce a new frame in time for the
165 // impl thread to draw, it is in a high latency mode. 166 // impl thread to draw, it is in a high latency mode.
166 bool main_thread_missed_last_deadline() const { 167 bool main_thread_missed_last_deadline() const {
167 return main_thread_missed_last_deadline_; 168 return main_thread_missed_last_deadline_;
168 } 169 }
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 bool did_draw_in_last_frame_; 349 bool did_draw_in_last_frame_;
349 bool did_swap_in_last_frame_; 350 bool did_swap_in_last_frame_;
350 351
351 private: 352 private:
352 DISALLOW_COPY_AND_ASSIGN(SchedulerStateMachine); 353 DISALLOW_COPY_AND_ASSIGN(SchedulerStateMachine);
353 }; 354 };
354 355
355 } // namespace cc 356 } // namespace cc
356 357
357 #endif // CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_ 358 #endif // CC_SCHEDULER_SCHEDULER_STATE_MACHINE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698