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 <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 357 | 357 |
| 358 void DisplayScheduler::OnBeginFrameDeadline() { | 358 void DisplayScheduler::OnBeginFrameDeadline() { |
| 359 TRACE_EVENT0("cc", "DisplayScheduler::OnBeginFrameDeadline"); | 359 TRACE_EVENT0("cc", "DisplayScheduler::OnBeginFrameDeadline"); |
| 360 DCHECK(inside_begin_frame_deadline_interval_); | 360 DCHECK(inside_begin_frame_deadline_interval_); |
| 361 | 361 |
| 362 bool did_draw = AttemptDrawAndSwap(); | 362 bool did_draw = AttemptDrawAndSwap(); |
| 363 DidFinishFrame(did_draw); | 363 DidFinishFrame(did_draw); |
| 364 } | 364 } |
| 365 | 365 |
| 366 void DisplayScheduler::DidFinishFrame(bool did_draw) { | 366 void DisplayScheduler::DidFinishFrame(bool did_draw) { |
| 367 // TODO(eseckler): Determine and set correct |ack.latest_confirmed_frame|. | 367 // TODO(eseckler): Let client know that frame was completed. |
|
sunnyps
2017/05/24 02:38:26
nit: DCHECK(begin_frame_source_) here
Eric Seckler
2017/05/24 09:00:40
Done.
| |
| 368 BeginFrameAck ack(current_begin_frame_args_.source_id, | 368 begin_frame_source_->DidFinishFrame(this); |
| 369 current_begin_frame_args_.sequence_number, | |
| 370 current_begin_frame_args_.sequence_number, did_draw); | |
| 371 begin_frame_source_->DidFinishFrame(this, ack); | |
| 372 } | 369 } |
| 373 | 370 |
| 374 void DisplayScheduler::DidSwapBuffers() { | 371 void DisplayScheduler::DidSwapBuffers() { |
| 375 pending_swaps_++; | 372 pending_swaps_++; |
| 376 uint32_t swap_id = next_swap_id_++; | 373 uint32_t swap_id = next_swap_id_++; |
| 377 TRACE_EVENT_ASYNC_BEGIN0("cc", "DisplayScheduler:pending_swaps", swap_id); | 374 TRACE_EVENT_ASYNC_BEGIN0("cc", "DisplayScheduler:pending_swaps", swap_id); |
| 378 } | 375 } |
| 379 | 376 |
| 380 void DisplayScheduler::DidReceiveSwapBuffersAck() { | 377 void DisplayScheduler::DidReceiveSwapBuffersAck() { |
| 381 uint32_t swap_id = next_swap_id_ - pending_swaps_; | 378 uint32_t swap_id = next_swap_id_ - pending_swaps_; |
| 382 pending_swaps_--; | 379 pending_swaps_--; |
| 383 TRACE_EVENT_ASYNC_END0("cc", "DisplayScheduler:pending_swaps", swap_id); | 380 TRACE_EVENT_ASYNC_END0("cc", "DisplayScheduler:pending_swaps", swap_id); |
| 384 ScheduleBeginFrameDeadline(); | 381 ScheduleBeginFrameDeadline(); |
| 385 } | 382 } |
| 386 | 383 |
| 387 } // namespace cc | 384 } // namespace cc |
| OLD | NEW |