[flutter] Minor tracing adjustments
Convert all `TRACE_EVENT*`s to `TRACE_DURATION`s, which have the benefit of
being able to automatically detect arity.
Add a size argument to the "VulkanSurfacePool::CreateSurface" trace.
Move the "VulkanSurface::AllocateDeviceMemory" trace to "vk().AllocateMemory",
which is the section of it that dominates time. Add a size argument to it as
well.
Test: Taking and inspecting a trace + CQ
Change-Id: Ib2d7267139b0015af9bd484105c512db5d4aa47a
diff --git a/runtime/flutter_runner/compositor_context.cc b/runtime/flutter_runner/compositor_context.cc
index 028e3e9..749b101 100644
--- a/runtime/flutter_runner/compositor_context.cc
+++ b/runtime/flutter_runner/compositor_context.cc
@@ -31,21 +31,21 @@
{
// Preroll the Flutter layer tree. This allows Flutter to perform
// pre-paint optimizations.
- TRACE_EVENT0("flutter", "Preroll");
+ TRACE_DURATION("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");
+ TRACE_DURATION("flutter", "UpdateScene");
layer_tree.UpdateScene(session_connection_.scene_update_context(),
session_connection_.root_node());
}
{
// Flush all pending session ops.
- TRACE_EVENT0("flutter", "SessionPresent");
+ TRACE_DURATION("flutter", "SessionPresent");
session_connection_.Present(*this);
}
@@ -89,8 +89,7 @@
CompositorContext::~CompositorContext() = default;
std::unique_ptr<flow::CompositorContext::ScopedFrame>
-CompositorContext::AcquireFrame(GrContext* gr_context,
- SkCanvas* canvas,
+CompositorContext::AcquireFrame(GrContext* gr_context, SkCanvas* canvas,
flow::ExternalViewEmbedder* view_embedder,
const SkMatrix& root_surface_transformation,
bool instrumentation_enabled) {
diff --git a/runtime/flutter_runner/vsync_waiter.cc b/runtime/flutter_runner/vsync_waiter.cc
index 0e1e423..0e8eb35 100644
--- a/runtime/flutter_runner/vsync_waiter.cc
+++ b/runtime/flutter_runner/vsync_waiter.cc
@@ -63,7 +63,7 @@
}
void VsyncWaiter::FireCallbackWhenSessionAvailable() {
- TRACE_EVENT0("flutter", "VsyncWaiter::FireCallbackWhenSessionAvailable");
+ TRACE_DURATION("flutter", "VsyncWaiter::FireCallbackWhenSessionAvailable");
FML_DCHECK(task_runners_.GetUITaskRunner()->RunsTasksOnCurrentThread());
if (session_wait_.Begin(
deprecated_loop::MessageLoop::GetCurrent()->dispatcher()) != ZX_OK) {
diff --git a/runtime/flutter_runner/vulkan_surface.cc b/runtime/flutter_runner/vulkan_surface.cc
index 499038b..e2c0e8e 100644
--- a/runtime/flutter_runner/vulkan_surface.cc
+++ b/runtime/flutter_runner/vulkan_surface.cc
@@ -25,7 +25,7 @@
bool CreateVulkanImage(vulkan::VulkanProvider& vulkan_provider,
const SkISize& size, VulkanImage* out_vulkan_image) {
- TRACE_EVENT0("flutter", "CreateVulkanImage");
+ TRACE_DURATION("flutter", "CreateVulkanImage");
FML_DCHECK(!size.isEmpty());
FML_DCHECK(out_vulkan_image != nullptr);
@@ -194,8 +194,6 @@
bool VulkanSurface::AllocateDeviceMemory(sk_sp<GrContext> context,
const SkISize& size,
zx::vmo& exported_vmo) {
- TRACE_EVENT0("flutter", "VulkanSurface::AllocateDeviceMemory");
-
if (size.isEmpty()) {
return false;
}
@@ -232,6 +230,8 @@
};
{
+ TRACE_DURATION("flutter", "vk().AllocateMemory", "allocation_size",
+ alloc_info.allocationSize);
VkDeviceMemory vk_memory = VK_NULL_HANDLE;
if (VK_CALL_LOG_ERROR(vulkan_provider_.vk().AllocateMemory(
vulkan_provider_.vk_device(), &alloc_info, NULL, &vk_memory)) !=
diff --git a/runtime/flutter_runner/vulkan_surface_pool.cc b/runtime/flutter_runner/vulkan_surface_pool.cc
index 89f28fa..575fd32 100644
--- a/runtime/flutter_runner/vulkan_surface_pool.cc
+++ b/runtime/flutter_runner/vulkan_surface_pool.cc
@@ -17,8 +17,8 @@
namespace {
std::string ToString(const SkISize& size) {
- return "{height: " + std::to_string(size.height()) +
- ", width: " + std::to_string(size.width()) + "}";
+ return "{width: " + std::to_string(size.width()) +
+ ", height: " + std::to_string(size.height()) + "}";
}
} // namespace
@@ -110,7 +110,7 @@
void VulkanSurfacePool::SubmitSurface(
std::unique_ptr<flow::SceneUpdateContext::SurfaceProducerSurface>
p_surface) {
- TRACE_EVENT0("flutter", "VulkanSurfacePool::SubmitSurface");
+ TRACE_DURATION("flutter", "VulkanSurfacePool::SubmitSurface");
// This cast is safe because |VulkanSurface| is the only implementation of
// |SurfaceProducerSurface| for Flutter on Fuchsia. Additionally, it is
@@ -137,7 +137,8 @@
std::unique_ptr<VulkanSurface> VulkanSurfacePool::CreateSurface(
const SkISize& size) {
- TRACE_EVENT0("flutter", "VulkanSurfacePool::CreateSurface");
+ TRACE_DURATION("flutter", "VulkanSurfacePool::CreateSurface", "width",
+ size.width(), "height", size.height());
auto surface = std::make_unique<VulkanSurface>(vulkan_provider_, context_,
scenic_session_, size);
if (!surface->IsValid()) {
@@ -174,7 +175,7 @@
}
void VulkanSurfacePool::AgeAndCollectOldBuffers() {
- TRACE_EVENT0("flutter", "VulkanSurfacePool::AgeAndCollectOldBuffers");
+ TRACE_DURATION("flutter", "VulkanSurfacePool::AgeAndCollectOldBuffers");
// Remove all surfaces that are no longer valid or are too old.
available_surfaces_.erase(
diff --git a/runtime/flutter_runner/vulkan_surface_producer.cc b/runtime/flutter_runner/vulkan_surface_producer.cc
index ab1fb94..46e3c33 100644
--- a/runtime/flutter_runner/vulkan_surface_producer.cc
+++ b/runtime/flutter_runner/vulkan_surface_producer.cc
@@ -23,7 +23,7 @@
constexpr int kGrCacheMaxCount = 8192;
constexpr size_t kGrCacheMaxByteSize = 8 * (1 << 20);
-}
+} // namespace
VulkanSurfaceProducer::VulkanSurfaceProducer(scenic::Session* scenic_session) {
valid_ = Initialize(scenic_session);
@@ -51,9 +51,8 @@
VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME,
};
application_ = std::make_unique<vulkan::VulkanApplication>(
- *vk_, "FlutterRunner", std::move(extensions),
- VK_MAKE_VERSION(1,0,0),
- VK_MAKE_VERSION(1,1,0));
+ *vk_, "FlutterRunner", std::move(extensions), VK_MAKE_VERSION(1, 0, 0),
+ VK_MAKE_VERSION(1, 1, 0));
if (!application_->IsValid() || !vk_->AreInstanceProcsSetup()) {
// Make certain the application instance was created and it setup the
@@ -125,11 +124,11 @@
std::vector<
std::unique_ptr<flow::SceneUpdateContext::SurfaceProducerSurface>>
surfaces) {
- TRACE_EVENT0("flutter", "VulkanSurfaceProducer::OnSurfacesPresented");
+ TRACE_DURATION("flutter", "VulkanSurfaceProducer::OnSurfacesPresented");
// Do a single flush for all canvases derived from the context.
{
- TRACE_EVENT0("flutter", "GrContext::flushAndSignalSemaphores");
+ TRACE_DURATION("flutter", "GrContext::flushAndSignalSemaphores");
context_->flush();
}