Fix PipelineProducer traces. Also add back the OnDisplayLink trace on iOS. (flutter/engine#3201)

This commit is contained in:
Chinmay Garde
2016-11-03 17:04:21 -07:00
committed by GitHub
parent 20ad790b7f
commit 6dbbb9c0a5
3 changed files with 9 additions and 7 deletions

View File

@@ -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",

View File

@@ -11,6 +11,7 @@
#include <mach/mach_time.h>
#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);

View File

@@ -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 <memory>
#include <queue>
@@ -74,7 +74,6 @@ class Pipeline : public ftl::RefCountedThreadSafe<Pipeline<R>> {
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<Pipeline<R>> {
empty_.Signal();
TRACE_EVENT_ASYNC_END0("flutter", "PipelineItem", trace_id);
return items_count > 0 ? PipelineConsumeResult::MoreAvailable
: PipelineConsumeResult::Done;
}