Fix condition for waiting next frame
mNextFrameNumber is initiallized to 1. If we want to wait
for the first frame to be drawn, one would expect to call mSurface.waitForNextFrame(0 /* lastFrame */),
but since mNextFrameNumber is always greater then lastFrame, the method
never waits.
Test: N/A
Bug: 376248818
Bug: 376828703
Flag: EXEMPT bug fix
Change-Id: I8804479bad8102a441a95951ac27c1cc0711d7b0
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index 66e7ddd..e41f9bb 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -2735,8 +2735,8 @@
bool Surface::waitForNextFrame(uint64_t lastFrame, nsecs_t timeout) {
Mutex::Autolock lock(mMutex);
- if (mNextFrameNumber > lastFrame) {
- return true;
+ if (mLastFrameNumber > lastFrame) {
+ return true;
}
return mQueueBufferCondition.waitRelative(mMutex, timeout) == OK;
}