summaryrefslogtreecommitdiff
path: root/libs/hwui/FrameMetricsObserver.h
diff options
context:
space:
mode:
authorSiarhei Vishniakou <svv@google.com>2021-02-26 00:15:04 +0000
committerSiarhei Vishniakou <svv@google.com>2021-03-05 21:42:32 +0000
commitf0cf18d3ed1c993cfd70bafc6867782d80cc24cc (patch)
tree99d87e66cfad4485f9eea001d4f87e5c5590e239 /libs/hwui/FrameMetricsObserver.h
parent7102d06f9e912a89960459a58d82bd4821a65a4c (diff)
Pass actual present time to ViewRootImpl
To measure end-to-end touch latency, we need to report the actual present time to ViewRootImpl. ViewRootImpl, in turn, will report this information to InputDispatcher. Finally, InputDispatcher will combine all known information for a specific input event, and will report this data to westworld. In another patch, we will add a new call, 'reportLatencyInfo', to InputPublisher. This call will allow the app to send this latency data to InputDispatcher. Bug: 169866723 Test: printed the input event present times inside ViewRootImpl Change-Id: Ibd3a2cfeb1a340eb15cd2165071df1f8589634af
Diffstat (limited to 'libs/hwui/FrameMetricsObserver.h')
-rw-r--r--libs/hwui/FrameMetricsObserver.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/libs/hwui/FrameMetricsObserver.h b/libs/hwui/FrameMetricsObserver.h
index b93f07853242..ef1f5aabcbd8 100644
--- a/libs/hwui/FrameMetricsObserver.h
+++ b/libs/hwui/FrameMetricsObserver.h
@@ -24,6 +24,24 @@ namespace uirenderer {
class FrameMetricsObserver : public VirtualLightRefBase {
public:
virtual void notify(const int64_t* buffer) = 0;
+ bool waitForPresentTime() const { return mWaitForPresentTime; };
+
+ /**
+ * Create a new metrics observer. An observer that watches present time gets notified at a
+ * different time than the observer that doesn't.
+ *
+ * The observer that doesn't want present time is notified about metrics just after the frame
+ * is completed. This is the default behaviour that's used by public API's.
+ *
+ * An observer that watches present time is notified about metrics after the actual display
+ * present time is known.
+ * WARNING! This observer may not receive metrics for the last several frames that the app
+ * produces.
+ */
+ FrameMetricsObserver(bool waitForPresentTime) : mWaitForPresentTime(waitForPresentTime) {}
+
+private:
+ const bool mWaitForPresentTime;
};
} // namespace uirenderer