| Index: cc/scheduler/scheduler_state_machine_unittest.cc
|
| diff --git a/cc/scheduler/scheduler_state_machine_unittest.cc b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| index 4a16da23a40bc0bf42e94325addd9a632880f7c6..93e2cc26faa84e547c97b8c21202b6d947a22f42 100644
|
| --- a/cc/scheduler/scheduler_state_machine_unittest.cc
|
| +++ b/cc/scheduler/scheduler_state_machine_unittest.cc
|
| @@ -16,7 +16,7 @@
|
| // Value of: actual() Actual: 7
|
| // Expected: expected() Which is: 0
|
| // With:
|
| -// Value of: actual() Actual: "ACTION_DRAW_AND_SWAP"
|
| +// Value of: actual() Actual: "ACTION_DRAW"
|
| // Expected: expected() Which is: "ACTION_NONE"
|
| #define EXPECT_ENUM_EQ(enum_tostring, expected, actual) \
|
| EXPECT_STREQ(SchedulerStateMachine::enum_tostring(expected), \
|
| @@ -35,18 +35,18 @@
|
| EXPECT_ENUM_EQ(ActionToString, expected, state.NextAction()) \
|
| << state.AsValue()->ToString()
|
|
|
| -#define EXPECT_ACTION_UPDATE_STATE(action) \
|
| - EXPECT_ACTION(action); \
|
| - if (action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE || \
|
| - action == SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED) { \
|
| - EXPECT_IMPL_FRAME_STATE( \
|
| - SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE); \
|
| - } \
|
| - PerformAction(&state, action); \
|
| - if (action == SchedulerStateMachine::ACTION_NONE) { \
|
| - if (state.begin_impl_frame_state() == \
|
| - SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE) \
|
| - state.OnBeginImplFrameIdle(); \
|
| +#define EXPECT_ACTION_UPDATE_STATE(action) \
|
| + EXPECT_ACTION(action); \
|
| + if (action == SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE || \
|
| + action == SchedulerStateMachine::ACTION_DRAW_FORCED) { \
|
| + EXPECT_IMPL_FRAME_STATE( \
|
| + SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE); \
|
| + } \
|
| + PerformAction(&state, action); \
|
| + if (action == SchedulerStateMachine::ACTION_NONE) { \
|
| + if (state.begin_impl_frame_state() == \
|
| + SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE) \
|
| + state.OnBeginImplFrameIdle(); \
|
| }
|
|
|
| #define SET_UP_STATE(state) \
|
| @@ -177,15 +177,15 @@ void PerformAction(StateMachine* sm, SchedulerStateMachine::Action action) {
|
| return;
|
| }
|
|
|
| - case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED:
|
| - case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE: {
|
| + case SchedulerStateMachine::ACTION_DRAW_FORCED:
|
| + case SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE: {
|
| sm->WillDraw();
|
| sm->DidDraw(sm->draw_result_for_test());
|
| return;
|
| }
|
|
|
| - case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: {
|
| - sm->AbortDrawAndSwap();
|
| + case SchedulerStateMachine::ACTION_DRAW_ABORT: {
|
| + sm->AbortDraw();
|
| return;
|
| }
|
|
|
| @@ -403,10 +403,9 @@ TEST(SchedulerStateMachineTest, MainFrameBeforeActivationEnabled) {
|
|
|
| EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately());
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_IDLE);
|
| }
|
| @@ -428,8 +427,7 @@ TEST(SchedulerStateMachineTest,
|
| // Failing a draw triggers request for a new BeginMainFrame.
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -444,8 +442,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -468,8 +465,7 @@ TEST(SchedulerStateMachineTest, FailedDrawForMissingHighResNeedsCommit) {
|
| // request for a new BeginMainFrame.
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -501,9 +497,8 @@ TEST(SchedulerStateMachineTest, FailedDrawForMissingHighResNeedsCommit) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_SUCCESS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -529,8 +524,7 @@ TEST(SchedulerStateMachineTest,
|
| state.SetNeedsRedraw(true);
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| EXPECT_TRUE(state.RedrawPending());
|
| @@ -557,11 +551,10 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_SUCCESS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED);
|
| - state.DidSwapBuffers();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_FORCED);
|
| + state.DidSubmitCompositorFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| - state.DidSwapBuffersComplete();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -585,8 +578,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| // Then initiate a draw.
|
| state.SetNeedsRedraw(true);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
|
|
| // Fail the draw enough times to force a redraw.
|
| for (int i = 0; i < draw_limit; ++i) {
|
| @@ -595,8 +587,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -617,8 +608,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -641,8 +631,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_TRUE(state.RedrawPending());
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
|
|
| // Failing the draw for animation checkerboards makes us require a commit.
|
| EXPECT_ACTION_UPDATE_STATE(
|
| @@ -659,10 +648,9 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| // the impl thread.
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_SUCCESS);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -678,10 +666,9 @@ TEST(SchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Before the next BeginImplFrame, set needs redraw again.
|
| @@ -694,13 +681,12 @@ TEST(SchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) {
|
| state.OnBeginImplFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| - // We just swapped, so we should proactively request another BeginImplFrame.
|
| + // We just submitted, so we should proactively request another BeginImplFrame.
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| }
|
|
|
| @@ -731,12 +717,12 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) {
|
| state.SetVisible(visible);
|
|
|
| // Case 1: needs_begin_main_frame=false
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| + EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE,
|
| state.NextAction());
|
|
|
| // Case 2: needs_begin_main_frame=true
|
| state.SetNeedsBeginMainFrame();
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| + EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE,
|
| state.NextAction())
|
| << state.AsValue()->ToString();
|
| }
|
| @@ -763,7 +749,7 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) {
|
| SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_READY_TO_COMMIT) {
|
| expected_action = SchedulerStateMachine::ACTION_COMMIT;
|
| } else {
|
| - expected_action = SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE;
|
| + expected_action = SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE;
|
| }
|
|
|
| // Case 1: needs_begin_main_frame=false.
|
| @@ -799,12 +785,12 @@ TEST(SchedulerStateMachineTest, TestNoBeginMainFrameStatesRedrawWhenInvisible) {
|
| }
|
|
|
| // Case 1: needs_begin_main_frame=false.
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| + EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE,
|
| state.NextAction());
|
|
|
| // Case 2: needs_begin_main_frame=true.
|
| state.SetNeedsBeginMainFrame();
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| + EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE,
|
| state.NextAction())
|
| << state.AsValue()->ToString();
|
| }
|
| @@ -833,7 +819,7 @@ TEST(SchedulerStateMachineTest, TestCanRedraw_StopsDraw) {
|
| state.OnBeginImplFrame();
|
|
|
| state.SetCanDraw(false);
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| + EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE,
|
| state.NextAction());
|
| }
|
| }
|
| @@ -854,7 +840,7 @@ TEST(SchedulerStateMachineTest,
|
| state.SetNeedsRedraw(true);
|
| state.SetCanDraw(false);
|
| state.OnBeginImplFrame();
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -864,7 +850,7 @@ TEST(SchedulerStateMachineTest,
|
| state.NotifyReadyToActivate();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -923,10 +909,9 @@ TEST(SchedulerStateMachineTest, TestSetNeedsBeginMainFrameIsNotLost) {
|
| state.OnBeginImplFrameDeadline();
|
|
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -966,10 +951,9 @@ TEST(SchedulerStateMachineTest, TestFullCycle) {
|
|
|
| // At BeginImplFrame deadline, draw.
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
|
|
| // Should be synchronized, no draw needed, no action needed.
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -1134,18 +1118,17 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitToActive) {
|
| // BeginMainFrame to be sent.
|
| state.NotifyReadyToDraw();
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - // Swap throttled from this point.
|
| - state.DidSwapBuffers();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + // Submit throttled from this point.
|
| + state.DidSubmitCompositorFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| - // Can't BeginMainFrame yet since we're swap throttled.
|
| + // Can't BeginMainFrame yet since we're submit-frame throttled.
|
| state.OnBeginImplFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| - // Swap ack unblocks BeginMainFrame.
|
| - state.DidSwapBuffersComplete();
|
| + // CompositorFrameAck unblocks BeginMainFrame.
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| state.NotifyBeginMainFrameStarted();
|
| @@ -1158,8 +1141,7 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitToActive) {
|
| // Draw the newly activated tree.
|
| state.NotifyReadyToDraw();
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1201,10 +1183,9 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) {
|
|
|
| // At BeginImplFrame deadline, draw.
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
|
|
| // Should be synchronized, no draw needed, no action needed.
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -1486,8 +1467,7 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_FALSE(state.RedrawPending());
|
|
|
| @@ -1503,12 +1483,11 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| state.SetCanDraw(false);
|
| EXPECT_ACTION(SchedulerStateMachine::ACTION_NONE);
|
| state.SetCanDraw(true);
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Once the context is recreated, whether we draw should be based on
|
| @@ -1530,11 +1509,11 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_TRUE(state.needs_redraw());
|
|
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| state.SetCanDraw(false);
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
| state.SetCanDraw(true);
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| }
|
|
|
| TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| @@ -1552,10 +1531,9 @@ TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Cause a lost context while the BeginMainFrame is in flight.
|
| @@ -1575,7 +1553,7 @@ TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| // We will abort the draw when the CompositorFrameSink is lost if we are
|
| // waiting for the first draw to unblock the main thread.
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
|
|
| // Expect to begin context recreation only in BEGIN_IMPL_FRAME_STATE_IDLE
|
| EXPECT_IMPL_FRAME_STATE(SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
|
| @@ -1610,10 +1588,9 @@ TEST(SchedulerStateMachineTest,
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Cause a lost context while the BeginMainFrame is in flight.
|
| @@ -1633,7 +1610,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
|
|
| // Because the CompositorFrameSink is missing, we expect the draw to abort.
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
|
|
| // Expect to begin context recreation only in BEGIN_IMPL_FRAME_STATE_IDLE
|
| EXPECT_IMPL_FRAME_STATE(SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
|
| @@ -1668,10 +1645,9 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1715,7 +1691,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE);
|
|
|
| EXPECT_TRUE(state.PendingDrawsShouldBeAborted());
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
| }
|
|
|
| TEST(SchedulerStateMachineTest, TestNoBeginFrameNeededWhenInvisible) {
|
| @@ -1779,7 +1755,7 @@ TEST(SchedulerStateMachineTest, TestFinishCommitWhenCommitInProgress) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE);
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1805,7 +1781,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE);
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
| - EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1958,9 +1934,8 @@ void FinishPreviousCommitAndDrawWithoutExitingDeadline(
|
|
|
| EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately());
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| }
|
|
|
| TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) {
|
| @@ -1987,11 +1962,10 @@ TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) {
|
|
|
| // Trigger the deadline.
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| + EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| - state.DidSwapBuffersComplete();
|
| + state.DidReceiveCompositorFrameAck();
|
|
|
| // Request a new commit and finish the previous one.
|
| state.SetNeedsBeginMainFrame();
|
| @@ -1999,15 +1973,15 @@ TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) {
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| - state.DidSwapBuffersComplete();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Finish the previous commit and draw it.
|
| FinishPreviousCommitAndDrawWithoutExitingDeadline(&state);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| - // Verify we do not send another BeginMainFrame if was are swap throttled
|
| - // and did not just swap.
|
| + // Verify we do not send another BeginMainFrame if was are submit-frame
|
| + // throttled and did not just submit one.
|
| state.SetNeedsBeginMainFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrame();
|
|
|