Index: cc/scheduler/scheduler_state_machine.cc |
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc |
index d54907f4059f844307e7370126faf5c7784ac2e2..c3a4a1e272a5a6006ac49548dea5b206cdb40a0b 100644 |
--- a/cc/scheduler/scheduler_state_machine.cc |
+++ b/cc/scheduler/scheduler_state_machine.cc |
@@ -875,6 +875,12 @@ bool SchedulerStateMachine::ShouldTriggerBeginImplFrameDeadlineImmediately() |
if (pending_swaps_ >= max_pending_swaps_) |
return false; |
+ if (active_tree_needs_first_draw_) |
+ return true; |
+ |
+ if (!needs_redraw_) |
+ return false; |
+ |
// This is used to prioritize impl-thread draws when the main thread isn't |
// producing anything, e.g., after an aborted commit. We also check that we |
// don't have a pending tree -- otherwise we should give it a chance to |
@@ -883,12 +889,6 @@ bool SchedulerStateMachine::ShouldTriggerBeginImplFrameDeadlineImmediately() |
if (commit_state_ == COMMIT_STATE_IDLE && !has_pending_tree_) |
return true; |
- if (!needs_redraw_) |
- return false; |
- |
- if (active_tree_needs_first_draw_) |
- return true; |
- |
// Prioritize impl-thread draws in impl_latency_takes_priority_ mode. |
if (impl_latency_takes_priority_) |
return true; |