diff options
author | Dan Stoza <stoza@google.com> | 2015-12-08 17:05:25 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-12-08 17:05:25 +0000 |
commit | 789ede379d2f19ce284866c72bcaad7e8255b1cc (patch) | |
tree | 9958f29687283229142a60bb7bff42d39c6b53c0 | |
parent | 18ff6557667f3d130ad1f83e04f3b175f8b8cf6d (diff) | |
parent | 82fbb121763e16dcf58fb2a3e65d2f93543d9078 (diff) | |
download | native-789ede379d2f19ce284866c72bcaad7e8255b1cc.tar.gz |
Merge "Fix the execution point of onFrameAvailable/onFrameReplaced callbacks"
-rw-r--r-- | libs/gui/BufferQueueProducer.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp index 87e5b4d279..a941e2d29a 100644 --- a/libs/gui/BufferQueueProducer.cpp +++ b/libs/gui/BufferQueueProducer.cpp @@ -696,15 +696,6 @@ status_t BufferQueueProducer::queueBuffer(int slot, mCore->validateConsistencyLocked(); } // Autolock scope - // Wait without lock held - if (mCore->mConnectedApi == NATIVE_WINDOW_API_EGL) { - // Waiting here allows for two full buffers to be queued but not a - // third. In the event that frames take varying time, this makes a - // small trade-off in favor of latency rather than throughput. - mLastQueueBufferFence->waitForever("Throttling EGL Production"); - mLastQueueBufferFence = fence; - } - // Don't send the GraphicBuffer through the callback, and don't send // the slot number, since the consumer shouldn't need it item.mGraphicBuffer.clear(); @@ -728,6 +719,15 @@ status_t BufferQueueProducer::queueBuffer(int slot, mCallbackCondition.broadcast(); } + // Wait without lock held + if (mCore->mConnectedApi == NATIVE_WINDOW_API_EGL) { + // Waiting here allows for two full buffers to be queued but not a + // third. In the event that frames take varying time, this makes a + // small trade-off in favor of latency rather than throughput. + mLastQueueBufferFence->waitForever("Throttling EGL Production"); + mLastQueueBufferFence = fence; + } + return NO_ERROR; } |