Index: cc/scheduler/scheduler_state_machine.cc |
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc |
index 9d425d498e46aba5c2f9ddef7fe56921fb0133aa..41de95dc2b61e06566046cb38aeb52fbe92d1d7b 100644 |
--- a/cc/scheduler/scheduler_state_machine.cc |
+++ b/cc/scheduler/scheduler_state_machine.cc |
@@ -437,6 +437,14 @@ |
if (!HasInitializedOutputSurface()) |
return false; |
+ // SwapAck throttle the BeginMainFrames unless we just swapped. |
+ // TODO(brianderson): Remove this restriction to improve throughput. |
+ bool just_swapped_in_deadline = |
+ begin_impl_frame_state_ == BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE && |
+ did_perform_swap_in_last_draw_; |
+ if (pending_swaps_ >= max_pending_swaps_ && !just_swapped_in_deadline) |
+ return false; |
+ |
if (skip_begin_main_frame_to_reduce_latency_) |
return false; |