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, VisibleWithoutDamageNoTicks) { |
| 279 SurfaceId root_surface_id(0, 0, 0); |
| 280 SurfaceId sid1(0, 1, 0); |
| 281 |
| 282 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); |
| 283 scheduler_.SetVisible(true); |
| 284 |
| 285 // When becoming visible, don't start listening for begin frames until there |
| 286 // is some damage. |
| 287 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); |
| 288 scheduler_.SetNewRootSurface(root_surface_id); |
| 289 |
| 290 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); |
| 291 } |
| 292 |
| 293 TEST_F(DisplaySchedulerTest, VisibleWithDamageTicks) { |
| 294 SurfaceId root_surface_id(0, 0, 0); |
| 295 SurfaceId sid1(0, 1, 0); |
| 296 |
| 297 scheduler_.SetNewRootSurface(root_surface_id); |
| 298 |
| 299 // When there is damage, start listening for begin frames once becoming |
| 300 // visible. |
| 301 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); |
| 302 scheduler_.SetVisible(true); |
| 303 |
| 304 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); |
| 305 } |
| 306 |
| 307 TEST_F(DisplaySchedulerTest, Visibility) { |
| 308 SurfaceId root_surface_id(0, 0, 0); |
| 309 SurfaceId sid1(0, 1, 0); |
| 310 |
| 311 scheduler_.SetNewRootSurface(root_surface_id); |
| 312 scheduler_.SetVisible(true); |
| 313 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); |
| 314 |
| 315 // DrawAndSwap normally. |
| 316 BeginFrameForTest(); |
| 317 EXPECT_LT(now_src().NowTicks(), |
| 318 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 319 EXPECT_EQ(0, client_.draw_and_swap_count()); |
| 320 scheduler_.SurfaceDamaged(sid1); |
| 321 scheduler_.BeginFrameDeadlineForTest(); |
| 322 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 323 |
| 324 BeginFrameForTest(); |
| 325 EXPECT_LT(now_src().NowTicks(), |
| 326 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
| 327 |
| 328 // Become not visible. |
| 329 scheduler_.SetVisible(false); |
| 330 |
| 331 // It will stop listening for begin frames after the current deadline. |
| 332 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); |
| 333 |
| 334 // Deadline does not DrawAndSwap when not visible. |
| 335 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 336 scheduler_.BeginFrameDeadlineForTest(); |
| 337 EXPECT_EQ(1, client_.draw_and_swap_count()); |
| 338 // Now it stops listening for begin frames. |
| 339 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); |
| 340 |
| 341 // Does not start listening for begin frames when becoming visible without |
| 342 // damage. |
| 343 scheduler_.SetVisible(true); |
| 344 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); |
| 345 scheduler_.SetVisible(false); |
| 346 |
| 347 // Does not start listening for begin frames when damage arrives. |
| 348 scheduler_.SurfaceDamaged(sid1); |
| 349 EXPECT_EQ(0u, fake_begin_frame_source_.num_observers()); |
| 350 |
| 351 // But does when becoming visible with damage again. |
| 352 scheduler_.SetVisible(true); |
| 353 EXPECT_EQ(1u, fake_begin_frame_source_.num_observers()); |
| 354 } |
| 355 |
270 TEST_F(DisplaySchedulerTest, ResizeCausesSwap) { | 356 TEST_F(DisplaySchedulerTest, ResizeCausesSwap) { |
271 SurfaceId root_surface_id(0, 0, 0); | 357 SurfaceId root_surface_id(0, 0, 0); |
272 SurfaceId sid1(0, 1, 0); | 358 SurfaceId sid1(0, 1, 0); |
273 | 359 |
| 360 scheduler_.SetVisible(true); |
| 361 |
274 // Set the root surface | 362 // Set the root surface |
275 scheduler_.SetNewRootSurface(root_surface_id); | 363 scheduler_.SetNewRootSurface(root_surface_id); |
276 | 364 |
277 // DrawAndSwap normally. | 365 // DrawAndSwap normally. |
278 BeginFrameForTest(); | 366 BeginFrameForTest(); |
279 EXPECT_LT(now_src().NowTicks(), | 367 EXPECT_LT(now_src().NowTicks(), |
280 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 368 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
281 EXPECT_EQ(0, client_.draw_and_swap_count()); | 369 EXPECT_EQ(0, client_.draw_and_swap_count()); |
282 scheduler_.SurfaceDamaged(sid1); | 370 scheduler_.SurfaceDamaged(sid1); |
283 scheduler_.BeginFrameDeadlineForTest(); | 371 scheduler_.BeginFrameDeadlineForTest(); |
284 EXPECT_EQ(1, client_.draw_and_swap_count()); | 372 EXPECT_EQ(1, client_.draw_and_swap_count()); |
285 | 373 |
286 scheduler_.DisplayResized(); | 374 scheduler_.DisplayResized(); |
287 BeginFrameForTest(); | 375 BeginFrameForTest(); |
288 // DisplayResized should trigger a swap to happen. | 376 // DisplayResized should trigger a swap to happen. |
289 scheduler_.BeginFrameDeadlineForTest(); | 377 scheduler_.BeginFrameDeadlineForTest(); |
290 EXPECT_EQ(2, client_.draw_and_swap_count()); | 378 EXPECT_EQ(2, client_.draw_and_swap_count()); |
291 } | 379 } |
292 | 380 |
293 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) { | 381 TEST_F(DisplaySchedulerTest, RootSurfaceResourcesLocked) { |
294 SurfaceId root_surface_id(0, 0, 0); | 382 SurfaceId root_surface_id(0, 0, 0); |
295 SurfaceId sid1(0, 1, 0); | 383 SurfaceId sid1(0, 1, 0); |
296 base::TimeTicks late_deadline; | 384 base::TimeTicks late_deadline; |
297 | 385 |
| 386 scheduler_.SetVisible(true); |
| 387 |
298 // Set the root surface | 388 // Set the root surface |
299 scheduler_.SetNewRootSurface(root_surface_id); | 389 scheduler_.SetNewRootSurface(root_surface_id); |
300 | 390 |
301 // DrawAndSwap normally. | 391 // DrawAndSwap normally. |
302 BeginFrameForTest(); | 392 BeginFrameForTest(); |
303 EXPECT_LT(now_src().NowTicks(), | 393 EXPECT_LT(now_src().NowTicks(), |
304 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 394 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
305 EXPECT_EQ(0, client_.draw_and_swap_count()); | 395 EXPECT_EQ(0, client_.draw_and_swap_count()); |
306 scheduler_.SurfaceDamaged(sid1); | 396 scheduler_.SurfaceDamaged(sid1); |
307 scheduler_.BeginFrameDeadlineForTest(); | 397 scheduler_.BeginFrameDeadlineForTest(); |
(...skipping 26 matching lines...) Expand all Loading... |
334 EXPECT_EQ(1, client_.draw_and_swap_count()); | 424 EXPECT_EQ(1, client_.draw_and_swap_count()); |
335 scheduler_.BeginFrameDeadlineForTest(); | 425 scheduler_.BeginFrameDeadlineForTest(); |
336 EXPECT_EQ(2, client_.draw_and_swap_count()); | 426 EXPECT_EQ(2, client_.draw_and_swap_count()); |
337 } | 427 } |
338 | 428 |
339 TEST_F(DisplaySchedulerTest, DidSwapBuffers) { | 429 TEST_F(DisplaySchedulerTest, DidSwapBuffers) { |
340 SurfaceId root_surface_id(0, 0, 0); | 430 SurfaceId root_surface_id(0, 0, 0); |
341 SurfaceId sid1(0, 1, 0); | 431 SurfaceId sid1(0, 1, 0); |
342 SurfaceId sid2(0, 2, 0); | 432 SurfaceId sid2(0, 2, 0); |
343 | 433 |
| 434 scheduler_.SetVisible(true); |
| 435 |
344 // Set the root surface | 436 // Set the root surface |
345 scheduler_.SetNewRootSurface(root_surface_id); | 437 scheduler_.SetNewRootSurface(root_surface_id); |
346 | 438 |
347 // Get scheduler to detect surface 1 and 2 as active. | 439 // Get scheduler to detect surface 1 and 2 as active. |
348 BeginFrameForTest(); | 440 BeginFrameForTest(); |
349 scheduler_.SurfaceDamaged(sid1); | 441 scheduler_.SurfaceDamaged(sid1); |
350 scheduler_.SurfaceDamaged(sid2); | 442 scheduler_.SurfaceDamaged(sid2); |
351 scheduler_.BeginFrameDeadlineForTest(); | 443 scheduler_.BeginFrameDeadlineForTest(); |
352 BeginFrameForTest(); | 444 BeginFrameForTest(); |
353 scheduler_.SurfaceDamaged(sid1); | 445 scheduler_.SurfaceDamaged(sid1); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 scheduler_.BeginFrameDeadlineForTest(); | 490 scheduler_.BeginFrameDeadlineForTest(); |
399 EXPECT_EQ(4, client_.draw_and_swap_count()); | 491 EXPECT_EQ(4, client_.draw_and_swap_count()); |
400 } | 492 } |
401 | 493 |
402 // This test verfies that we try to reschedule the deadline | 494 // This test verfies that we try to reschedule the deadline |
403 // after any event that may change what deadline we want. | 495 // after any event that may change what deadline we want. |
404 TEST_F(DisplaySchedulerTest, ScheduleBeginFrameDeadline) { | 496 TEST_F(DisplaySchedulerTest, ScheduleBeginFrameDeadline) { |
405 SurfaceId root_surface_id(0, 1, 0); | 497 SurfaceId root_surface_id(0, 1, 0); |
406 SurfaceId sid1(0, 2, 0); | 498 SurfaceId sid1(0, 2, 0); |
407 int count = 1; | 499 int count = 1; |
408 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 500 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count()); |
409 | 501 |
410 // Set the root surface | 502 scheduler_.SetVisible(true); |
| 503 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 504 |
| 505 scheduler_.SetVisible(true); |
| 506 EXPECT_EQ(count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 507 |
| 508 scheduler_.SetVisible(false); |
| 509 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 510 |
| 511 // Set the root surface while not visible. |
411 scheduler_.SetNewRootSurface(root_surface_id); | 512 scheduler_.SetNewRootSurface(root_surface_id); |
412 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 513 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 514 |
| 515 scheduler_.SetVisible(true); |
| 516 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
| 517 |
| 518 // Set the root surface while visible. |
| 519 scheduler_.SetNewRootSurface(root_surface_id); |
| 520 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
413 | 521 |
414 BeginFrameForTest(); | 522 BeginFrameForTest(); |
415 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 523 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
416 | 524 |
417 scheduler_.BeginFrameDeadlineForTest(); | 525 scheduler_.BeginFrameDeadlineForTest(); |
418 scheduler_.DidSwapBuffers(); | 526 scheduler_.DidSwapBuffers(); |
419 BeginFrameForTest(); | 527 BeginFrameForTest(); |
420 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 528 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
421 | 529 |
422 scheduler_.DidSwapBuffersComplete(); | 530 scheduler_.DidSwapBuffersComplete(); |
423 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 531 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
424 | 532 |
425 scheduler_.DisplayResized(); | 533 scheduler_.DisplayResized(); |
426 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 534 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
427 | 535 |
428 scheduler_.SetNewRootSurface(root_surface_id); | 536 scheduler_.SetNewRootSurface(root_surface_id); |
429 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 537 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
430 | 538 |
431 scheduler_.SurfaceDamaged(sid1); | 539 scheduler_.SurfaceDamaged(sid1); |
432 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 540 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
433 | 541 |
434 scheduler_.SetRootSurfaceResourcesLocked(true); | 542 scheduler_.SetRootSurfaceResourcesLocked(true); |
435 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 543 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
436 | 544 |
437 scheduler_.OutputSurfaceLost(); | 545 scheduler_.OutputSurfaceLost(); |
438 EXPECT_EQ(count++, scheduler_.scheduler_begin_frame_deadline_count()); | 546 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
439 } | 547 } |
440 | 548 |
441 } // namespace | 549 } // namespace |
442 } // namespace cc | 550 } // namespace cc |
OLD | NEW |