diff --git a/shell/common/vsync_waiter.cc b/shell/common/vsync_waiter.cc index 5ee04ef530b08..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; diff --git a/shell/common/vsync_waiter_fallback.cc b/shell/common/vsync_waiter_fallback.cc index 89c3fb0c805fc..467807c2ec4c2 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);