From 6dbbb9c0a5d801379607ffaf39d8d7c8b0cd3706 Mon Sep 17 00:00:00 2001 From: Chinmay Garde Date: Thu, 3 Nov 2016 17:04:21 -0700 Subject: [PATCH] Fix PipelineProducer traces. Also add back the OnDisplayLink trace on iOS. (flutter/engine#3201) --- engine/src/flutter/shell/platform/darwin/ios/BUILD.gn | 1 + .../darwin/ios/framework/Source/vsync_waiter_ios.mm | 4 ++++ engine/src/flutter/synchronization/pipeline.h | 11 ++++------- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/engine/src/flutter/shell/platform/darwin/ios/BUILD.gn b/engine/src/flutter/shell/platform/darwin/ios/BUILD.gn index 3a7d33d9f2..8b1f169f5a 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/BUILD.gn +++ b/engine/src/flutter/shell/platform/darwin/ios/BUILD.gn @@ -53,6 +53,7 @@ shared_library("flutter_framework_dylib") { deps = [ "//base:base", "//dart/runtime:libdart", + "//flutter/glue", "//flutter/lib/ui", "//flutter/shell/common", "//flutter/shell/gpu", diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm index 3bd8e0b311..6e0a360337 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/vsync_waiter_ios.mm @@ -11,6 +11,7 @@ #include #include "flutter/common/threads.h" +#include "flutter/glue/trace_event.h" #include "lib/ftl/logging.h" @interface VSyncClient : NSObject @@ -20,6 +21,7 @@ @implementation VSyncClient { CADisplayLink* _displayLink; shell::VsyncWaiter::Callback _pendingCallback; + bool _traceCounter; } - (instancetype)init { @@ -44,6 +46,8 @@ } - (void)onDisplayLink:(CADisplayLink*)link { + _traceCounter = !_traceCounter; + TRACE_COUNTER1("flutter", "OnDisplayLink", _traceCounter); ftl::TimePoint frame_time = ftl::TimePoint::Now(); _displayLink.paused = YES; auto callback = std::move(_pendingCallback); diff --git a/engine/src/flutter/synchronization/pipeline.h b/engine/src/flutter/synchronization/pipeline.h index 55e9fc558d..25ab0963df 100644 --- a/engine/src/flutter/synchronization/pipeline.h +++ b/engine/src/flutter/synchronization/pipeline.h @@ -5,13 +5,13 @@ #ifndef SYNCHRONIZATION_PIPELINE_H_ #define SYNCHRONIZATION_PIPELINE_H_ +#include "flutter/glue/trace_event.h" +#include "flutter/synchronization/pipeline.h" +#include "flutter/synchronization/semaphore.h" +#include "lib/ftl/functional/closure.h" #include "lib/ftl/macros.h" #include "lib/ftl/memory/ref_counted.h" #include "lib/ftl/synchronization/mutex.h" -#include "lib/ftl/functional/closure.h" -#include "flutter/synchronization/semaphore.h" -#include "flutter/synchronization/pipeline.h" -#include "flutter/glue/trace_event.h" #include #include @@ -74,7 +74,6 @@ class Pipeline : public ftl::RefCountedThreadSafe> { ProducerContinuation(Continuation continuation, size_t trace_id) : continuation_(continuation), trace_id_(trace_id) { - TRACE_EVENT_ASYNC_BEGIN0("flutter", "PipelineItem", trace_id_); TRACE_EVENT_ASYNC_BEGIN0("flutter", "PipelineProduce", trace_id_); } @@ -129,8 +128,6 @@ class Pipeline : public ftl::RefCountedThreadSafe> { empty_.Signal(); - TRACE_EVENT_ASYNC_END0("flutter", "PipelineItem", trace_id); - return items_count > 0 ? PipelineConsumeResult::MoreAvailable : PipelineConsumeResult::Done; }