Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 5aeaba7

Browse files
committed
change FrameTargetTimes to be a struct
1 parent a0442a2 commit 5aeaba7

File tree

3 files changed

+41
-45
lines changed

3 files changed

+41
-45
lines changed

shell/platform/fuchsia/flutter/tests/vsync_waiter_unittests.cc

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@ TEST(GetTargetTimesTest, ScheduleForNextVsync) {
192192
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
193193
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
194194

195-
EXPECT_EQ(TimePointToInt(target_times.first), 10);
196-
EXPECT_EQ(TimePointToInt(target_times.second), 20);
195+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 10);
196+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 20);
197197
}
198198

199199
TEST(GetTargetTimesTest, ScheduleForCurrentVsync_DueToOffset) {
@@ -206,8 +206,8 @@ TEST(GetTargetTimesTest, ScheduleForCurrentVsync_DueToOffset) {
206206
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
207207
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
208208

209-
EXPECT_EQ(TimePointToInt(target_times.first), 7);
210-
EXPECT_EQ(TimePointToInt(target_times.second), 10);
209+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 7);
210+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 10);
211211
}
212212

213213
TEST(GetTargetTimesTest, ScheduleForFollowingVsync_BecauseOfNow) {
@@ -220,8 +220,8 @@ TEST(GetTargetTimesTest, ScheduleForFollowingVsync_BecauseOfNow) {
220220
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
221221
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
222222

223-
EXPECT_EQ(TimePointToInt(target_times.first), 20);
224-
EXPECT_EQ(TimePointToInt(target_times.second), 30);
223+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 20);
224+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 30);
225225
}
226226

227227
TEST(GetTargetTimesTest, ScheduleForFollowingVsync_BecauseOfTargettedTime) {
@@ -234,8 +234,8 @@ TEST(GetTargetTimesTest, ScheduleForFollowingVsync_BecauseOfTargettedTime) {
234234
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
235235
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
236236

237-
EXPECT_EQ(TimePointToInt(target_times.first), 20);
238-
EXPECT_EQ(TimePointToInt(target_times.second), 30);
237+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 20);
238+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 30);
239239
}
240240

241241
TEST(GetTargetTimesTest, ScheduleForDistantVsync_BecauseOfTargettedTime) {
@@ -248,8 +248,8 @@ TEST(GetTargetTimesTest, ScheduleForDistantVsync_BecauseOfTargettedTime) {
248248
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
249249
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
250250

251-
EXPECT_EQ(TimePointToInt(target_times.first), 60);
252-
EXPECT_EQ(TimePointToInt(target_times.second), 70);
251+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 60);
252+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 70);
253253
}
254254

255255
TEST(GetTargetTimesTest, ScheduleForFollowingVsync_WithSlightVsyncDrift) {
@@ -265,8 +265,8 @@ TEST(GetTargetTimesTest, ScheduleForFollowingVsync_WithSlightVsyncDrift) {
265265
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
266266
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
267267

268-
EXPECT_EQ(TimePointToInt(target_times.first), 40);
269-
EXPECT_EQ(TimePointToInt(target_times.second), 50);
268+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 40);
269+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 50);
270270
}
271271

272272
TEST(GetTargetTimesTest, ScheduleForAnOffsetFromVsync) {
@@ -279,8 +279,8 @@ TEST(GetTargetTimesTest, ScheduleForAnOffsetFromVsync) {
279279
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
280280
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
281281

282-
EXPECT_EQ(TimePointToInt(target_times.first), 16);
283-
EXPECT_EQ(TimePointToInt(target_times.second), 20);
282+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 16);
283+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 20);
284284
}
285285

