Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/scheduler/scheduler_state_machine.h" | 5 #include "cc/scheduler/scheduler_state_machine.h" |
| 6 | 6 |
| 7 #include "cc/scheduler/scheduler.h" | 7 #include "cc/scheduler/scheduler.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 | 9 |
| 10 #define EXPECT_ACTION_UPDATE_STATE(action) \ | 10 #define EXPECT_ACTION_UPDATE_STATE(action) \ |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 166 state.UpdateState(state.NextAction()); | 166 state.UpdateState(state.NextAction()); |
| 167 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); | 167 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
| 168 state.SetVisible(true); | 168 state.SetVisible(true); |
| 169 state.UpdateState(SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | 169 state.UpdateState(SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); |
| 170 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, | 170 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| 171 state.CommitState()); | 171 state.CommitState()); |
| 172 EXPECT_FALSE(state.NeedsCommit()); | 172 EXPECT_FALSE(state.NeedsCommit()); |
| 173 } | 173 } |
| 174 } | 174 } |
| 175 | 175 |
| 176 TEST(SchedulerStateMachineTest, | 176 TEST(SchedulerStateMachineTest, TestFailedDrawSetsRedrawAndCommitFlags) { |
| 177 TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain) { | |
| 178 SchedulerSettings default_scheduler_settings; | 177 SchedulerSettings default_scheduler_settings; |
| 179 StateMachine state(default_scheduler_settings); | 178 StateMachine state(default_scheduler_settings); |
| 180 state.SetCanStart(); | 179 state.SetCanStart(); |
| 181 state.UpdateState(state.NextAction()); | 180 state.UpdateState(state.NextAction()); |
| 182 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); | 181 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
| 183 state.SetVisible(true); | 182 state.SetVisible(true); |
| 184 state.SetCanDraw(true); | 183 state.SetCanDraw(true); |
| 185 state.SetNeedsRedraw(true); | 184 state.SetNeedsRedraw(true); |
| 186 EXPECT_TRUE(state.RedrawPending()); | 185 EXPECT_TRUE(state.RedrawPending()); |
| 187 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 186 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 188 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | |
| 189 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | |
| 190 state.OnBeginImplFrameDeadline(); | |
| 191 | 187 |
| 192 // We're drawing now. | 188 DrawSwapReadbackResult::DrawResult aborts[] = { |
|
brianderson
2014/01/29 01:31:22
Thanks for testing all the new abort results.
| |
| 193 EXPECT_ACTION_UPDATE_STATE( | 189 DrawSwapReadbackResult::DRAW_ABORTED_CANT_DRAW, |
| 194 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 190 DrawSwapReadbackResult::DRAW_ABORTED_NO_TREE, |
| 195 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 191 DrawSwapReadbackResult::DRAW_ABORTED_NO_RENDERER, |
| 192 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS, }; | |
| 196 | 193 |
| 197 EXPECT_FALSE(state.RedrawPending()); | 194 for (size_t i = 0; i < arraysize(aborts); ++i) { |
| 198 EXPECT_FALSE(state.CommitPending()); | 195 state.SetNeedsRedraw(true); |
| 196 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | |
| 197 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | |
| 198 state.OnBeginImplFrameDeadline(); | |
| 199 | 199 |
| 200 // Failing the draw makes us require a commit. | 200 EXPECT_ACTION_UPDATE_STATE( |
| 201 state.DidDrawIfPossibleCompleted(false); | 201 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 202 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 202 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 203 EXPECT_ACTION_UPDATE_STATE( | 203 EXPECT_FALSE(state.RedrawPending()); |
| 204 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | 204 EXPECT_FALSE(state.CommitPending()); |
| 205 EXPECT_TRUE(state.RedrawPending()); | 205 |
| 206 EXPECT_TRUE(state.CommitPending()); | 206 state.DidDrawIfPossibleCompleted(aborts[i]); |
| 207 | |
| 208 if (aborts[i] == | |
| 209 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS) { | |
| 210 // Failing the draw for checkerboarding causes a commit/redraw. | |
| 211 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | |
| 212 EXPECT_ACTION_UPDATE_STATE( | |
| 213 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | |
| 214 EXPECT_TRUE(state.RedrawPending()); | |
| 215 EXPECT_TRUE(state.CommitPending()); | |
| 216 } else { | |
| 217 // Failing the draw for most reasons does not require a commit or a | |
| 218 // redraw. | |
| 219 EXPECT_FALSE(state.RedrawPending()); | |
| 220 EXPECT_FALSE(state.CommitPending()); | |
| 221 } | |
| 222 } | |
| 207 } | 223 } |
| 208 | 224 |
| 209 TEST(SchedulerStateMachineTest, | 225 TEST(SchedulerStateMachineTest, |
| 210 TestsetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw) { | 226 TestsetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw) { |
| 211 SchedulerSettings default_scheduler_settings; | 227 SchedulerSettings default_scheduler_settings; |
| 212 StateMachine state(default_scheduler_settings); | 228 StateMachine state(default_scheduler_settings); |
| 213 state.SetCanStart(); | 229 state.SetCanStart(); |
| 214 state.UpdateState(state.NextAction()); | 230 state.UpdateState(state.NextAction()); |
| 215 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); | 231 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
| 216 | 232 |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 228 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 244 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 229 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 245 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 230 EXPECT_FALSE(state.RedrawPending()); | 246 EXPECT_FALSE(state.RedrawPending()); |
| 231 EXPECT_FALSE(state.CommitPending()); | 247 EXPECT_FALSE(state.CommitPending()); |
| 232 | 248 |
| 233 // While still in the same BeginMainFrame callback on the main thread, | 249 // While still in the same BeginMainFrame callback on the main thread, |
| 234 // set needs redraw again. This should not redraw. | 250 // set needs redraw again. This should not redraw. |
| 235 state.SetNeedsRedraw(true); | 251 state.SetNeedsRedraw(true); |
| 236 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 252 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 237 | 253 |
| 238 // Failing the draw makes us require a commit. | 254 // Failing the draw for animation checkerboards makes us require a commit. |
| 239 state.DidDrawIfPossibleCompleted(false); | 255 state.DidDrawIfPossibleCompleted( |
| 256 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS); | |
| 240 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 257 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); |
| 241 EXPECT_ACTION_UPDATE_STATE( | 258 EXPECT_ACTION_UPDATE_STATE( |
| 242 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | 259 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); |
| 243 EXPECT_TRUE(state.RedrawPending()); | 260 EXPECT_TRUE(state.RedrawPending()); |
| 244 } | 261 } |
| 245 | 262 |
| 246 void TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit( | 263 void TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit( |
| 247 bool deadline_scheduling_enabled) { | 264 bool deadline_scheduling_enabled) { |
| 248 SchedulerSettings scheduler_settings; | 265 SchedulerSettings scheduler_settings; |
| 249 scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = 1; | 266 scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = 1; |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 270 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 287 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 271 EXPECT_TRUE(state.CommitPending()); | 288 EXPECT_TRUE(state.CommitPending()); |
| 272 | 289 |
| 273 // Then initiate a draw. | 290 // Then initiate a draw. |
| 274 state.SetNeedsRedraw(true); | 291 state.SetNeedsRedraw(true); |
| 275 state.OnBeginImplFrameDeadline(); | 292 state.OnBeginImplFrameDeadline(); |
| 276 EXPECT_ACTION_UPDATE_STATE( | 293 EXPECT_ACTION_UPDATE_STATE( |
| 277 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 294 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 278 | 295 |
| 279 // Fail the draw. | 296 // Fail the draw. |
| 280 state.DidDrawIfPossibleCompleted(false); | 297 state.DidDrawIfPossibleCompleted( |
| 298 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS); | |
| 281 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 299 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 282 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 300 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 283 EXPECT_TRUE(state.RedrawPending()); | 301 EXPECT_TRUE(state.RedrawPending()); |
| 284 // But the commit is ongoing. | 302 // But the commit is ongoing. |
| 285 EXPECT_TRUE(state.CommitPending()); | 303 EXPECT_TRUE(state.CommitPending()); |
| 286 | 304 |
| 287 // Finish the commit. Note, we should not yet be forcing a draw, but should | 305 // Finish the commit. Note, we should not yet be forcing a draw, but should |
| 288 // continue the commit as usual. | 306 // continue the commit as usual. |
| 289 state.FinishCommit(); | 307 state.FinishCommit(); |
| 290 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 308 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 309 TEST(SchedulerStateMachineTest, | 327 TEST(SchedulerStateMachineTest, |
| 310 TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit_Deadline) { | 328 TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit_Deadline) { |
| 311 bool deadline_scheduling_enabled = true; | 329 bool deadline_scheduling_enabled = true; |
| 312 TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit( | 330 TestFailedDrawsWillEventuallyForceADrawAfterTheNextCommit( |
| 313 deadline_scheduling_enabled); | 331 deadline_scheduling_enabled); |
| 314 } | 332 } |
| 315 | 333 |
| 316 void TestFailedDrawsDoNotRestartForcedDraw( | 334 void TestFailedDrawsDoNotRestartForcedDraw( |
| 317 bool deadline_scheduling_enabled) { | 335 bool deadline_scheduling_enabled) { |
| 318 SchedulerSettings scheduler_settings; | 336 SchedulerSettings scheduler_settings; |
| 319 int drawLimit = 1; | 337 int draw_limit = 1; |
| 320 scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = | 338 scheduler_settings.maximum_number_of_failed_draws_before_draw_is_forced_ = |
| 321 drawLimit; | 339 draw_limit; |
| 322 scheduler_settings.deadline_scheduling_enabled = deadline_scheduling_enabled; | 340 scheduler_settings.deadline_scheduling_enabled = deadline_scheduling_enabled; |
| 323 scheduler_settings.impl_side_painting = true; | 341 scheduler_settings.impl_side_painting = true; |
| 324 StateMachine state(scheduler_settings); | 342 StateMachine state(scheduler_settings); |
| 325 state.SetCanStart(); | 343 state.SetCanStart(); |
| 326 state.UpdateState(state.NextAction()); | 344 state.UpdateState(state.NextAction()); |
| 327 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); | 345 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
| 328 state.SetVisible(true); | 346 state.SetVisible(true); |
| 329 state.SetCanDraw(true); | 347 state.SetCanDraw(true); |
| 330 | 348 |
| 331 // Start a commit. | 349 // Start a commit. |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 344 EXPECT_TRUE(state.CommitPending()); | 362 EXPECT_TRUE(state.CommitPending()); |
| 345 | 363 |
| 346 // Then initiate a draw. | 364 // Then initiate a draw. |
| 347 state.SetNeedsRedraw(true); | 365 state.SetNeedsRedraw(true); |
| 348 state.OnBeginImplFrameDeadline(); | 366 state.OnBeginImplFrameDeadline(); |
| 349 EXPECT_ACTION_UPDATE_STATE( | 367 EXPECT_ACTION_UPDATE_STATE( |
| 350 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 368 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 351 | 369 |
| 352 // Fail the draw enough times to force a redraw, | 370 // Fail the draw enough times to force a redraw, |
| 353 // then once more for good measure. | 371 // then once more for good measure. |
| 354 for (int i = 0; i < drawLimit; ++i) | 372 for (int i = 0; i < draw_limit + 1; ++i) { |
| 355 state.DidDrawIfPossibleCompleted(false); | 373 state.DidDrawIfPossibleCompleted( |
| 356 state.DidDrawIfPossibleCompleted(false); | 374 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS); |
| 375 } | |
| 357 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 376 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 358 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 377 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 359 EXPECT_TRUE(state.RedrawPending()); | 378 EXPECT_TRUE(state.RedrawPending()); |
| 360 // But the commit is ongoing. | 379 // But the commit is ongoing. |
| 361 EXPECT_TRUE(state.CommitPending()); | 380 EXPECT_TRUE(state.CommitPending()); |
| 362 EXPECT_TRUE(state.ForcedRedrawState() == | 381 EXPECT_TRUE(state.ForcedRedrawState() == |
| 363 SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_COMMIT); | 382 SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_COMMIT); |
| 364 | 383 |
| 365 state.FinishCommit(); | 384 state.FinishCommit(); |
| 366 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 385 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| 367 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 386 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 368 EXPECT_TRUE(state.RedrawPending()); | 387 EXPECT_TRUE(state.RedrawPending()); |
| 369 EXPECT_FALSE(state.CommitPending()); | 388 EXPECT_FALSE(state.CommitPending()); |
| 370 | 389 |
| 371 // Now force redraw should be in waiting for activation | 390 // Now force redraw should be in waiting for activation |
| 372 EXPECT_TRUE(state.ForcedRedrawState() == | 391 EXPECT_TRUE(state.ForcedRedrawState() == |
| 373 SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION); | 392 SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION); |
| 374 | 393 |
| 375 // After failing additional draws, we should still be in a forced | 394 // After failing additional draws, we should still be in a forced |
| 376 // redraw, but not back in WAITING_FOR_COMMIT. | 395 // redraw, but not back in WAITING_FOR_COMMIT. |
| 377 for (int i = 0; i < drawLimit; ++i) | 396 for (int i = 0; i < draw_limit + 1; ++i) { |
| 378 state.DidDrawIfPossibleCompleted(false); | 397 state.DidDrawIfPossibleCompleted( |
| 379 state.DidDrawIfPossibleCompleted(false); | 398 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS); |
| 399 } | |
| 380 EXPECT_TRUE(state.RedrawPending()); | 400 EXPECT_TRUE(state.RedrawPending()); |
| 381 EXPECT_TRUE(state.ForcedRedrawState() == | 401 EXPECT_TRUE(state.ForcedRedrawState() == |
| 382 SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION); | 402 SchedulerStateMachine::FORCED_REDRAW_STATE_WAITING_FOR_ACTIVATION); |
| 383 } | 403 } |
| 384 | 404 |
| 385 TEST(SchedulerStateMachineTest, | 405 TEST(SchedulerStateMachineTest, |
| 386 TestFailedDrawsDoNotRestartForcedDraw) { | 406 TestFailedDrawsDoNotRestartForcedDraw) { |
| 387 bool deadline_scheduling_enabled = false; | 407 bool deadline_scheduling_enabled = false; |
| 388 TestFailedDrawsDoNotRestartForcedDraw( | 408 TestFailedDrawsDoNotRestartForcedDraw( |
| 389 deadline_scheduling_enabled); | 409 deadline_scheduling_enabled); |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 408 // Start a draw. | 428 // Start a draw. |
| 409 state.SetNeedsRedraw(true); | 429 state.SetNeedsRedraw(true); |
| 410 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 430 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 411 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 431 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); |
| 412 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 432 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 413 state.OnBeginImplFrameDeadline(); | 433 state.OnBeginImplFrameDeadline(); |
| 414 EXPECT_TRUE(state.RedrawPending()); | 434 EXPECT_TRUE(state.RedrawPending()); |
| 415 EXPECT_ACTION_UPDATE_STATE( | 435 EXPECT_ACTION_UPDATE_STATE( |
| 416 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 436 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 417 | 437 |
| 418 // Fail the draw | 438 // Failing the draw for animation checkerboards makes us require a commit. |
| 419 state.DidDrawIfPossibleCompleted(false); | 439 state.DidDrawIfPossibleCompleted( |
| 440 DrawSwapReadbackResult::DRAW_ABORTED_CHECKERBOARD_ANIMATIONS); | |
| 420 EXPECT_ACTION_UPDATE_STATE( | 441 EXPECT_ACTION_UPDATE_STATE( |
| 421 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | 442 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); |
| 422 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 443 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 423 EXPECT_TRUE(state.RedrawPending()); | 444 EXPECT_TRUE(state.RedrawPending()); |
| 424 | 445 |
| 425 // We should not be trying to draw again now, but we have a commit pending. | 446 // We should not be trying to draw again now, but we have a commit pending. |
| 426 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 447 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 427 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 448 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); |
| 428 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 449 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 429 | 450 |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 446 state.SetNeedsRedraw(true); | 467 state.SetNeedsRedraw(true); |
| 447 | 468 |
| 448 // Draw the first frame. | 469 // Draw the first frame. |
| 449 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 470 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 450 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 471 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); |
| 451 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 472 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 452 | 473 |
| 453 state.OnBeginImplFrameDeadline(); | 474 state.OnBeginImplFrameDeadline(); |
| 454 EXPECT_ACTION_UPDATE_STATE( | 475 EXPECT_ACTION_UPDATE_STATE( |
| 455 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 476 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 456 state.DidDrawIfPossibleCompleted(true); | 477 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 457 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 478 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 458 | 479 |
| 459 // Before the next BeginImplFrame, set needs redraw again. | 480 // Before the next BeginImplFrame, set needs redraw again. |
| 460 // This should not redraw until the next BeginImplFrame. | 481 // This should not redraw until the next BeginImplFrame. |
| 461 state.SetNeedsRedraw(true); | 482 state.SetNeedsRedraw(true); |
| 462 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 483 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 463 | 484 |
| 464 // Move to another frame. This should now draw. | 485 // Move to another frame. This should now draw. |
| 465 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 486 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 466 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 487 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); |
| 467 | 488 |
| 468 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 489 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 469 | 490 |
| 470 state.OnBeginImplFrameDeadline(); | 491 state.OnBeginImplFrameDeadline(); |
| 471 EXPECT_ACTION_UPDATE_STATE( | 492 EXPECT_ACTION_UPDATE_STATE( |
| 472 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 493 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 473 state.DidDrawIfPossibleCompleted(true); | 494 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 474 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 495 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 475 | 496 |
| 476 // We just swapped, so we should proactively request another BeginImplFrame. | 497 // We just swapped, so we should proactively request another BeginImplFrame. |
| 477 EXPECT_TRUE(state.BeginImplFrameNeeded()); | 498 EXPECT_TRUE(state.BeginImplFrameNeeded()); |
| 478 } | 499 } |
| 479 | 500 |
| 480 TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) { | 501 TEST(SchedulerStateMachineTest, TestNextActionDrawsOnBeginImplFrame) { |
| 481 SchedulerSettings default_scheduler_settings; | 502 SchedulerSettings default_scheduler_settings; |
| 482 | 503 |
| 483 // When not in BeginImplFrame deadline, or in BeginImplFrame deadline | 504 // When not in BeginImplFrame deadline, or in BeginImplFrame deadline |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 708 EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.NextAction()); | 729 EXPECT_EQ(SchedulerStateMachine::ACTION_COMMIT, state.NextAction()); |
| 709 | 730 |
| 710 // Commit and make sure we draw on next BeginImplFrame | 731 // Commit and make sure we draw on next BeginImplFrame |
| 711 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 732 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| 712 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 733 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 713 state.OnBeginImplFrameDeadline(); | 734 state.OnBeginImplFrameDeadline(); |
| 714 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, | 735 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| 715 state.CommitState()); | 736 state.CommitState()); |
| 716 EXPECT_ACTION_UPDATE_STATE( | 737 EXPECT_ACTION_UPDATE_STATE( |
| 717 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 738 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 718 state.DidDrawIfPossibleCompleted(true); | 739 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 719 | 740 |
| 720 // Verify that another commit will start immediately after draw. | 741 // Verify that another commit will start immediately after draw. |
| 721 EXPECT_ACTION_UPDATE_STATE( | 742 EXPECT_ACTION_UPDATE_STATE( |
| 722 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | 743 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); |
| 723 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 744 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 724 } | 745 } |
| 725 | 746 |
| 726 TEST(SchedulerStateMachineTest, TestFullCycle) { | 747 TEST(SchedulerStateMachineTest, TestFullCycle) { |
| 727 SchedulerSettings default_scheduler_settings; | 748 SchedulerSettings default_scheduler_settings; |
| 728 StateMachine state(default_scheduler_settings); | 749 StateMachine state(default_scheduler_settings); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 755 state.CommitState()); | 776 state.CommitState()); |
| 756 EXPECT_TRUE(state.needs_redraw()); | 777 EXPECT_TRUE(state.needs_redraw()); |
| 757 | 778 |
| 758 // Expect to do nothing until BeginImplFrame deadline | 779 // Expect to do nothing until BeginImplFrame deadline |
| 759 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 780 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 760 | 781 |
| 761 // At BeginImplFrame deadline, draw. | 782 // At BeginImplFrame deadline, draw. |
| 762 state.OnBeginImplFrameDeadline(); | 783 state.OnBeginImplFrameDeadline(); |
| 763 EXPECT_ACTION_UPDATE_STATE( | 784 EXPECT_ACTION_UPDATE_STATE( |
| 764 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 785 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 765 state.DidDrawIfPossibleCompleted(true); | 786 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 766 | 787 |
| 767 // Should be synchronized, no draw needed, no action needed. | 788 // Should be synchronized, no draw needed, no action needed. |
| 768 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 789 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 769 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_IDLE, state.CommitState()); | 790 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_IDLE, state.CommitState()); |
| 770 EXPECT_FALSE(state.needs_redraw()); | 791 EXPECT_FALSE(state.needs_redraw()); |
| 771 } | 792 } |
| 772 | 793 |
| 773 TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) { | 794 TEST(SchedulerStateMachineTest, TestFullCycleWithCommitRequestInbetween) { |
| 774 SchedulerSettings default_scheduler_settings; | 795 SchedulerSettings default_scheduler_settings; |
| 775 StateMachine state(default_scheduler_settings); | 796 StateMachine state(default_scheduler_settings); |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 806 state.CommitState()); | 827 state.CommitState()); |
| 807 EXPECT_TRUE(state.needs_redraw()); | 828 EXPECT_TRUE(state.needs_redraw()); |
| 808 | 829 |
| 809 // Expect to do nothing until BeginImplFrame deadline. | 830 // Expect to do nothing until BeginImplFrame deadline. |
| 810 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 831 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 811 | 832 |
| 812 // At BeginImplFrame deadline, draw. | 833 // At BeginImplFrame deadline, draw. |
| 813 state.OnBeginImplFrameDeadline(); | 834 state.OnBeginImplFrameDeadline(); |
| 814 EXPECT_ACTION_UPDATE_STATE( | 835 EXPECT_ACTION_UPDATE_STATE( |
| 815 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); | 836 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); |
| 816 state.DidDrawIfPossibleCompleted(true); | 837 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 817 | 838 |
| 818 // Should be synchronized, no draw needed, no action needed. | 839 // Should be synchronized, no draw needed, no action needed. |
| 819 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 840 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 820 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_IDLE, state.CommitState()); | 841 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_IDLE, state.CommitState()); |
| 821 EXPECT_FALSE(state.needs_redraw()); | 842 EXPECT_FALSE(state.needs_redraw()); |
| 822 | 843 |
| 823 // Next BeginImplFrame should initiate second commit. | 844 // Next BeginImplFrame should initiate second commit. |
| 824 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); | 845 state.OnBeginImplFrame(BeginFrameArgs::CreateForTesting()); |
| 825 EXPECT_ACTION_UPDATE_STATE( | 846 EXPECT_ACTION_UPDATE_STATE( |
| 826 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); | 847 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1442 state.FinishCommit(); | 1463 state.FinishCommit(); |
| 1443 | 1464 |
| 1444 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, | 1465 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| 1445 state.CommitState()); | 1466 state.CommitState()); |
| 1446 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 1467 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| 1447 | 1468 |
| 1448 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, | 1469 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| 1449 state.CommitState()); | 1470 state.CommitState()); |
| 1450 | 1471 |
| 1451 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); | 1472 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| 1452 state.DidDrawIfPossibleCompleted(true); | 1473 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 1453 | 1474 |
| 1454 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 1475 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 1455 | 1476 |
| 1456 // Should be waiting for the normal BeginMainFrame. | 1477 // Should be waiting for the normal BeginMainFrame. |
| 1457 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, | 1478 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| 1458 state.CommitState()); | 1479 state.CommitState()); |
| 1459 } | 1480 } |
| 1460 | 1481 |
| 1461 void TestImmediateFinishCommitDuringCommit(bool deadline_scheduling_enabled) { | 1482 void TestImmediateFinishCommitDuringCommit(bool deadline_scheduling_enabled) { |
| 1462 SchedulerSettings scheduler_settings; | 1483 SchedulerSettings scheduler_settings; |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 1485 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 1506 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 1486 state.FinishCommit(); | 1507 state.FinishCommit(); |
| 1487 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, | 1508 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| 1488 state.CommitState()); | 1509 state.CommitState()); |
| 1489 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 1510 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| 1490 | 1511 |
| 1491 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, | 1512 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| 1492 state.CommitState()); | 1513 state.CommitState()); |
| 1493 | 1514 |
| 1494 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); | 1515 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| 1495 state.DidDrawIfPossibleCompleted(true); | 1516 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 1496 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 1517 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 1497 | 1518 |
| 1498 // Should be waiting for the normal BeginMainFrame. | 1519 // Should be waiting for the normal BeginMainFrame. |
| 1499 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, | 1520 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| 1500 state.CommitState()) | 1521 state.CommitState()) |
| 1501 << *state.AsValue(); | 1522 << *state.AsValue(); |
| 1502 } | 1523 } |
| 1503 | 1524 |
| 1504 TEST(SchedulerStateMachineTest, TestImmediateFinishCommitDuringCommit) { | 1525 TEST(SchedulerStateMachineTest, TestImmediateFinishCommitDuringCommit) { |
| 1505 bool deadline_scheduling_enabled = false; | 1526 bool deadline_scheduling_enabled = false; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1539 state.FinishCommit(); | 1560 state.FinishCommit(); |
| 1540 | 1561 |
| 1541 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, | 1562 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| 1542 state.CommitState()); | 1563 state.CommitState()); |
| 1543 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 1564 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| 1544 | 1565 |
| 1545 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, | 1566 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| 1546 state.CommitState()); | 1567 state.CommitState()); |
| 1547 | 1568 |
| 1548 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); | 1569 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| 1549 state.DidDrawIfPossibleCompleted(true); | 1570 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 1550 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 1571 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 1551 | 1572 |
| 1552 // Should be waiting for BeginMainFrame. | 1573 // Should be waiting for BeginMainFrame. |
| 1553 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, | 1574 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_FRAME_IN_PROGRESS, |
| 1554 state.CommitState()) | 1575 state.CommitState()) |
| 1555 << *state.AsValue(); | 1576 << *state.AsValue(); |
| 1556 | 1577 |
| 1557 // Become invisible and abort BeginMainFrame. | 1578 // Become invisible and abort BeginMainFrame. |
| 1558 state.SetVisible(false); | 1579 state.SetVisible(false); |
| 1559 state.BeginMainFrameAborted(false); | 1580 state.BeginMainFrameAborted(false); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1595 state.FinishCommit(); | 1616 state.FinishCommit(); |
| 1596 | 1617 |
| 1597 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, | 1618 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_READY_TO_COMMIT, |
| 1598 state.CommitState()); | 1619 state.CommitState()); |
| 1599 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); | 1620 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT); |
| 1600 | 1621 |
| 1601 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, | 1622 EXPECT_EQ(SchedulerStateMachine::COMMIT_STATE_WAITING_FOR_FIRST_DRAW, |
| 1602 state.CommitState()); | 1623 state.CommitState()); |
| 1603 | 1624 |
| 1604 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); | 1625 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_DRAW_AND_READBACK); |
| 1605 state.DidDrawIfPossibleCompleted(true); | 1626 state.DidDrawIfPossibleCompleted(DrawSwapReadbackResult::DID_DRAW); |
| 1606 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 1627 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 1607 } | 1628 } |
| 1608 | 1629 |
| 1609 TEST(SchedulerStateMachineTest, ReportIfNotDrawing) { | 1630 TEST(SchedulerStateMachineTest, ReportIfNotDrawing) { |
| 1610 SchedulerSettings default_scheduler_settings; | 1631 SchedulerSettings default_scheduler_settings; |
| 1611 StateMachine state(default_scheduler_settings); | 1632 StateMachine state(default_scheduler_settings); |
| 1612 state.SetCanStart(); | 1633 state.SetCanStart(); |
| 1613 state.UpdateState(state.NextAction()); | 1634 state.UpdateState(state.NextAction()); |
| 1614 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); | 1635 state.CreateAndInitializeOutputSurfaceWithActivatedCommit(); |
| 1615 | 1636 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1756 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); | 1777 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); |
| 1757 | 1778 |
| 1758 // The deadline is not triggered early until we enter prefer smoothness mode. | 1779 // The deadline is not triggered early until we enter prefer smoothness mode. |
| 1759 EXPECT_FALSE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); | 1780 EXPECT_FALSE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); |
| 1760 state.SetSmoothnessTakesPriority(true); | 1781 state.SetSmoothnessTakesPriority(true); |
| 1761 EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); | 1782 EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineEarly()); |
| 1762 } | 1783 } |
| 1763 | 1784 |
| 1764 } // namespace | 1785 } // namespace |
| 1765 } // namespace cc | 1786 } // namespace cc |
| OLD | NEW |