diff --git a/engine/src/flutter/shell/gpu/rasterizer.cc b/engine/src/flutter/shell/gpu/rasterizer.cc index 8fb6836aafc..52a5525c8d1 100644 --- a/engine/src/flutter/shell/gpu/rasterizer.cc +++ b/engine/src/flutter/shell/gpu/rasterizer.cc @@ -4,6 +4,7 @@ #include "sky/shell/gpu/rasterizer.h" +#include "base/trace_event/trace_event.h" #include "sky/shell/gpu/ganesh_context.h" #include "sky/shell/gpu/ganesh_surface.h" #include "third_party/skia/include/core/SkCanvas.h" @@ -41,6 +42,8 @@ void Rasterizer::OnAcceleratedWidgetAvailable(gfx::AcceleratedWidget widget) { } void Rasterizer::Draw(skia::RefPtr picture) { + TRACE_EVENT0("sky", "Rasterizer::Draw"); + if (!surface_) return; @@ -52,13 +55,17 @@ void Rasterizer::Draw(skia::RefPtr picture) { CHECK(context_->MakeCurrent(surface_.get())); EnsureGaneshSurface(size); - SkCanvas* canvas = ganesh_surface_->canvas(); - canvas->drawPicture(picture.get()); - canvas->flush(); - + DrawPicture(picture.get()); surface_->SwapBuffers(); } +void Rasterizer::DrawPicture(SkPicture* picture) { + TRACE_EVENT0("sky", "Rasterizer::DrawPicture"); + SkCanvas* canvas = ganesh_surface_->canvas(); + canvas->drawPicture(picture); + canvas->flush(); +} + void Rasterizer::OnOutputSurfaceDestroyed() { ganesh_surface_.reset(); ganesh_context_.reset(); diff --git a/engine/src/flutter/shell/gpu/rasterizer.h b/engine/src/flutter/shell/gpu/rasterizer.h index 3fc8a5aaa4d..6118382f8ef 100644 --- a/engine/src/flutter/shell/gpu/rasterizer.h +++ b/engine/src/flutter/shell/gpu/rasterizer.h @@ -39,6 +39,7 @@ class Rasterizer : public GPUDelegate { private: void EnsureGLContext(); void EnsureGaneshSurface(const gfx::Size& size); + void DrawPicture(SkPicture* picture); scoped_refptr share_group_; scoped_refptr surface_; diff --git a/engine/src/flutter/shell/ui/engine.cc b/engine/src/flutter/shell/ui/engine.cc index 80d2463425c..7f906a16689 100644 --- a/engine/src/flutter/shell/ui/engine.cc +++ b/engine/src/flutter/shell/ui/engine.cc @@ -5,6 +5,7 @@ #include "sky/shell/ui/engine.h" #include "base/bind.h" +#include "base/trace_event/trace_event.h" #include "mojo/public/cpp/application/connect.h" #include "sky/engine/public/platform/WebInputEvent.h" #include "sky/engine/public/web/Sky.h" @@ -61,6 +62,8 @@ mojo::ServiceProviderPtr Engine::CreateServiceProvider() { } void Engine::Init() { + TRACE_EVENT0("sky", "Engine::Init"); + service_provider_ = CreateServiceProvider(); mojo::NetworkServicePtr network_service; mojo::ConnectToService(service_provider_.get(), &network_service); @@ -70,6 +73,8 @@ void Engine::Init() { } void Engine::BeginFrame(base::TimeTicks frame_time) { + TRACE_EVENT0("sky", "Engine::BeginFrame"); + double frame_time_sec = (frame_time - base::TimeTicks()).InSecondsF(); double deadline_sec = frame_time_sec; double interval_sec = 1.0 / 60; @@ -80,6 +85,8 @@ void Engine::BeginFrame(base::TimeTicks frame_time) { } skia::RefPtr Engine::Paint() { + TRACE_EVENT0("sky", "Engine::Paint"); + SkRTreeFactory factory; SkPictureRecorder recorder; auto canvas = skia::SharePtr(recorder.beginRecording( @@ -137,6 +144,7 @@ blink::WebScreenInfo Engine::screenInfo() { } void Engine::OnInputEvent(InputEventPtr event) { + TRACE_EVENT0("sky", "Engine::OnInputEvent"); scoped_ptr web_event = ConvertEvent(event, device_pixel_ratio_); if (!web_event)