diff options
author | 2016-09-21 16:53:28 -0700 | |
---|---|---|
committer | 2016-11-17 11:46:20 -0800 | |
commit | 221de2a33d456738f7f64db0b015a960211d4834 (patch) | |
tree | 0ad10e90d9193386452ee568eafba8bbc3735481 /include/ui/Fence.h | |
parent | 7c3ba8aa288755fad78ddbabcee0ad5a0610ac1c (diff) |
Add Fence helpers: Time, Timeline, Snapshot
FenceTime will be used to:
1) Cache and share the result of a Fence's getSignalTime with
all clients that care about it, instead of requiring a
syscall for each client.
2) Allow tests to override the valid state and signalTimes of
the underlying fence by acting as a shim.
FenceTimeline will be used to efficiently get the signal
times of Fences without having query for Fences that
likely haven't signaled.
FenceTime::Snapshot is a stable copy of a FenceTime that
can be used for serialization since it doesn't change
while flattening.
Test: adb shell /data/nativetest/libgui_test/libgui_test
--gtest_filter=*GetFrameTimestamps*
Change-Id: I9a28df7ce797311dc4d56b1147edf590e9de1517
Diffstat (limited to 'include/ui/Fence.h')
-rw-r--r-- | include/ui/Fence.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/ui/Fence.h b/include/ui/Fence.h index 1df15f897c..99b39d8423 100644 --- a/include/ui/Fence.h +++ b/include/ui/Fence.h @@ -42,6 +42,11 @@ class Fence { public: static const sp<Fence> NO_FENCE; + static constexpr nsecs_t SIGNAL_TIME_PENDING = INT64_MAX; + static constexpr nsecs_t SIGNAL_TIME_INVALID = -1; + static inline bool isValidTimestamp(nsecs_t time) { + return time >= 0 && time < INT64_MAX; + } // TIMEOUT_NEVER may be passed to the wait method to indicate that it // should wait indefinitely for the fence to signal. @@ -94,8 +99,8 @@ public: // getSignalTime returns the system monotonic clock time at which the // fence transitioned to the signaled state. If the fence is not signaled - // then INT64_MAX is returned. If the fence is invalid or if an error - // occurs then -1 is returned. + // then SIGNAL_TIME_PENDING is returned. If the fence is invalid or if an + // error occurs then SIGNAL_TIME_INVALID is returned. nsecs_t getSignalTime() const; #if __cplusplus > 201103L |