Commit 62b16000 authored by Yi Xu's avatar Yi Xu Committed by Commit Bot

Remove implementation for obsoleted metrics

Metrics Compositing.Display.Draw.Occlusion.Drawing.Area.Saved2.* and
Compositing.Display.Draw.Occlusion.Percentage.Saved.* are expired after
M77. Remove the implementation in display.cc.

Bug: 995633, 993176, 960184
Change-Id: Id1658ecfad7518f7b36fbb599191c422d0de96c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1900351Reviewed-by: default avatardanakj <danakj@chromium.org>
Commit-Queue: Yi Xu <yiyix@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713079}
parent 33f41173
......@@ -9,12 +9,10 @@
#include "base/debug/dump_without_crashing.h"
#include "base/metrics/histogram_macros.h"
#include "base/numerics/checked_math.h"
#include "base/optional.h"
#include "base/timer/elapsed_timer.h"
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
#include "cc/base/math_util.h"
#include "cc/base/simple_enclosed_region.h"
#include "cc/benchmarks/benchmark_instrumentation.h"
#include "components/viz/common/display/renderer_settings.h"
......@@ -863,39 +861,22 @@ void Display::RemoveOverdrawQuads(CompositorFrame* frame) {
int minimum_draw_occlusion_width =
settings_.kMinimumDrawOcclusionSize.width() * device_scale_factor_;
// Total quad area to be drawn on screen before applying draw occlusion.
base::CheckedNumeric<uint64_t> total_quad_area_shown_wo_occlusion_px = 0;
// Total area not draw skipped by draw occlusion.
base::CheckedNumeric<uint64_t> total_area_saved_in_px = 0;
for (const auto& pass : frame->render_pass_list) {
// TODO(yiyix): Add filter effects to draw occlusion calculation and perform
// draw occlusion on render pass.
if (!pass->filters.IsEmpty() || !pass->backdrop_filters.IsEmpty()) {
for (auto* const quad : pass->quad_list) {
total_quad_area_shown_wo_occlusion_px +=
quad->visible_rect.size().GetCheckedArea();
}
continue;
}
// TODO(yiyix): Perform draw occlusion inside the render pass with
// transparent background.
if (pass != frame->render_pass_list.back()) {
for (auto* const quad : pass->quad_list) {
total_quad_area_shown_wo_occlusion_px +=
quad->visible_rect.size().GetCheckedArea();
}
continue;
}
auto quad_list_end = pass->quad_list.end();
gfx::Rect occlusion_in_quad_content_space;
for (auto quad = pass->quad_list.begin(); quad != quad_list_end;) {
total_quad_area_shown_wo_occlusion_px +=
quad->visible_rect.size().GetCheckedArea();
// Skip quad if it is a RenderPassDrawQuad because RenderPassDrawQuad is a
// special type of DrawQuad where the visible_rect of shared quad state is
// not entirely covered by draw quads in it; or the DrawQuad size is
......@@ -983,7 +964,6 @@ void Display::RemoveOverdrawQuads(CompositorFrame* frame) {
// Case 1: for simple transforms (scale or translation), define the
// occlusion region in the quad content space. If the |quad| is not
// shown on the screen, then remove |quad| from the compositor frame.
total_area_saved_in_px += quad->visible_rect.size().GetCheckedArea();
quad = pass->quad_list.EraseAndInvalidateAllPointers(quad);
} else if (occlusion_in_quad_content_space.Intersects(
......@@ -995,7 +975,6 @@ void Display::RemoveOverdrawQuads(CompositorFrame* frame) {
quad->visible_rect.Subtract(occlusion_in_quad_content_space);
if (origin_rect != quad->visible_rect) {
origin_rect.Subtract(quad->visible_rect);
total_area_saved_in_px += origin_rect.size().GetCheckedArea();
}
++quad;
} else if (occlusion_in_quad_content_space.IsEmpty() &&
......@@ -1005,26 +984,12 @@ void Display::RemoveOverdrawQuads(CompositorFrame* frame) {
// Case 3: for non simple transforms, define the occlusion region in
// target space. If the |quad| is not shown on the screen, then remove
// |quad| from the compositor frame.
total_area_saved_in_px += quad->visible_rect.size().GetCheckedArea();
quad = pass->quad_list.EraseAndInvalidateAllPointers(quad);
} else {
++quad;
}
}
}
UMA_HISTOGRAM_PERCENTAGE(
"Compositing.Display.Draw.Occlusion.Percentage.Saved",
total_quad_area_shown_wo_occlusion_px.ValueOrDefault(0) == 0
? 0
: static_cast<uint64_t>(total_area_saved_in_px.ValueOrDie()) * 100 /
static_cast<uint64_t>(
total_quad_area_shown_wo_occlusion_px.ValueOrDie()));
UMA_HISTOGRAM_COUNTS_1M(
"Compositing.Display.Draw.Occlusion.Drawing.Area.Saved2",
static_cast<uint64_t>(total_area_saved_in_px.ValueOrDefault(
std::numeric_limits<uint64_t>::max())));
}
void Display::RunDrawCallbacks() {
......
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