From 0c9ce8436b65a98fec33b3f92bc1acf4481decec Mon Sep 17 00:00:00 2001 From: Carlos Martinez Romero Date: Fri, 17 Jan 2025 09:50:07 -0800 Subject: Add addReleaseFence API to ConsumerBase. This API is used by classes that inherited from ConsumerBase. With the refactor to have an instance intead of inheriting from it this change makes the migration simpler. Although we might remove it later on. More information at go/warren-buffers. Bug: 342197847 Test: build and run Flag: EXEMPT - no behavior change Change-Id: I99da5b1bafae5b0042f8ac1ba5533ca6e5000fe6 --- libs/gui/ConsumerBase.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'libs/gui/ConsumerBase.cpp') diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index 3ad0e529a5..67de742161 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -385,6 +385,26 @@ status_t ConsumerBase::detachBuffer(const sp& buffer) { } #endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_PLATFORM_API_IMPROVEMENTS) +status_t ConsumerBase::addReleaseFence(const sp buffer, const sp& fence) { + CB_LOGV("addReleaseFence"); + Mutex::Autolock lock(mMutex); + + if (mAbandoned) { + CB_LOGE("addReleaseFence: ConsumerBase is abandoned!"); + return NO_INIT; + } + if (buffer == nullptr) { + return BAD_VALUE; + } + + int slotIndex = getSlotForBufferLocked(buffer); + if (slotIndex == BufferQueue::INVALID_BUFFER_SLOT) { + return BAD_VALUE; + } + + return addReleaseFenceLocked(slotIndex, buffer, fence); +} + status_t ConsumerBase::setDefaultBufferSize(uint32_t width, uint32_t height) { Mutex::Autolock _l(mMutex); if (mAbandoned) { -- cgit v1.2.3-59-g8ed1b