Commit 47206510 authored by Sadrul Habib Chowdhury's avatar Sadrul Habib Chowdhury Committed by Commit Bot

cc/viz: Add some more trace events.

. Add a 'NeedsBeginFrames' async-event to show the duration of a
  client's request for begin-frames.
. Add a flow-event for 'did not produce' frames.
. Add a trace-event for when a client is throttled (and include
  the reason for throttling).

BUG=none

Change-Id: I65e601b54a683bef54142b98f6faf037cc22308e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2125618
Commit-Queue: Behdad Bakhshinategh <behdadb@chromium.org>
Reviewed-by: default avatarBehdad Bakhshinategh <behdadb@chromium.org>
Auto-Submit: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754980}
parent 877f46a8
...@@ -252,6 +252,10 @@ void AsyncLayerTreeFrameSink::DidNotProduceFrame( ...@@ -252,6 +252,10 @@ void AsyncLayerTreeFrameSink::DidNotProduceFrame(
// BeginFrames. https://crbug.com/881949 // BeginFrames. https://crbug.com/881949
auto it = pipeline_reporting_frame_times_.find(ack.trace_id); auto it = pipeline_reporting_frame_times_.find(ack.trace_id);
if (it != pipeline_reporting_frame_times_.end()) { if (it != pipeline_reporting_frame_times_.end()) {
TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline",
TRACE_ID_GLOBAL(ack.trace_id),
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
"step", "DidNotProduceFrame");
compositor_frame_sink_ptr_->DidNotProduceFrame(ack); compositor_frame_sink_ptr_->DidNotProduceFrame(ack);
pipeline_reporting_frame_times_.erase(it); pipeline_reporting_frame_times_.erase(it);
} }
...@@ -335,6 +339,13 @@ void AsyncLayerTreeFrameSink::ReclaimResources( ...@@ -335,6 +339,13 @@ void AsyncLayerTreeFrameSink::ReclaimResources(
void AsyncLayerTreeFrameSink::OnNeedsBeginFrames(bool needs_begin_frames) { void AsyncLayerTreeFrameSink::OnNeedsBeginFrames(bool needs_begin_frames) {
DCHECK(compositor_frame_sink_ptr_); DCHECK(compositor_frame_sink_ptr_);
if (needs_begin_frames_ != needs_begin_frames) {
if (needs_begin_frames_) {
TRACE_EVENT_ASYNC_END0("cc,benchmark", "NeedsBeginFrames", this);
} else {
TRACE_EVENT_ASYNC_BEGIN0("cc,benchmark", "NeedsBeginFrames", this);
}
}
needs_begin_frames_ = needs_begin_frames; needs_begin_frames_ = needs_begin_frames;
compositor_frame_sink_ptr_->SetNeedsBeginFrame(needs_begin_frames); compositor_frame_sink_ptr_->SetNeedsBeginFrame(needs_begin_frames);
} }
......
...@@ -41,6 +41,7 @@ enum class SendBeginFrameResult { ...@@ -41,6 +41,7 @@ enum class SendBeginFrameResult {
}; };
void RecordShouldSendBeginFrame(SendBeginFrameResult result) { void RecordShouldSendBeginFrame(SendBeginFrameResult result) {
TRACE_EVENT1("viz", "ShouldNotSendBeginFrame", "reason", result);
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION(
"Compositing.CompositorFrameSinkSupport.ShouldSendBeginFrame", result); "Compositing.CompositorFrameSinkSupport.ShouldSendBeginFrame", result);
} }
...@@ -323,9 +324,10 @@ bool CompositorFrameSinkSupport::IsRoot() const { ...@@ -323,9 +324,10 @@ bool CompositorFrameSinkSupport::IsRoot() const {
} }
void CompositorFrameSinkSupport::DidNotProduceFrame(const BeginFrameAck& ack) { void CompositorFrameSinkSupport::DidNotProduceFrame(const BeginFrameAck& ack) {
TRACE_EVENT2("viz", "CompositorFrameSinkSupport::DidNotProduceFrame", TRACE_EVENT_WITH_FLOW2(
"ack.source_id", ack.frame_id.source_id, "ack.sequence_number", "viz,benchmark", "Graphics.Pipeline", TRACE_ID_GLOBAL(ack.trace_id),
ack.frame_id.sequence_number); TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, "step",
"DidNotProduceFrame", "FrameSinkId", frame_sink_id_.ToString());
DCHECK(ack.frame_id.IsSequenceValid()); DCHECK(ack.frame_id.IsSequenceValid());
begin_frame_tracker_.ReceivedAck(ack); begin_frame_tracker_.ReceivedAck(ack);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment