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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
47 int max_pending_swaps) | 47 int max_pending_swaps) |
48 : DisplayScheduler(task_runner, max_pending_swaps), | 48 : DisplayScheduler(task_runner, max_pending_swaps), |
49 scheduler_begin_frame_deadline_count_(0) { | 49 scheduler_begin_frame_deadline_count_(0) { |
50 SetBeginFrameSource(begin_frame_source); | 50 SetBeginFrameSource(begin_frame_source); |
51 } | 51 } |
52 | 52 |
53 base::TimeTicks DesiredBeginFrameDeadlineTimeForTest() { | 53 base::TimeTicks DesiredBeginFrameDeadlineTimeForTest() { |
54 return DesiredBeginFrameDeadlineTime(); | 54 return DesiredBeginFrameDeadlineTime(); |
55 } | 55 } |
56 | 56 |
57 void BeginFrameDeadlineForTest() { OnBeginFrameDeadline(); } | 57 void BeginFrameDeadlineForTest() { |
58 // Ensure that any missed BeginFrames were handled by the scheduler. We need | |
59 // to run the scheduled task ourselves since the NullTaskRunner won't. | |
60 if (!missed_begin_frame_task_.IsCancelled()) | |
61 missed_begin_frame_task_.callback().Run(); | |
62 OnBeginFrameDeadline(); | |
63 } | |
58 | 64 |
59 void ScheduleBeginFrameDeadline() override { | 65 void ScheduleBeginFrameDeadline() override { |
60 scheduler_begin_frame_deadline_count_++; | 66 scheduler_begin_frame_deadline_count_++; |
61 DisplayScheduler::ScheduleBeginFrameDeadline(); | 67 DisplayScheduler::ScheduleBeginFrameDeadline(); |
62 } | 68 } |
63 | 69 |
64 int scheduler_begin_frame_deadline_count() { | 70 int scheduler_begin_frame_deadline_count() { |
65 return scheduler_begin_frame_deadline_count_; | 71 return scheduler_begin_frame_deadline_count_; |
66 } | 72 } |
67 | 73 |
74 bool inside_begin_frame_deadline_interval() { | |
75 return inside_begin_frame_deadline_interval_; | |
76 } | |
77 | |
68 protected: | 78 protected: |
69 int scheduler_begin_frame_deadline_count_; | 79 int scheduler_begin_frame_deadline_count_; |
70 }; | 80 }; |
71 | 81 |
72 class DisplaySchedulerTest : public testing::Test { | 82 class DisplaySchedulerTest : public testing::Test { |
73 public: | 83 public: |
74 DisplaySchedulerTest() | 84 DisplaySchedulerTest() |
75 : fake_begin_frame_source_(0.f, false), | 85 : fake_begin_frame_source_(0.f, false), |
76 task_runner_(new base::NullTaskRunner), | 86 task_runner_(new base::NullTaskRunner), |
77 scheduler_(&fake_begin_frame_source_, | 87 scheduler_(&fake_begin_frame_source_, |
78 task_runner_.get(), | 88 task_runner_.get(), |
79 kMaxPendingSwaps) { | 89 kMaxPendingSwaps) { |
80 now_src_.Advance(base::TimeDelta::FromMicroseconds(10000)); | 90 now_src_.Advance(base::TimeDelta::FromMicroseconds(10000)); |
81 scheduler_.SetClient(&client_); | 91 scheduler_.SetClient(&client_); |
82 } | 92 } |
83 | 93 |
84 ~DisplaySchedulerTest() override {} | 94 ~DisplaySchedulerTest() override {} |
85 | 95 |
86 void SetUp() override { scheduler_.SetRootSurfaceResourcesLocked(false); } | 96 void SetUp() override { scheduler_.SetRootSurfaceResourcesLocked(false); } |
87 | 97 |
88 void BeginFrameForTest() { | 98 void BeginFrameForTest() { |
99 now_src_.Advance(base::TimeDelta::FromMicroseconds(10000)); | |
brianderson
2017/01/03 19:30:16
To help test readability, can you make it explicit
Eric Seckler
2017/01/04 10:14:49
Done.
| |
89 base::TimeTicks frame_time = now_src_.NowTicks(); | 100 base::TimeTicks frame_time = now_src_.NowTicks(); |
90 base::TimeDelta interval = BeginFrameArgs::DefaultInterval(); | 101 base::TimeDelta interval = BeginFrameArgs::DefaultInterval(); |
91 base::TimeTicks deadline = frame_time + interval; | 102 base::TimeTicks deadline = frame_time + interval; |
92 // FakeBeginFrameSource deals with |source_id| and |sequence_number|. | 103 // FakeBeginFrameSource deals with |source_id| and |sequence_number|. |
93 fake_begin_frame_source_.TestOnBeginFrame( | 104 fake_begin_frame_source_.TestOnBeginFrame( |
94 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, 0, 1, frame_time, deadline, | 105 BeginFrameArgs::Create(BEGINFRAME_FROM_HERE, 0, 1, frame_time, deadline, |
95 interval, BeginFrameArgs::NORMAL)); | 106 interval, BeginFrameArgs::NORMAL)); |
96 } | 107 } |
97 | 108 |
98 protected: | 109 protected: |
(...skipping 20 matching lines...) Expand all Loading... | |
119 | 130 |
120 scheduler_.SetVisible(true); | 131 scheduler_.SetVisible(true); |
121 | 132 |
122 // Go trough an initial BeginFrame cycle with the root surface. | 133 // Go trough an initial BeginFrame cycle with the root surface. |
123 BeginFrameForTest(); | 134 BeginFrameForTest(); |
124 scheduler_.SetNewRootSurface(root_surface_id1); | 135 scheduler_.SetNewRootSurface(root_surface_id1); |
125 scheduler_.BeginFrameDeadlineForTest(); | 136 scheduler_.BeginFrameDeadlineForTest(); |
126 | 137 |
127 // Resize on the next begin frame cycle should cause the deadline to wait | 138 // Resize on the next begin frame cycle should cause the deadline to wait |
128 // for a new root surface. | 139 // for a new root surface. |
140 BeginFrameForTest(); | |
129 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 141 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
130 BeginFrameForTest(); | |
131 scheduler_.SurfaceDamaged(sid1); | 142 scheduler_.SurfaceDamaged(sid1); |
132 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 143 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
133 scheduler_.DisplayResized(); | 144 scheduler_.DisplayResized(); |
134 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 145 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
135 scheduler_.SetNewRootSurface(root_surface_id2); | 146 scheduler_.SetNewRootSurface(root_surface_id2); |
136 EXPECT_GE(now_src().NowTicks(), | 147 EXPECT_GE(now_src().NowTicks(), |
137 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 148 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
138 scheduler_.BeginFrameDeadlineForTest(); | 149 scheduler_.BeginFrameDeadlineForTest(); |
139 | 150 |
140 // Verify deadline goes back to normal after resize. | 151 // Verify deadline goes back to normal after resize. |
(...skipping 16 matching lines...) Expand all Loading... | |
157 | 168 |
158 scheduler_.SetVisible(true); | 169 scheduler_.SetVisible(true); |
159 | 170 |
160 // Go trough an initial BeginFrame cycle with the root surface. | 171 // Go trough an initial BeginFrame cycle with the root surface. |
161 BeginFrameForTest(); | 172 BeginFrameForTest(); |
162 scheduler_.SetNewRootSurface(root_surface_id); | 173 scheduler_.SetNewRootSurface(root_surface_id); |
163 scheduler_.BeginFrameDeadlineForTest(); | 174 scheduler_.BeginFrameDeadlineForTest(); |
164 | 175 |
165 // Resize on the next begin frame cycle should cause the deadline to wait | 176 // Resize on the next begin frame cycle should cause the deadline to wait |
166 // for a new root surface. | 177 // for a new root surface. |
178 BeginFrameForTest(); | |
167 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 179 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
168 BeginFrameForTest(); | |
169 scheduler_.SurfaceDamaged(sid1); | 180 scheduler_.SurfaceDamaged(sid1); |
170 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 181 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
171 scheduler_.DisplayResized(); | 182 scheduler_.DisplayResized(); |
172 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 183 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
173 scheduler_.SurfaceDamaged(root_surface_id); | 184 scheduler_.SurfaceDamaged(root_surface_id); |
174 EXPECT_GE(now_src().NowTicks(), | 185 EXPECT_GE(now_src().NowTicks(), |
175 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 186 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
176 scheduler_.BeginFrameDeadlineForTest(); | 187 scheduler_.BeginFrameDeadlineForTest(); |
177 | 188 |
178 // Verify deadline goes back to normal after resize. | 189 // Verify deadline goes back to normal after resize. |
190 BeginFrameForTest(); | |
179 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 191 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
180 BeginFrameForTest(); | |
181 scheduler_.SurfaceDamaged(sid1); | 192 scheduler_.SurfaceDamaged(sid1); |
182 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 193 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
183 scheduler_.SurfaceDamaged(root_surface_id); | 194 scheduler_.SurfaceDamaged(root_surface_id); |
184 EXPECT_GE(now_src().NowTicks(), | 195 EXPECT_GE(now_src().NowTicks(), |
185 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 196 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
186 scheduler_.BeginFrameDeadlineForTest(); | 197 scheduler_.BeginFrameDeadlineForTest(); |
187 } | 198 } |
188 | 199 |
189 TEST_F(DisplaySchedulerTest, SurfaceDamaged) { | 200 TEST_F(DisplaySchedulerTest, SurfaceDamaged) { |
190 SurfaceId root_surface_id(kArbitraryFrameSinkId, | 201 SurfaceId root_surface_id(kArbitraryFrameSinkId, |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
235 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 246 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
236 scheduler_.SurfaceDamaged(sid2); | 247 scheduler_.SurfaceDamaged(sid2); |
237 EXPECT_GE(now_src().NowTicks(), | 248 EXPECT_GE(now_src().NowTicks(), |
238 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 249 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
239 scheduler_.BeginFrameDeadlineForTest(); | 250 scheduler_.BeginFrameDeadlineForTest(); |
240 | 251 |
241 // Make the system idle | 252 // Make the system idle |
242 BeginFrameForTest(); | 253 BeginFrameForTest(); |
243 scheduler_.BeginFrameDeadlineForTest(); | 254 scheduler_.BeginFrameDeadlineForTest(); |
244 BeginFrameForTest(); | 255 BeginFrameForTest(); |
245 scheduler_.BeginFrameDeadlineForTest(); | 256 EXPECT_FALSE(scheduler_.inside_begin_frame_deadline_interval()); |
246 | 257 |
247 // Deadline should trigger early if child surfaces are idle and | 258 // Deadline should trigger early if child surfaces are idle and |
248 // we get damage on the root surface. | 259 // we get damage on the root surface. |
249 BeginFrameForTest(); | 260 BeginFrameForTest(); |
250 EXPECT_LT(now_src().NowTicks(), | 261 EXPECT_FALSE(scheduler_.inside_begin_frame_deadline_interval()); |
251 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | |
252 scheduler_.SurfaceDamaged(root_surface_id); | 262 scheduler_.SurfaceDamaged(root_surface_id); |
253 EXPECT_GE(now_src().NowTicks(), | 263 EXPECT_GE(now_src().NowTicks(), |
254 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 264 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
255 scheduler_.BeginFrameDeadlineForTest(); | 265 scheduler_.BeginFrameDeadlineForTest(); |
256 } | 266 } |
257 | 267 |
258 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) { | 268 TEST_F(DisplaySchedulerTest, OutputSurfaceLost) { |
259 SurfaceId root_surface_id(kArbitraryFrameSinkId, | 269 SurfaceId root_surface_id(kArbitraryFrameSinkId, |
260 LocalFrameId(0, base::UnguessableToken::Create())); | 270 LocalFrameId(0, base::UnguessableToken::Create())); |
261 SurfaceId sid1(kArbitraryFrameSinkId, | 271 SurfaceId sid1(kArbitraryFrameSinkId, |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
416 // DrawAndSwap normally. | 426 // DrawAndSwap normally. |
417 BeginFrameForTest(); | 427 BeginFrameForTest(); |
418 EXPECT_LT(now_src().NowTicks(), | 428 EXPECT_LT(now_src().NowTicks(), |
419 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 429 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
420 EXPECT_EQ(0, client_.draw_and_swap_count()); | 430 EXPECT_EQ(0, client_.draw_and_swap_count()); |
421 scheduler_.SurfaceDamaged(sid1); | 431 scheduler_.SurfaceDamaged(sid1); |
422 scheduler_.BeginFrameDeadlineForTest(); | 432 scheduler_.BeginFrameDeadlineForTest(); |
423 EXPECT_EQ(1, client_.draw_and_swap_count()); | 433 EXPECT_EQ(1, client_.draw_and_swap_count()); |
424 | 434 |
425 // Deadline triggers late while root resources are locked. | 435 // Deadline triggers late while root resources are locked. |
436 BeginFrameForTest(); | |
426 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 437 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
427 BeginFrameForTest(); | |
428 scheduler_.SurfaceDamaged(sid1); | 438 scheduler_.SurfaceDamaged(sid1); |
429 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 439 EXPECT_GT(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
430 scheduler_.SetRootSurfaceResourcesLocked(true); | 440 scheduler_.SetRootSurfaceResourcesLocked(true); |
431 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 441 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
432 | 442 |
433 // Deadline does not DrawAndSwap while root resources are locked. | 443 // Deadline does not DrawAndSwap while root resources are locked. |
434 EXPECT_EQ(1, client_.draw_and_swap_count()); | 444 EXPECT_EQ(1, client_.draw_and_swap_count()); |
435 scheduler_.SurfaceDamaged(sid1); | 445 scheduler_.SurfaceDamaged(sid1); |
436 scheduler_.BeginFrameDeadlineForTest(); | 446 scheduler_.BeginFrameDeadlineForTest(); |
437 EXPECT_EQ(1, client_.draw_and_swap_count()); | 447 EXPECT_EQ(1, client_.draw_and_swap_count()); |
438 | 448 |
439 // Deadline triggers normally when root resources are unlocked. | 449 // Deadline triggers normally when root resources are unlocked. |
450 BeginFrameForTest(); | |
440 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 451 late_deadline = now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
441 BeginFrameForTest(); | |
442 scheduler_.SurfaceDamaged(sid1); | 452 scheduler_.SurfaceDamaged(sid1); |
443 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 453 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
444 scheduler_.SetRootSurfaceResourcesLocked(false); | 454 scheduler_.SetRootSurfaceResourcesLocked(false); |
445 scheduler_.SurfaceDamaged(root_surface_id); | 455 scheduler_.SurfaceDamaged(root_surface_id); |
446 EXPECT_EQ(base::TimeTicks(), | 456 EXPECT_EQ(base::TimeTicks(), |
447 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 457 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
448 | 458 |
449 EXPECT_EQ(1, client_.draw_and_swap_count()); | 459 EXPECT_EQ(1, client_.draw_and_swap_count()); |
450 scheduler_.BeginFrameDeadlineForTest(); | 460 scheduler_.BeginFrameDeadlineForTest(); |
451 EXPECT_EQ(2, client_.draw_and_swap_count()); | 461 EXPECT_EQ(2, client_.draw_and_swap_count()); |
(...skipping 27 matching lines...) Expand all Loading... | |
479 EXPECT_LT(now_src().NowTicks(), | 489 EXPECT_LT(now_src().NowTicks(), |
480 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 490 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
481 EXPECT_EQ(2, client_.draw_and_swap_count()); | 491 EXPECT_EQ(2, client_.draw_and_swap_count()); |
482 scheduler_.SurfaceDamaged(sid1); | 492 scheduler_.SurfaceDamaged(sid1); |
483 scheduler_.SurfaceDamaged(sid2); | 493 scheduler_.SurfaceDamaged(sid2); |
484 scheduler_.BeginFrameDeadlineForTest(); | 494 scheduler_.BeginFrameDeadlineForTest(); |
485 EXPECT_EQ(3, client_.draw_and_swap_count()); | 495 EXPECT_EQ(3, client_.draw_and_swap_count()); |
486 scheduler_.DidSwapBuffers(); | 496 scheduler_.DidSwapBuffers(); |
487 | 497 |
488 // Deadline triggers late when swap throttled. | 498 // Deadline triggers late when swap throttled. |
499 BeginFrameForTest(); | |
489 base::TimeTicks late_deadline = | 500 base::TimeTicks late_deadline = |
490 now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); | 501 now_src().NowTicks() + BeginFrameArgs::DefaultInterval(); |
491 BeginFrameForTest(); | |
492 // Damage surface 1, but not surface 2 so we avoid triggering deadline | 502 // Damage surface 1, but not surface 2 so we avoid triggering deadline |
493 // early because all surfaces are ready. | 503 // early because all surfaces are ready. |
494 scheduler_.SurfaceDamaged(sid1); | 504 scheduler_.SurfaceDamaged(sid1); |
495 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 505 EXPECT_EQ(late_deadline, scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
496 | 506 |
497 // Don't draw and swap in deadline while swap throttled. | 507 // Don't draw and swap in deadline while swap throttled. |
498 EXPECT_EQ(3, client_.draw_and_swap_count()); | 508 EXPECT_EQ(3, client_.draw_and_swap_count()); |
499 scheduler_.BeginFrameDeadlineForTest(); | 509 scheduler_.BeginFrameDeadlineForTest(); |
500 EXPECT_EQ(3, client_.draw_and_swap_count()); | 510 EXPECT_EQ(3, client_.draw_and_swap_count()); |
501 | 511 |
502 // Deadline triggers normally once not swap throttled. | 512 // Deadline triggers normally once not swap throttled. |
503 // Damage from previous BeginFrame should cary over, so don't damage again. | 513 // Damage from previous BeginFrame should cary over, so don't damage again. |
514 scheduler_.DidReceiveSwapBuffersAck(); | |
515 BeginFrameForTest(); | |
504 base::TimeTicks expected_deadline = | 516 base::TimeTicks expected_deadline = |
505 scheduler_.LastUsedBeginFrameArgs().deadline - | 517 scheduler_.LastUsedBeginFrameArgs().deadline - |
506 BeginFrameArgs::DefaultEstimatedParentDrawTime(); | 518 BeginFrameArgs::DefaultEstimatedParentDrawTime(); |
507 scheduler_.DidReceiveSwapBuffersAck(); | |
508 BeginFrameForTest(); | |
509 EXPECT_EQ(expected_deadline, | 519 EXPECT_EQ(expected_deadline, |
510 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); | 520 scheduler_.DesiredBeginFrameDeadlineTimeForTest()); |
511 // Still waiting for surface 2. Once it updates, deadline should trigger | 521 // Still waiting for surface 2. Once it updates, deadline should trigger |
512 // immediately again. | 522 // immediately again. |
513 scheduler_.SurfaceDamaged(sid2); | 523 scheduler_.SurfaceDamaged(sid2); |
514 EXPECT_EQ(scheduler_.DesiredBeginFrameDeadlineTimeForTest(), | 524 EXPECT_EQ(scheduler_.DesiredBeginFrameDeadlineTimeForTest(), |
515 base::TimeTicks()); | 525 base::TimeTicks()); |
516 // Draw and swap now that we aren't throttled. | 526 // Draw and swap now that we aren't throttled. |
517 EXPECT_EQ(3, client_.draw_and_swap_count()); | 527 EXPECT_EQ(3, client_.draw_and_swap_count()); |
518 scheduler_.BeginFrameDeadlineForTest(); | 528 scheduler_.BeginFrameDeadlineForTest(); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
571 | 581 |
572 scheduler_.SetRootSurfaceResourcesLocked(true); | 582 scheduler_.SetRootSurfaceResourcesLocked(true); |
573 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); | 583 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
574 | 584 |
575 scheduler_.OutputSurfaceLost(); | 585 scheduler_.OutputSurfaceLost(); |
576 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); | 586 EXPECT_EQ(++count, scheduler_.scheduler_begin_frame_deadline_count()); |
577 } | 587 } |
578 | 588 |
579 } // namespace | 589 } // namespace |
580 } // namespace cc | 590 } // namespace cc |
OLD | NEW |