Typify(protify) Graphics.Pipeline trace events.
Bug: b/292050130
Change-Id: I1f0d8dffc97418e5220ff1c34d3c7875fe2d4d7c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4717486
Reviewed-by: Stephen Nusko <nuskos@chromium.org>
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Commit-Queue: Aman Verma <amanvr@google.com>
Cr-Commit-Position: refs/heads/main@{#1177374}
diff --git a/cc/slim/frame_sink_impl.cc b/cc/slim/frame_sink_impl.cc
index c74744e..50b0254 100644
--- a/cc/slim/frame_sink_impl.cc
+++ b/cc/slim/frame_sink_impl.cc
@@ -13,6 +13,7 @@
#include "base/functional/bind.h"
#include "base/threading/platform_thread.h"
#include "base/trace_event/trace_event.h"
+#include "base/trace_event/typed_macros.h"
#include "build/build_config.h"
#include "cc/slim/constants.h"
#include "cc/slim/delayed_scheduler.h"
@@ -311,10 +312,15 @@
}
{
- TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline",
- TRACE_ID_GLOBAL(begin_frame_args.trace_id),
- TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
- "step", "SubmitCompositorFrame");
+ TRACE_EVENT(
+ "viz,benchmark", "Graphics.Pipeline",
+ perfetto::Flow::Global(begin_frame_args.trace_id),
+ [&](perfetto::EventContext ctx) {
+ auto* event = ctx.event<perfetto::protos::pbzero::ChromeTrackEvent>();
+ auto* data = event->set_chrome_graphics_pipeline();
+ data->set_step(perfetto::protos::pbzero::ChromeGraphicsPipeline::
+ StepName::STEP_SUBMIT_COMPOSITOR_FRAME);
+ });
frame_sink_->SubmitCompositorFrame(
local_surface_id_, std::move(frame),
send_new_hit_test_region_list ? hit_test_region_list_ : absl::nullopt,
@@ -330,10 +336,15 @@
void FrameSinkImpl::SendDidNotProduceFrame(
const viz::BeginFrameArgs& begin_frame_args) {
- TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline",
- TRACE_ID_GLOBAL(begin_frame_args.trace_id),
- TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
- "step", "DidNotProduceFrame");
+ TRACE_EVENT(
+ "viz,benchmark", "Graphics.Pipeline",
+ perfetto::Flow::Global(begin_frame_args.trace_id),
+ [&](perfetto::EventContext ctx) {
+ auto* event = ctx.event<perfetto::protos::pbzero::ChromeTrackEvent>();
+ auto* data = event->set_chrome_graphics_pipeline();
+ data->set_step(perfetto::protos::pbzero::ChromeGraphicsPipeline::
+ StepName::STEP_DID_NOT_PRODUCE_FRAME);
+ });
frame_sink_->DidNotProduceFrame(viz::BeginFrameAck(begin_frame_args, false));
}