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 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
202 // FinishCommit should commit | 202 // FinishCommit should commit |
203 scheduler->FinishCommit(); | 203 scheduler->FinishCommit(); |
204 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); | 204 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); |
205 EXPECT_TRUE(client.needs_begin_frame()); | 205 EXPECT_TRUE(client.needs_begin_frame()); |
206 client.Reset(); | 206 client.Reset(); |
207 | 207 |
208 // BeginFrame should draw. | 208 // BeginFrame should draw. |
209 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 209 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
210 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); | 210 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); |
211 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); | 211 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); |
212 EXPECT_FALSE(client.needs_begin_frame()); | 212 EXPECT_TRUE(client.needs_begin_frame()); |
213 client.Reset(); | 213 client.Reset(); |
214 } | 214 } |
215 | 215 |
216 TEST(SchedulerTest, RequestCommitAfterBeginFrameSentToMainThread) { | 216 TEST(SchedulerTest, RequestCommitAfterBeginFrameSentToMainThread) { |
217 FakeSchedulerClient client; | 217 FakeSchedulerClient client; |
218 SchedulerSettings default_scheduler_settings; | 218 SchedulerSettings default_scheduler_settings; |
219 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 219 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
220 scheduler->SetCanStart(); | 220 scheduler->SetCanStart(); |
221 scheduler->SetVisible(true); | 221 scheduler->SetVisible(true); |
222 scheduler->SetCanDraw(true); | 222 scheduler->SetCanDraw(true); |
(...skipping 10 matching lines...) Expand all Loading... | |
233 | 233 |
234 // Now SetNeedsCommit again. Calling here means we need a second frame. | 234 // Now SetNeedsCommit again. Calling here means we need a second frame. |
235 scheduler->SetNeedsCommit(); | 235 scheduler->SetNeedsCommit(); |
236 | 236 |
237 // Finish the commit for the first frame. | 237 // Finish the commit for the first frame. |
238 scheduler->FinishCommit(); | 238 scheduler->FinishCommit(); |
239 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); | 239 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); |
240 client.Reset(); | 240 client.Reset(); |
241 | 241 |
242 // Tick should draw but then begin another frame for the second commit. | 242 // Tick should draw but then begin another frame for the second commit. |
243 // Because we just swapped, the Scheduler should also request the next | |
244 // BeginFrame from the OutputSurface. | |
243 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 245 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
244 EXPECT_TRUE(client.needs_begin_frame()); | 246 EXPECT_TRUE(client.needs_begin_frame()); |
245 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); | 247 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 3); |
246 EXPECT_ACTION("ScheduledActionSendBeginFrameToMainThread", client, 1, 2); | 248 EXPECT_ACTION("ScheduledActionSendBeginFrameToMainThread", client, 1, 3); |
249 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 2, 3); | |
247 client.Reset(); | 250 client.Reset(); |
248 | 251 |
249 // Finish the second commit to go back to quiescent state and verify we no | 252 // Finish the second commit. |
250 // longer request BeginFrames. | |
251 scheduler->FinishCommit(); | 253 scheduler->FinishCommit(); |
252 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 254 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
255 EXPECT_ACTION("ScheduledActionCommit", client, 0, 3); | |
256 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 1, 3); | |
257 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 2, 3); | |
258 EXPECT_TRUE(client.needs_begin_frame()); | |
259 client.Reset(); | |
260 | |
261 // On the next BeginFrame, verify we go back to a quiescent state and | |
262 // no longer request BeginFrames. | |
263 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
253 EXPECT_FALSE(client.needs_begin_frame()); | 264 EXPECT_FALSE(client.needs_begin_frame()); |
254 } | 265 } |
255 | 266 |
256 TEST(SchedulerTest, TextureAcquisitionCausesCommitInsteadOfDraw) { | 267 TEST(SchedulerTest, TextureAcquisitionCausesCommitInsteadOfDraw) { |
257 FakeSchedulerClient client; | 268 FakeSchedulerClient client; |
258 SchedulerSettings default_scheduler_settings; | 269 SchedulerSettings default_scheduler_settings; |
259 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 270 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
260 scheduler->SetCanStart(); | 271 scheduler->SetCanStart(); |
261 scheduler->SetVisible(true); | 272 scheduler->SetVisible(true); |
262 scheduler->SetCanDraw(true); | 273 scheduler->SetCanDraw(true); |
263 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); | 274 EXPECT_SINGLE_ACTION("ScheduledActionBeginOutputSurfaceCreation", client); |
264 | 275 |
265 InitializeOutputSurfaceAndFirstCommit(scheduler); | 276 InitializeOutputSurfaceAndFirstCommit(scheduler); |
266 client.Reset(); | 277 client.Reset(); |
267 scheduler->SetNeedsRedraw(); | 278 scheduler->SetNeedsRedraw(); |
268 EXPECT_TRUE(scheduler->RedrawPending()); | 279 EXPECT_TRUE(scheduler->RedrawPending()); |
269 EXPECT_SINGLE_ACTION("SetNeedsBeginFrameOnImplThread", client); | 280 EXPECT_SINGLE_ACTION("SetNeedsBeginFrameOnImplThread", client); |
270 EXPECT_TRUE(client.needs_begin_frame()); | 281 EXPECT_TRUE(client.needs_begin_frame()); |
271 | 282 |
272 client.Reset(); | 283 client.Reset(); |
273 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 284 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
274 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); | 285 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); |
275 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); | 286 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); |
276 EXPECT_FALSE(scheduler->RedrawPending()); | 287 EXPECT_FALSE(scheduler->RedrawPending()); |
288 EXPECT_TRUE(client.needs_begin_frame()); | |
289 | |
290 client.Reset(); | |
291 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
292 EXPECT_SINGLE_ACTION("SetNeedsBeginFrameOnImplThread", client); | |
293 EXPECT_FALSE(scheduler->RedrawPending()); | |
277 EXPECT_FALSE(client.needs_begin_frame()); | 294 EXPECT_FALSE(client.needs_begin_frame()); |
278 | 295 |
279 client.Reset(); | 296 client.Reset(); |
280 scheduler->SetMainThreadNeedsLayerTextures(); | 297 scheduler->SetMainThreadNeedsLayerTextures(); |
281 EXPECT_SINGLE_ACTION("ScheduledActionAcquireLayerTexturesForMainThread", | 298 EXPECT_SINGLE_ACTION("ScheduledActionAcquireLayerTexturesForMainThread", |
282 client); | 299 client); |
283 | 300 |
284 // We should request a BeginFrame in anticipation of a draw. | 301 // We should request a BeginFrame in anticipation of a draw. |
285 client.Reset(); | 302 client.Reset(); |
286 scheduler->SetNeedsRedraw(); | 303 scheduler->SetNeedsRedraw(); |
(...skipping 19 matching lines...) Expand all Loading... | |
306 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); | 323 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); |
307 EXPECT_TRUE(scheduler->RedrawPending()); | 324 EXPECT_TRUE(scheduler->RedrawPending()); |
308 EXPECT_TRUE(client.needs_begin_frame()); | 325 EXPECT_TRUE(client.needs_begin_frame()); |
309 | 326 |
310 // Now we can draw again after the commit happens. | 327 // Now we can draw again after the commit happens. |
311 client.Reset(); | 328 client.Reset(); |
312 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 329 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
313 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); | 330 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); |
314 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); | 331 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); |
315 EXPECT_FALSE(scheduler->RedrawPending()); | 332 EXPECT_FALSE(scheduler->RedrawPending()); |
333 EXPECT_TRUE(client.needs_begin_frame()); | |
334 | |
335 // Make sure we stop requesting BeginFrames if we don't swap. | |
336 client.Reset(); | |
337 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
338 EXPECT_SINGLE_ACTION("SetNeedsBeginFrameOnImplThread", client); | |
316 EXPECT_FALSE(client.needs_begin_frame()); | 339 EXPECT_FALSE(client.needs_begin_frame()); |
317 client.Reset(); | |
318 } | 340 } |
319 | 341 |
320 TEST(SchedulerTest, TextureAcquisitionCollision) { | 342 TEST(SchedulerTest, TextureAcquisitionCollision) { |
321 FakeSchedulerClient client; | 343 FakeSchedulerClient client; |
322 SchedulerSettings default_scheduler_settings; | 344 SchedulerSettings default_scheduler_settings; |
323 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 345 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
324 scheduler->SetCanStart(); | 346 scheduler->SetCanStart(); |
325 scheduler->SetVisible(true); | 347 scheduler->SetVisible(true); |
326 scheduler->SetCanDraw(true); | 348 scheduler->SetCanDraw(true); |
327 | 349 |
(...skipping 26 matching lines...) Expand all Loading... | |
354 client.Reset(); | 376 client.Reset(); |
355 | 377 |
356 // No implicit commit is expected. | 378 // No implicit commit is expected. |
357 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 379 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
358 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 3); | 380 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 3); |
359 EXPECT_ACTION("ScheduledActionAcquireLayerTexturesForMainThread", | 381 EXPECT_ACTION("ScheduledActionAcquireLayerTexturesForMainThread", |
360 client, | 382 client, |
361 1, | 383 1, |
362 3); | 384 3); |
363 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 2, 3); | 385 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 2, 3); |
386 EXPECT_TRUE(client.needs_begin_frame()); | |
364 client.Reset(); | 387 client.Reset(); |
365 | 388 |
366 // Compositor not scheduled to draw because textures are locked by main | 389 // Compositor not scheduled to draw because textures are locked by main |
367 // thread. | 390 // thread. |
391 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
392 EXPECT_SINGLE_ACTION("SetNeedsBeginFrameOnImplThread", client); | |
368 EXPECT_FALSE(client.needs_begin_frame()); | 393 EXPECT_FALSE(client.needs_begin_frame()); |
394 client.Reset(); | |
369 | 395 |
370 // Needs an explicit commit from the main thread. | 396 // Needs an explicit commit from the main thread. |
371 scheduler->SetNeedsCommit(); | 397 scheduler->SetNeedsCommit(); |
372 EXPECT_ACTION("ScheduledActionSendBeginFrameToMainThread", client, 0, 2); | 398 EXPECT_ACTION("ScheduledActionSendBeginFrameToMainThread", client, 0, 2); |
373 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); | 399 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); |
374 client.Reset(); | 400 client.Reset(); |
375 | 401 |
376 // Trigger the commit | 402 // Trigger the commit |
377 scheduler->FinishCommit(); | 403 scheduler->FinishCommit(); |
404 EXPECT_SINGLE_ACTION("ScheduledActionCommit", client); | |
378 EXPECT_TRUE(client.needs_begin_frame()); | 405 EXPECT_TRUE(client.needs_begin_frame()); |
406 client.Reset(); | |
407 | |
408 // Verify we draw on the next BeginFrame. | |
409 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
410 EXPECT_ACTION("ScheduledActionDrawAndSwapIfPossible", client, 0, 2); | |
411 EXPECT_ACTION("SetNeedsBeginFrameOnImplThread", client, 1, 2); | |
412 EXPECT_TRUE(client.needs_begin_frame()); | |
413 client.Reset(); | |
379 } | 414 } |
380 | 415 |
381 TEST(SchedulerTest, VisibilitySwitchWithTextureAcquisition) { | 416 TEST(SchedulerTest, VisibilitySwitchWithTextureAcquisition) { |
382 FakeSchedulerClient client; | 417 FakeSchedulerClient client; |
383 SchedulerSettings default_scheduler_settings; | 418 SchedulerSettings default_scheduler_settings; |
384 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 419 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
385 scheduler->SetCanStart(); | 420 scheduler->SetCanStart(); |
386 scheduler->SetVisible(true); | 421 scheduler->SetVisible(true); |
387 scheduler->SetCanDraw(true); | 422 scheduler->SetCanDraw(true); |
388 | 423 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
459 EXPECT_EQ(0, client.num_draws()); | 494 EXPECT_EQ(0, client.num_draws()); |
460 | 495 |
461 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 496 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
462 EXPECT_EQ(1, client.num_draws()); | 497 EXPECT_EQ(1, client.num_draws()); |
463 EXPECT_TRUE(scheduler->RedrawPending()); | 498 EXPECT_TRUE(scheduler->RedrawPending()); |
464 EXPECT_TRUE(client.needs_begin_frame()); | 499 EXPECT_TRUE(client.needs_begin_frame()); |
465 | 500 |
466 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 501 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
467 EXPECT_EQ(2, client.num_draws()); | 502 EXPECT_EQ(2, client.num_draws()); |
468 EXPECT_FALSE(scheduler->RedrawPending()); | 503 EXPECT_FALSE(scheduler->RedrawPending()); |
504 EXPECT_TRUE(client.needs_begin_frame()); | |
505 | |
506 // We stop requesting BeginFrames after a BeginFrame where we don't swap. | |
507 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
508 EXPECT_EQ(2, client.num_draws()); | |
509 EXPECT_FALSE(scheduler->RedrawPending()); | |
469 EXPECT_FALSE(client.needs_begin_frame()); | 510 EXPECT_FALSE(client.needs_begin_frame()); |
470 } | 511 } |
471 | 512 |
472 // Test that requesting redraw inside a failed draw doesn't lose the request. | 513 // Test that requesting redraw inside a failed draw doesn't lose the request. |
473 TEST(SchedulerTest, RequestRedrawInsideFailedDraw) { | 514 TEST(SchedulerTest, RequestRedrawInsideFailedDraw) { |
474 SchedulerClientThatsetNeedsDrawInsideDraw client; | 515 SchedulerClientThatsetNeedsDrawInsideDraw client; |
475 SchedulerSettings default_scheduler_settings; | 516 SchedulerSettings default_scheduler_settings; |
476 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 517 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
477 scheduler->SetCanStart(); | 518 scheduler->SetCanStart(); |
478 scheduler->SetVisible(true); | 519 scheduler->SetVisible(true); |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
568 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 609 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
569 EXPECT_EQ(1, client.num_draws()); | 610 EXPECT_EQ(1, client.num_draws()); |
570 EXPECT_TRUE(scheduler->CommitPending()); | 611 EXPECT_TRUE(scheduler->CommitPending()); |
571 EXPECT_TRUE(client.needs_begin_frame()); | 612 EXPECT_TRUE(client.needs_begin_frame()); |
572 scheduler->FinishCommit(); | 613 scheduler->FinishCommit(); |
573 | 614 |
574 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 615 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
575 EXPECT_EQ(2, client.num_draws());; | 616 EXPECT_EQ(2, client.num_draws());; |
576 EXPECT_FALSE(scheduler->RedrawPending()); | 617 EXPECT_FALSE(scheduler->RedrawPending()); |
577 EXPECT_FALSE(scheduler->CommitPending()); | 618 EXPECT_FALSE(scheduler->CommitPending()); |
619 EXPECT_TRUE(client.needs_begin_frame()); | |
620 | |
621 // We stop requesting BeginFrames after a BeginFrame where we don't swap. | |
622 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
623 EXPECT_EQ(2, client.num_draws()); | |
624 EXPECT_FALSE(scheduler->RedrawPending()); | |
625 EXPECT_FALSE(scheduler->CommitPending()); | |
578 EXPECT_FALSE(client.needs_begin_frame()); | 626 EXPECT_FALSE(client.needs_begin_frame()); |
579 } | 627 } |
580 | 628 |
581 // Tests that when a draw fails then the pending commit should not be dropped. | 629 // Tests that when a draw fails then the pending commit should not be dropped. |
582 TEST(SchedulerTest, RequestCommitInsideFailedDraw) { | 630 TEST(SchedulerTest, RequestCommitInsideFailedDraw) { |
583 SchedulerClientThatsetNeedsDrawInsideDraw client; | 631 SchedulerClientThatsetNeedsDrawInsideDraw client; |
584 SchedulerSettings default_scheduler_settings; | 632 SchedulerSettings default_scheduler_settings; |
585 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 633 Scheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
586 scheduler->SetCanStart(); | 634 scheduler->SetCanStart(); |
587 scheduler->SetVisible(true); | 635 scheduler->SetVisible(true); |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
749 // Afterwards, neither a draw nor ManageTiles are pending. | 797 // Afterwards, neither a draw nor ManageTiles are pending. |
750 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 798 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
751 EXPECT_EQ(1, client.num_draws()); | 799 EXPECT_EQ(1, client.num_draws()); |
752 EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); | 800 EXPECT_TRUE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
753 EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); | 801 EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
754 EXPECT_LT(client.ActionIndex("ScheduledActionDrawAndSwapIfPossible"), | 802 EXPECT_LT(client.ActionIndex("ScheduledActionDrawAndSwapIfPossible"), |
755 client.ActionIndex("ScheduledActionManageTiles")); | 803 client.ActionIndex("ScheduledActionManageTiles")); |
756 EXPECT_FALSE(scheduler->RedrawPending()); | 804 EXPECT_FALSE(scheduler->RedrawPending()); |
757 EXPECT_FALSE(scheduler->ManageTilesPending()); | 805 EXPECT_FALSE(scheduler->ManageTilesPending()); |
758 | 806 |
807 // We need a BeginFrame where we don't swap to go idle. | |
brianderson
2013/09/13 20:19:10
Had to add this to @epenner's test to make sure we
| |
808 client.Reset(); | |
809 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | |
810 EXPECT_SINGLE_ACTION("SetNeedsBeginFrameOnImplThread", client); | |
811 EXPECT_EQ(0, client.num_draws()); | |
812 | |
759 // Now trigger a ManageTiles outside of a draw. We will then need | 813 // Now trigger a ManageTiles outside of a draw. We will then need |
760 // a begin-frame for the ManageTiles, but we don't need a draw. | 814 // a begin-frame for the ManageTiles, but we don't need a draw. |
761 client.Reset(); | 815 client.Reset(); |
762 EXPECT_FALSE(client.needs_begin_frame()); | 816 EXPECT_FALSE(client.needs_begin_frame()); |
763 scheduler->SetNeedsManageTiles(); | 817 scheduler->SetNeedsManageTiles(); |
764 EXPECT_TRUE(client.needs_begin_frame()); | 818 EXPECT_TRUE(client.needs_begin_frame()); |
765 EXPECT_TRUE(scheduler->ManageTilesPending()); | 819 EXPECT_TRUE(scheduler->ManageTilesPending()); |
766 EXPECT_FALSE(scheduler->RedrawPending()); | 820 EXPECT_FALSE(scheduler->RedrawPending()); |
767 | 821 |
768 // BeginFrame. There will be no draw, only ManageTiles. | 822 // BeginFrame. There will be no draw, only ManageTiles. |
769 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); | 823 scheduler->BeginFrame(BeginFrameArgs::CreateForTesting()); |
770 EXPECT_EQ(0, client.num_draws()); | 824 EXPECT_EQ(0, client.num_draws()); |
771 EXPECT_FALSE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); | 825 EXPECT_FALSE(client.HasAction("ScheduledActionDrawAndSwapIfPossible")); |
772 EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); | 826 EXPECT_TRUE(client.HasAction("ScheduledActionManageTiles")); |
773 } | 827 } |
774 | 828 |
775 } // namespace | 829 } // namespace |
776 } // namespace cc | 830 } // namespace cc |
OLD | NEW |