diff --git a/engine/core/dom/Microtask.cpp b/engine/core/dom/Microtask.cpp index 04c27dcf9b1..7be9902076e 100644 --- a/engine/core/dom/Microtask.cpp +++ b/engine/core/dom/Microtask.cpp @@ -32,7 +32,7 @@ #include "sky/engine/core/dom/Microtask.h" #include "base/bind.h" -#include "sky/engine/platform/TraceEvent.h" +#include "base/trace_event/trace_event.h" #include "sky/engine/public/platform/WebThread.h" #include "sky/engine/wtf/OwnPtr.h" #include "sky/engine/wtf/Vector.h" @@ -71,6 +71,8 @@ void Microtask::performCheckpoint() { MicrotaskQueue& queue = microtaskQueue(); while(!queue.isEmpty()) { + TRACE_EVENT0("sky", "Microtask::performCheckpoint"); + MicrotaskQueue local; swap(queue, local); for (const auto& task : local) @@ -78,12 +80,6 @@ void Microtask::performCheckpoint() } } -// static void microtaskFunctionCallback(void* data) -// { -// OwnPtr task = adoptPtr(static_cast(data)); -// task->run(); -// } - void Microtask::enqueueMicrotask(PassOwnPtr callback) { microtaskQueue().append(callback); diff --git a/shell/gpu/rasterizer.cc b/shell/gpu/rasterizer.cc index 8fb6836aafc..52a5525c8d1 100644 --- a/shell/gpu/rasterizer.cc +++ b/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/shell/gpu/rasterizer.h b/shell/gpu/rasterizer.h index 3fc8a5aaa4d..6118382f8ef 100644 --- a/shell/gpu/rasterizer.h +++ b/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/shell/ui/engine.cc b/shell/ui/engine.cc index 80d2463425c..7f906a16689 100644 --- a/shell/ui/engine.cc +++ b/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)