Index: cc/scheduler/scheduler.cc |
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
index 072086fe0dd262ea9bc03e66ccc4d2cb91c08d5b..295a2912b53323e3f1b1278fc2d66a56e765cf8c 100644 |
--- a/cc/scheduler/scheduler.cc |
+++ b/cc/scheduler/scheduler.cc |
@@ -606,16 +606,21 @@ void Scheduler::OnBeginImplFrameDeadline() { |
} |
void Scheduler::DrawAndSwapIfPossible() { |
+ state_machine_.WillDraw(); |
compositor_timing_history_->WillDraw(); |
DrawResult result = client_->ScheduledActionDrawAndSwapIfPossible(); |
- state_machine_.DidDrawIfPossibleCompleted(result); |
compositor_timing_history_->DidDraw(); |
+ bool did_request_swap = true; |
+ state_machine_.DidDraw(did_request_swap, result); |
} |
void Scheduler::DrawAndSwapForced() { |
+ state_machine_.WillDraw(); |
compositor_timing_history_->WillDraw(); |
- client_->ScheduledActionDrawAndSwapForced(); |
+ DrawResult result = client_->ScheduledActionDrawAndSwapForced(); |
compositor_timing_history_->DidDraw(); |
+ bool did_request_swap = true; |
+ state_machine_.DidDraw(did_request_swap, result); |
} |
void Scheduler::SetDeferCommits(bool defer_commits) { |
@@ -680,22 +685,18 @@ void Scheduler::ProcessScheduledActions() { |
tracked_objects::ScopedTracker tracking_profile6( |
FROM_HERE_WITH_EXPLICIT_FUNCTION( |
"461509 Scheduler::ProcessScheduledActions6")); |
- bool did_request_swap = true; |
- state_machine_.WillDraw(did_request_swap); |
DrawAndSwapIfPossible(); |
break; |
} |
- case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED: { |
- bool did_request_swap = true; |
- state_machine_.WillDraw(did_request_swap); |
+ case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED: |
DrawAndSwapForced(); |
break; |
- } |
case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: { |
// No action is actually performed, but this allows the state machine to |
// advance out of its waiting to draw state without actually drawing. |
bool did_request_swap = false; |
- state_machine_.WillDraw(did_request_swap); |
+ state_machine_.WillDraw(); |
+ state_machine_.DidDraw(did_request_swap, DRAW_SUCCESS); |
break; |
} |
case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION: |