mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Align fuchsia and non-fuchsia tracing (#9199)
This commit is contained in:
parent
5ea125eaf9
commit
7826548462
@ -35,8 +35,8 @@ std::unique_ptr<fml::Mapping> AssetManager::GetAsMapping(
|
||||
if (asset_name.size() == 0) {
|
||||
return nullptr;
|
||||
}
|
||||
TRACE_EVENT1("flutter", "AssetManager::GetAsMapping", "name",
|
||||
asset_name.c_str());
|
||||
FML_TRACE_EVENT1("flutter", "AssetManager::GetAsMapping", "name",
|
||||
asset_name.c_str());
|
||||
for (const auto& resolver : resolvers_) {
|
||||
auto mapping = resolver->GetAsMapping(asset_name);
|
||||
if (mapping != nullptr) {
|
||||
|
||||
@ -41,8 +41,8 @@ bool ZipAssetStore::IsValid() const {
|
||||
// |AssetResolver|
|
||||
std::unique_ptr<fml::Mapping> ZipAssetStore::GetAsMapping(
|
||||
const std::string& asset_name) const {
|
||||
TRACE_EVENT1("flutter", "ZipAssetStore::GetAsMapping", "name",
|
||||
asset_name.c_str());
|
||||
FML_TRACE_EVENT1("flutter", "ZipAssetStore::GetAsMapping", "name",
|
||||
asset_name.c_str());
|
||||
|
||||
auto found = stat_cache_.find(directory_ + "/" + asset_name);
|
||||
if (found == stat_cache_.end()) {
|
||||
@ -84,7 +84,7 @@ std::unique_ptr<fml::Mapping> ZipAssetStore::GetAsMapping(
|
||||
}
|
||||
|
||||
void ZipAssetStore::BuildStatCache() {
|
||||
TRACE_EVENT0("flutter", "ZipAssetStore::BuildStatCache");
|
||||
FML_TRACE_EVENT0("flutter", "ZipAssetStore::BuildStatCache");
|
||||
|
||||
auto unzipper = CreateUnzipper();
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ BackdropFilterLayer::BackdropFilterLayer() = default;
|
||||
BackdropFilterLayer::~BackdropFilterLayer() = default;
|
||||
|
||||
void BackdropFilterLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "BackdropFilterLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "BackdropFilterLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
Layer::AutoSaveLayer save = Layer::AutoSaveLayer::Create(
|
||||
|
||||
@ -54,7 +54,7 @@ void ClipPathLayer::UpdateScene(SceneUpdateContext& context) {
|
||||
#endif // defined(OS_FUCHSIA)
|
||||
|
||||
void ClipPathLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "ClipPathLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "ClipPathLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
SkAutoCanvasRestore save(context.internal_nodes_canvas, true);
|
||||
|
||||
@ -44,7 +44,7 @@ void ClipRectLayer::UpdateScene(SceneUpdateContext& context) {
|
||||
#endif // defined(OS_FUCHSIA)
|
||||
|
||||
void ClipRectLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "ClipRectLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "ClipRectLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
SkAutoCanvasRestore save(context.internal_nodes_canvas, true);
|
||||
|
||||
@ -52,7 +52,7 @@ void ClipRRectLayer::UpdateScene(SceneUpdateContext& context) {
|
||||
#endif // defined(OS_FUCHSIA)
|
||||
|
||||
void ClipRRectLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "ClipRRectLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "ClipRRectLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
SkAutoCanvasRestore save(context.internal_nodes_canvas, true);
|
||||
|
||||
@ -11,7 +11,7 @@ ColorFilterLayer::ColorFilterLayer() = default;
|
||||
ColorFilterLayer::~ColorFilterLayer() = default;
|
||||
|
||||
void ColorFilterLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "ColorFilterLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "ColorFilterLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
SkPaint paint;
|
||||
|
||||
@ -16,7 +16,7 @@ void ContainerLayer::Add(std::shared_ptr<Layer> layer) {
|
||||
}
|
||||
|
||||
void ContainerLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) {
|
||||
TRACE_EVENT0("flutter", "ContainerLayer::Preroll");
|
||||
FML_TRACE_EVENT0("flutter", "ContainerLayer::Preroll");
|
||||
|
||||
SkRect child_paint_bounds = SkRect::MakeEmpty();
|
||||
PrerollChildren(context, matrix, &child_paint_bounds);
|
||||
|
||||
@ -21,7 +21,7 @@ LayerTree::~LayerTree() = default;
|
||||
|
||||
void LayerTree::Preroll(CompositorContext::ScopedFrame& frame,
|
||||
bool ignore_raster_cache) {
|
||||
TRACE_EVENT0("flutter", "LayerTree::Preroll");
|
||||
FML_TRACE_EVENT0("flutter", "LayerTree::Preroll");
|
||||
SkColorSpace* color_space =
|
||||
frame.canvas() ? frame.canvas()->imageInfo().colorSpace() : nullptr;
|
||||
frame.context().raster_cache().SetCheckboardCacheImages(
|
||||
@ -43,7 +43,7 @@ void LayerTree::Preroll(CompositorContext::ScopedFrame& frame,
|
||||
#if defined(OS_FUCHSIA)
|
||||
void LayerTree::UpdateScene(SceneUpdateContext& context,
|
||||
scenic::ContainerNode& container) {
|
||||
TRACE_EVENT0("flutter", "LayerTree::UpdateScene");
|
||||
FML_TRACE_EVENT0("flutter", "LayerTree::UpdateScene");
|
||||
const auto& metrics = context.metrics();
|
||||
SceneUpdateContext::Transform transform(context, // context
|
||||
1.0f / metrics->scale_x, // X
|
||||
@ -67,7 +67,7 @@ void LayerTree::UpdateScene(SceneUpdateContext& context,
|
||||
|
||||
void LayerTree::Paint(CompositorContext::ScopedFrame& frame,
|
||||
bool ignore_raster_cache) const {
|
||||
TRACE_EVENT0("flutter", "LayerTree::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "LayerTree::Paint");
|
||||
SkISize canvas_size = frame.canvas()->getBaseLayerSize();
|
||||
SkNWayCanvas internal_nodes_canvas(canvas_size.width(), canvas_size.height());
|
||||
internal_nodes_canvas.addCanvas(frame.canvas());
|
||||
@ -94,7 +94,7 @@ void LayerTree::Paint(CompositorContext::ScopedFrame& frame,
|
||||
}
|
||||
|
||||
sk_sp<SkPicture> LayerTree::Flatten(const SkRect& bounds) {
|
||||
TRACE_EVENT0("flutter", "LayerTree::Flatten");
|
||||
FML_TRACE_EVENT0("flutter", "LayerTree::Flatten");
|
||||
|
||||
SkPictureRecorder recorder;
|
||||
auto* canvas = recorder.beginRecording(bounds);
|
||||
|
||||
@ -54,7 +54,7 @@ void OpacityLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) {
|
||||
}
|
||||
|
||||
void OpacityLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "OpacityLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "OpacityLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
SkPaint paint;
|
||||
|
||||
@ -76,7 +76,7 @@ void PerformanceOverlayLayer::Paint(PaintContext& context) const {
|
||||
if (!options_)
|
||||
return;
|
||||
|
||||
TRACE_EVENT0("flutter", "PerformanceOverlayLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "PerformanceOverlayLayer::Paint");
|
||||
SkScalar x = paint_bounds().x() + padding;
|
||||
SkScalar y = paint_bounds().y() + padding;
|
||||
SkScalar width = paint_bounds().width() - (padding * 2);
|
||||
|
||||
@ -134,7 +134,7 @@ void PhysicalShapeLayer::UpdateScene(SceneUpdateContext& context) {
|
||||
#endif // defined(OS_FUCHSIA)
|
||||
|
||||
void PhysicalShapeLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "PhysicalShapeLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "PhysicalShapeLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
if (elevation_ != 0) {
|
||||
|
||||
@ -30,7 +30,7 @@ void PictureLayer::Preroll(PrerollContext* context, const SkMatrix& matrix) {
|
||||
}
|
||||
|
||||
void PictureLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "PictureLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "PictureLayer::Paint");
|
||||
FML_DCHECK(picture_.get());
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ ShaderMaskLayer::ShaderMaskLayer() = default;
|
||||
ShaderMaskLayer::~ShaderMaskLayer() = default;
|
||||
|
||||
void ShaderMaskLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "ShaderMaskLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "ShaderMaskLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
Layer::AutoSaveLayer save =
|
||||
|
||||
@ -61,7 +61,7 @@ void TransformLayer::UpdateScene(SceneUpdateContext& context) {
|
||||
#endif // defined(OS_FUCHSIA)
|
||||
|
||||
void TransformLayer::Paint(PaintContext& context) const {
|
||||
TRACE_EVENT0("flutter", "TransformLayer::Paint");
|
||||
FML_TRACE_EVENT0("flutter", "TransformLayer::Paint");
|
||||
FML_DCHECK(needs_painting());
|
||||
|
||||
SkAutoCanvasRestore save(context.internal_nodes_canvas, true);
|
||||
|
||||
@ -98,7 +98,7 @@ static RasterCacheResult Rasterize(
|
||||
bool checkerboard,
|
||||
const SkRect& logical_rect,
|
||||
std::function<void(SkCanvas*)> draw_function) {
|
||||
TRACE_EVENT0("flutter", "RasterCachePopulate");
|
||||
FML_TRACE_EVENT0("flutter", "RasterCachePopulate");
|
||||
SkIRect cache_rect = RasterCache::GetDeviceBounds(logical_rect, ctm);
|
||||
|
||||
const SkImageInfo image_info = SkImageInfo::MakeN32Premul(
|
||||
|
||||
@ -193,7 +193,7 @@ scenic::Image* SceneUpdateContext::GenerateImageIfNeeded(
|
||||
std::vector<
|
||||
std::unique_ptr<flutter::SceneUpdateContext::SurfaceProducerSurface>>
|
||||
SceneUpdateContext::ExecutePaintTasks(CompositorContext::ScopedFrame& frame) {
|
||||
TRACE_EVENT0("flutter", "SceneUpdateContext::ExecutePaintTasks");
|
||||
FML_TRACE_EVENT0("flutter", "SceneUpdateContext::ExecutePaintTasks");
|
||||
std::vector<std::unique_ptr<SurfaceProducerSurface>> surfaces_to_submit;
|
||||
for (auto& task : paint_tasks_) {
|
||||
FML_DCHECK(task.surface);
|
||||
|
||||
@ -59,7 +59,7 @@ void ConcurrentMessageLoop::WorkerMain() {
|
||||
if (!shutdown_) {
|
||||
wait_condition_.wait(lock);
|
||||
}
|
||||
TRACE_EVENT0("fml", "ConcurrentWorkerWake");
|
||||
FML_TRACE_EVENT0("fml", "ConcurrentWorkerWake");
|
||||
RunSingleExpiredTaskNow();
|
||||
}
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ void MessageLoopImpl::RegisterTask(fml::closure task,
|
||||
}
|
||||
|
||||
void MessageLoopImpl::FlushTasks(FlushType type) {
|
||||
TRACE_EVENT0("fml", "MessageLoop::FlushTasks");
|
||||
FML_TRACE_EVENT0("fml", "MessageLoop::FlushTasks");
|
||||
std::vector<fml::closure> invocations;
|
||||
|
||||
// We are grabbing this lock here as a proxy to indicate
|
||||
|
||||
@ -10,24 +10,8 @@
|
||||
#if defined(OS_FUCHSIA)
|
||||
#if !defined(FUCHSIA_SDK)
|
||||
|
||||
// Forward to the system tracing mechanism on Fuchsia.
|
||||
|
||||
#include <trace/event.h>
|
||||
|
||||
// TODO(DNO-448): This is disabled because the Fuchsia counter id json parsing
|
||||
// only handles ints whereas this can produce ints or strings.
|
||||
#define FML_TRACE_COUNTER(a, b, c, args...)
|
||||
#define FML_TRACE_EVENT(a, b, args...) TRACE_DURATION(a, b)
|
||||
|
||||
#define TRACE_EVENT0(a, b) TRACE_DURATION(a, b)
|
||||
#define TRACE_EVENT1(a, b, c, d) TRACE_DURATION(a, b, c, d)
|
||||
#define TRACE_EVENT2(a, b, c, d, e, f) TRACE_DURATION(a, b, c, d, e, f)
|
||||
#define TRACE_EVENT_ASYNC_BEGIN0(a, b, c) TRACE_ASYNC_BEGIN(a, b, c)
|
||||
#define TRACE_EVENT_ASYNC_END0(a, b, c) TRACE_ASYNC_END(a, b, c)
|
||||
#define TRACE_EVENT_ASYNC_BEGIN1(a, b, c, d, e) TRACE_ASYNC_BEGIN(a, b, c, d, e)
|
||||
#define TRACE_EVENT_ASYNC_END1(a, b, c, d, e) TRACE_ASYNC_END(a, b, c, d, e)
|
||||
#define TRACE_EVENT_INSTANT0(a, b) TRACE_INSTANT(a, b, TRACE_SCOPE_THREAD)
|
||||
|
||||
#endif // !defined(FUCHSIA_SDK)
|
||||
#endif // defined(OS_FUCHSIA)
|
||||
|
||||
@ -41,9 +25,6 @@
|
||||
#include "flutter/fml/time/time_point.h"
|
||||
#include "third_party/dart/runtime/include/dart_tools_api.h"
|
||||
|
||||
#if !defined(OS_FUCHSIA) || defined(FUCHSIA_SDK)
|
||||
#ifndef TRACE_EVENT_HIDE_MACROS
|
||||
|
||||
#define __FML__TOKEN_CAT__(x, y) x##y
|
||||
#define __FML__TOKEN_CAT__2(x, y) __FML__TOKEN_CAT__(x, y)
|
||||
#define __FML__AUTO_TRACE_END(name) \
|
||||
@ -52,8 +33,6 @@
|
||||
|
||||
// This macro has the FML_ prefix so that it does not collide with the macros
|
||||
// from trace/event.h on Fuchsia.
|
||||
//
|
||||
// TODO(chinmaygarde): All macros here should have the FML prefix.
|
||||
#define FML_TRACE_COUNTER(category_group, name, counter_id, arg1, ...) \
|
||||
::fml::tracing::TraceCounter((category_group), (name), (counter_id), (arg1), \
|
||||
__VA_ARGS__);
|
||||
@ -62,50 +41,48 @@
|
||||
::fml::tracing::TraceEvent((category_group), (name), __VA_ARGS__); \
|
||||
__FML__AUTO_TRACE_END(name)
|
||||
|
||||
#define TRACE_EVENT0(category_group, name) \
|
||||
#define FML_TRACE_EVENT0(category_group, name) \
|
||||
::fml::tracing::TraceEvent0(category_group, name); \
|
||||
__FML__AUTO_TRACE_END(name)
|
||||
|
||||
#define TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
|
||||
#define FML_TRACE_EVENT1(category_group, name, arg1_name, arg1_val) \
|
||||
::fml::tracing::TraceEvent1(category_group, name, arg1_name, arg1_val); \
|
||||
__FML__AUTO_TRACE_END(name)
|
||||
|
||||
#define TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
::fml::tracing::TraceEvent2(category_group, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val); \
|
||||
#define FML_TRACE_EVENT2(category_group, name, arg1_name, arg1_val, arg2_name, \
|
||||
arg2_val) \
|
||||
::fml::tracing::TraceEvent2(category_group, name, arg1_name, arg1_val, \
|
||||
arg2_name, arg2_val); \
|
||||
__FML__AUTO_TRACE_END(name)
|
||||
|
||||
#define TRACE_EVENT_ASYNC_BEGIN0(category_group, name, id) \
|
||||
#define FML_TRACE_EVENT_ASYNC_BEGIN0(category_group, name, id) \
|
||||
::fml::tracing::TraceEventAsyncBegin0(category_group, name, id);
|
||||
|
||||
#define TRACE_EVENT_ASYNC_END0(category_group, name, id) \
|
||||
#define FML_TRACE_EVENT_ASYNC_END0(category_group, name, id) \
|
||||
::fml::tracing::TraceEventAsyncEnd0(category_group, name, id);
|
||||
|
||||
#define TRACE_EVENT_ASYNC_BEGIN1(category_group, name, id, arg1_name, \
|
||||
arg1_val) \
|
||||
#define FML_TRACE_EVENT_ASYNC_BEGIN1(category_group, name, id, arg1_name, \
|
||||
arg1_val) \
|
||||
::fml::tracing::TraceEventAsyncBegin1(category_group, name, id, arg1_name, \
|
||||
arg1_val);
|
||||
|
||||
#define TRACE_EVENT_ASYNC_END1(category_group, name, id, arg1_name, arg1_val) \
|
||||
::fml::tracing::TraceEventAsyncEnd1(category_group, name, id, arg1_name, \
|
||||
#define FML_TRACE_EVENT_ASYNC_END1(category_group, name, id, arg1_name, \
|
||||
arg1_val) \
|
||||
::fml::tracing::TraceEventAsyncEnd1(category_group, name, id, arg1_name, \
|
||||
arg1_val);
|
||||
|
||||
#define TRACE_EVENT_INSTANT0(category_group, name) \
|
||||
#define FML_TRACE_EVENT_INSTANT0(category_group, name) \
|
||||
::fml::tracing::TraceEventInstant0(category_group, name);
|
||||
|
||||
#define TRACE_FLOW_BEGIN(category, name, id) \
|
||||
#define FML_TRACE_FLOW_BEGIN(category, name, id) \
|
||||
::fml::tracing::TraceEventFlowBegin0(category, name, id);
|
||||
|
||||
#define TRACE_FLOW_STEP(category, name, id) \
|
||||
#define FML_TRACE_FLOW_STEP(category, name, id) \
|
||||
::fml::tracing::TraceEventFlowStep0(category, name, id);
|
||||
|
||||
#define TRACE_FLOW_END(category, name, id) \
|
||||
#define FML_TRACE_FLOW_END(category, name, id) \
|
||||
::fml::tracing::TraceEventFlowEnd0(category, name, id);
|
||||
|
||||
#endif // TRACE_EVENT_HIDE_MACROS
|
||||
#endif // !defined(OS_FUCHSIA) || defined(FUCHSIA_SDK)
|
||||
|
||||
namespace fml {
|
||||
namespace tracing {
|
||||
|
||||
|
||||
@ -54,7 +54,7 @@ void Scene::dispose() {
|
||||
Dart_Handle Scene::toImage(uint32_t width,
|
||||
uint32_t height,
|
||||
Dart_Handle raw_image_callback) {
|
||||
TRACE_EVENT0("flutter", "Scene::toImage");
|
||||
FML_TRACE_EVENT0("flutter", "Scene::toImage");
|
||||
|
||||
if (!m_layerTree) {
|
||||
return tonic::ToDart("Scene did not contain a layer tree.");
|
||||
|
||||
@ -47,7 +47,7 @@ static void InvokeCodecCallback(fml::RefPtr<Codec> codec,
|
||||
size_t trace_id) {
|
||||
std::shared_ptr<tonic::DartState> dart_state = callback->dart_state().lock();
|
||||
if (!dart_state) {
|
||||
TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
return;
|
||||
}
|
||||
tonic::DartState::Scope scope(dart_state);
|
||||
@ -56,14 +56,14 @@ static void InvokeCodecCallback(fml::RefPtr<Codec> codec,
|
||||
} else {
|
||||
DartInvoke(callback->value(), {ToDart(codec)});
|
||||
}
|
||||
TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
}
|
||||
|
||||
static sk_sp<SkImage> DecodeImage(fml::WeakPtr<GrContext> context,
|
||||
sk_sp<SkData> buffer,
|
||||
size_t trace_id) {
|
||||
TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
TRACE_EVENT0("flutter", "DecodeImage");
|
||||
FML_TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_EVENT0("flutter", "DecodeImage");
|
||||
|
||||
if (buffer == nullptr || buffer->isEmpty()) {
|
||||
return nullptr;
|
||||
@ -159,8 +159,8 @@ static sk_sp<SkImage> DecodeAndResizeImageToExactSize(
|
||||
SkImageInfo scaledImageInfo,
|
||||
sk_sp<SkData> buffer,
|
||||
size_t trace_id) {
|
||||
TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
TRACE_EVENT0("flutter", "DecodeAndResizeImageToExactSize");
|
||||
FML_TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_EVENT0("flutter", "DecodeAndResizeImageToExactSize");
|
||||
|
||||
// Do not create a cross context image here, since it can not be resized.
|
||||
sk_sp<SkImage> image = SkImage::MakeFromEncoded(std::move(buffer));
|
||||
@ -194,8 +194,8 @@ fml::RefPtr<Codec> InitCodec(fml::WeakPtr<GrContext> context,
|
||||
const int targetWidth,
|
||||
const int targetHeight,
|
||||
size_t trace_id) {
|
||||
TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
TRACE_EVENT0("blink", "InitCodec");
|
||||
FML_TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_EVENT0("blink", "InitCodec");
|
||||
|
||||
if (buffer == nullptr || buffer->isEmpty()) {
|
||||
FML_LOG(ERROR) << "InitCodec failed - buffer was empty ";
|
||||
@ -233,8 +233,8 @@ fml::RefPtr<Codec> InitCodecUncompressed(
|
||||
int targetWidth,
|
||||
int targetHeight,
|
||||
size_t trace_id) {
|
||||
TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
TRACE_EVENT0("blink", "InitCodecUncompressed");
|
||||
FML_TRACE_FLOW_STEP("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_EVENT0("blink", "InitCodecUncompressed");
|
||||
|
||||
if (buffer == nullptr || buffer->isEmpty()) {
|
||||
FML_LOG(ERROR) << "InitCodecUncompressed failed - buffer was empty";
|
||||
@ -360,11 +360,11 @@ bool ConvertImageInfo(Dart_Handle image_info_handle,
|
||||
void InstantiateImageCodec(Dart_NativeArguments args) {
|
||||
static size_t trace_counter = 1;
|
||||
const size_t trace_id = trace_counter++;
|
||||
TRACE_FLOW_BEGIN("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_BEGIN("flutter", kInitCodecTraceTag, trace_id);
|
||||
|
||||
Dart_Handle callback_handle = Dart_GetNativeArgument(args, 1);
|
||||
if (!Dart_IsClosure(callback_handle)) {
|
||||
TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
Dart_SetReturnValue(args, ToDart("Callback must be a function"));
|
||||
return;
|
||||
}
|
||||
@ -374,7 +374,7 @@ void InstantiateImageCodec(Dart_NativeArguments args) {
|
||||
if (!Dart_IsNull(image_info_handle)) {
|
||||
image_info = std::make_unique<ImageInfo>();
|
||||
if (!ConvertImageInfo(image_info_handle, args, image_info.get())) {
|
||||
TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -383,7 +383,7 @@ void InstantiateImageCodec(Dart_NativeArguments args) {
|
||||
tonic::Uint8List list =
|
||||
tonic::DartConverter<tonic::Uint8List>::FromArguments(args, 0, exception);
|
||||
if (exception) {
|
||||
TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
Dart_SetReturnValue(args, exception);
|
||||
return;
|
||||
}
|
||||
@ -391,7 +391,7 @@ void InstantiateImageCodec(Dart_NativeArguments args) {
|
||||
if (image_info) {
|
||||
int expected_size = image_info->row_bytes * image_info->sk_info.height();
|
||||
if (list.num_elements() < expected_size) {
|
||||
TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kInitCodecTraceTag, trace_id);
|
||||
list.Release();
|
||||
Dart_SetReturnValue(
|
||||
args, ToDart("Pixel buffer size does not match image size"));
|
||||
@ -458,7 +458,7 @@ void InvokeNextFrameCallback(fml::RefPtr<FrameInfo> frameInfo,
|
||||
size_t trace_id) {
|
||||
std::shared_ptr<tonic::DartState> dart_state = callback->dart_state().lock();
|
||||
if (!dart_state) {
|
||||
TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
return;
|
||||
}
|
||||
tonic::DartState::Scope scope(dart_state);
|
||||
@ -467,7 +467,7 @@ void InvokeNextFrameCallback(fml::RefPtr<FrameInfo> frameInfo,
|
||||
} else {
|
||||
DartInvoke(callback->value(), {ToDart(frameInfo)});
|
||||
}
|
||||
TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
@ -585,16 +585,16 @@ void MultiFrameCodec::GetNextFrameAndInvokeCallback(
|
||||
InvokeNextFrameCallback(frameInfo, std::move(callback), trace_id);
|
||||
}));
|
||||
|
||||
TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
}
|
||||
|
||||
Dart_Handle MultiFrameCodec::getNextFrame(Dart_Handle callback_handle) {
|
||||
static size_t trace_counter = 1;
|
||||
const size_t trace_id = trace_counter++;
|
||||
TRACE_FLOW_BEGIN("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_BEGIN("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
|
||||
if (!Dart_IsClosure(callback_handle)) {
|
||||
TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", kCodecNextFrameTraceTag, trace_id);
|
||||
return ToDart("Callback must be a function");
|
||||
}
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ sk_sp<SkImage> ConvertToRasterImageIfNecessary(sk_sp<SkImage> image,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TRACE_EVENT0("flutter", __FUNCTION__);
|
||||
FML_TRACE_EVENT0("flutter", __FUNCTION__);
|
||||
|
||||
// Create a GPU surface with the context and then do a device to host copy of
|
||||
// image contents.
|
||||
@ -135,7 +135,7 @@ sk_sp<SkData> CopyImageByteData(sk_sp<SkImage> raster_image,
|
||||
sk_sp<SkData> EncodeImage(sk_sp<SkImage> p_image,
|
||||
GrContext* context,
|
||||
ImageByteFormat format) {
|
||||
TRACE_EVENT0("flutter", __FUNCTION__);
|
||||
FML_TRACE_EVENT0("flutter", __FUNCTION__);
|
||||
|
||||
// Check validity of the image.
|
||||
if (p_image == nullptr) {
|
||||
|
||||
@ -42,7 +42,7 @@ std::weak_ptr<DartIsolate> DartIsolate::CreateRootIsolate(
|
||||
Dart_IsolateFlags* flags,
|
||||
fml::closure isolate_create_callback,
|
||||
fml::closure isolate_shutdown_callback) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::CreateRootIsolate");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::CreateRootIsolate");
|
||||
Dart_Isolate vm_isolate = nullptr;
|
||||
std::weak_ptr<DartIsolate> embedder_isolate;
|
||||
|
||||
@ -142,7 +142,7 @@ DartIsolate::Phase DartIsolate::GetPhase() const {
|
||||
}
|
||||
|
||||
bool DartIsolate::Initialize(Dart_Isolate dart_isolate, bool is_root_isolate) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::Initialize");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::Initialize");
|
||||
if (phase_ != Phase::Uninitialized) {
|
||||
return false;
|
||||
}
|
||||
@ -245,7 +245,7 @@ bool DartIsolate::UpdateThreadPoolNames() const {
|
||||
}
|
||||
|
||||
bool DartIsolate::LoadLibraries(bool is_root_isolate) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::LoadLibraries");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::LoadLibraries");
|
||||
if (phase_ != Phase::Initialized) {
|
||||
return false;
|
||||
}
|
||||
@ -271,7 +271,8 @@ bool DartIsolate::LoadLibraries(bool is_root_isolate) {
|
||||
}
|
||||
|
||||
bool DartIsolate::PrepareForRunningFromPrecompiledCode() {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::PrepareForRunningFromPrecompiledCode");
|
||||
FML_TRACE_EVENT0("flutter",
|
||||
"DartIsolate::PrepareForRunningFromPrecompiledCode");
|
||||
if (phase_ != Phase::LibrariesSetup) {
|
||||
return false;
|
||||
}
|
||||
@ -329,7 +330,7 @@ FML_WARN_UNUSED_RESULT
|
||||
bool DartIsolate::PrepareForRunningFromKernel(
|
||||
std::shared_ptr<const fml::Mapping> mapping,
|
||||
bool last_piece) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::PrepareForRunningFromKernel");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::PrepareForRunningFromKernel");
|
||||
if (phase_ != Phase::LibrariesSetup) {
|
||||
return false;
|
||||
}
|
||||
@ -419,7 +420,7 @@ bool DartIsolate::PrepareForRunningFromKernels(
|
||||
}
|
||||
|
||||
bool DartIsolate::MarkIsolateRunnable() {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::MarkIsolateRunnable");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::MarkIsolateRunnable");
|
||||
if (phase_ != Phase::LibrariesSetup) {
|
||||
return false;
|
||||
}
|
||||
@ -476,7 +477,7 @@ FML_WARN_UNUSED_RESULT
|
||||
bool DartIsolate::Run(const std::string& entrypoint_name,
|
||||
const std::vector<std::string>& args,
|
||||
fml::closure on_run) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::Run");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::Run");
|
||||
if (phase_ != Phase::Ready) {
|
||||
return false;
|
||||
}
|
||||
@ -506,7 +507,7 @@ bool DartIsolate::RunFromLibrary(const std::string& library_name,
|
||||
const std::string& entrypoint_name,
|
||||
const std::vector<std::string>& args,
|
||||
fml::closure on_run) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::RunFromLibrary");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::RunFromLibrary");
|
||||
if (phase_ != Phase::Ready) {
|
||||
return false;
|
||||
}
|
||||
@ -533,7 +534,7 @@ bool DartIsolate::RunFromLibrary(const std::string& library_name,
|
||||
}
|
||||
|
||||
bool DartIsolate::Shutdown() {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::Shutdown");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::Shutdown");
|
||||
// This call may be re-entrant since Dart_ShutdownIsolate can invoke the
|
||||
// cleanup callback which deletes the embedder side object of the dart isolate
|
||||
// (a.k.a. this).
|
||||
@ -675,7 +676,7 @@ DartIsolate::CreateDartVMAndEmbedderObjectPair(
|
||||
std::shared_ptr<DartIsolate>* p_parent_embedder_isolate,
|
||||
bool is_root_isolate,
|
||||
char** error) {
|
||||
TRACE_EVENT0("flutter", "DartIsolate::CreateDartVMAndEmbedderObjectPair");
|
||||
FML_TRACE_EVENT0("flutter", "DartIsolate::CreateDartVMAndEmbedderObjectPair");
|
||||
|
||||
std::unique_ptr<std::shared_ptr<DartIsolate>> embedder_isolate(
|
||||
p_parent_embedder_isolate);
|
||||
|
||||
@ -147,7 +147,7 @@ static std::shared_ptr<const fml::Mapping> ResolveIsolateInstructions(
|
||||
|
||||
fml::RefPtr<DartSnapshot> DartSnapshot::VMSnapshotFromSettings(
|
||||
const Settings& settings) {
|
||||
TRACE_EVENT0("flutter", "DartSnapshot::VMSnapshotFromSettings");
|
||||
FML_TRACE_EVENT0("flutter", "DartSnapshot::VMSnapshotFromSettings");
|
||||
auto snapshot =
|
||||
fml::MakeRefCounted<DartSnapshot>(ResolveVMData(settings), //
|
||||
ResolveVMInstructions(settings) //
|
||||
@ -160,7 +160,7 @@ fml::RefPtr<DartSnapshot> DartSnapshot::VMSnapshotFromSettings(
|
||||
|
||||
fml::RefPtr<DartSnapshot> DartSnapshot::IsolateSnapshotFromSettings(
|
||||
const Settings& settings) {
|
||||
TRACE_EVENT0("flutter", "DartSnapshot::IsolateSnapshotFromSettings");
|
||||
FML_TRACE_EVENT0("flutter", "DartSnapshot::IsolateSnapshotFromSettings");
|
||||
auto snapshot =
|
||||
fml::MakeRefCounted<DartSnapshot>(ResolveIsolateData(settings), //
|
||||
ResolveIsolateInstructions(settings) //
|
||||
|
||||
@ -259,7 +259,7 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
|
||||
vm_data_(vm_data),
|
||||
isolate_name_server_(std::move(isolate_name_server)),
|
||||
service_protocol_(std::make_shared<ServiceProtocol>()) {
|
||||
TRACE_EVENT0("flutter", "DartVMInitializer");
|
||||
FML_TRACE_EVENT0("flutter", "DartVMInitializer");
|
||||
|
||||
gVMLaunchCount++;
|
||||
|
||||
@ -271,7 +271,7 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
|
||||
<< (IsRunningPrecompiledCode() ? "AOT" : "Interpreter");
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "dart::bin::BootstrapDartIo");
|
||||
FML_TRACE_EVENT0("flutter", "dart::bin::BootstrapDartIo");
|
||||
dart::bin::BootstrapDartIo();
|
||||
|
||||
if (!settings_.temp_directory_path.empty()) {
|
||||
@ -342,6 +342,9 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
|
||||
}
|
||||
|
||||
if (settings_.trace_systrace) {
|
||||
#if defined(OS_FUCHSIA)
|
||||
PushBackAll(&args, kDartFuchsiaTraceArgs, fml::size(kDartFuchsiaTraceArgs));
|
||||
#endif // OS_FUCHSIA
|
||||
PushBackAll(&args, kDartSystraceTraceBufferArgs,
|
||||
fml::size(kDartSystraceTraceBufferArgs));
|
||||
PushBackAll(&args, kDartTraceStreamsArgs, fml::size(kDartTraceStreamsArgs));
|
||||
@ -351,11 +354,6 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
|
||||
PushBackAll(&args, kDartTraceStartupArgs, fml::size(kDartTraceStartupArgs));
|
||||
}
|
||||
|
||||
#if defined(OS_FUCHSIA)
|
||||
PushBackAll(&args, kDartFuchsiaTraceArgs, fml::size(kDartFuchsiaTraceArgs));
|
||||
PushBackAll(&args, kDartTraceStreamsArgs, fml::size(kDartTraceStreamsArgs));
|
||||
#endif
|
||||
|
||||
for (size_t i = 0; i < settings_.dart_flags.size(); i++)
|
||||
args.push_back(settings_.dart_flags[i].c_str());
|
||||
|
||||
@ -368,7 +366,7 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
|
||||
DartUI::InitForGlobal();
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "Dart_Initialize");
|
||||
FML_TRACE_EVENT0("flutter", "Dart_Initialize");
|
||||
Dart_InitializeParams params = {};
|
||||
params.version = DART_INITIALIZE_PARAMS_CURRENT_VERSION;
|
||||
params.vm_snapshot_data = vm_data_->GetVMSnapshot().GetDataMapping();
|
||||
|
||||
@ -243,7 +243,7 @@ bool RuntimeController::NotifyIdle(int64_t deadline) {
|
||||
|
||||
// Idle notifications being in isolate scope are part of the contract.
|
||||
if (idle_notification_callback_) {
|
||||
TRACE_EVENT0("flutter", "EmbedderIdleNotification");
|
||||
FML_TRACE_EVENT0("flutter", "EmbedderIdleNotification");
|
||||
idle_notification_callback_(deadline);
|
||||
}
|
||||
return true;
|
||||
@ -252,8 +252,8 @@ bool RuntimeController::NotifyIdle(int64_t deadline) {
|
||||
bool RuntimeController::DispatchPlatformMessage(
|
||||
fml::RefPtr<PlatformMessage> message) {
|
||||
if (auto* window = GetWindowIfAvailable()) {
|
||||
TRACE_EVENT1("flutter", "RuntimeController::DispatchPlatformMessage",
|
||||
"mode", "basic");
|
||||
FML_TRACE_EVENT1("flutter", "RuntimeController::DispatchPlatformMessage",
|
||||
"mode", "basic");
|
||||
window->DispatchPlatformMessage(std::move(message));
|
||||
return true;
|
||||
}
|
||||
@ -263,8 +263,8 @@ bool RuntimeController::DispatchPlatformMessage(
|
||||
bool RuntimeController::DispatchPointerDataPacket(
|
||||
const PointerDataPacket& packet) {
|
||||
if (auto* window = GetWindowIfAvailable()) {
|
||||
TRACE_EVENT1("flutter", "RuntimeController::DispatchPointerDataPacket",
|
||||
"mode", "basic");
|
||||
FML_TRACE_EVENT1("flutter", "RuntimeController::DispatchPointerDataPacket",
|
||||
"mode", "basic");
|
||||
window->DispatchPointerDataPacket(packet);
|
||||
return true;
|
||||
}
|
||||
@ -274,8 +274,8 @@ bool RuntimeController::DispatchPointerDataPacket(
|
||||
bool RuntimeController::DispatchSemanticsAction(int32_t id,
|
||||
SemanticsAction action,
|
||||
std::vector<uint8_t> args) {
|
||||
TRACE_EVENT1("flutter", "RuntimeController::DispatchSemanticsAction", "mode",
|
||||
"basic");
|
||||
FML_TRACE_EVENT1("flutter", "RuntimeController::DispatchSemanticsAction",
|
||||
"mode", "basic");
|
||||
if (auto* window = GetWindowIfAvailable()) {
|
||||
window->DispatchSemanticsAction(id, action, std::move(args));
|
||||
return true;
|
||||
|
||||
@ -94,12 +94,13 @@ static int64_t FxlToDartOrEarlier(fml::TimePoint time) {
|
||||
|
||||
void Animator::BeginFrame(fml::TimePoint frame_start_time,
|
||||
fml::TimePoint frame_target_time) {
|
||||
TRACE_EVENT_ASYNC_END0("flutter", "Frame Request Pending", frame_number_++);
|
||||
FML_TRACE_EVENT_ASYNC_END0("flutter", "Frame Request Pending",
|
||||
frame_number_++);
|
||||
|
||||
TRACE_EVENT0("flutter", "Animator::BeginFrame");
|
||||
FML_TRACE_EVENT0("flutter", "Animator::BeginFrame");
|
||||
while (!trace_flow_ids_.empty()) {
|
||||
uint64_t trace_flow_id = trace_flow_ids_.front();
|
||||
TRACE_FLOW_END("flutter", "PointerEvent", trace_flow_id);
|
||||
FML_TRACE_FLOW_END("flutter", "PointerEvent", trace_flow_id);
|
||||
trace_flow_ids_.pop_front();
|
||||
}
|
||||
|
||||
@ -130,8 +131,8 @@ void Animator::BeginFrame(fml::TimePoint frame_start_time,
|
||||
last_begin_frame_time_ = frame_start_time;
|
||||
dart_frame_deadline_ = FxlToDartOrEarlier(frame_target_time);
|
||||
{
|
||||
TRACE_EVENT2("flutter", "Framework Workload", "mode", "basic", "frame",
|
||||
FrameParity());
|
||||
FML_TRACE_EVENT2("flutter", "Framework Workload", "mode", "basic", "frame",
|
||||
FrameParity());
|
||||
delegate_.OnAnimatorBeginFrame(last_begin_frame_time_);
|
||||
}
|
||||
|
||||
@ -155,7 +156,7 @@ void Animator::BeginFrame(fml::TimePoint frame_start_time,
|
||||
// assume that we are idle, and notify the engine of this.
|
||||
if (notify_idle_task_id == self->notify_idle_task_id_ &&
|
||||
!self->frame_scheduled_) {
|
||||
TRACE_EVENT0("flutter", "BeginFrame idle callback");
|
||||
FML_TRACE_EVENT0("flutter", "BeginFrame idle callback");
|
||||
self->delegate_.OnAnimatorNotifyIdle(Dart_TimelineGetMicros() +
|
||||
100000);
|
||||
}
|
||||
@ -213,14 +214,15 @@ void Animator::RequestFrame(bool regenerate_layer_tree) {
|
||||
// started an expensive operation right after posting this message however.
|
||||
// To support that, we need edge triggered wakes on VSync.
|
||||
|
||||
task_runners_.GetUITaskRunner()->PostTask([self = weak_factory_.GetWeakPtr(),
|
||||
frame_number = frame_number_]() {
|
||||
if (!self.get()) {
|
||||
return;
|
||||
}
|
||||
TRACE_EVENT_ASYNC_BEGIN0("flutter", "Frame Request Pending", frame_number);
|
||||
self->AwaitVSync();
|
||||
});
|
||||
task_runners_.GetUITaskRunner()->PostTask(
|
||||
[self = weak_factory_.GetWeakPtr(), frame_number = frame_number_]() {
|
||||
if (!self.get()) {
|
||||
return;
|
||||
}
|
||||
FML_TRACE_EVENT_ASYNC_BEGIN0("flutter", "Frame Request Pending",
|
||||
frame_number);
|
||||
self->AwaitVSync();
|
||||
});
|
||||
frame_scheduled_ = true;
|
||||
}
|
||||
|
||||
|
||||
@ -101,7 +101,7 @@ bool Engine::UpdateAssetManager(
|
||||
}
|
||||
|
||||
bool Engine::Restart(RunConfiguration configuration) {
|
||||
TRACE_EVENT0("flutter", "Engine::Restart");
|
||||
FML_TRACE_EVENT0("flutter", "Engine::Restart");
|
||||
if (!configuration.IsValid()) {
|
||||
FML_LOG(ERROR) << "Engine run configuration was invalid.";
|
||||
return false;
|
||||
@ -153,7 +153,7 @@ Engine::RunStatus Engine::Run(RunConfiguration configuration) {
|
||||
|
||||
Engine::RunStatus Engine::PrepareAndLaunchIsolate(
|
||||
RunConfiguration configuration) {
|
||||
TRACE_EVENT0("flutter", "Engine::PrepareAndLaunchIsolate");
|
||||
FML_TRACE_EVENT0("flutter", "Engine::PrepareAndLaunchIsolate");
|
||||
|
||||
UpdateAssetManager(configuration.GetAssetManager());
|
||||
|
||||
@ -197,13 +197,13 @@ Engine::RunStatus Engine::PrepareAndLaunchIsolate(
|
||||
}
|
||||
|
||||
void Engine::BeginFrame(fml::TimePoint frame_time) {
|
||||
TRACE_EVENT0("flutter", "Engine::BeginFrame");
|
||||
FML_TRACE_EVENT0("flutter", "Engine::BeginFrame");
|
||||
runtime_controller_->BeginFrame(frame_time);
|
||||
}
|
||||
|
||||
void Engine::NotifyIdle(int64_t deadline) {
|
||||
TRACE_EVENT1("flutter", "Engine::NotifyIdle", "deadline_now_delta",
|
||||
std::to_string(deadline - Dart_TimelineGetMicros()).c_str());
|
||||
FML_TRACE_EVENT1("flutter", "Engine::NotifyIdle", "deadline_now_delta",
|
||||
std::to_string(deadline - Dart_TimelineGetMicros()).c_str());
|
||||
runtime_controller_->NotifyIdle(deadline);
|
||||
}
|
||||
|
||||
@ -361,8 +361,8 @@ void Engine::HandleSettingsPlatformMessage(PlatformMessage* message) {
|
||||
|
||||
void Engine::DispatchPointerDataPacket(const PointerDataPacket& packet,
|
||||
uint64_t trace_flow_id) {
|
||||
TRACE_EVENT0("flutter", "Engine::DispatchPointerDataPacket");
|
||||
TRACE_FLOW_STEP("flutter", "PointerEvent", trace_flow_id);
|
||||
FML_TRACE_EVENT0("flutter", "Engine::DispatchPointerDataPacket");
|
||||
FML_TRACE_FLOW_STEP("flutter", "PointerEvent", trace_flow_id);
|
||||
animator_->EnqueueTraceFlowId(trace_flow_id);
|
||||
runtime_controller_->DispatchPointerDataPacket(packet);
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ bool PersistentCache::IsValid() const {
|
||||
|
||||
// |GrContextOptions::PersistentCache|
|
||||
sk_sp<SkData> PersistentCache::load(const SkData& key) {
|
||||
TRACE_EVENT0("flutter", "PersistentCacheLoad");
|
||||
FML_TRACE_EVENT0("flutter", "PersistentCacheLoad");
|
||||
if (!IsValid()) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -97,7 +97,7 @@ sk_sp<SkData> PersistentCache::load(const SkData& key) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TRACE_EVENT0("flutter", "PersistentCacheLoadHit");
|
||||
FML_TRACE_EVENT0("flutter", "PersistentCacheLoadHit");
|
||||
return SkData::MakeWithCopy(mapping->GetMapping(), mapping->GetSize());
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ static void PersistentCacheStore(fml::RefPtr<fml::TaskRunner> worker,
|
||||
file_name = std::move(key), //
|
||||
mapping = std::move(value) //
|
||||
]() mutable {
|
||||
TRACE_EVENT0("flutter", "PersistentCacheStore");
|
||||
FML_TRACE_EVENT0("flutter", "PersistentCacheStore");
|
||||
if (!fml::WriteAtomically(*cache_directory, //
|
||||
file_name.c_str(), //
|
||||
*mapping) //
|
||||
|
||||
@ -51,10 +51,10 @@ class Pipeline : public fml::RefCountedThreadSafe<Pipeline<R>> {
|
||||
~ProducerContinuation() {
|
||||
if (continuation_) {
|
||||
continuation_(nullptr, trace_id_);
|
||||
TRACE_EVENT_ASYNC_END0("flutter", "PipelineProduce", trace_id_);
|
||||
FML_TRACE_EVENT_ASYNC_END0("flutter", "PipelineProduce", trace_id_);
|
||||
// The continuation is being dropped on the floor. End the flow.
|
||||
TRACE_FLOW_END("flutter", "PipelineItem", trace_id_);
|
||||
TRACE_EVENT_ASYNC_END0("flutter", "PipelineItem", trace_id_);
|
||||
FML_TRACE_FLOW_END("flutter", "PipelineItem", trace_id_);
|
||||
FML_TRACE_EVENT_ASYNC_END0("flutter", "PipelineItem", trace_id_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,8 +62,8 @@ class Pipeline : public fml::RefCountedThreadSafe<Pipeline<R>> {
|
||||
if (continuation_) {
|
||||
continuation_(std::move(resource), trace_id_);
|
||||
continuation_ = nullptr;
|
||||
TRACE_EVENT_ASYNC_END0("flutter", "PipelineProduce", trace_id_);
|
||||
TRACE_FLOW_STEP("flutter", "PipelineItem", trace_id_);
|
||||
FML_TRACE_EVENT_ASYNC_END0("flutter", "PipelineProduce", trace_id_);
|
||||
FML_TRACE_FLOW_STEP("flutter", "PipelineItem", trace_id_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,9 +78,9 @@ class Pipeline : public fml::RefCountedThreadSafe<Pipeline<R>> {
|
||||
|
||||
ProducerContinuation(Continuation continuation, size_t trace_id)
|
||||
: continuation_(continuation), trace_id_(trace_id) {
|
||||
TRACE_FLOW_BEGIN("flutter", "PipelineItem", trace_id_);
|
||||
TRACE_EVENT_ASYNC_BEGIN0("flutter", "PipelineItem", trace_id_);
|
||||
TRACE_EVENT_ASYNC_BEGIN0("flutter", "PipelineProduce", trace_id_);
|
||||
FML_TRACE_FLOW_BEGIN("flutter", "PipelineItem", trace_id_);
|
||||
FML_TRACE_EVENT_ASYNC_BEGIN0("flutter", "PipelineItem", trace_id_);
|
||||
FML_TRACE_EVENT_ASYNC_BEGIN0("flutter", "PipelineProduce", trace_id_);
|
||||
}
|
||||
|
||||
FML_DISALLOW_COPY_AND_ASSIGN(ProducerContinuation);
|
||||
@ -127,14 +127,14 @@ class Pipeline : public fml::RefCountedThreadSafe<Pipeline<R>> {
|
||||
}
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "PipelineConsume");
|
||||
FML_TRACE_EVENT0("flutter", "PipelineConsume");
|
||||
consumer(std::move(resource));
|
||||
}
|
||||
|
||||
empty_.Signal();
|
||||
|
||||
TRACE_FLOW_END("flutter", "PipelineItem", trace_id);
|
||||
TRACE_EVENT_ASYNC_END0("flutter", "PipelineItem", trace_id);
|
||||
FML_TRACE_FLOW_END("flutter", "PipelineItem", trace_id);
|
||||
FML_TRACE_EVENT_ASYNC_END0("flutter", "PipelineItem", trace_id);
|
||||
|
||||
return items_count > 0 ? PipelineConsumeResult::MoreAvailable
|
||||
: PipelineConsumeResult::Done;
|
||||
|
||||
@ -72,7 +72,7 @@ void Rasterizer::DrawLastLayerTree() {
|
||||
}
|
||||
|
||||
void Rasterizer::Draw(fml::RefPtr<Pipeline<flutter::LayerTree>> pipeline) {
|
||||
TRACE_EVENT0("flutter", "GPURasterizer::Draw");
|
||||
FML_TRACE_EVENT0("flutter", "GPURasterizer::Draw");
|
||||
|
||||
Pipeline<flutter::LayerTree>::Consumer consumer =
|
||||
std::bind(&Rasterizer::DoDraw, this, std::placeholders::_1);
|
||||
@ -96,7 +96,7 @@ void Rasterizer::Draw(fml::RefPtr<Pipeline<flutter::LayerTree>> pipeline) {
|
||||
|
||||
sk_sp<SkImage> Rasterizer::MakeRasterSnapshot(sk_sp<SkPicture> picture,
|
||||
SkISize picture_size) {
|
||||
TRACE_EVENT0("flutter", __FUNCTION__);
|
||||
FML_TRACE_EVENT0("flutter", __FUNCTION__);
|
||||
|
||||
sk_sp<SkSurface> surface;
|
||||
SkImageInfo image_info = SkImageInfo::MakeN32Premul(
|
||||
@ -128,7 +128,7 @@ sk_sp<SkImage> Rasterizer::MakeRasterSnapshot(sk_sp<SkPicture> picture,
|
||||
|
||||
sk_sp<SkImage> device_snapshot;
|
||||
{
|
||||
TRACE_EVENT0("flutter", "MakeDeviceSnpashot");
|
||||
FML_TRACE_EVENT0("flutter", "MakeDeviceSnpashot");
|
||||
device_snapshot = surface->makeImageSnapshot();
|
||||
}
|
||||
|
||||
@ -137,7 +137,7 @@ sk_sp<SkImage> Rasterizer::MakeRasterSnapshot(sk_sp<SkPicture> picture,
|
||||
}
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "DeviceHostTransfer");
|
||||
FML_TRACE_EVENT0("flutter", "DeviceHostTransfer");
|
||||
if (auto raster_image = device_snapshot->makeRasterImage()) {
|
||||
return raster_image;
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ std::unique_ptr<Shell> Shell::CreateShellOnPlatformThread(
|
||||
&platform_view, //
|
||||
io_task_runner //
|
||||
]() {
|
||||
TRACE_EVENT0("flutter", "ShellSetupIOSubsystem");
|
||||
FML_TRACE_EVENT0("flutter", "ShellSetupIOSubsystem");
|
||||
io_manager = std::make_unique<ShellIOManager>(
|
||||
platform_view->CreateResourceContext(), io_task_runner);
|
||||
io_latch.Signal();
|
||||
@ -96,7 +96,7 @@ std::unique_ptr<Shell> Shell::CreateShellOnPlatformThread(
|
||||
shell = shell.get(), //
|
||||
&snapshot_delegate //
|
||||
]() {
|
||||
TRACE_EVENT0("flutter", "ShellSetupGPUSubsystem");
|
||||
FML_TRACE_EVENT0("flutter", "ShellSetupGPUSubsystem");
|
||||
if (auto new_rasterizer = on_create_rasterizer(*shell)) {
|
||||
rasterizer = std::move(new_rasterizer);
|
||||
snapshot_delegate = rasterizer->GetSnapshotDelegate();
|
||||
@ -120,7 +120,7 @@ std::unique_ptr<Shell> Shell::CreateShellOnPlatformThread(
|
||||
snapshot_delegate = std::move(snapshot_delegate), //
|
||||
io_manager = io_manager->GetWeakPtr() //
|
||||
]() mutable {
|
||||
TRACE_EVENT0("flutter", "ShellSetupUISubsystem");
|
||||
FML_TRACE_EVENT0("flutter", "ShellSetupUISubsystem");
|
||||
const auto& task_runners = shell->GetTaskRunners();
|
||||
|
||||
// The animator is owned by the UI thread but it gets its vsync pulses
|
||||
@ -212,7 +212,7 @@ std::unique_ptr<Shell> Shell::Create(
|
||||
Shell::CreateCallback<Rasterizer> on_create_rasterizer) {
|
||||
PerformInitializationTasks(settings);
|
||||
|
||||
TRACE_EVENT0("flutter", "Shell::Create");
|
||||
FML_TRACE_EVENT0("flutter", "Shell::Create");
|
||||
|
||||
auto vm = DartVMRef::Create(settings);
|
||||
FML_CHECK(vm) << "Must be able to initialize the VM.";
|
||||
@ -239,7 +239,7 @@ std::unique_ptr<Shell> Shell::Create(
|
||||
DartVMRef vm) {
|
||||
PerformInitializationTasks(settings);
|
||||
|
||||
TRACE_EVENT0("flutter", "Shell::CreateWithSnapshots");
|
||||
FML_TRACE_EVENT0("flutter", "Shell::CreateWithSnapshots");
|
||||
|
||||
if (!task_runners.IsValid() || !on_create_platform_view ||
|
||||
!on_create_rasterizer) {
|
||||
@ -431,7 +431,7 @@ DartVM* Shell::GetDartVM() {
|
||||
|
||||
// |PlatformView::Delegate|
|
||||
void Shell::OnPlatformViewCreated(std::unique_ptr<Surface> surface) {
|
||||
TRACE_EVENT0("flutter", "Shell::OnPlatformViewCreated");
|
||||
FML_TRACE_EVENT0("flutter", "Shell::OnPlatformViewCreated");
|
||||
FML_DCHECK(is_setup_);
|
||||
FML_DCHECK(task_runners_.GetPlatformTaskRunner()->RunsTasksOnCurrentThread());
|
||||
|
||||
@ -515,7 +515,7 @@ void Shell::OnPlatformViewCreated(std::unique_ptr<Surface> surface) {
|
||||
|
||||
// |PlatformView::Delegate|
|
||||
void Shell::OnPlatformViewDestroyed() {
|
||||
TRACE_EVENT0("flutter", "Shell::OnPlatformViewDestroyed");
|
||||
FML_TRACE_EVENT0("flutter", "Shell::OnPlatformViewDestroyed");
|
||||
FML_DCHECK(is_setup_);
|
||||
FML_DCHECK(task_runners_.GetPlatformTaskRunner()->RunsTasksOnCurrentThread());
|
||||
|
||||
@ -617,8 +617,8 @@ void Shell::OnPlatformViewDispatchPlatformMessage(
|
||||
// |PlatformView::Delegate|
|
||||
void Shell::OnPlatformViewDispatchPointerDataPacket(
|
||||
std::unique_ptr<PointerDataPacket> packet) {
|
||||
TRACE_EVENT0("flutter", "Shell::OnPlatformViewDispatchPointerDataPacket");
|
||||
TRACE_FLOW_BEGIN("flutter", "PointerEvent", next_pointer_flow_id_);
|
||||
FML_TRACE_EVENT0("flutter", "Shell::OnPlatformViewDispatchPointerDataPacket");
|
||||
FML_TRACE_FLOW_BEGIN("flutter", "PointerEvent", next_pointer_flow_id_);
|
||||
FML_DCHECK(is_setup_);
|
||||
FML_DCHECK(task_runners_.GetPlatformTaskRunner()->RunsTasksOnCurrentThread());
|
||||
task_runners_.GetUITaskRunner()->PostTask(fml::MakeCopyable(
|
||||
@ -1108,7 +1108,7 @@ bool Shell::OnServiceProtocolSetAssetBundlePath(
|
||||
Rasterizer::Screenshot Shell::Screenshot(
|
||||
Rasterizer::ScreenshotType screenshot_type,
|
||||
bool base64_encode) {
|
||||
TRACE_EVENT0("flutter", "Shell::Screenshot");
|
||||
FML_TRACE_EVENT0("flutter", "Shell::Screenshot");
|
||||
fml::AutoResetWaitableEvent latch;
|
||||
Rasterizer::Screenshot screenshot;
|
||||
fml::TaskRunner::RunNowOrPostTask(
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
#include "flutter/shell/common/skia_event_tracer_impl.h"
|
||||
|
||||
#define TRACE_EVENT_HIDE_MACROS
|
||||
#define FML_TRACE_EVENT_HIDE_MACROS
|
||||
#include <vector>
|
||||
|
||||
#include "flutter/fml/logging.h"
|
||||
|
||||
@ -34,7 +34,7 @@ void VsyncWaiter::AsyncWaitForVsync(Callback callback) {
|
||||
return;
|
||||
}
|
||||
|
||||
TRACE_EVENT0("flutter", "AsyncWaitForVsync");
|
||||
FML_TRACE_EVENT0("flutter", "AsyncWaitForVsync");
|
||||
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(callback_mutex_);
|
||||
@ -42,7 +42,8 @@ void VsyncWaiter::AsyncWaitForVsync(Callback callback) {
|
||||
// The animator may request a frame more than once within a frame
|
||||
// interval. Multiple calls to request frame must result in a single
|
||||
// callback per frame interval.
|
||||
TRACE_EVENT_INSTANT0("flutter", "MultipleCallsToVsyncInFrameInterval");
|
||||
FML_TRACE_EVENT_INSTANT0("flutter",
|
||||
"MultipleCallsToVsyncInFrameInterval");
|
||||
return;
|
||||
}
|
||||
callback_ = std::move(callback);
|
||||
@ -63,7 +64,7 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time,
|
||||
// This means that the vsync waiter implementation fired a callback for a
|
||||
// request we did not make. This is a paranoid check but we still want to
|
||||
// make sure we catch misbehaving vsync implementations.
|
||||
TRACE_EVENT_INSTANT0("flutter", "MismatchedFrameCallback");
|
||||
FML_TRACE_EVENT_INSTANT0("flutter", "MismatchedFrameCallback");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -73,9 +74,9 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time,
|
||||
// exist. The trace viewer will ignore traces that have no base event trace.
|
||||
// While all our message loops insert a base trace trace
|
||||
// (MessageLoop::RunExpiredTasks), embedders may not.
|
||||
TRACE_EVENT0("flutter", "VsyncFireCallback");
|
||||
FML_TRACE_EVENT0("flutter", "VsyncFireCallback");
|
||||
|
||||
TRACE_FLOW_BEGIN("flutter", kVsyncFlowName, flow_identifier);
|
||||
FML_TRACE_FLOW_BEGIN("flutter", kVsyncFlowName, flow_identifier);
|
||||
|
||||
task_runners_.GetUITaskRunner()->PostTaskForTime(
|
||||
[callback, flow_identifier, frame_start_time, frame_target_time]() {
|
||||
@ -85,7 +86,7 @@ void VsyncWaiter::FireCallback(fml::TimePoint frame_start_time,
|
||||
"flutter", "VsyncSchedulingOverhead", fml::TimePoint::Now(),
|
||||
frame_start_time);
|
||||
callback(frame_start_time, frame_target_time);
|
||||
TRACE_FLOW_END("flutter", kVsyncFlowName, flow_identifier);
|
||||
FML_TRACE_FLOW_END("flutter", kVsyncFlowName, flow_identifier);
|
||||
},
|
||||
frame_start_time);
|
||||
}
|
||||
|
||||
@ -176,7 +176,7 @@ bool GPUSurfaceGL::CreateOrUpdateSurfaces(const SkISize& size) {
|
||||
}
|
||||
|
||||
// We need to do some updates.
|
||||
TRACE_EVENT0("flutter", "UpdateSurfacesSize");
|
||||
FML_TRACE_EVENT0("flutter", "UpdateSurfacesSize");
|
||||
|
||||
// Either way, we need to get rid of previous surface.
|
||||
onscreen_surface_ = nullptr;
|
||||
@ -259,7 +259,7 @@ bool GPUSurfaceGL::PresentSurface(SkCanvas* canvas) {
|
||||
}
|
||||
|
||||
if (offscreen_surface_ != nullptr) {
|
||||
TRACE_EVENT0("flutter", "CopyTextureOnscreen");
|
||||
FML_TRACE_EVENT0("flutter", "CopyTextureOnscreen");
|
||||
SkPaint paint;
|
||||
SkCanvas* onscreen_canvas = onscreen_surface_->getCanvas();
|
||||
onscreen_canvas->clear(SK_ColorTRANSPARENT);
|
||||
@ -268,7 +268,7 @@ bool GPUSurfaceGL::PresentSurface(SkCanvas* canvas) {
|
||||
}
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "SkCanvas::Flush");
|
||||
FML_TRACE_EVENT0("flutter", "SkCanvas::Flush");
|
||||
onscreen_surface_->getCanvas()->flush();
|
||||
}
|
||||
|
||||
|
||||
@ -235,7 +235,7 @@ bool AndroidContextGL::ClearCurrent() {
|
||||
}
|
||||
|
||||
bool AndroidContextGL::SwapBuffers() {
|
||||
TRACE_EVENT0("flutter", "AndroidContextGL::SwapBuffers");
|
||||
FML_TRACE_EVENT0("flutter", "AndroidContextGL::SwapBuffers");
|
||||
return eglSwapBuffers(environment_->Display(), surface_);
|
||||
}
|
||||
|
||||
|
||||
@ -192,8 +192,8 @@ void AndroidShellHolder::DispatchPointerDataPacket(
|
||||
return;
|
||||
}
|
||||
|
||||
TRACE_EVENT0("flutter", "AndroidShellHolder::DispatchPointerDataPacket");
|
||||
TRACE_FLOW_BEGIN("flutter", "PointerEvent", next_pointer_flow_id_);
|
||||
FML_TRACE_EVENT0("flutter", "AndroidShellHolder::DispatchPointerDataPacket");
|
||||
FML_TRACE_FLOW_BEGIN("flutter", "PointerEvent", next_pointer_flow_id_);
|
||||
|
||||
shell_->GetTaskRunners().GetUITaskRunner()->PostTask(fml::MakeCopyable(
|
||||
[engine = shell_->GetEngine(), packet = std::move(packet),
|
||||
|
||||
@ -72,7 +72,7 @@ std::unique_ptr<Surface> AndroidSurfaceSoftware::CreateGPUSurface() {
|
||||
|
||||
sk_sp<SkSurface> AndroidSurfaceSoftware::AcquireBackingStore(
|
||||
const SkISize& size) {
|
||||
TRACE_EVENT0("flutter", "AndroidSurfaceSoftware::AcquireBackingStore");
|
||||
FML_TRACE_EVENT0("flutter", "AndroidSurfaceSoftware::AcquireBackingStore");
|
||||
if (!IsValid()) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -94,7 +94,7 @@ sk_sp<SkSurface> AndroidSurfaceSoftware::AcquireBackingStore(
|
||||
|
||||
bool AndroidSurfaceSoftware::PresentBackingStore(
|
||||
sk_sp<SkSurface> backing_store) {
|
||||
TRACE_EVENT0("flutter", "AndroidSurfaceSoftware::PresentBackingStore");
|
||||
FML_TRACE_EVENT0("flutter", "AndroidSurfaceSoftware::PresentBackingStore");
|
||||
if (!IsValid() || backing_store == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -120,8 +120,8 @@
|
||||
}
|
||||
|
||||
- (void)dispatchPointerDataPacket:(std::unique_ptr<flutter::PointerDataPacket>)packet {
|
||||
TRACE_EVENT0("flutter", "dispatchPointerDataPacket");
|
||||
TRACE_FLOW_BEGIN("flutter", "PointerEvent", _nextPointerFlowId);
|
||||
FML_TRACE_EVENT0("flutter", "dispatchPointerDataPacket");
|
||||
FML_TRACE_FLOW_BEGIN("flutter", "PointerEvent", _nextPointerFlowId);
|
||||
self.shell.GetTaskRunners().GetUITaskRunner()->PostTask(fml::MakeCopyable(
|
||||
[engine = self.shell.GetEngine(), packet = std::move(packet), flow_id = _nextPointerFlowId] {
|
||||
if (engine) {
|
||||
|
||||
@ -120,7 +120,7 @@ id<FlutterViewEngineDelegate> _delegate;
|
||||
}
|
||||
|
||||
- (void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context {
|
||||
TRACE_EVENT0("flutter", "SnapshotFlutterView");
|
||||
FML_TRACE_EVENT0("flutter", "SnapshotFlutterView");
|
||||
|
||||
if (layer != self.layer || context == nullptr) {
|
||||
return;
|
||||
|
||||
@ -394,7 +394,7 @@ NSNotificationName const FlutterSemanticsUpdateNotification = @"FlutterSemantics
|
||||
#pragma mark - UIViewController lifecycle notifications
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
TRACE_EVENT0("flutter", "viewWillAppear");
|
||||
FML_TRACE_EVENT0("flutter", "viewWillAppear");
|
||||
|
||||
if (_engineNeedsLaunch) {
|
||||
[_engine.get() launchEngine:nil libraryURI:nil];
|
||||
@ -412,7 +412,7 @@ NSNotificationName const FlutterSemanticsUpdateNotification = @"FlutterSemantics
|
||||
}
|
||||
|
||||
- (void)viewDidAppear:(BOOL)animated {
|
||||
TRACE_EVENT0("flutter", "viewDidAppear");
|
||||
FML_TRACE_EVENT0("flutter", "viewDidAppear");
|
||||
[self onLocaleUpdated:nil];
|
||||
[self onUserSettingsChanged:nil];
|
||||
[self onAccessibilityStatusChanged:nil];
|
||||
@ -422,14 +422,14 @@ NSNotificationName const FlutterSemanticsUpdateNotification = @"FlutterSemantics
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
TRACE_EVENT0("flutter", "viewWillDisappear");
|
||||
FML_TRACE_EVENT0("flutter", "viewWillDisappear");
|
||||
[[_engine.get() lifecycleChannel] sendMessage:@"AppLifecycleState.inactive"];
|
||||
|
||||
[super viewWillDisappear:animated];
|
||||
}
|
||||
|
||||
- (void)viewDidDisappear:(BOOL)animated {
|
||||
TRACE_EVENT0("flutter", "viewDidDisappear");
|
||||
FML_TRACE_EVENT0("flutter", "viewDidDisappear");
|
||||
[self surfaceUpdated:NO];
|
||||
[[_engine.get() lifecycleChannel] sendMessage:@"AppLifecycleState.paused"];
|
||||
[self flushOngoingTouches];
|
||||
@ -479,25 +479,25 @@ NSNotificationName const FlutterSemanticsUpdateNotification = @"FlutterSemantics
|
||||
#pragma mark - Application lifecycle notifications
|
||||
|
||||
- (void)applicationBecameActive:(NSNotification*)notification {
|
||||
TRACE_EVENT0("flutter", "applicationBecameActive");
|
||||
FML_TRACE_EVENT0("flutter", "applicationBecameActive");
|
||||
if (_viewportMetrics.physical_width)
|
||||
[self surfaceUpdated:YES];
|
||||
[[_engine.get() lifecycleChannel] sendMessage:@"AppLifecycleState.resumed"];
|
||||
}
|
||||
|
||||
- (void)applicationWillResignActive:(NSNotification*)notification {
|
||||
TRACE_EVENT0("flutter", "applicationWillResignActive");
|
||||
FML_TRACE_EVENT0("flutter", "applicationWillResignActive");
|
||||
[self surfaceUpdated:NO];
|
||||
[[_engine.get() lifecycleChannel] sendMessage:@"AppLifecycleState.inactive"];
|
||||
}
|
||||
|
||||
- (void)applicationDidEnterBackground:(NSNotification*)notification {
|
||||
TRACE_EVENT0("flutter", "applicationDidEnterBackground");
|
||||
FML_TRACE_EVENT0("flutter", "applicationDidEnterBackground");
|
||||
[[_engine.get() lifecycleChannel] sendMessage:@"AppLifecycleState.paused"];
|
||||
}
|
||||
|
||||
- (void)applicationWillEnterForeground:(NSNotification*)notification {
|
||||
TRACE_EVENT0("flutter", "applicationWillEnterForeground");
|
||||
FML_TRACE_EVENT0("flutter", "applicationWillEnterForeground");
|
||||
[[_engine.get() lifecycleChannel] sendMessage:@"AppLifecycleState.inactive"];
|
||||
}
|
||||
|
||||
|
||||
@ -98,7 +98,7 @@ bool IOSGLRenderTarget::UpdateStorageSizeIfNecessary() {
|
||||
// Nothing to since the stoage size is already consistent with the layer.
|
||||
return true;
|
||||
}
|
||||
TRACE_EVENT_INSTANT0("flutter", "IOSGLRenderTarget::UpdateStorageSizeIfNecessary");
|
||||
FML_TRACE_EVENT_INSTANT0("flutter", "IOSGLRenderTarget::UpdateStorageSizeIfNecessary");
|
||||
FML_DLOG(INFO) << "Updating render buffer storage size.";
|
||||
|
||||
FML_DCHECK(glGetError() == GL_NO_ERROR);
|
||||
|
||||
@ -70,7 +70,7 @@ bool IOSSurfaceGL::GLContextClearCurrent() {
|
||||
}
|
||||
|
||||
bool IOSSurfaceGL::GLContextPresent() {
|
||||
TRACE_EVENT0("flutter", "IOSSurfaceGL::GLContextPresent");
|
||||
FML_TRACE_EVENT0("flutter", "IOSSurfaceGL::GLContextPresent");
|
||||
return IsValid() && render_target_->PresentRenderBuffer();
|
||||
}
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ std::unique_ptr<Surface> IOSSurfaceSoftware::CreateGPUSurface() {
|
||||
}
|
||||
|
||||
sk_sp<SkSurface> IOSSurfaceSoftware::AcquireBackingStore(const SkISize& size) {
|
||||
TRACE_EVENT0("flutter", "IOSSurfaceSoftware::AcquireBackingStore");
|
||||
FML_TRACE_EVENT0("flutter", "IOSSurfaceSoftware::AcquireBackingStore");
|
||||
if (!IsValid()) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -71,7 +71,7 @@ sk_sp<SkSurface> IOSSurfaceSoftware::AcquireBackingStore(const SkISize& size) {
|
||||
}
|
||||
|
||||
bool IOSSurfaceSoftware::PresentBackingStore(sk_sp<SkSurface> backing_store) {
|
||||
TRACE_EVENT0("flutter", "IOSSurfaceSoftware::PresentBackingStore");
|
||||
FML_TRACE_EVENT0("flutter", "IOSSurfaceSoftware::PresentBackingStore");
|
||||
if (!IsValid() || backing_store == nullptr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -950,7 +950,7 @@ FlutterEngineResult FlutterEngineOnVsync(FlutterEngine engine,
|
||||
return LOG_EMBEDDER_ERROR(kInvalidArguments);
|
||||
}
|
||||
|
||||
TRACE_EVENT0("flutter", "FlutterEngineOnVsync");
|
||||
FML_TRACE_EVENT0("flutter", "FlutterEngineOnVsync");
|
||||
|
||||
auto start_time = fml::TimePoint::FromEpochDelta(
|
||||
fml::TimeDelta::FromNanoseconds(frame_start_time_nanos));
|
||||
|
||||
@ -94,8 +94,8 @@ bool EmbedderEngine::DispatchPointerDataPacket(
|
||||
return false;
|
||||
}
|
||||
|
||||
TRACE_EVENT0("flutter", "EmbedderEngine::DispatchPointerDataPacket");
|
||||
TRACE_FLOW_BEGIN("flutter", "PointerEvent", next_pointer_flow_id_);
|
||||
FML_TRACE_EVENT0("flutter", "EmbedderEngine::DispatchPointerDataPacket");
|
||||
FML_TRACE_FLOW_BEGIN("flutter", "PointerEvent", next_pointer_flow_id_);
|
||||
|
||||
shell_->GetTaskRunners().GetUITaskRunner()->PostTask(fml::MakeCopyable(
|
||||
[engine = shell_->GetEngine(), packet = std::move(packet),
|
||||
|
||||
@ -48,7 +48,7 @@ sk_sp<GrContext> EmbedderSurfaceSoftware::CreateResourceContext() const {
|
||||
// |GPUSurfaceSoftwareDelegate|
|
||||
sk_sp<SkSurface> EmbedderSurfaceSoftware::AcquireBackingStore(
|
||||
const SkISize& size) {
|
||||
TRACE_EVENT0("flutter", "EmbedderSurfaceSoftware::AcquireBackingStore");
|
||||
FML_TRACE_EVENT0("flutter", "EmbedderSurfaceSoftware::AcquireBackingStore");
|
||||
if (!IsValid()) {
|
||||
FML_LOG(ERROR)
|
||||
<< "Could not acquire backing store for the software surface.";
|
||||
|
||||
@ -189,7 +189,8 @@ void DartRunner::StartComponent(
|
||||
fuchsia::sys::Package package,
|
||||
fuchsia::sys::StartupInfo startup_info,
|
||||
::fidl::InterfaceRequest<fuchsia::sys::ComponentController> controller) {
|
||||
TRACE_EVENT1("dart", "StartComponent", "url", package.resolved_url.c_str());
|
||||
FML_TRACE_EVENT1("dart", "StartComponent", "url",
|
||||
package.resolved_url.c_str());
|
||||
std::thread thread(RunApplication, this, std::move(package),
|
||||
std::move(startup_info), context_->svc(),
|
||||
std::move(controller));
|
||||
|
||||
@ -40,7 +40,7 @@ int main(int argc, const char** argv) {
|
||||
fbl::unique_ptr<trace::TraceProvider> provider;
|
||||
|
||||
{
|
||||
TRACE_EVENT0("dart", "CreateTraceProvider");
|
||||
FML_TRACE_EVENT0("dart", "CreateTraceProvider");
|
||||
bool already_started;
|
||||
// Use CreateSynchronously to prevent loss of early events.
|
||||
trace::TraceProvider::CreateSynchronously(loop.dispatcher(), "dart_runner",
|
||||
|
||||
@ -34,21 +34,21 @@ class ScopedFrame final : public flutter::CompositorContext::ScopedFrame {
|
||||
{
|
||||
// Preroll the Flutter layer tree. This allows Flutter to perform
|
||||
// pre-paint optimizations.
|
||||
TRACE_EVENT0("flutter", "Preroll");
|
||||
FML_TRACE_EVENT0("flutter", "Preroll");
|
||||
layer_tree.Preroll(*this, true /* ignore raster cache */);
|
||||
}
|
||||
|
||||
{
|
||||
// Traverse the Flutter layer tree so that the necessary session ops to
|
||||
// represent the frame are enqueued in the underlying session.
|
||||
TRACE_EVENT0("flutter", "UpdateScene");
|
||||
FML_TRACE_EVENT0("flutter", "UpdateScene");
|
||||
layer_tree.UpdateScene(session_connection_.scene_update_context(),
|
||||
session_connection_.root_node());
|
||||
}
|
||||
|
||||
{
|
||||
// Flush all pending session ops.
|
||||
TRACE_EVENT0("flutter", "SessionPresent");
|
||||
FML_TRACE_EVENT0("flutter", "SessionPresent");
|
||||
session_connection_.Present(*this);
|
||||
}
|
||||
|
||||
|
||||
@ -148,7 +148,7 @@ Engine::Engine(Delegate& delegate,
|
||||
// rasterizer.
|
||||
std::unique_ptr<flutter::CompositorContext> compositor_context;
|
||||
{
|
||||
TRACE_EVENT0("flutter", "CreateCompositorContext");
|
||||
FML_TRACE_EVENT0("flutter", "CreateCompositorContext");
|
||||
compositor_context = std::make_unique<flutter_runner::CompositorContext>(
|
||||
thread_label_, // debug label
|
||||
std::move(view_token), // scenic view we attach our tree to
|
||||
@ -210,7 +210,7 @@ Engine::Engine(Delegate& delegate,
|
||||
}
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "CreateShell");
|
||||
FML_TRACE_EVENT0("flutter", "CreateShell");
|
||||
shell_ = flutter::Shell::Create(
|
||||
task_runners, // host task runners
|
||||
settings_, // shell launch settings
|
||||
|
||||
@ -419,7 +419,7 @@ sk_sp<SkTypeface> FuchsiaFontManager::FetchTypeface(const char family_name[],
|
||||
int bcp47_count,
|
||||
SkUnichar character,
|
||||
uint32_t flags) const {
|
||||
TRACE_EVENT0("flutter", "FuchsiaFontManager::FetchTypeface");
|
||||
FML_TRACE_EVENT0("flutter", "FuchsiaFontManager::FetchTypeface");
|
||||
fuchsia::fonts::Request request;
|
||||
request.family = family_name;
|
||||
request.weight = style.weight();
|
||||
|
||||
@ -287,7 +287,7 @@ void PlatformView::OnScenicError(std::string error) {
|
||||
|
||||
void PlatformView::OnScenicEvent(
|
||||
std::vector<fuchsia::ui::scenic::Event> events) {
|
||||
TRACE_EVENT0("flutter", "PlatformView::OnScenicEvent");
|
||||
FML_TRACE_EVENT0("flutter", "PlatformView::OnScenicEvent");
|
||||
for (const auto& event : events) {
|
||||
switch (event.Which()) {
|
||||
case fuchsia::ui::scenic::Event::Tag::kGfx:
|
||||
@ -426,13 +426,13 @@ static trace_flow_id_t PointerTraceHACK(float fa, float fb) {
|
||||
|
||||
bool PlatformView::OnHandlePointerEvent(
|
||||
const fuchsia::ui::input::PointerEvent& pointer) {
|
||||
TRACE_EVENT0("flutter", "PlatformView::OnHandlePointerEvent");
|
||||
FML_TRACE_EVENT0("flutter", "PlatformView::OnHandlePointerEvent");
|
||||
|
||||
#if !defined(FUCHSIA_SDK)
|
||||
// TODO(SCN-1278): Use proper trace_id for tracing flow.
|
||||
trace_flow_id_t trace_id =
|
||||
PointerTraceHACK(pointer.radius_major, pointer.radius_minor);
|
||||
TRACE_FLOW_END("input", "dispatch_event_to_client", trace_id);
|
||||
FML_TRACE_FLOW_END("input", "dispatch_event_to_client", trace_id);
|
||||
#endif // !defined(FUCHSIA_SDK)
|
||||
|
||||
flutter::PointerData pointer_data;
|
||||
|
||||
@ -137,7 +137,7 @@ void Runner::StartComponent(
|
||||
fuchsia::sys::Package package,
|
||||
fuchsia::sys::StartupInfo startup_info,
|
||||
fidl::InterfaceRequest<fuchsia::sys::ComponentController> controller) {
|
||||
TRACE_EVENT0("flutter", "StartComponent");
|
||||
FML_TRACE_EVENT0("flutter", "StartComponent");
|
||||
// Notes on application termination: Application typically terminate on the
|
||||
// thread on which they were created. This usually means the thread was
|
||||
// specifically created to host the application. But we want to ensure that
|
||||
|
||||
@ -81,8 +81,8 @@ void SessionConnection::EnqueueClearOps() {
|
||||
}
|
||||
|
||||
void SessionConnection::PresentSession() {
|
||||
TRACE_EVENT0("gfx", "SessionConnection::PresentSession");
|
||||
TRACE_FLOW_BEGIN("gfx", "Session::Present", next_present_trace_id_);
|
||||
FML_TRACE_EVENT0("gfx", "SessionConnection::PresentSession");
|
||||
FML_TRACE_FLOW_BEGIN("gfx", "Session::Present", next_present_trace_id_);
|
||||
next_present_trace_id_++;
|
||||
|
||||
ToggleSignal(vsync_event_handle_, false);
|
||||
|
||||
@ -66,7 +66,7 @@ void VsyncWaiter::AwaitVSync() {
|
||||
}
|
||||
|
||||
void VsyncWaiter::FireCallbackWhenSessionAvailable() {
|
||||
TRACE_EVENT0("flutter", "VsyncWaiter::FireCallbackWhenSessionAvailable");
|
||||
FML_TRACE_EVENT0("flutter", "VsyncWaiter::FireCallbackWhenSessionAvailable");
|
||||
FML_DCHECK(task_runners_.GetUITaskRunner()->RunsTasksOnCurrentThread());
|
||||
if (session_wait_.Begin(async_get_default_dispatcher()) != ZX_OK) {
|
||||
FML_LOG(ERROR) << "Could not begin wait for Vsync.";
|
||||
|
||||
@ -26,7 +26,7 @@ constexpr SkColorType kSkiaColorType = kBGRA_8888_SkColorType;
|
||||
bool CreateVulkanImage(vulkan::VulkanProvider& vulkan_provider,
|
||||
const SkISize& size,
|
||||
VulkanImage* out_vulkan_image) {
|
||||
TRACE_EVENT0("flutter", "CreateVulkanImage");
|
||||
FML_TRACE_EVENT0("flutter", "CreateVulkanImage");
|
||||
|
||||
FML_DCHECK(!size.isEmpty());
|
||||
FML_DCHECK(out_vulkan_image != nullptr);
|
||||
@ -244,7 +244,7 @@ bool VulkanSurface::AllocateDeviceMemory(sk_sp<GrContext> context,
|
||||
};
|
||||
|
||||
{
|
||||
TRACE_EVENT0("flutter", "vkAllocateMemory");
|
||||
FML_TRACE_EVENT0("flutter", "vkAllocateMemory");
|
||||
VkDeviceMemory vk_memory = VK_NULL_HANDLE;
|
||||
if (VK_CALL_LOG_ERROR(vulkan_provider_.vk().AllocateMemory(
|
||||
vulkan_provider_.vk_device(), &alloc_info, NULL, &vk_memory)) !=
|
||||
|
||||
@ -108,7 +108,7 @@ std::unique_ptr<VulkanSurface> VulkanSurfacePool::GetCachedOrCreateSurface(
|
||||
void VulkanSurfacePool::SubmitSurface(
|
||||
std::unique_ptr<flutter::SceneUpdateContext::SurfaceProducerSurface>
|
||||
p_surface) {
|
||||
TRACE_EVENT0("flutter", "VulkanSurfacePool::SubmitSurface");
|
||||
FML_TRACE_EVENT0("flutter", "VulkanSurfacePool::SubmitSurface");
|
||||
|
||||
// This cast is safe because |VulkanSurface| is the only implementation of
|
||||
// |SurfaceProducerSurface| for Flutter on Fuchsia. Additionally, it is
|
||||
@ -157,7 +157,7 @@ void VulkanSurfacePool::SubmitSurface(
|
||||
|
||||
std::unique_ptr<VulkanSurface> VulkanSurfacePool::CreateSurface(
|
||||
const SkISize& size) {
|
||||
TRACE_EVENT0("flutter", "VulkanSurfacePool::CreateSurface");
|
||||
FML_TRACE_EVENT0("flutter", "VulkanSurfacePool::CreateSurface");
|
||||
auto surface = std::make_unique<VulkanSurface>(vulkan_provider_, context_,
|
||||
scenic_session_, size);
|
||||
if (!surface->IsValid()) {
|
||||
@ -217,7 +217,7 @@ void VulkanSurfacePool::SignalRetainedReady(flutter::LayerRasterCacheKey key) {
|
||||
}
|
||||
|
||||
void VulkanSurfacePool::AgeAndCollectOldBuffers() {
|
||||
TRACE_EVENT0("flutter", "VulkanSurfacePool::AgeAndCollectOldBuffers");
|
||||
FML_TRACE_EVENT0("flutter", "VulkanSurfacePool::AgeAndCollectOldBuffers");
|
||||
|
||||
// Remove all surfaces that are no longer valid or are too old.
|
||||
available_surfaces_.erase(
|
||||
|
||||
@ -129,11 +129,11 @@ void VulkanSurfaceProducer::OnSurfacesPresented(
|
||||
std::vector<
|
||||
std::unique_ptr<flutter::SceneUpdateContext::SurfaceProducerSurface>>
|
||||
surfaces) {
|
||||
TRACE_EVENT0("flutter", "VulkanSurfaceProducer::OnSurfacesPresented");
|
||||
FML_TRACE_EVENT0("flutter", "VulkanSurfaceProducer::OnSurfacesPresented");
|
||||
|
||||
// Do a single flush for all canvases derived from the context.
|
||||
{
|
||||
TRACE_EVENT0("flutter", "GrContext::flushAndSignalSemaphores");
|
||||
FML_TRACE_EVENT0("flutter", "GrContext::flushAndSignalSemaphores");
|
||||
context_->flush();
|
||||
}
|
||||
|
||||
|
||||
14
third_party/txt/src/txt/font_collection.cc
vendored
14
third_party/txt/src/txt/font_collection.cc
vendored
@ -185,7 +185,7 @@ FontCollection::GetMinikinFontCollectionForFamilies(
|
||||
|
||||
std::shared_ptr<minikin::FontFamily> FontCollection::FindFontFamilyInManagers(
|
||||
const std::string& family_name) {
|
||||
TRACE_EVENT0("flutter", "FontCollection::FindFontFamilyInManagers");
|
||||
FML_TRACE_EVENT0("flutter", "FontCollection::FindFontFamilyInManagers");
|
||||
// Search for the font family in each font manager.
|
||||
for (sk_sp<SkFontMgr>& manager : GetFontManagerOrder()) {
|
||||
std::shared_ptr<minikin::FontFamily> minikin_family =
|
||||
@ -200,8 +200,8 @@ std::shared_ptr<minikin::FontFamily> FontCollection::FindFontFamilyInManagers(
|
||||
std::shared_ptr<minikin::FontFamily> FontCollection::CreateMinikinFontFamily(
|
||||
const sk_sp<SkFontMgr>& manager,
|
||||
const std::string& family_name) {
|
||||
TRACE_EVENT1("flutter", "FontCollection::CreateMinikinFontFamily",
|
||||
"family_name", family_name.c_str());
|
||||
FML_TRACE_EVENT1("flutter", "FontCollection::CreateMinikinFontFamily",
|
||||
"family_name", family_name.c_str());
|
||||
sk_sp<SkFontStyleSet> font_style_set(
|
||||
manager->matchFamily(family_name.c_str()));
|
||||
if (font_style_set == nullptr || font_style_set->count() == 0) {
|
||||
@ -212,7 +212,7 @@ std::shared_ptr<minikin::FontFamily> FontCollection::CreateMinikinFontFamily(
|
||||
|
||||
// Add fonts to the Minikin font family.
|
||||
for (int i = 0; i < font_style_set->count(); ++i) {
|
||||
TRACE_EVENT0("flutter", "CreateMinikinFont");
|
||||
FML_TRACE_EVENT0("flutter", "CreateMinikinFont");
|
||||
// Create the skia typeface.
|
||||
sk_sp<SkTypeface> skia_typeface(
|
||||
sk_sp<SkTypeface>(font_style_set->createTypeface(i)));
|
||||
@ -230,8 +230,8 @@ std::shared_ptr<minikin::FontFamily> FontCollection::CreateMinikinFontFamily(
|
||||
minikin_fonts.emplace_back(std::move(minikin_font));
|
||||
}
|
||||
|
||||
TRACE_EVENT1("flutter", "minikin::FontFamily", "MinikinFontsCount",
|
||||
std::to_string(minikin_fonts.size()).c_str());
|
||||
FML_TRACE_EVENT1("flutter", "minikin::FontFamily", "MinikinFontsCount",
|
||||
std::to_string(minikin_fonts.size()).c_str());
|
||||
return std::make_shared<minikin::FontFamily>(std::move(minikin_fonts));
|
||||
}
|
||||
|
||||
@ -277,7 +277,7 @@ const std::shared_ptr<minikin::FontFamily>& FontCollection::DoMatchFallbackFont(
|
||||
const std::shared_ptr<minikin::FontFamily>&
|
||||
FontCollection::GetFallbackFontFamily(const sk_sp<SkFontMgr>& manager,
|
||||
const std::string& family_name) {
|
||||
TRACE_EVENT0("flutter", "FontCollection::GetFallbackFontFamily");
|
||||
FML_TRACE_EVENT0("flutter", "FontCollection::GetFallbackFontFamily");
|
||||
auto fallback_it = fallback_fonts_.find(family_name);
|
||||
if (fallback_it != fallback_fonts_.end()) {
|
||||
return fallback_it->second;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user