diff options
Diffstat (limited to 'libs/gui/BufferQueueProducer.cpp')
| -rw-r--r-- | libs/gui/BufferQueueProducer.cpp | 16 | 
1 files changed, 8 insertions, 8 deletions
| diff --git a/libs/gui/BufferQueueProducer.cpp b/libs/gui/BufferQueueProducer.cpp index c96a2dd6a3..9d7f14cb6e 100644 --- a/libs/gui/BufferQueueProducer.cpp +++ b/libs/gui/BufferQueueProducer.cpp @@ -989,14 +989,6 @@ status_t BufferQueueProducer::queueBuffer(int slot,          mCallbackCondition.broadcast();      } -    // Wait without lock held -    if (connectedApi == 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. -        lastQueuedFence->waitForever("Throttling EGL Production"); -    } -      // Update and get FrameEventHistory.      nsecs_t postedTime = systemTime(SYSTEM_TIME_MONOTONIC);      NewFrameEventsEntry newFrameEventsEntry = { @@ -1008,6 +1000,14 @@ status_t BufferQueueProducer::queueBuffer(int slot,      addAndGetFrameTimestamps(&newFrameEventsEntry,              getFrameTimestamps ? &output->frameTimestamps : nullptr); +    // Wait without lock held +    if (connectedApi == 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. +        lastQueuedFence->waitForever("Throttling EGL Production"); +    } +      return NO_ERROR;  } |