diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/cc/metrics/frame_sequence_metrics.h | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/cc/metrics/frame_sequence_metrics.h')
-rw-r--r-- | chromium/cc/metrics/frame_sequence_metrics.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/chromium/cc/metrics/frame_sequence_metrics.h b/chromium/cc/metrics/frame_sequence_metrics.h index 0417899c3a9..3a77fc57775 100644 --- a/chromium/cc/metrics/frame_sequence_metrics.h +++ b/chromium/cc/metrics/frame_sequence_metrics.h @@ -5,6 +5,8 @@ #ifndef CC_METRICS_FRAME_SEQUENCE_METRICS_H_ #define CC_METRICS_FRAME_SEQUENCE_METRICS_H_ +#include <memory> + #include "base/callback.h" #include "base/optional.h" #include "base/trace_event/traced_value.h" @@ -44,7 +46,8 @@ class CC_EXPORT FrameSequenceMetrics { struct ThroughputData { static std::unique_ptr<base::trace_event::TracedValue> ToTracedValue( const ThroughputData& impl, - const ThroughputData& main); + const ThroughputData& main, + ThreadType effective_thred); // Returns the throughput in percent, a return value of base::nullopt // indicates that no throughput metric is reported. @@ -62,6 +65,13 @@ class CC_EXPORT FrameSequenceMetrics { #endif } + int DroppedFramePercent() const { + if (frames_expected == 0) + return 0; + return std::ceil(100 * (frames_expected - frames_produced) / + static_cast<double>(frames_expected)); + } + // Tracks the number of frames that were expected to be shown during this // frame-sequence. uint32_t frames_expected = 0; @@ -113,10 +123,31 @@ class CC_EXPORT FrameSequenceMetrics { return throughput_ukm_reporter_; } + // Must be called before destructor. + void ReportLeftoverData(); + + void AdoptTrace(FrameSequenceMetrics* adopt_from); + void AdvanceTrace(base::TimeTicks timestamp); + private: void ComputeAggregatedThroughput(); + const FrameSequenceTrackerType type_; + // Tracks some data to generate useful trace events. + struct TraceData { + explicit TraceData(FrameSequenceMetrics* metrics); + ~TraceData(); + FrameSequenceMetrics* metrics; + base::TimeTicks last_timestamp = base::TimeTicks::Now(); + int frame_count = 0; + bool enabled = false; + void* trace_id = nullptr; + + void Advance(base::TimeTicks new_timestamp); + void Terminate(); + } trace_data_{this}; + // Pointer to the reporter owned by the FrameSequenceTrackerCollection. ThroughputUkmReporter* const throughput_ukm_reporter_; |