Chromium Code Reviews| Index: cc/scheduler/scheduler.cc |
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
| index d8f9440227d4b858b6190b63fe3baab87aa513c9..b903cbad41935d7ca3528998d44089d403f5367a 100644 |
| --- a/cc/scheduler/scheduler.cc |
| +++ b/cc/scheduler/scheduler.cc |
| @@ -322,9 +322,10 @@ void Scheduler::BeginImplFrameWithDeadline(const BeginFrameArgs& args) { |
| // Discard missed begin frames if they are too late. |
| if (adjusted_args.type == BeginFrameArgs::MISSED && |
| now > adjusted_args.deadline) { |
| - // TODO(eseckler): Determine and set correct |ack.latest_confirmed_frame|. |
| - BeginFrameAck ack(adjusted_args.source_id, adjusted_args.sequence_number, |
| - adjusted_args.sequence_number, 0, false); |
| + BeginFrameAck ack( |
| + adjusted_args.source_id, adjusted_args.sequence_number, |
| + state_machine_.last_frame_number_compositor_frame_was_fresh(), 0, |
| + false); |
| begin_frame_source_->DidFinishFrame(this, ack); |
| return; |
| } |
| @@ -335,9 +336,10 @@ void Scheduler::BeginImplFrameWithDeadline(const BeginFrameArgs& args) { |
| OnBeginImplFrameDeadline(); |
| // We may not need begin frames any longer. |
| if (!observing_begin_frame_source_) { |
| - // TODO(eseckler): Determine and set correct |ack.latest_confirmed_frame|. |
| - BeginFrameAck ack(adjusted_args.source_id, adjusted_args.sequence_number, |
| - adjusted_args.sequence_number, 0, false); |
| + BeginFrameAck ack( |
| + adjusted_args.source_id, adjusted_args.sequence_number, |
| + state_machine_.last_frame_number_compositor_frame_was_fresh(), 0, |
| + false); |
| begin_frame_source_->DidFinishFrame(this, ack); |
| return; |
| } |
| @@ -398,9 +400,10 @@ void Scheduler::BeginImplFrameWithDeadline(const BeginFrameArgs& args) { |
| TRACE_EVENT_INSTANT0("cc", "SkipBeginImplFrameToReduceLatency", |
| TRACE_EVENT_SCOPE_THREAD); |
| if (begin_frame_source_) { |
| - // TODO(eseckler): Determine and set correct |ack.latest_confirmed_frame|. |
| - BeginFrameAck ack(adjusted_args.source_id, adjusted_args.sequence_number, |
| - adjusted_args.sequence_number, 0, false); |
| + BeginFrameAck ack( |
| + adjusted_args.source_id, adjusted_args.sequence_number, |
| + state_machine_.last_frame_number_compositor_frame_was_fresh(), 0, |
| + false); |
| begin_frame_source_->DidFinishFrame(this, ack); |
| } |
| return; |
| @@ -431,11 +434,11 @@ void Scheduler::FinishImplFrame() { |
| client_->DidFinishImplFrame(); |
| if (begin_frame_source_) { |
| - // TODO(eseckler): Determine and set correct |ack.latest_confirmed_frame|. |
| - BeginFrameAck ack(begin_main_frame_args_.source_id, |
| - begin_main_frame_args_.sequence_number, |
| - begin_main_frame_args_.sequence_number, 0, |
| - state_machine_.did_submit_in_last_frame()); |
| + BeginFrameAck ack( |
| + begin_main_frame_args_.source_id, |
|
brianderson
2017/01/13 19:13:49
The begin_main_frame_args_.source_id at this point
Sami
2017/01/16 10:41:02
I think this is okay, because when the source_id c
Eric Seckler
2017/01/16 14:33:01
What Sami said. :) Regarding telling the state mac
Eric Seckler
2017/01/17 18:01:24
Badum.. I'm just realizing that this is broken sin
|
| + begin_main_frame_args_.sequence_number, |
| + state_machine_.last_frame_number_compositor_frame_was_fresh(), 0, |
| + state_machine_.did_submit_in_last_frame()); |
| begin_frame_source_->DidFinishFrame(this, ack); |
| } |
| begin_impl_frame_tracker_.Finish(); |
| @@ -451,7 +454,7 @@ void Scheduler::BeginImplFrame(const BeginFrameArgs& args) { |
| DCHECK(state_machine_.HasInitializedCompositorFrameSink()); |
| begin_impl_frame_tracker_.Start(args); |
| - state_machine_.OnBeginImplFrame(); |
| + state_machine_.OnBeginImplFrame(args.source_id, args.sequence_number); |
| devtools_instrumentation::DidBeginFrame(layer_tree_host_id_); |
| compositor_timing_history_->WillBeginImplFrame( |
| state_machine_.NewActiveTreeLikely()); |