| Index: cc/scheduler/scheduler_state_machine.h
|
| diff --git a/cc/scheduler/scheduler_state_machine.h b/cc/scheduler/scheduler_state_machine.h
|
| index a411022c003c1d8932554558b91f4759056bca9c..3914039004dc60540f49417b76963585b07a62e4 100644
|
| --- a/cc/scheduler/scheduler_state_machine.h
|
| +++ b/cc/scheduler/scheduler_state_machine.h
|
| @@ -9,7 +9,6 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/memory/scoped_ptr.h"
|
| -#include "base/time/time.h"
|
| #include "cc/base/cc_export.h"
|
| #include "cc/output/begin_frame_args.h"
|
| #include "cc/scheduler/commit_earlyout_reason.h"
|
| @@ -115,8 +114,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| static const char* ActionToString(Action action);
|
|
|
| scoped_refptr<base::trace_event::ConvertableToTraceFormat> AsValue() const;
|
| - void AsValueInto(base::trace_event::TracedValue* dict,
|
| - base::TimeTicks now) const;
|
| + void AsValueInto(base::trace_event::TracedValue* dict) const;
|
|
|
| Action NextAction() const;
|
| void UpdateState(Action action);
|
| @@ -125,10 +123,6 @@ class CC_EXPORT SchedulerStateMachine {
|
| // to make progress.
|
| bool BeginFrameNeeded() const;
|
|
|
| - // Indicates whether the scheduler should call
|
| - // SetNeedsBeginFrames(BeginFrameNeeded()) on the frame source.
|
| - bool ShouldSetNeedsBeginFrames(bool frame_source_needs_begin_frames) const;
|
| -
|
| // Indicates that we need to independently poll for new state and actions
|
| // because we can't expect a BeginImplFrame. This is mostly used to avoid
|
| // drawing repeat frames with the synchronous compositor without dropping
|
| @@ -138,7 +132,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| // Indicates that the system has entered and left a BeginImplFrame callback.
|
| // The scheduler will not draw more than once in a given BeginImplFrame
|
| // callback nor send more than one BeginMainFrame message.
|
| - void OnBeginImplFrame(const BeginFrameArgs& args);
|
| + void OnBeginImplFrame();
|
| void OnBeginImplFrameDeadlinePending();
|
| void OnBeginImplFrameDeadline();
|
| void OnBeginImplFrameIdle();
|
| @@ -284,10 +278,6 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool ShouldPrepareTiles() const;
|
|
|
| void AdvanceCurrentFrameNumber();
|
| - bool HasAnimatedThisFrame() const;
|
| - bool HasSentBeginMainFrameThisFrame() const;
|
| - bool HasRequestedSwapThisFrame() const;
|
| - bool HasSwappedThisFrame() const;
|
|
|
| void UpdateStateOnCommit(bool commit_had_no_updates);
|
| void UpdateStateOnActivation();
|
| @@ -301,8 +291,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| CommitState commit_state_;
|
| ForcedRedrawOnTimeoutState forced_redraw_state_;
|
|
|
| - BeginFrameArgs begin_impl_frame_args_;
|
| -
|
| + // These are used for tracing only.
|
| int commit_count_;
|
| int current_frame_number_;
|
| int last_frame_number_animate_performed_;
|
| @@ -310,11 +299,18 @@ class CC_EXPORT SchedulerStateMachine {
|
| int last_frame_number_swap_requested_;
|
| int last_frame_number_begin_main_frame_sent_;
|
|
|
| + // These are used to ensure that an action only happens once per frame,
|
| + // deadline, etc.
|
| + bool animate_funnel_;
|
| + bool perform_swap_funnel_;
|
| + bool request_swap_funnel_;
|
| + bool send_begin_main_frame_funnel_;
|
| // prepare_tiles_funnel_ is "filled" each time PrepareTiles is called
|
| // and "drained" on each BeginImplFrame. If the funnel gets too full,
|
| // we start throttling ACTION_PREPARE_TILES such that we average one
|
| // PrepareTiles per BeginImplFrame.
|
| int prepare_tiles_funnel_;
|
| +
|
| int consecutive_checkerboard_animations_;
|
| int max_pending_swaps_;
|
| int pending_swaps_;
|
| @@ -329,7 +325,6 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool has_pending_tree_;
|
| bool pending_tree_is_ready_for_activation_;
|
| bool active_tree_needs_first_draw_;
|
| - bool did_commit_after_animating_;
|
| bool did_create_and_initialize_first_output_surface_;
|
| bool impl_latency_takes_priority_;
|
| bool skip_next_begin_main_frame_to_reduce_latency_;
|
| @@ -337,6 +332,7 @@ class CC_EXPORT SchedulerStateMachine {
|
| bool continuous_painting_;
|
| bool children_need_begin_frames_;
|
| bool defer_commits_;
|
| + bool last_commit_had_no_updates_;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(SchedulerStateMachine);
|
|
|