286286
TEST(GetTargetTimesTest, ScheduleMultipleTimes) {
@@ -295,13 +295,13 @@ TEST(GetTargetTimesTest, ScheduleMultipleTimes) {
295295
const auto target_times = flutter_runner::VsyncWaiter::GetTargetTimes(
296296
vsync_offset, vsync_interval, last_targetted_vsync, now, next_vsync);
297297

298-
EXPECT_EQ(TimePointToInt(target_times.first), 10 * (i + 1));
299-
EXPECT_EQ(TimePointToInt(target_times.second), 10 * (i + 2));
298+
EXPECT_EQ(TimePointToInt(target_times.frame_start), 10 * (i + 1));
299+
EXPECT_EQ(TimePointToInt(target_times.frame_target), 10 * (i + 2));
300300

301301
// Simulate the passage of time.
302302
now = now + vsync_interval;
303303
next_vsync = next_vsync + vsync_interval;
304-
last_targetted_vsync = target_times.second;
304+
last_targetted_vsync = target_times.frame_target;
305305
}
306306
}
307307

@@ -325,15 +325,15 @@ TEST(GetTargetTimesTest, ScheduleMultipleTimes_WithDelayedWakeups) {
325325
vsync_offset, vsync_interval, last_targetted_vsync,
326326
now + TimeDeltaFromInt(i % 5), next_vsync);
327327

328-
EXPECT_EQ(TimePointToInt(target_times.first),
329-
TimePointToInt(target_times_delay.first));
330-
EXPECT_EQ(TimePointToInt(target_times.second),
331-
TimePointToInt(target_times_delay.second));
328+
EXPECT_EQ(TimePointToInt(target_times.frame_start),
329+
TimePointToInt(target_times_delay.frame_start));
330+
EXPECT_EQ(TimePointToInt(target_times.frame_target),
331+
TimePointToInt(target_times_delay.frame_target));
332332

333333
// Simulate the passage of time.
334334
now = now + vsync_interval;
335335
next_vsync = next_vsync + vsync_interval;
336-
last_targetted_vsync = target_times.second;
336+
last_targetted_vsync = target_times.frame_target;
337337
}
338338
}
339339

