From 208717eebcc1f586806e0c1daf9aabc85d570ac6 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Sat, 15 Oct 2022 10:09:26 +0800 Subject: [PATCH 1/4] rename old "VSYNC" to other name to avoid coming conflict --- shell/common/vsync_waiter_fallback.cc | 2 +- shell/platform/android/vsync_waiter_android.cc | 4 ++-- .../platform/darwin/ios/framework/Source/vsync_waiter_ios.mm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/common/vsync_waiter_fallback.cc b/shell/common/vsync_waiter_fallback.cc index cb042c5e082e6..f4dc15691222f 100644 --- a/shell/common/vsync_waiter_fallback.cc +++ b/shell/common/vsync_waiter_fallback.cc @@ -35,7 +35,7 @@ VsyncWaiterFallback::~VsyncWaiterFallback() = default; // |VsyncWaiter| void VsyncWaiterFallback::AwaitVSync() { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); constexpr fml::TimeDelta kSingleFrameInterval = fml::TimeDelta::FromSecondsF(1.0 / 60.0); diff --git a/shell/platform/android/vsync_waiter_android.cc b/shell/platform/android/vsync_waiter_android.cc index e2601a16b7b17..9198beb32206e 100644 --- a/shell/platform/android/vsync_waiter_android.cc +++ b/shell/platform/android/vsync_waiter_android.cc @@ -52,7 +52,7 @@ void VsyncWaiterAndroid::AwaitVSync() { // static void VsyncWaiterAndroid::OnVsyncFromNDK(int64_t frame_nanos, void* data) { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); auto frame_time = fml::TimePoint::FromEpochDelta( fml::TimeDelta::FromNanoseconds(frame_nanos)); @@ -72,7 +72,7 @@ void VsyncWaiterAndroid::OnVsyncFromJava(JNIEnv* env, jlong frameDelayNanos, jlong refreshPeriodNanos, jlong java_baton) { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); auto frame_time = fml::TimePoint::Now() - fml::TimeDelta::FromNanoseconds(frameDelayNanos); diff --git a/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm b/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm index 63954c9c59b09..da358506ac5ce 100644 --- a/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm +++ b/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm @@ -102,7 +102,7 @@ - (void)pause { } - (void)onDisplayLink:(CADisplayLink*)link { - TRACE_EVENT0("flutter", "VSYNC"); + TRACE_EVENT0("flutter", "VsyncCallback"); CFTimeInterval delay = CACurrentMediaTime() - link.timestamp; fml::TimePoint frame_start_time = fml::TimePoint::Now() - fml::TimeDelta::FromSecondsF(delay); From 472da0d6d6aafca935b9eb301480a0d7d3755f7e Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Sat, 15 Oct 2022 10:10:51 +0800 Subject: [PATCH 2/4] add trace event --- shell/common/vsync_waiter.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/shell/common/vsync_waiter.cc b/shell/common/vsync_waiter.cc index e787b0384d927..5bf81ab779da6 100644 --- a/shell/common/vsync_waiter.cc +++ b/shell/common/vsync_waiter.cc @@ -103,6 +103,17 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time, return; } + // The event named "VSYNC" is special in `chrome://tracing` tool - it will + // have zebra visualization. + fml::tracing::TraceTimelineEvent( + "flutter", "VSYNC", frame_start_time.ToEpochDelta().ToMicroseconds(), 0, + Dart_Timeline_Event_Begin, {"frame_start_time", "frame_target_time"}, + {std::to_string(frame_start_time.ToEpochDelta().ToMicroseconds()), + std::to_string(frame_target_time.ToEpochDelta().ToMicroseconds())}); + fml::tracing::TraceTimelineEvent( + "flutter", "VSYNC", frame_target_time.ToEpochDelta().ToMicroseconds(), 0, + Dart_Timeline_Event_End, {}, {}); + if (callback) { auto flow_identifier = fml::tracing::TraceNonce(); if (pause_secondary_tasks) { From 9d33853629b0c8d50f7f2ff95dcba4823a0ce0b2 Mon Sep 17 00:00:00 2001 From: fzyzcjy <5236035+fzyzcjy@users.noreply.github.com> Date: Sat, 15 Oct 2022 10:19:57 +0800 Subject: [PATCH 3/4] bump ci --- shell/common/vsync_waiter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/common/vsync_waiter.cc b/shell/common/vsync_waiter.cc index 2bdfb7219e4e4..8e4cd8a0d108e 100644 --- a/shell/common/vsync_waiter.cc +++ b/shell/common/vsync_waiter.cc @@ -110,7 +110,7 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time, } // The event named "VSYNC" is special in `chrome://tracing` tool - it will - // have zebra visualization. + // have a zebra visualization. fml::tracing::TraceTimelineEvent( "flutter", "VSYNC", frame_start_time.ToEpochDelta().ToMicroseconds(), 0, Dart_Timeline_Event_Begin, {"frame_start_time", "frame_target_time"}, From d19f215f0218a93e81c691f0ee49aafde7ca5bf8 Mon Sep 17 00:00:00 2001 From: fzyzcjy Date: Sat, 29 Oct 2022 07:44:13 +0800 Subject: [PATCH 4/4] fix location --- shell/common/vsync_waiter.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/shell/common/vsync_waiter.cc b/shell/common/vsync_waiter.cc index 8e4cd8a0d108e..cb6f377dfae7b 100644 --- a/shell/common/vsync_waiter.cc +++ b/shell/common/vsync_waiter.cc @@ -89,6 +89,17 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time, bool pause_secondary_tasks) { FML_DCHECK(fml::TimePoint::Now() >= frame_start_time); + // The event named "VSYNC" is special in `chrome://tracing` tool - it will + // have a zebra visualization. + fml::tracing::TraceTimelineEvent( + "flutter", "VSYNC", frame_start_time.ToEpochDelta().ToMicroseconds(), 0, + Dart_Timeline_Event_Begin, {"frame_start_time", "frame_target_time"}, + {std::to_string(frame_start_time.ToEpochDelta().ToMicroseconds()), + std::to_string(frame_target_time.ToEpochDelta().ToMicroseconds())}); + fml::tracing::TraceTimelineEvent( + "flutter", "VSYNC", frame_target_time.ToEpochDelta().ToMicroseconds(), 0, + Dart_Timeline_Event_End, {}, {}); + Callback callback; std::vector secondary_callbacks; @@ -109,17 +120,6 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time, return; } - // The event named "VSYNC" is special in `chrome://tracing` tool - it will - // have a zebra visualization. - fml::tracing::TraceTimelineEvent( - "flutter", "VSYNC", frame_start_time.ToEpochDelta().ToMicroseconds(), 0, - Dart_Timeline_Event_Begin, {"frame_start_time", "frame_target_time"}, - {std::to_string(frame_start_time.ToEpochDelta().ToMicroseconds()), - std::to_string(frame_target_time.ToEpochDelta().ToMicroseconds())}); - fml::tracing::TraceTimelineEvent( - "flutter", "VSYNC", frame_target_time.ToEpochDelta().ToMicroseconds(), 0, - Dart_Timeline_Event_End, {}, {}); - if (callback) { auto flow_identifier = fml::tracing::TraceNonce(); if (pause_secondary_tasks) {