Index: cc/scheduler/scheduler_state_machine.h |
diff --git a/cc/scheduler/scheduler_state_machine.h b/cc/scheduler/scheduler_state_machine.h |
index 2e61224fb284eb9933005a9cd9822227e98d626b..069384bdcccd4585a29e107c1e6f3ee5c3841b3a 100644 |
--- a/cc/scheduler/scheduler_state_machine.h |
+++ b/cc/scheduler/scheduler_state_machine.h |
@@ -254,6 +254,7 @@ class CC_EXPORT SchedulerStateMachine { |
bool ShouldCommit() const; |
bool ShouldManageTiles() const; |
+ void AdvanceCurrentFrameNumber(); |
bool HasSentBeginMainFrameThisFrame() const; |
bool HasScheduledManageTilesThisFrame() const; |
bool HasUpdatedVisibleTilesThisFrame() const; |
@@ -280,8 +281,12 @@ class CC_EXPORT SchedulerStateMachine { |
int last_frame_number_swap_performed_; |
int last_frame_number_begin_main_frame_sent_; |
int last_frame_number_update_visible_tiles_was_called_; |
- int last_frame_number_manage_tiles_called_; |
+ // manage_tiles_funnel_ is "filled" each time ManageTiles is called |
+ // and "drained" on each BeginImplFrame. If the funnel gets too full, |
+ // we start throttling ACTION_MANAGE_TILES such that we average one |
+ // ManageTile per BeginImplFrame. |
+ int manage_tiles_funnel_; |
int consecutive_failed_draws_; |
bool needs_redraw_; |
bool needs_manage_tiles_; |