| 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.h" | 5 #include "cc/scheduler/scheduler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 | 321 |
| 322 scheduler_->NotifyBeginMainFrameStarted(); | 322 scheduler_->NotifyBeginMainFrameStarted(); |
| 323 scheduler_->NotifyReadyToCommit(); | 323 scheduler_->NotifyReadyToCommit(); |
| 324 scheduler_->NotifyReadyToActivate(); | 324 scheduler_->NotifyReadyToActivate(); |
| 325 scheduler_->NotifyReadyToDraw(); | 325 scheduler_->NotifyReadyToDraw(); |
| 326 | 326 |
| 327 EXPECT_FALSE(scheduler_->CommitPending()); | 327 EXPECT_FALSE(scheduler_->CommitPending()); |
| 328 | 328 |
| 329 if (scheduler_settings_.using_synchronous_renderer_compositor) { | 329 if (scheduler_settings_.using_synchronous_renderer_compositor) { |
| 330 scheduler_->SetNeedsRedraw(); | 330 scheduler_->SetNeedsRedraw(); |
| 331 scheduler_->OnDrawForOutputSurface(); | 331 bool resourceless_software_draw = false; |
| 332 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 332 } else { | 333 } else { |
| 333 // Run the posted deadline task. | 334 // Run the posted deadline task. |
| 334 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); | 335 EXPECT_TRUE(scheduler_->BeginImplFrameDeadlinePending()); |
| 335 task_runner_->RunTasksWhile(client_->ImplFrameDeadlinePending(true)); | 336 task_runner_->RunTasksWhile(client_->ImplFrameDeadlinePending(true)); |
| 336 } | 337 } |
| 337 | 338 |
| 338 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 339 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 339 } | 340 } |
| 340 | 341 |
| 341 client_->Reset(); | 342 client_->Reset(); |
| (...skipping 2761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3103 // Next vsync. | 3104 // Next vsync. |
| 3104 AdvanceFrame(); | 3105 AdvanceFrame(); |
| 3105 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3106 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3106 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3107 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3107 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); | 3108 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); |
| 3108 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3109 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3109 client_->Reset(); | 3110 client_->Reset(); |
| 3110 | 3111 |
| 3111 // Android onDraw. This doesn't consume the animate tick. | 3112 // Android onDraw. This doesn't consume the animate tick. |
| 3112 scheduler_->SetNeedsRedraw(); | 3113 scheduler_->SetNeedsRedraw(); |
| 3113 scheduler_->OnDrawForOutputSurface(); | 3114 bool resourceless_software_draw = false; |
| 3115 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3114 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); | 3116 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); |
| 3115 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3117 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3116 client_->Reset(); | 3118 client_->Reset(); |
| 3117 | 3119 |
| 3118 // The animate changes stuff on the screen, but ends here, so does not | 3120 // The animate changes stuff on the screen, but ends here, so does not |
| 3119 // cause another animate step. | 3121 // cause another animate step. |
| 3120 client_->SetAnimateCausesRedraw(true); | 3122 client_->SetAnimateCausesRedraw(true); |
| 3121 | 3123 |
| 3122 // Next vsync. | 3124 // Next vsync. |
| 3123 AdvanceFrame(); | 3125 AdvanceFrame(); |
| 3124 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3126 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3125 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3127 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3126 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); | 3128 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); |
| 3127 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3129 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3128 client_->Reset(); | 3130 client_->Reset(); |
| 3129 | 3131 |
| 3130 // Android onDraw. | 3132 // Android onDraw. |
| 3131 scheduler_->SetNeedsRedraw(); | 3133 scheduler_->SetNeedsRedraw(); |
| 3132 scheduler_->OnDrawForOutputSurface(); | 3134 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3133 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); | 3135 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); |
| 3134 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3136 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3135 client_->Reset(); | 3137 client_->Reset(); |
| 3136 | 3138 |
| 3137 // Idle on next vsync, as the animate has completed. | 3139 // Idle on next vsync, as the animate has completed. |
| 3138 AdvanceFrame(); | 3140 AdvanceFrame(); |
| 3139 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3141 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3140 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3); | 3142 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3); |
| 3141 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3); | 3143 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3); |
| 3142 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3144 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3143 client_->Reset(); | 3145 client_->Reset(); |
| 3144 } | 3146 } |
| 3145 | 3147 |
| 3146 TEST_F(SchedulerTest, SynchronousCompositorOnDrawDuringIdle) { | 3148 TEST_F(SchedulerTest, SynchronousCompositorOnDrawDuringIdle) { |
| 3147 scheduler_settings_.using_synchronous_renderer_compositor = true; | 3149 scheduler_settings_.using_synchronous_renderer_compositor = true; |
| 3148 scheduler_settings_.use_external_begin_frame_source = true; | 3150 scheduler_settings_.use_external_begin_frame_source = true; |
| 3149 SetUpScheduler(true); | 3151 SetUpScheduler(true); |
| 3150 | 3152 |
| 3151 scheduler_->SetNeedsRedraw(); | 3153 scheduler_->SetNeedsRedraw(); |
| 3152 scheduler_->OnDrawForOutputSurface(); | 3154 bool resourceless_software_draw = false; |
| 3155 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3153 EXPECT_ACTION("SetNeedsBeginFrames(true)", client_, 0, 3); | 3156 EXPECT_ACTION("SetNeedsBeginFrames(true)", client_, 0, 3); |
| 3154 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3157 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3155 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 2, 3); | 3158 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 2, 3); |
| 3156 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3159 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3157 client_->Reset(); | 3160 client_->Reset(); |
| 3158 | 3161 |
| 3159 // Idle on next vsync. | 3162 // Idle on next vsync. |
| 3160 AdvanceFrame(); | 3163 AdvanceFrame(); |
| 3161 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3164 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3162 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3); | 3165 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3201 // Next vsync. | 3204 // Next vsync. |
| 3202 AdvanceFrame(); | 3205 AdvanceFrame(); |
| 3203 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3206 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3204 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3207 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3205 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); | 3208 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); |
| 3206 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3209 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3207 client_->Reset(); | 3210 client_->Reset(); |
| 3208 | 3211 |
| 3209 // Android onDraw. | 3212 // Android onDraw. |
| 3210 scheduler_->SetNeedsRedraw(); | 3213 scheduler_->SetNeedsRedraw(); |
| 3211 scheduler_->OnDrawForOutputSurface(); | 3214 bool resourceless_software_draw = false; |
| 3215 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3212 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); | 3216 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); |
| 3213 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3217 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3214 client_->Reset(); | 3218 client_->Reset(); |
| 3215 | 3219 |
| 3216 // Idle on next vsync. | 3220 // Idle on next vsync. |
| 3217 AdvanceFrame(); | 3221 AdvanceFrame(); |
| 3218 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3222 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3219 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3); | 3223 EXPECT_ACTION("SetNeedsBeginFrames(false)", client_, 1, 3); |
| 3220 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3); | 3224 EXPECT_ACTION("SendBeginMainFrameNotExpectedSoon", client_, 2, 3); |
| 3221 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3225 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3294 | 3298 |
| 3295 // Next vsync. | 3299 // Next vsync. |
| 3296 EXPECT_SCOPED(AdvanceFrame()); | 3300 EXPECT_SCOPED(AdvanceFrame()); |
| 3297 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3301 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3298 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3302 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3299 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); | 3303 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); |
| 3300 client_->Reset(); | 3304 client_->Reset(); |
| 3301 | 3305 |
| 3302 // Android onDraw. | 3306 // Android onDraw. |
| 3303 scheduler_->SetNeedsRedraw(); | 3307 scheduler_->SetNeedsRedraw(); |
| 3304 scheduler_->OnDrawForOutputSurface(); | 3308 bool resourceless_software_draw = false; |
| 3309 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3305 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 0, 2); | 3310 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 0, 2); |
| 3306 EXPECT_ACTION("ScheduledActionPrepareTiles", client_, 1, 2); | 3311 EXPECT_ACTION("ScheduledActionPrepareTiles", client_, 1, 2); |
| 3307 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3312 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3308 EXPECT_FALSE(scheduler_->PrepareTilesPending()); | 3313 EXPECT_FALSE(scheduler_->PrepareTilesPending()); |
| 3309 client_->Reset(); | 3314 client_->Reset(); |
| 3310 | 3315 |
| 3311 // Android onDraw. | 3316 // Android onDraw. |
| 3312 scheduler_->SetNeedsRedraw(); | 3317 scheduler_->SetNeedsRedraw(); |
| 3313 scheduler_->OnDrawForOutputSurface(); | 3318 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3314 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 0, 2); | 3319 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 0, 2); |
| 3315 EXPECT_ACTION("ScheduledActionPrepareTiles", client_, 1, 2); | 3320 EXPECT_ACTION("ScheduledActionPrepareTiles", client_, 1, 2); |
| 3316 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3321 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3317 EXPECT_FALSE(scheduler_->PrepareTilesPending()); | 3322 EXPECT_FALSE(scheduler_->PrepareTilesPending()); |
| 3318 client_->Reset(); | 3323 client_->Reset(); |
| 3319 | 3324 |
| 3320 // Next vsync. | 3325 // Next vsync. |
| 3321 EXPECT_SCOPED(AdvanceFrame()); | 3326 EXPECT_SCOPED(AdvanceFrame()); |
| 3322 EXPECT_FALSE(scheduler_->PrepareTilesPending()); | 3327 EXPECT_FALSE(scheduler_->PrepareTilesPending()); |
| 3323 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3328 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 3339 | 3344 |
| 3340 // Next vsync. | 3345 // Next vsync. |
| 3341 EXPECT_SCOPED(AdvanceFrame()); | 3346 EXPECT_SCOPED(AdvanceFrame()); |
| 3342 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3347 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3343 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3348 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3344 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); | 3349 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); |
| 3345 client_->Reset(); | 3350 client_->Reset(); |
| 3346 | 3351 |
| 3347 // Android onDraw. | 3352 // Android onDraw. |
| 3348 scheduler_->SetNeedsRedraw(); | 3353 scheduler_->SetNeedsRedraw(); |
| 3349 scheduler_->OnDrawForOutputSurface(); | 3354 bool resourceless_software_draw = false; |
| 3355 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3350 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); | 3356 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); |
| 3351 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3357 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3352 EXPECT_FALSE(scheduler_->PrepareTilesPending()); | 3358 EXPECT_FALSE(scheduler_->PrepareTilesPending()); |
| 3353 client_->Reset(); | 3359 client_->Reset(); |
| 3354 | 3360 |
| 3355 // Simulate SetNeedsBeginMainFrame due to input event. | 3361 // Simulate SetNeedsBeginMainFrame due to input event. |
| 3356 scheduler_->SetNeedsBeginMainFrame(); | 3362 scheduler_->SetNeedsBeginMainFrame(); |
| 3357 EXPECT_SINGLE_ACTION("ScheduledActionSendBeginMainFrame", client_); | 3363 EXPECT_SINGLE_ACTION("ScheduledActionSendBeginMainFrame", client_); |
| 3358 client_->Reset(); | 3364 client_->Reset(); |
| 3359 | 3365 |
| 3360 scheduler_->NotifyBeginMainFrameStarted(); | 3366 scheduler_->NotifyBeginMainFrameStarted(); |
| 3361 scheduler_->NotifyReadyToCommit(); | 3367 scheduler_->NotifyReadyToCommit(); |
| 3362 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_); | 3368 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client_); |
| 3363 client_->Reset(); | 3369 client_->Reset(); |
| 3364 | 3370 |
| 3365 scheduler_->NotifyReadyToActivate(); | 3371 scheduler_->NotifyReadyToActivate(); |
| 3366 EXPECT_SINGLE_ACTION("ScheduledActionActivateSyncTree", client_); | 3372 EXPECT_SINGLE_ACTION("ScheduledActionActivateSyncTree", client_); |
| 3367 client_->Reset(); | 3373 client_->Reset(); |
| 3368 | 3374 |
| 3369 // Next vsync. | 3375 // Next vsync. |
| 3370 EXPECT_SCOPED(AdvanceFrame()); | 3376 EXPECT_SCOPED(AdvanceFrame()); |
| 3371 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); | 3377 EXPECT_ACTION("WillBeginImplFrame", client_, 0, 3); |
| 3372 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); | 3378 EXPECT_ACTION("ScheduledActionAnimate", client_, 1, 3); |
| 3373 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); | 3379 EXPECT_ACTION("ScheduledActionInvalidateOutputSurface", client_, 2, 3); |
| 3374 client_->Reset(); | 3380 client_->Reset(); |
| 3375 | 3381 |
| 3376 // Android onDraw. | 3382 // Android onDraw. |
| 3377 scheduler_->SetNeedsRedraw(); | 3383 scheduler_->SetNeedsRedraw(); |
| 3378 scheduler_->OnDrawForOutputSurface(); | 3384 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3379 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); | 3385 EXPECT_SINGLE_ACTION("ScheduledActionDrawAndSwapIfPossible", client_); |
| 3380 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3386 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3381 EXPECT_FALSE(scheduler_->PrepareTilesPending()); | 3387 EXPECT_FALSE(scheduler_->PrepareTilesPending()); |
| 3382 client_->Reset(); | 3388 client_->Reset(); |
| 3383 | 3389 |
| 3384 // Simulate SetNeedsBeginMainFrame due to input event. | 3390 // Simulate SetNeedsBeginMainFrame due to input event. |
| 3385 scheduler_->SetNeedsBeginMainFrame(); | 3391 scheduler_->SetNeedsBeginMainFrame(); |
| 3386 EXPECT_SINGLE_ACTION("ScheduledActionSendBeginMainFrame", client_); | 3392 EXPECT_SINGLE_ACTION("ScheduledActionSendBeginMainFrame", client_); |
| 3387 client_->Reset(); | 3393 client_->Reset(); |
| 3388 } | 3394 } |
| 3389 | 3395 |
| 3390 TEST_F(SchedulerTest, SynchronousCompositorResourcelessOnDrawWhenInvisible) { | 3396 TEST_F(SchedulerTest, SynchronousCompositorResourcelessOnDrawWhenInvisible) { |
| 3391 scheduler_settings_.using_synchronous_renderer_compositor = true; | 3397 scheduler_settings_.using_synchronous_renderer_compositor = true; |
| 3392 scheduler_settings_.use_external_begin_frame_source = true; | 3398 scheduler_settings_.use_external_begin_frame_source = true; |
| 3393 SetUpScheduler(true); | 3399 SetUpScheduler(true); |
| 3394 | 3400 |
| 3395 scheduler_->SetVisible(false); | 3401 scheduler_->SetVisible(false); |
| 3396 scheduler_->SetResourcelessSoftareDraw(true); | |
| 3397 | 3402 |
| 3398 scheduler_->SetNeedsRedraw(); | 3403 scheduler_->SetNeedsRedraw(); |
| 3399 scheduler_->OnDrawForOutputSurface(); | 3404 bool resourceless_software_draw = true; |
| 3405 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); |
| 3400 // Action animate is the result of SetNeedsRedraw. | 3406 // Action animate is the result of SetNeedsRedraw. |
| 3401 EXPECT_ACTION("ScheduledActionAnimate", client_, 0, 2); | 3407 EXPECT_ACTION("ScheduledActionAnimate", client_, 0, 2); |
| 3402 // SynchronousCompositor has to draw regardless of visibility. | 3408 // SynchronousCompositor has to draw regardless of visibility. |
| 3403 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 1, 2); | 3409 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client_, 1, 2); |
| 3404 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); | 3410 EXPECT_FALSE(scheduler_->BeginImplFrameDeadlinePending()); |
| 3405 client_->Reset(); | 3411 client_->Reset(); |
| 3406 } | 3412 } |
| 3407 | 3413 |
| 3408 TEST_F(SchedulerTest, AuthoritativeVSyncInterval) { | 3414 TEST_F(SchedulerTest, AuthoritativeVSyncInterval) { |
| 3409 SetUpScheduler(true); | 3415 SetUpScheduler(true); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3459 scheduler_->SetImplLatencyTakesPriority(true); | 3465 scheduler_->SetImplLatencyTakesPriority(true); |
| 3460 scheduler_->SetChildrenNeedBeginFrames(true); | 3466 scheduler_->SetChildrenNeedBeginFrames(true); |
| 3461 | 3467 |
| 3462 EXPECT_SCOPED(AdvanceFrame()); | 3468 EXPECT_SCOPED(AdvanceFrame()); |
| 3463 EXPECT_TRUE(client_->begin_frame_is_sent_to_children()); | 3469 EXPECT_TRUE(client_->begin_frame_is_sent_to_children()); |
| 3464 EXPECT_FALSE(client_->begin_frame_args_sent_to_children().on_critical_path); | 3470 EXPECT_FALSE(client_->begin_frame_args_sent_to_children().on_critical_path); |
| 3465 } | 3471 } |
| 3466 | 3472 |
| 3467 } // namespace | 3473 } // namespace |
| 3468 } // namespace cc | 3474 } // namespace cc |
| OLD | NEW |