mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
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:
parent
ad94044ec8
commit
43ebba749b
@ -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);
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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_;
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user