Commit 47ab064e authored by Joao Victor Almeida's avatar Joao Victor Almeida Committed by Commit Bot

Split AddLatencyInFrame into 2 methods.

AverageLagTracker::AddLatencyInFrame is already logically splited
(most part of its body is inside an if/else body) into 2 cases:
ScrollBegin and ScrollUpdate. This CL aims to create a method
for each case so AddLatencyInFrame is leaner and simpler to read.

Also, as this class in being refactored at
https://chromium-review.googlesource.com/c/chromium/src/+/2189633
this simple refactor will reduce the amount of noise created by
CL #2189633.


Bug: 1079024, 1079028
Change-Id: I7c9d2567ac3a875ca4c03b33d77a7a169bbb6375
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2216707Reviewed-by: default avatarDavid Bokan <bokan@chromium.org>
Reviewed-by: default avatarNavid Zolghadr <nzolghadr@chromium.org>
Reviewed-by: default avatarDaniel Libby <dlibby@microsoft.com>
Commit-Queue: João Victor Almeida de Aguiar <joalmei@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#774708}
parent 16d7a33f
...@@ -26,6 +26,20 @@ void AverageLagTracker::AddLatencyInFrame( ...@@ -26,6 +26,20 @@ void AverageLagTracker::AddLatencyInFrame(
return; return;
if (scroll_name == "ScrollBegin") { if (scroll_name == "ScrollBegin") {
AddScrollBeginInFrame(gpu_swap_begin_timestamp, event_timestamp);
} else if (scroll_name == "ScrollUpdate" &&
!last_event_timestamp_.is_null()) {
AddScrollUpdateInFrame(latency, gpu_swap_begin_timestamp, event_timestamp);
}
last_event_timestamp_ = event_timestamp;
last_event_accumulated_delta_ += latency.scroll_update_delta();
last_rendered_accumulated_delta_ += latency.predicted_scroll_update_delta();
}
void AverageLagTracker::AddScrollBeginInFrame(
base::TimeTicks gpu_swap_begin_timestamp,
base::TimeTicks event_timestamp) {
// Flush all unfinished frames. // Flush all unfinished frames.
while (!frame_lag_infos_.empty()) { while (!frame_lag_infos_.empty()) {
frame_lag_infos_.front().lag_area += LagForUnfinishedFrame( frame_lag_infos_.front().lag_area += LagForUnfinishedFrame(
...@@ -49,8 +63,12 @@ void AverageLagTracker::AddLatencyInFrame( ...@@ -49,8 +63,12 @@ void AverageLagTracker::AddLatencyInFrame(
last_event_accumulated_delta_ = 0; last_event_accumulated_delta_ = 0;
last_rendered_accumulated_delta_ = 0; last_rendered_accumulated_delta_ = 0;
is_begin_ = true; is_begin_ = true;
} else if (scroll_name == "ScrollUpdate" && }
!last_event_timestamp_.is_null()) {
void AverageLagTracker::AddScrollUpdateInFrame(
const LatencyInfo& latency,
base::TimeTicks gpu_swap_begin_timestamp,
base::TimeTicks event_timestamp) {
// Only accept events in nondecreasing order. // Only accept events in nondecreasing order.
if ((event_timestamp - last_event_timestamp_).InMilliseconds() < 0) if ((event_timestamp - last_event_timestamp_).InMilliseconds() < 0)
return; return;
...@@ -98,11 +116,6 @@ void AverageLagTracker::AddLatencyInFrame( ...@@ -98,11 +116,6 @@ void AverageLagTracker::AddLatencyInFrame(
front_time, back_time, latency, event_timestamp, front_time, back_time, latency, event_timestamp,
frame_lag_infos_.front().rendered_accumulated_delta_no_prediction); frame_lag_infos_.front().rendered_accumulated_delta_no_prediction);
} }
}
last_event_timestamp_ = event_timestamp;
last_event_accumulated_delta_ += latency.scroll_update_delta();
last_rendered_accumulated_delta_ += latency.predicted_scroll_update_delta();
} }
float AverageLagTracker::LagBetween(base::TimeTicks front_time, float AverageLagTracker::LagBetween(base::TimeTicks front_time,
......
...@@ -50,6 +50,12 @@ class AverageLagTracker { ...@@ -50,6 +50,12 @@ class AverageLagTracker {
float lag_area_no_prediction; float lag_area_no_prediction;
} LagAreaInFrame; } LagAreaInFrame;
void AddScrollBeginInFrame(base::TimeTicks gpu_swap_begin_timestamp,
base::TimeTicks event_timestamp);
void AddScrollUpdateInFrame(const LatencyInfo& latency,
base::TimeTicks gpu_swap_begin_timestamp,
base::TimeTicks event_timestamp);
// Calculate lag in 1 seconds intervals and report UMA. // Calculate lag in 1 seconds intervals and report UMA.
void CalculateAndReportAverageLagUma(bool send_anyway = false); void CalculateAndReportAverageLagUma(bool send_anyway = false);
......
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