sp<GraphicBuffer> BufferLayerConsumer::getCurrentBuffer(int* outSlot, sp<Fence>* outFence) const {
    Mutex::Autolock lock(mMutex);

    if (outSlot != nullptr) {
        *outSlot = mCurrentTexture;
    }

    if (outFence != nullptr) {
        *outFence = mCurrentFence;
    }

    return mCurrentTextureBuffer == nullptr ? nullptr : mCurrentTextureBuffer->graphicBuffer();
}

实现很简单,把 mCurrentTexturemCurrentFence 赋值给 outSlotoutFence,如果 mCurrentTextureBuffer 是非空,则返回 mCurrentTextureBuffer->graphicBuffer()

它们是在 BufferLayerConsumer::updateAndReleaseLocked() 中更新的,其实就是从 BufferQueueConsumer::acquireBuffer() 返回的 buffer 信息。