diff --git a/cc/slim/layer_tree_impl.cc b/cc/slim/layer_tree_impl.cc index 706ad53e6a929..1f4d58eb9de55 100644 --- a/cc/slim/layer_tree_impl.cc +++ b/cc/slim/layer_tree_impl.cc @@ -10,9 +10,11 @@ #include "base/auto_reset.h" #include "base/containers/adapters.h" +#include "base/metrics/histogram.h" #include "base/ranges/algorithm.h" #include "base/trace_event/trace_event.h" #include "base/trace_event/typed_macros.h" +#include "cc/base/histograms.h" #include "cc/base/region.h" #include "cc/slim/frame_data.h" #include "cc/slim/frame_sink_impl.h" @@ -546,7 +548,9 @@ void LayerTreeImpl::GenerateCompositorFrame( args.frame_time, frame_data.deadline_in_frames.value_or(0u), args.interval, frame_data.use_default_lower_bound_deadline); + size_t total_quad_count = 0; for (const auto& pass : out_frame.render_pass_list) { + total_quad_count += pass->quad_list.size(); for (const auto* quad : pass->quad_list) { for (viz::ResourceId resource_id : quad->resources) { out_resource_ids.insert(resource_id); @@ -554,6 +558,12 @@ void LayerTreeImpl::GenerateCompositorFrame( } } + if (const char* client_name = GetClientNameForMetrics()) { + UMA_HISTOGRAM_COUNTS_1000( + base::StringPrintf("Compositing.%s.CompositorFrame.Quads", client_name), + total_quad_count); + } + if (!presentation_callback_for_next_frame_.empty() || !success_callback_for_next_frame_.empty()) { pending_presentation_callbacks_.emplace_back(