| 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..e44a6acc111d9d93eb4f622aa69ec3cf5b57bf9d 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_SUBMIT_COMPOSITOR_FRAME"
|
| // Expected: expected() Which is: "ACTION_NONE"
|
| #define EXPECT_ENUM_EQ(enum_tostring, expected, actual) \
|
| EXPECT_STREQ(SchedulerStateMachine::enum_tostring(expected), \
|
| @@ -35,18 +35,20 @@
|
| 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_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE || \
|
| + action == \
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_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 +179,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_SUBMIT_COMPOSITOR_FRAME_FORCED:
|
| + case SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE: {
|
| sm->WillDraw();
|
| sm->DidDraw(sm->draw_result_for_test());
|
| return;
|
| }
|
|
|
| - case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: {
|
| - sm->AbortDrawAndSwap();
|
| + case SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_ABORT: {
|
| + sm->AbortSubmitCompositorFrame();
|
| return;
|
| }
|
|
|
| @@ -404,9 +406,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();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_IDLE);
|
| }
|
| @@ -429,7 +431,7 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -445,7 +447,7 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -469,7 +471,7 @@ TEST(SchedulerStateMachineTest, FailedDrawForMissingHighResNeedsCommit) {
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_MISSING_HIGH_RES_CONTENT);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -502,8 +504,8 @@ TEST(SchedulerStateMachineTest, FailedDrawForMissingHighResNeedsCommit) {
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_SUCCESS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -530,7 +532,7 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_TRUE(state.BeginFrameNeeded());
|
| EXPECT_TRUE(state.RedrawPending());
|
| @@ -558,10 +560,10 @@ TEST(SchedulerStateMachineTest,
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_SUCCESS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED);
|
| - state.DidSwapBuffers();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_FORCED);
|
| + state.DidSubmitCompositorFrame();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| - state.DidSwapBuffersComplete();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -586,7 +588,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| state.SetNeedsRedraw(true);
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
|
|
| // Fail the draw enough times to force a redraw.
|
| for (int i = 0; i < draw_limit; ++i) {
|
| @@ -596,7 +598,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -618,7 +620,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawsDoNotRestartForcedDraw) {
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameIdle();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -642,7 +644,7 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| EXPECT_TRUE(state.RedrawPending());
|
| state.SetDrawResultForTest(DRAW_ABORTED_CHECKERBOARD_ANIMATIONS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
|
|
| // Failing the draw for animation checkerboards makes us require a commit.
|
| EXPECT_ACTION_UPDATE_STATE(
|
| @@ -660,9 +662,9 @@ TEST(SchedulerStateMachineTest, TestFailedDrawIsRetriedInNextBeginImplFrame) {
|
| state.OnBeginImplFrameDeadline();
|
| state.SetDrawResultForTest(DRAW_SUCCESS);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -679,9 +681,9 @@ TEST(SchedulerStateMachineTest, TestDoestDrawTwiceInSameFrame) {
|
|
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Before the next BeginImplFrame, set needs redraw again.
|
| @@ -695,12 +697,12 @@ 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();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_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,13 +733,15 @@ TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) {
|
| state.SetVisible(visible);
|
|
|
| // Case 1: needs_begin_main_frame=false
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| - state.NextAction());
|
| + EXPECT_NE(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE,
|
| + state.NextAction());
|
|
|
| // Case 2: needs_begin_main_frame=true
|
| state.SetNeedsBeginMainFrame();
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| - state.NextAction())
|
| + EXPECT_NE(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE,
|
| + state.NextAction())
|
| << state.AsValue()->ToString();
|
| }
|
| }
|
| @@ -763,7 +767,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE;
|
| }
|
|
|
| // Case 1: needs_begin_main_frame=false.
|
| @@ -799,13 +804,15 @@ TEST(SchedulerStateMachineTest, TestNoBeginMainFrameStatesRedrawWhenInvisible) {
|
| }
|
|
|
| // Case 1: needs_begin_main_frame=false.
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| - state.NextAction());
|
| + EXPECT_NE(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE,
|
| + state.NextAction());
|
|
|
| // Case 2: needs_begin_main_frame=true.
|
| state.SetNeedsBeginMainFrame();
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| - state.NextAction())
|
| + EXPECT_NE(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE,
|
| + state.NextAction())
|
| << state.AsValue()->ToString();
|
| }
|
| }
|
| @@ -833,8 +840,9 @@ TEST(SchedulerStateMachineTest, TestCanRedraw_StopsDraw) {
|
| state.OnBeginImplFrame();
|
|
|
| state.SetCanDraw(false);
|
| - EXPECT_NE(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE,
|
| - state.NextAction());
|
| + EXPECT_NE(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE,
|
| + state.NextAction());
|
| }
|
| }
|
| }
|
| @@ -854,7 +862,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -864,7 +873,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -924,9 +934,9 @@ TEST(SchedulerStateMachineTest, TestSetNeedsBeginMainFrameIsNotLost) {
|
|
|
| EXPECT_TRUE(state.active_tree_needs_first_draw());
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -967,9 +977,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();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
|
|
| // Should be synchronized, no draw needed, no action needed.
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -1135,17 +1145,17 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitToActive) {
|
| state.NotifyReadyToDraw();
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - // Swap throttled from this point.
|
| - state.DidSwapBuffers();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_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();
|
| @@ -1159,7 +1169,7 @@ TEST(SchedulerStateMachineTest, TestFullCycleWithCommitToActive) {
|
| state.NotifyReadyToDraw();
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1202,9 +1212,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();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
|
|
| // Should be synchronized, no draw needed, no action needed.
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| @@ -1487,7 +1497,7 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| EXPECT_FALSE(state.RedrawPending());
|
|
|
| @@ -1503,12 +1513,13 @@ 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_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| state.SetCanDraw(false);
|
| EXPECT_ACTION(SchedulerStateMachine::ACTION_NONE);
|
| state.SetCanDraw(true);
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
|
|
| // Once the context is recreated, whether we draw should be based on
|
| @@ -1530,11 +1541,13 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_TRUE(state.needs_redraw());
|
|
|
| state.OnBeginImplFrameDeadline();
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| state.SetCanDraw(false);
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT);
|
| + EXPECT_ACTION(SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
| state.SetCanDraw(true);
|
| - EXPECT_ACTION(SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| + EXPECT_ACTION(
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| }
|
|
|
| TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| @@ -1553,9 +1566,9 @@ TEST(SchedulerStateMachineTest, TestContextLostWhileCommitInProgress) {
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_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 +1588,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
|
|
| // Expect to begin context recreation only in BEGIN_IMPL_FRAME_STATE_IDLE
|
| EXPECT_IMPL_FRAME_STATE(SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
|
| @@ -1611,9 +1625,9 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_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 +1647,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
|
|
| // Expect to begin context recreation only in BEGIN_IMPL_FRAME_STATE_IDLE
|
| EXPECT_IMPL_FRAME_STATE(SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE);
|
| @@ -1669,9 +1684,9 @@ TEST(SchedulerStateMachineTest,
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| - state.DidSwapBuffersComplete();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| + state.DidReceiveCompositorFrameAck();
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1715,7 +1730,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
| }
|
|
|
| TEST(SchedulerStateMachineTest, TestNoBeginFrameNeededWhenInvisible) {
|
| @@ -1779,7 +1795,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1805,7 +1822,8 @@ 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_SUBMIT_COMPOSITOR_FRAME_ABORT);
|
| EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
|
| }
|
|
|
| @@ -1959,8 +1977,8 @@ void FinishPreviousCommitAndDrawWithoutExitingDeadline(
|
| EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately());
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_IF_POSSIBLE);
|
| + state.DidSubmitCompositorFrame();
|
| }
|
|
|
| TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) {
|
| @@ -1988,10 +2006,10 @@ TEST(SchedulerStateMachineTest, TestImplLatencyTakesPriority) {
|
| // Trigger the deadline.
|
| state.OnBeginImplFrameDeadline();
|
| EXPECT_ACTION_UPDATE_STATE(
|
| - SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
|
| - state.DidSwapBuffers();
|
| + SchedulerStateMachine::ACTION_SUBMIT_COMPOSITOR_FRAME_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 +2017,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();
|
|
|