Add more trace events to Sky

These will help us better understand what's happening.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1027913002
This commit is contained in:
Adam Barth 2015-03-20 15:07:24 -07:00
parent ad94044ec8
commit 43ebba749b
4 changed files with 23 additions and 11 deletions

View File

@ -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<WebThread::Task> task = adoptPtr(static_cast<WebThread::Task*>(data));
// task->run();
// }
void Microtask::enqueueMicrotask(PassOwnPtr<WebThread::Task> callback)
{
microtaskQueue().append(callback);

View File

@ -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<SkPicture> picture) {
TRACE_EVENT0("sky", "Rasterizer::Draw");
if (!surface_)
return;
@ -52,13 +55,17 @@ void Rasterizer::Draw(skia::RefPtr<SkPicture> 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();

View File

@ -39,6 +39,7 @@ class Rasterizer : public GPUDelegate {
private:
void EnsureGLContext();
void EnsureGaneshSurface(const gfx::Size& size);
void DrawPicture(SkPicture* picture);
scoped_refptr<gfx::GLShareGroup> share_group_;
scoped_refptr<gfx::GLSurface> surface_;

View File

@ -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<SkPicture> 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<blink::WebInputEvent> web_event =
ConvertEvent(event, device_pixel_ratio_);
if (!web_event)