summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/BufferQueueLayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/BufferQueueLayer.cpp')
-rw-r--r--services/surfaceflinger/BufferQueueLayer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp
index 56d874258e..e8e31db236 100644
--- a/services/surfaceflinger/BufferQueueLayer.cpp
+++ b/services/surfaceflinger/BufferQueueLayer.cpp
@@ -222,6 +222,21 @@ bool BufferQueueLayer::hasFrameUpdate() const {
return mQueuedFrames > 0;
}
+nsecs_t BufferQueueLayer::nextPredictedPresentTime() const {
+ Mutex::Autolock lock(mQueueItemLock);
+ if (mQueueItems.empty()) {
+ return 0;
+ }
+
+ const auto& bufferData = mQueueItems[0];
+
+ if (!bufferData.item.mIsAutoTimestamp || !bufferData.surfaceFrame) {
+ return 0;
+ }
+
+ return bufferData.surfaceFrame->getPredictions().presentTime;
+}
+
status_t BufferQueueLayer::updateTexImage(bool& recomputeVisibleRegions, nsecs_t latchTime,
nsecs_t expectedPresentTime) {
// This boolean is used to make sure that SurfaceFlinger's shadow copy