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

Commit 907e94d3 authored by Pablo Ceballos's avatar Pablo Ceballos Committed by android-build-merger
Browse files

Merge "BQ: Don\'t return fences from dequeue in shared buffer mode" into nyc-dev

am: eb6377eb

* commit 'eb6377eb':
  BQ: Don't return fences from dequeue in shared buffer mode

Change-Id: Ieb075d9598edcaec542ee06663aa292111968474
parents 161a5bac eb6377eb
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -444,14 +444,6 @@ status_t BufferQueueProducer::dequeueBuffer(int *outSlot,

        mSlots[found].mBufferState.dequeue();

        // If shared buffer mode has just been enabled, cache the slot of the
        // first buffer that is dequeued and mark it as the shared buffer.
        if (mCore->mSharedBufferMode && mCore->mSharedBufferSlot ==
                BufferQueueCore::INVALID_BUFFER_SLOT) {
            mCore->mSharedBufferSlot = found;
            mSlots[found].mBufferState.mShared = true;
        }

        if ((buffer == NULL) ||
                buffer->needsReallocation(width, height, format, usage))
        {
@@ -483,9 +475,21 @@ status_t BufferQueueProducer::dequeueBuffer(int *outSlot,

        eglDisplay = mSlots[found].mEglDisplay;
        eglFence = mSlots[found].mEglFence;
        *outFence = mSlots[found].mFence;
        // Don't return a fence in shared buffer mode, except for the first
        // frame.
        *outFence = (mCore->mSharedBufferMode &&
                mCore->mSharedBufferSlot == found) ?
                Fence::NO_FENCE : mSlots[found].mFence;
        mSlots[found].mEglFence = EGL_NO_SYNC_KHR;
        mSlots[found].mFence = Fence::NO_FENCE;

        // If shared buffer mode has just been enabled, cache the slot of the
        // first buffer that is dequeued and mark it as the shared buffer.
        if (mCore->mSharedBufferMode && mCore->mSharedBufferSlot ==
                BufferQueueCore::INVALID_BUFFER_SLOT) {
            mCore->mSharedBufferSlot = found;
            mSlots[found].mBufferState.mShared = true;
        }
    } // Autolock scope

    if (returnFlags & BUFFER_NEEDS_REALLOCATION) {