Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: tools/telemetry/telemetry/web_perf/metrics/smoothness.py

Issue 1033733010: Adding checkerboard measurements to telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Using a single enum string instead of separate ones. Improving readability. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/web_perf/metrics/smoothness.py
diff --git a/tools/telemetry/telemetry/web_perf/metrics/smoothness.py b/tools/telemetry/telemetry/web_perf/metrics/smoothness.py
index f63fea8bed3b45ec5c6ceaab2248f226f85c7e76..2e34b603938dd89a7d9c063f9b1f1714f5f43a94 100644
--- a/tools/telemetry/telemetry/web_perf/metrics/smoothness.py
+++ b/tools/telemetry/telemetry/web_perf/metrics/smoothness.py
@@ -61,7 +61,8 @@ class SmoothnessMetric(timeline_based_metric.TimelineBasedMetric):
values = [
self._ComputeQueueingDuration(page, stats),
self._ComputeFrameTimeDiscrepancy(page, stats),
- self._ComputeMeanPixelsApproximated(page, stats)
+ self._ComputeMeanPixelsApproximated(page, stats),
+ self._ComputeMeanPixelsCheckerboarded(page, stats)
]
values += self._ComputeLatencyMetric(page, stats, 'input_event_latency',
stats.input_event_latency)
@@ -286,3 +287,27 @@ class SmoothnessMetric(timeline_based_metric.TimelineBasedMetric):
description='Percentage of pixels that were approximated '
'(checkerboarding, low-resolution tiles, etc.).',
none_value_reason=none_value_reason)
+
+ def _ComputeMeanPixelsCheckerboarded(self, page, stats):
+ """Add the mean percentage of pixels checkerboarded.
+
+ This looks at tiles which are only missing.
+ It does not take into consideration tiles which are of low or
+ non-ideal resolution.
+ """
+ mean_pixels_checkerboarded = None
+ none_value_reason = None
+ if self._HasEnoughFrames(stats.frame_timestamps):
+ if rendering_stats.CHECKERBOARDED_PIXEL_ERROR in stats.errors:
+ none_value_reason = stats.errors[
+ rendering_stats.CHECKERBOARDED_PIXEL_ERROR]
+ else:
+ mean_pixels_checkerboarded = round(statistics.ArithmeticMean(
+ FlattenList(stats.checkerboarded_pixel_percentages)), 3)
+ else:
+ none_value_reason = NOT_ENOUGH_FRAMES_MESSAGE
+ return scalar.ScalarValue(
+ page, 'mean_pixels_checkerboarded', 'percent',
+ mean_pixels_checkerboarded,
+ description='Percentage of pixels that were checkerboarded.',
+ none_value_reason=none_value_reason)

Powered by Google App Engine
This is Rietveld 408576698