[go: nahoru, domu]

Add UMA Histograms To Track Partial Raster Success

This adds .Gpu and .OneCopy versions of the following metric.

Renderer4.PartialRasterPercentageSaved - the percentage of pixels saved
by partial raster for raster playback.

CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1954583003
Cr-Commit-Position: refs/heads/master@{#403009}
diff --git a/cc/raster/gpu_raster_buffer_provider.cc b/cc/raster/gpu_raster_buffer_provider.cc
index 12fb55a1..120b887 100644
--- a/cc/raster/gpu_raster_buffer_provider.cc
+++ b/cc/raster/gpu_raster_buffer_provider.cc
@@ -10,6 +10,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
+#include "base/metrics/histogram_macros.h"
 #include "base/trace_event/trace_event.h"
 #include "cc/playback/raster_source.h"
 #include "cc/raster/scoped_gpu_raster.h"
@@ -41,6 +42,18 @@
   DCHECK(!playback_rect.IsEmpty())
       << "Why are we rastering a tile that's not dirty?";
 
+  // Log a histogram of the percentage of pixels that were saved due to
+  // partial raster.
+  float full_rect_size = raster_full_rect.size().GetArea();
+  if (full_rect_size > 0) {
+    float fraction_partial_rastered =
+        static_cast<float>(playback_rect.size().GetArea()) / full_rect_size;
+    float fraction_saved = 1.0f - fraction_partial_rastered;
+
+    UMA_HISTOGRAM_PERCENTAGE("Renderer4.PartialRasterPercentageSaved.Gpu",
+                             100.0f * fraction_saved);
+  }
+
   // Play back raster_source into temp SkPicture.
   SkPictureRecorder recorder;
   const int flags = SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag;