From 2e43438757b21add0fd12feaa4a41926aab13c1a Mon Sep 17 00:00:00 2001 From: Adithya Srinivasan Date: Wed, 9 Oct 2019 11:43:01 -0700 Subject: Add tracing for dequeueBuffer, detachBuffer and cancelBuffer The FrameTracer prototype currently doesn't have some of the events traced. This change adds the plumbing required to emit dequeueBuffer, detachBuffer and cancelBuffer. Only the dequeueBuffer is made to emit the event in this CL while enabling detach and cancel to have a place if emitting is required. Test: Build and trace with GAPID and FrameTracer perfetto changes. Bug: 142502670 Change-Id: I2ba90b32d7b309a7c8145f75387c8e6f8f6bd0fb --- libs/gui/ConsumerBase.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'libs/gui/ConsumerBase.cpp') diff --git a/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp index abd9921fa9..9f91d9d3aa 100644 --- a/libs/gui/ConsumerBase.cpp +++ b/libs/gui/ConsumerBase.cpp @@ -101,6 +101,48 @@ void ConsumerBase::freeBufferLocked(int slotIndex) { mSlots[slotIndex].mFrameNumber = 0; } +void ConsumerBase::onFrameDequeued(const uint64_t bufferId) { + CB_LOGV("onFrameDequeued"); + + sp listener; + { + Mutex::Autolock lock(mFrameAvailableMutex); + listener = mFrameAvailableListener.promote(); + } + + if (listener != nullptr) { + listener->onFrameDequeued(bufferId); + } +} + +void ConsumerBase::onFrameCancelled(const uint64_t bufferId) { + CB_LOGV("onFrameCancelled"); + + sp listener; + { + Mutex::Autolock lock(mFrameAvailableMutex); + listener = mFrameAvailableListener.promote(); + } + + if (listener != nullptr) { + listener->onFrameCancelled(bufferId); + } +} + +void ConsumerBase::onFrameDetached(const uint64_t bufferId) { + CB_LOGV("onFrameDetached"); + + sp listener; + { + Mutex::Autolock lock(mFrameAvailableMutex); + listener = mFrameAvailableListener.promote(); + } + + if (listener != nullptr) { + listener->onFrameDetached(bufferId); + } +} + void ConsumerBase::onFrameAvailable(const BufferItem& item) { CB_LOGV("onFrameAvailable"); -- cgit v1.2.3-59-g8ed1b