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

Unified Diff: cc/output/begin_frame_args.cc

Issue 2527283003: cc: Introduce BeginFrame sequence numbers and acknowledgements.
Patch Set: Address Sami's comments, DisplayScheduler observes while BFSObservers exist. Created 4 years 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/output/begin_frame_args.cc
diff --git a/cc/output/begin_frame_args.cc b/cc/output/begin_frame_args.cc
index 7ef2c4842ac4b30610a7acd9dd416f5f5270fc8a..644b90496a27f48a630de33148fc229477a5509a 100644
--- a/cc/output/begin_frame_args.cc
+++ b/cc/output/begin_frame_args.cc
@@ -25,25 +25,31 @@ const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) {
}
BeginFrameArgs::BeginFrameArgs()
- : frame_time(base::TimeTicks()),
+ : source_id(0),
+ sequence_number(0),
+ frame_time(base::TimeTicks()),
deadline(base::TimeTicks()),
interval(base::TimeDelta::FromMicroseconds(-1)),
type(BeginFrameArgs::INVALID),
- on_critical_path(true) {
-}
+ on_critical_path(true) {}
-BeginFrameArgs::BeginFrameArgs(base::TimeTicks frame_time,
+BeginFrameArgs::BeginFrameArgs(uint64_t source_id,
+ uint64_t sequence_number,
+ base::TimeTicks frame_time,
base::TimeTicks deadline,
base::TimeDelta interval,
BeginFrameArgs::BeginFrameArgsType type)
- : frame_time(frame_time),
+ : source_id(source_id),
+ sequence_number(sequence_number),
Sami 2016/12/07 16:59:40 DCHECK(sequence_number > 0)?
Eric Seckler 2016/12/08 17:54:28 Done.
+ frame_time(frame_time),
deadline(deadline),
interval(interval),
type(type),
- on_critical_path(true) {
-}
+ on_critical_path(true) {}
BeginFrameArgs BeginFrameArgs::Create(BeginFrameArgs::CreationLocation location,
+ uint64_t source_id,
+ uint64_t sequence_number,
base::TimeTicks frame_time,
base::TimeTicks deadline,
base::TimeDelta interval,
@@ -51,9 +57,11 @@ BeginFrameArgs BeginFrameArgs::Create(BeginFrameArgs::CreationLocation location,
DCHECK_NE(type, BeginFrameArgs::INVALID);
DCHECK_NE(type, BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX);
#ifdef NDEBUG
- return BeginFrameArgs(frame_time, deadline, interval, type);
+ return BeginFrameArgs(source_id, sequence_number, frame_time, deadline,
+ interval, type);
#else
- BeginFrameArgs args = BeginFrameArgs(frame_time, deadline, interval, type);
+ BeginFrameArgs args(source_id, sequence_number, frame_time, deadline,
+ interval, type);
args.created_from = location;
return args;
#endif
@@ -70,6 +78,8 @@ BeginFrameArgs::AsValue() const {
void BeginFrameArgs::AsValueInto(base::trace_event::TracedValue* state) const {
state->SetString("type", "BeginFrameArgs");
state->SetString("subtype", TypeToString(type));
+ state->SetInteger("source_id", source_id);
+ state->SetInteger("sequence_number", sequence_number);
state->SetDouble("frame_time_us", frame_time.ToInternalValue());
state->SetDouble("deadline_us", deadline.ToInternalValue());
state->SetDouble("interval_us", interval.InMicroseconds());
@@ -93,4 +103,22 @@ base::TimeDelta BeginFrameArgs::DefaultInterval() {
return base::TimeDelta::FromMicroseconds(16666);
}
+BeginFrameAck::BeginFrameAck()
+ : source_id(0),
+ sequence_number(0),
+ oldest_incorporated_frame(0),
+ remaining_frames(0),
+ has_updates(false) {}
+
+BeginFrameAck::BeginFrameAck(uint64_t source_id,
+ uint64_t sequence_number,
+ uint64_t oldest_incorporated_frame,
+ uint32_t remaining_frames,
+ bool has_updates)
+ : source_id(source_id),
+ sequence_number(sequence_number),
+ oldest_incorporated_frame(oldest_incorporated_frame),
+ remaining_frames(remaining_frames),
+ has_updates(has_updates) {}
Sami 2016/12/07 16:59:40 DCHECK(sequence_number > 0)?
Eric Seckler 2016/12/08 17:54:28 Done.
+
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698