Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d76538a4 authored by Dan Stoza's avatar Dan Stoza Committed by android-build-merger
Browse files

Merge "Fix the execution point of onFrameAvailable/onFrameReplaced callbacks" am: 789ede37

am: 67322258

* commit '67322258':
  Fix the execution point of onFrameAvailable/onFrameReplaced callbacks
parents 37ee3a75 67322258
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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;
}