Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/surfaces/display_scheduler.h" | 5 #include "cc/surfaces/display_scheduler.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/test/null_task_runner.h" | 8 #include "base/test/null_task_runner.h" |
| 9 #include "base/test/simple_test_tick_clock.h" | 9 #include "base/test/simple_test_tick_clock.h" |
| 10 #include "base/trace_event/trace_event.h" | 10 #include "base/trace_event/trace_event.h" |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 102 FakeDisplaySchedulerClient client_; | 102 FakeDisplaySchedulerClient client_; |
| 103 TestDisplayScheduler scheduler_; | 103 TestDisplayScheduler scheduler_; |
| 104 }; | 104 }; |
| 105 | 105 |
| 106 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) { | 106 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilNewRootSurface) { |
| 107 SurfaceId root_surface_id1(0, 1, 0); | 107 SurfaceId root_surface_id1(0, 1, 0); |
| 108 SurfaceId root_surface_id2(0, 2, 0); | 108 SurfaceId root_surface_id2(0, 2, 0); |
| 109 SurfaceId sid1(0, 3, 0); | 109 SurfaceId sid1(0, 3, 0); |
| 110 base::TimeTicks late_deadline; | 110 base::TimeTicks late_deadline; |
| 111 | 111 |
| 112 scheduler_.SetVisible(true); | |
| 113 | |
| 112 // Go trough an initial BeginFrame cycle with the root surface. | 114 // Go trough an initial BeginFrame cycle with the root surface. |
| 113 BeginFrameForTest(); | 115 BeginFrameForTest(); |
| 114 scheduler_.SetNewRootSurface(root_surface_id1); | 116 scheduler_.SetNewRootSurface(root_surface_id1); |
| 115 scheduler_.BeginFrameDeadlineForTest(); | 117 scheduler_.BeginFrameDeadlineForTest(); |
| 116 | 118 |
| 117 // Resize on the next begin frame cycle should cause the deadline to wait | 119 // Resize on the next begin frame cycle should cause the deadline to wait |
| 118 // for a new root surface. | 120 // for a new root surface. |
| 119 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 121 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
| 120 BeginFrameForTest(); | 122 BeginFrameForTest(); |
| 121 scheduler_.SurfaceDamaged(sid1); | 123 scheduler_.SurfaceDamaged(sid1); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 136 EXPECT_GE(now_src().NowTicks(), | 138 EXPECT_GE(now_src().NowTicks(), |
| 137 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 139 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 138 scheduler_.BeginFrameDeadlineForTest(); | 140 scheduler_.BeginFrameDeadlineForTest(); |
| 139 } | 141 } |
| 140 | 142 |
| 141 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilDamagedSurface) { | 143 TEST_F(DisplaySchedulerTest, ResizeHasLateDeadlineUntilDamagedSurface) { |
| 142 SurfaceId root_surface_id(0, 1, 0); | 144 SurfaceId root_surface_id(0, 1, 0); |
| 143 SurfaceId sid1(0, 2, 0); | 145 SurfaceId sid1(0, 2, 0); |
| 144 base::TimeTicks late_deadline; | 146 base::TimeTicks late_deadline; |
| 145 | 147 |
| 148 scheduler_.SetVisible(true); | |
| 149 | |
| 146 // Go trough an initial BeginFrame cycle with the root surface. | 150 // Go trough an initial BeginFrame cycle with the root surface. |
| 147 BeginFrameForTest(); | 151 BeginFrameForTest(); |
| 148 scheduler_.SetNewRootSurface(root_surface_id); | 152 scheduler_.SetNewRootSurface(root_surface_id); |
| 149 scheduler_.BeginFrameDeadlineForTest(); | 153 scheduler_.BeginFrameDeadlineForTest(); |
| 150 | 154 |
| 151 // Resize on the next begin frame cycle should cause the deadline to wait | 155 // Resize on the next begin frame cycle should cause the deadline to wait |
| 152 // for a new root surface. | 156 // for a new root surface. |
| 153 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 157 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
| 154 BeginFrameForTest(); | 158 BeginFrameForTest(); |
| 155 scheduler_.SurfaceDamaged(sid1); | 159 scheduler_.SurfaceDamaged(sid1); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 170 EXPECT_GE(now_src().NowTicks(), | 174 EXPECT_GE(now_src().NowTicks(), |
| 171 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 175 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 172 scheduler_.BeginFrameDeadlineForTest(); | 176 scheduler_.BeginFrameDeadlineForTest(); |
| 173 } | 177 } |
| 174 | 178 |
| 175 TEST_F(DisplaySchedulerTest, SurfaceDamaged) { | 179 TEST_F(DisplaySchedulerTest, SurfaceDamaged) { |
| 176 SurfaceId root_surface_id(0, 0, 0); | 180 SurfaceId root_surface_id(0, 0, 0); |
| 177 SurfaceId sid1(0, 1, 0); | 181 SurfaceId sid1(0, 1, 0); |
| 178 SurfaceId sid2(0, 2, 0); | 182 SurfaceId sid2(0, 2, 0); |
| 179 | 183 |
| 184 scheduler_.SetVisible(true); | |
| 185 | |
| 180 // Set the root surface | 186 // Set the root surface |
| 181 scheduler_.SetNewRootSurface(root_surface_id); | 187 scheduler_.SetNewRootSurface(root_surface_id); |
| 182 | 188 |
| 183 // Get scheduler to detect surface 1 as active by drawing | 189 // Get scheduler to detect surface 1 as active by drawing |
| 184 // two frames in a row with damage from surface 1. | 190 // two frames in a row with damage from surface 1. |
| 185 BeginFrameForTest(); | 191 BeginFrameForTest(); |
| 186 scheduler_.SurfaceDamaged(sid1); | 192 scheduler_.SurfaceDamaged(sid1); |
| 187 scheduler_.BeginFrameDeadlineForTest(); | 193 scheduler_.BeginFrameDeadlineForTest(); |
| 188 BeginFrameForTest(); | 194 BeginFrameForTest(); |
| 189 scheduler_.SurfaceDamaged(sid1); | 195 scheduler_.SurfaceDamaged(sid1); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 233 scheduler_.SurfaceDamaged(root_surface_id); | 239 scheduler_.SurfaceDamaged(root_surface_id); |
| 234 EXPECT_GE(now_src().NowTicks(), | 240 EXPECT_GE(now_src().NowTicks(), |
| 235 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 241 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 236 scheduler_.BeginFrameDeadlineForTest(); | 242 scheduler_.BeginFrameDeadlineForTest(); |
| 237 } | 243 } |
| 238 | 244 |
| 239 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) { | 245 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) { |
| 240 SurfaceId root_surface_id(0, 0, 0); | 246 SurfaceId root_surface_id(0, 0, 0); |
| 241 SurfaceId sid1(0, 1, 0); | 247 SurfaceId sid1(0, 1, 0); |
| 242 | 248 |
| 249 scheduler_.SetVisible(true); | |
| 250 | |
| 243 // Set the root surface | 251 // Set the root surface |
| 244 scheduler_.SetNewRootSurface(root_surface_id); | 252 scheduler_.SetNewRootSurface(root_surface_id); |
| 245 | 253 |
| 246 // DrawAndSwap normally. | 254 // DrawAndSwap normally. |
| 247 BeginFrameForTest(); | 255 BeginFrameForTest(); |
| 248 EXPECT_LT(now_src().NowTicks(), | 256 EXPECT_LT(now_src().NowTicks(), |
| 249 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 257 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 250 EXPECT_EQ(0, client_.draw_and_swap_count()); | 258 EXPECT_EQ(0, client_.draw_and_swap_count()); |
| 251 scheduler_.SurfaceDamaged(sid1); | 259 scheduler_.SurfaceDamaged(sid1); |
| 252 scheduler_.BeginFrameDeadlineForTest(); | 260 scheduler_.BeginFrameDeadlineForTest(); |
| 253 EXPECT_EQ(1, client_.draw_and_swap_count()); | 261 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 254 | 262 |
| 255 // Deadline triggers immediately on OutputSurfaceLost. | 263 // Deadline triggers immediately on OutputSurfaceLost. |
| 256 BeginFrameForTest(); | 264 BeginFrameForTest(); |
| 257 EXPECT_LT(now_src().NowTicks(), | 265 EXPECT_LT(now_src().NowTicks(), |
| 258 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 266 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 259 scheduler_.OutputSurfaceLost(); | 267 scheduler_.OutputSurfaceLost(); |
| 260 EXPECT_GE(now_src().NowTicks(), | 268 EXPECT_GE(now_src().NowTicks(), |
| 261 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 269 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 262 | 270 |
| 263 // Deadline does not DrawAndSwap after OutputSurfaceLost. | 271 // Deadline does not DrawAndSwap after OutputSurfaceLost. |
| 264 EXPECT_EQ(1, client_.draw_and_swap_count()); | 272 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 265 scheduler_.SurfaceDamaged(sid1); | 273 scheduler_.SurfaceDamaged(sid1); |
| 266 scheduler_.BeginFrameDeadlineForTest(); | 274 scheduler_.BeginFrameDeadlineForTest(); |
| 267 EXPECT_EQ(1, client_.draw_and_swap_count()); | 275 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 268 } | 276 } |
| 269 | 277 |
| 278 TEST_F(DisplaySchedulerTest, Visibility) { | |
| 279 SurfaceId root_surface_id(0, 0, 0); | |
| 280 SurfaceId sid1(0, 1, 0); | |
| 281 | |
| 282 // The scheduler doesn't listen for begin frames until being visible. | |
| 283 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); | |
| 284 scheduler_.SetVisible(true); | |
| 285 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); | |
|
sunnyps
2016/08/15 23:20:03
Should the scheduler ask for begin frames if we ha
danakj
2016/08/16 00:37:22
I think it would only do one, and then in the dead
| |
| 286 | |
| 287 // Set the root surface | |
| 288 scheduler_.SetNewRootSurface(root_surface_id); | |
| 289 | |
| 290 // DrawAndSwap normally. | |
| 291 BeginFrameForTest(); | |
| 292 EXPECT_LT(now_src().NowTicks(), | |
| 293 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | |
| 294 EXPECT_EQ(0, client_.draw_and_swap_count()); | |
| 295 scheduler_.SurfaceDamaged(sid1); | |
| 296 scheduler_.BeginFrameDeadlineForTest(); | |
| 297 EXPECT_EQ(1, client_.draw_and_swap_count()); | |
| 298 | |
| 299 BeginFrameForTest(); | |
| 300 EXPECT_LT(now_src().NowTicks(), | |
| 301 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | |
| 302 | |
| 303 // Become not visible. | |
| 304 scheduler_.SetVisible(false); | |
| 305 | |
| 306 // It will stop listening for begin frames after the current deadline. | |
| 307 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); | |
| 308 | |
| 309 // Deadline does not DrawAndSwap when not visible. | |
| 310 EXPECT_EQ(1, client_.draw_and_swap_count()); | |
| 311 scheduler_.SurfaceDamaged(sid1); | |
| 312 scheduler_.BeginFrameDeadlineForTest(); | |
| 313 EXPECT_EQ(1, client_.draw_and_swap_count()); | |
| 314 // Now it stops listening for begin frames. | |
| 315 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); | |
| 316 | |
| 317 // Does not start listening for begin frames when damage arrives. | |
| 318 scheduler_.SurfaceDamaged(sid1); | |
| 319 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); | |
| 320 | |
| 321 // But does when becoming visible. | |
| 322 scheduler_.SetVisible(true); | |
| 323 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); | |
| 324 } | |
| 325 | |
| 270 TEST_F(DisplaySchedulerTest, ResizeCausesSwap) { | 326 TEST_F(DisplaySchedulerTest, ResizeCausesSwap) { |
| 271 SurfaceId root_surface_id(0, 0, 0); | 327 SurfaceId root_surface_id(0, 0, 0); |
| 272 SurfaceId sid1(0, 1, 0); | 328 SurfaceId sid1(0, 1, 0); |
| 273 | 329 |
| 330 scheduler_.SetVisible(true); | |
| 331 | |
| 274 // Set the root surface | 332 // Set the root surface |
| 275 scheduler_.SetNewRootSurface(root_surface_id); | 333 scheduler_.SetNewRootSurface(root_surface_id); |
| 276 | 334 |
| 277 // DrawAndSwap normally. | 335 // DrawAndSwap normally. |
| 278 BeginFrameForTest(); | 336 BeginFrameForTest(); |
| 279 EXPECT_LT(now_src().NowTicks(), | 337 EXPECT_LT(now_src().NowTicks(), |
| 280 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 338 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 281 EXPECT_EQ(0, client_.draw_and_swap_count()); | 339 EXPECT_EQ(0, client_.draw_and_swap_count()); |
| 282 scheduler_.SurfaceDamaged(sid1); | 340 scheduler_.SurfaceDamaged(sid1); |
| 283 scheduler_.BeginFrameDeadlineForTest(); | 341 scheduler_.BeginFrameDeadlineForTest(); |
| 284 EXPECT_EQ(1, client_.draw_and_swap_count()); | 342 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 285 | 343 |
| 286 scheduler_.DisplayResized(); | 344 scheduler_.DisplayResized(); |
| 287 BeginFrameForTest(); | 345 BeginFrameForTest(); |
| 288 // DisplayResized should trigger a swap to happen. | 346 // DisplayResized should trigger a swap to happen. |
| 289 scheduler_.BeginFrameDeadlineForTest(); | 347 scheduler_.BeginFrameDeadlineForTest(); |
| 290 EXPECT_EQ(2, client_.draw_and_swap_count()); | 348 EXPECT_EQ(2, client_.draw_and_swap_count()); |
| 291 } | 349 } |
| 292 | 350 |
| 293 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) { | 351 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) { |
| 294 SurfaceId root_surface_id(0, 0, 0); | 352 SurfaceId root_surface_id(0, 0, 0); |
| 295 SurfaceId sid1(0, 1, 0); | 353 SurfaceId sid1(0, 1, 0); |
| 296 base::TimeTicks late_deadline; | 354 base::TimeTicks late_deadline; |
| 297 | 355 |
| 356 scheduler_.SetVisible(true); | |
| 357 | |
| 298 // Set the root surface | 358 // Set the root surface |
| 299 scheduler_.SetNewRootSurface(root_surface_id); | 359 scheduler_.SetNewRootSurface(root_surface_id); |
| 300 | 360 |
| 301 // DrawAndSwap normally. | 361 // DrawAndSwap normally. |
| 302 BeginFrameForTest(); | 362 BeginFrameForTest(); |
| 303 EXPECT_LT(now_src().NowTicks(), | 363 EXPECT_LT(now_src().NowTicks(), |
| 304 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 364 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 305 EXPECT_EQ(0, client_.draw_and_swap_count()); | 365 EXPECT_EQ(0, client_.draw_and_swap_count()); |
| 306 scheduler_.SurfaceDamaged(sid1); | 366 scheduler_.SurfaceDamaged(sid1); |
| 307 scheduler_.BeginFrameDeadlineForTest(); | 367 scheduler_.BeginFrameDeadlineForTest(); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 334 EXPECT_EQ(1, client_.draw_and_swap_count()); | 394 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 335 scheduler_.BeginFrameDeadlineForTest(); | 395 scheduler_.BeginFrameDeadlineForTest(); |
| 336 EXPECT_EQ(2, client_.draw_and_swap_count()); | 396 EXPECT_EQ(2, client_.draw_and_swap_count()); |
| 337 } | 397 } |
| 338 | 398 |
| 339 TEST_F(DisplaySchedulerTest, DidSwapBuffers) { | 399 TEST_F(DisplaySchedulerTest, DidSwapBuffers) { |
| 340 SurfaceId root_surface_id(0, 0, 0); | 400 SurfaceId root_surface_id(0, 0, 0); |
| 341 SurfaceId sid1(0, 1, 0); | 401 SurfaceId sid1(0, 1, 0); |
| 342 SurfaceId sid2(0, 2, 0); | 402 SurfaceId sid2(0, 2, 0); |
| 343 | 403 |
| 404 scheduler_.SetVisible(true); | |
| 405 | |
| 344 // Set the root surface | 406 // Set the root surface |
| 345 scheduler_.SetNewRootSurface(root_surface_id); | 407 scheduler_.SetNewRootSurface(root_surface_id); |
| 346 | 408 |
| 347 // Get scheduler to detect surface 1 and 2 as active. | 409 // Get scheduler to detect surface 1 and 2 as active. |
| 348 BeginFrameForTest(); | 410 BeginFrameForTest(); |
| 349 scheduler_.SurfaceDamaged(sid1); | 411 scheduler_.SurfaceDamaged(sid1); |
| 350 scheduler_.SurfaceDamaged(sid2); | 412 scheduler_.SurfaceDamaged(sid2); |
| 351 scheduler_.BeginFrameDeadlineForTest(); | 413 scheduler_.BeginFrameDeadlineForTest(); |
| 352 BeginFrameForTest(); | 414 BeginFrameForTest(); |
| 353 scheduler_.SurfaceDamaged(sid1); | 415 scheduler_.SurfaceDamaged(sid1); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 398 scheduler_.BeginFrameDeadlineForTest(); | 460 scheduler_.BeginFrameDeadlineForTest(); |
| 399 EXPECT_EQ(4, client_.draw_and_swap_count()); | 461 EXPECT_EQ(4, client_.draw_and_swap_count()); |
| 400 } | 462 } |
| 401 | 463 |
| 402 // This test verfies that we try to reschedule the deadline | 464 // This test verfies that we try to reschedule the deadline |
| 403 // after any event that may change what deadline we want. | 465 // after any event that may change what deadline we want. |
| 404 TEST_F(DisplaySchedulerTest, ScheduleBeginFrameDeadline) { | 466 TEST_F(DisplaySchedulerTest, ScheduleBeginFrameDeadline) { |
| 405 SurfaceId root_surface_id(0, 1, 0); | 467 SurfaceId root_surface_id(0, 1, 0); |
| 406 SurfaceId sid1(0, 2, 0); | 468 SurfaceId sid1(0, 2, 0); |
| 407 int count = 1; | 469 int count = 1; |
| 408 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 470 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 409 | 471 |
| 410 // Set the root surface | 472 scheduler_.SetVisible(true); |
| 473 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); | |
| 474 | |
| 475 scheduler_.SetVisible(true); | |
| 476 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count()); | |
| 477 | |
| 478 scheduler_.SetVisible(false); | |
| 479 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); | |
| 480 | |
| 481 // Set the root surface while not visible. | |
| 411 scheduler_.SetNewRootSurface(root_surface_id); | 482 scheduler_.SetNewRootSurface(root_surface_id); |
| 412 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 483 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 484 | |
| 485 scheduler_.SetVisible(true); | |
| 486 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); | |
| 487 | |
| 488 // Set the root surface while visible. | |
| 489 scheduler_.SetNewRootSurface(root_surface_id); | |
| 490 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); | |
| 413 | 491 |
| 414 BeginFrameForTest(); | 492 BeginFrameForTest(); |
| 415 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 493 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 416 | 494 |
| 417 scheduler_.BeginFrameDeadlineForTest(); | 495 scheduler_.BeginFrameDeadlineForTest(); |
| 418 scheduler_.DidSwapBuffers(); | 496 scheduler_.DidSwapBuffers(); |
| 419 BeginFrameForTest(); | 497 BeginFrameForTest(); |
| 420 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 498 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 421 | 499 |
| 422 scheduler_.DidSwapBuffersComplete(); | 500 scheduler_.DidSwapBuffersComplete(); |
| 423 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 501 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 424 | 502 |
| 425 scheduler_.DisplayResized(); | 503 scheduler_.DisplayResized(); |
| 426 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 504 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 427 | 505 |
| 428 scheduler_.SetNewRootSurface(root_surface_id); | 506 scheduler_.SetNewRootSurface(root_surface_id); |
| 429 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 507 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 430 | 508 |
| 431 scheduler_.SurfaceDamaged(sid1); | 509 scheduler_.SurfaceDamaged(sid1); |
| 432 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 510 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 433 | 511 |
| 434 scheduler_.SetRootSurfaceResourcesLocked(true); | 512 scheduler_.SetRootSurfaceResourcesLocked(true); |
| 435 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 513 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 436 | 514 |
| 437 scheduler_.OutputSurfaceLost(); | 515 scheduler_.OutputSurfaceLost(); |
| 438 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 516 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 439 } | 517 } |
| 440 | 518 |
| 441 } // namespace | 519 } // namespace |
| 442 } // namespace cc | 520 } // namespace cc |
| OLD | NEW |