Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1050)

Unified Diff: cc/scheduler/scheduler.cc

Issue 2632563003: [cc] Calculate the correct latest_confirmed_sequence_number in cc::Scheduler. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());

Powered by Google App Engine
This is Rietveld 408576698