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

Side by Side Diff: cc/output/begin_frame_args.cc

Issue 2778223005: Plumb activation time to main (Closed)
Patch Set: remove performance observer Created 3 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/output/begin_frame_args.h" 5 #include "cc/output/begin_frame_args.h"
6 6
7 #include "base/trace_event/trace_event_argument.h" 7 #include "base/trace_event/trace_event_argument.h"
8 8
9 namespace cc { 9 namespace cc {
10 10
11 const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) { 11 const char* BeginFrameArgs::TypeToString(BeginFrameArgsType type) {
12 switch (type) { 12 switch (type) {
13 case BeginFrameArgs::INVALID: 13 case BeginFrameArgs::INVALID:
14 return "INVALID"; 14 return "INVALID";
15 case BeginFrameArgs::NORMAL: 15 case BeginFrameArgs::NORMAL:
16 return "NORMAL"; 16 return "NORMAL";
17 case BeginFrameArgs::MISSED: 17 case BeginFrameArgs::MISSED:
18 return "MISSED"; 18 return "MISSED";
19 case BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX: 19 case BeginFrameArgs::BEGIN_FRAME_ARGS_TYPE_MAX:
20 return "BEGIN_FRAME_ARGS_TYPE_MAX"; 20 return "BEGIN_FRAME_ARGS_TYPE_MAX";
21 } 21 }
22 NOTREACHED(); 22 NOTREACHED();
23 return "???"; 23 return "???";
24 } 24 }
25 25
26 constexpr uint64_t BeginFrameArgs::kInvalidFrameNumber; 26 constexpr uint64_t BeginFrameArgs::kInvalidFrameNumber;
27 constexpr uint64_t BeginFrameArgs::kStartingFrameNumber; 27 constexpr uint64_t BeginFrameArgs::kStartingFrameNumber;
28 28
29 BeginFrameArgs::BeginFrameArgs(const BeginFrameArgs& other) = default;
30
29 BeginFrameArgs::BeginFrameArgs() 31 BeginFrameArgs::BeginFrameArgs()
30 : frame_time(base::TimeTicks()), 32 : frame_time(base::TimeTicks()),
31 deadline(base::TimeTicks()), 33 deadline(base::TimeTicks()),
32 interval(base::TimeDelta::FromMicroseconds(-1)), 34 interval(base::TimeDelta::FromMicroseconds(-1)),
33 sequence_number(kInvalidFrameNumber), 35 sequence_number(kInvalidFrameNumber),
34 source_id(0), 36 source_id(0),
37 ready_to_activate_time(base::TimeTicks()),
38 ready_to_activate_source_frame_number(0),
35 type(BeginFrameArgs::INVALID), 39 type(BeginFrameArgs::INVALID),
36 on_critical_path(true) {} 40 on_critical_path(true) {}
37 41
38 BeginFrameArgs::BeginFrameArgs(uint32_t source_id, 42 BeginFrameArgs::BeginFrameArgs(uint32_t source_id,
39 uint64_t sequence_number, 43 uint64_t sequence_number,
40 base::TimeTicks frame_time, 44 base::TimeTicks frame_time,
41 base::TimeTicks deadline, 45 base::TimeTicks deadline,
42 base::TimeDelta interval, 46 base::TimeDelta interval,
43 BeginFrameArgs::BeginFrameArgsType type) 47 BeginFrameArgs::BeginFrameArgsType type)
44 : frame_time(frame_time), 48 : frame_time(frame_time),
45 deadline(deadline), 49 deadline(deadline),
46 interval(interval), 50 interval(interval),
47 sequence_number(sequence_number), 51 sequence_number(sequence_number),
48 source_id(source_id), 52 source_id(source_id),
53 // TODO: copy these
54 // ready_to_activate_time(ready_to_activate_time),
55 // ready_to_activate_source_frame_number(ready_to_activate_source_frame_nu mber),
49 type(type), 56 type(type),
50 on_critical_path(true) { 57 on_critical_path(true) {
51 DCHECK_LE(kStartingFrameNumber, sequence_number); 58 DCHECK_LE(kStartingFrameNumber, sequence_number);
52 } 59 }
53 60
54 BeginFrameArgs BeginFrameArgs::Create(BeginFrameArgs::CreationLocation location, 61 BeginFrameArgs BeginFrameArgs::Create(BeginFrameArgs::CreationLocation location,
55 uint32_t source_id, 62 uint32_t source_id,
56 uint64_t sequence_number, 63 uint64_t sequence_number,
57 base::TimeTicks frame_time, 64 base::TimeTicks frame_time,
58 base::TimeTicks deadline, 65 base::TimeTicks deadline,
(...skipping 25 matching lines...) Expand all
84 state->SetString("subtype", TypeToString(type)); 91 state->SetString("subtype", TypeToString(type));
85 state->SetInteger("source_id", source_id); 92 state->SetInteger("source_id", source_id);
86 state->SetInteger("sequence_number", sequence_number); 93 state->SetInteger("sequence_number", sequence_number);
87 state->SetDouble("frame_time_us", frame_time.ToInternalValue()); 94 state->SetDouble("frame_time_us", frame_time.ToInternalValue());
88 state->SetDouble("deadline_us", deadline.ToInternalValue()); 95 state->SetDouble("deadline_us", deadline.ToInternalValue());
89 state->SetDouble("interval_us", interval.InMicroseconds()); 96 state->SetDouble("interval_us", interval.InMicroseconds());
90 #ifndef NDEBUG 97 #ifndef NDEBUG
91 state->SetString("created_from", created_from.ToString()); 98 state->SetString("created_from", created_from.ToString());
92 #endif 99 #endif
93 state->SetBoolean("on_critical_path", on_critical_path); 100 state->SetBoolean("on_critical_path", on_critical_path);
101 // TODO
102 // state->SetDouble("ready_to_activate_time_us",
103 // ready_to_activate_time.ToInternalValue());
104 // state->SetInteger("ready_to_activate_source_frame_number",
105 // ready_to_activate_source_frame_number);
94 } 106 }
95 107
96 // This is a hard-coded deadline adjustment that assumes 60Hz, to be used in 108 // This is a hard-coded deadline adjustment that assumes 60Hz, to be used in
97 // cases where a good estimated draw time is not known. Using 1/3 of the vsync 109 // cases where a good estimated draw time is not known. Using 1/3 of the vsync
98 // as the default adjustment gives the Browser the last 1/3 of a frame to 110 // as the default adjustment gives the Browser the last 1/3 of a frame to
99 // produce output, the Renderer Impl thread the middle 1/3 of a frame to produce 111 // produce output, the Renderer Impl thread the middle 1/3 of a frame to produce
100 // ouput, and the Renderer Main thread the first 1/3 of a frame to produce 112 // ouput, and the Renderer Main thread the first 1/3 of a frame to produce
101 // output. 113 // output.
102 base::TimeDelta BeginFrameArgs::DefaultEstimatedParentDrawTime() { 114 base::TimeDelta BeginFrameArgs::DefaultEstimatedParentDrawTime() {
103 return base::TimeDelta::FromMicroseconds(16666 / 3); 115 return base::TimeDelta::FromMicroseconds(16666 / 3);
(...skipping 24 matching lines...) Expand all
128 } 140 }
129 141
130 // static 142 // static
131 BeginFrameAck BeginFrameAck::CreateManualAckWithDamage() { 143 BeginFrameAck BeginFrameAck::CreateManualAckWithDamage() {
132 return BeginFrameAck(BeginFrameArgs::kManualSourceId, 144 return BeginFrameAck(BeginFrameArgs::kManualSourceId,
133 BeginFrameArgs::kStartingFrameNumber, 145 BeginFrameArgs::kStartingFrameNumber,
134 BeginFrameArgs::kInvalidFrameNumber, 0, true); 146 BeginFrameArgs::kInvalidFrameNumber, 0, true);
135 } 147 }
136 148
137 } // namespace cc 149 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698