shell/platform/fuchsia/flutter/vsync_waiter.cc

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ fml::TimePoint VsyncWaiter::SnapToNextPhase(
102102
//
103103
// |next_vsync| - the next vsync after |now|. This can be generated using the
104104
// SnapToNextPhase function.
105-
FrameTargetTimes VsyncWaiter::GetTargetTimes(
105+
FlutterFrameTimes VsyncWaiter::GetTargetTimes(
106106
fml::TimeDelta vsync_offset,
107107
fml::TimeDelta vsync_interval,
108108
fml::TimePoint last_targetted_vsync,
@@ -126,18 +126,13 @@ FrameTargetTimes VsyncWaiter::GetTargetTimes(
126126

127127
fml::TimePoint frame_end_time = next_vsync;
128128

129-
std::pair<fml::TimePoint, fml::TimePoint> pair;
130-
131129
// Advance to next available slot, keeping in mind the two invariants.
132130
while (frame_end_time < (last_targetted_vsync + (vsync_interval / 2)) ||
133131
frame_start_time < now) {
134132
frame_start_time = frame_start_time + vsync_interval;
135133
frame_end_time = frame_end_time + vsync_interval;
136134
}
137135

138-
pair.first = frame_start_time;
139-
pair.second = frame_end_time;
140-
141136
// Useful knowledge for analyzing traces.
142137
fml::TimePoint previous_vsync = next_vsync - vsync_interval;
143138
TRACE_DURATION(
@@ -149,7 +144,7 @@ FrameTargetTimes VsyncWaiter::GetTargetTimes(
149144
frame_start_time.ToEpochDelta().ToMilliseconds(), "frame_end_time(ms)",
150145
frame_end_time.ToEpochDelta().ToMilliseconds());
151146

152-
return pair;
147+
return {frame_start_time, frame_end_time};
153148
}
154149

155150
VsyncWaiter::VsyncWaiter(std::shared_ptr<SessionConnection> session_connection,
@@ -218,8 +213,8 @@ void VsyncWaiter::AwaitVSyncForSecondaryCallback() {
218213
TRACE_DURATION("flutter", "VsyncWaiter::AwaitVsyncForSecondaryCallback()",
219214
"request_already_pending", frame_request_pending_);
220215

221-
FrameTargetTimes times = GetTargetTimesHelper(/*secondary_callback=*/true);
222-
FireCallback(times.first, times.second, false);
216+
FlutterFrameTimes times = GetTargetTimesHelper(/*secondary_callback=*/true);
217+
FireCallback(times.frame_start, times.frame_target, false);
223218
}
224219

225220
// Postcondition: Either a frame is scheduled or frame_request_pending_ is set
@@ -228,12 +223,13 @@ void VsyncWaiter::FireCallbackMaybe() {
228223
TRACE_DURATION("flutter", "FireCallbackMaybe");
229224

230225
if (session_connection_->CanRequestNewFrames()) {
231-
FrameTargetTimes times = GetTargetTimesHelper(/*secondary_callback=*/false);
226+
FlutterFrameTimes times =
227+
GetTargetTimesHelper(/*secondary_callback=*/false);
232228

233-
last_targetted_vsync_ = times.second;
229+
last_targetted_vsync_ = times.frame_target;
234230
frame_request_pending_ = false;
235231

236-
FireCallback(times.first, times.second, false);
232+
FireCallback(times.frame_start, times.frame_target, false);
237233
} else {
238234
frame_request_pending_ = true;
239235
}
@@ -253,7 +249,7 @@ void VsyncWaiter::OnVsync() {
253249

254250
// A helper function for GetTargetTimes(), since many of the fields it takes
255251
// have to be derived from other state.
256-
FrameTargetTimes VsyncWaiter::GetTargetTimesHelper(bool secondary_callback) {
252+
FlutterFrameTimes VsyncWaiter::GetTargetTimesHelper(bool secondary_callback) {
257253
fml::TimeDelta presentation_interval =
258254
VsyncRecorder::GetInstance().GetCurrentVsyncInfo().presentation_interval;
259255

shell/platform/fuchsia/flutter/vsync_waiter.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@
1818

1919
namespace flutter_runner {
2020

21-
// (frame_start_time, frame_target_time)
22-
using FrameTargetTimes = std::pair<fml::TimePoint, fml::TimePoint>;
23-
// (latch point time, vsync time)
24-
using LatchPointVsyncPair = std::pair<fml::TimePoint, fml::TimePoint>;
21+
struct FlutterFrameTimes {
22+
fml::TimePoint frame_start;
23+
fml::TimePoint frame_target;
24+
};
2525

2626
class VsyncWaiter final : public flutter::VsyncWaiter {
2727
public:
28-
static FrameTargetTimes GetTargetTimes(fml::TimeDelta vsync_offset,
29-
fml::TimeDelta vsync_interval,
30-
fml::TimePoint last_targetted_vsync,
31-
fml::TimePoint now,
32-
fml::TimePoint next_vsync);
28+
static FlutterFrameTimes GetTargetTimes(fml::TimeDelta vsync_offset,
29+
fml::TimeDelta vsync_interval,
30+
fml::TimePoint last_targetted_vsync,
31+
fml::TimePoint now,
32+
fml::TimePoint next_vsync);
3333

3434
static fml::TimePoint SnapToNextPhase(
3535
const fml::TimePoint now,
@@ -52,7 +52,7 @@ class VsyncWaiter final : public flutter::VsyncWaiter {
5252
void FireCallbackMaybe();
5353
void OnVsync();
5454

55-
FrameTargetTimes GetTargetTimesHelper(bool secondary_callback);
55+
FlutterFrameTimes GetTargetTimesHelper(bool secondary_callback);
5656

5757
std::shared_ptr<SessionConnection> session_connection_;
5858

0 commit comments

Comments
 (0)