From b27254154642575dfb4bbfa79fbedde7d7ee23dd Mon Sep 17 00:00:00 2001 From: Jamie Gennis Date: Wed, 5 Sep 2012 20:09:05 -0700 Subject: libgui: move fence handling into ConsumerBase This change moves some common fence handling code into the base class for BufferQueue consumer classes. It also makes the ConsumerBase class initialize a buffer slot's fence with the acquire fence every time a buffer is acquired. Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0 --- include/gui/ConsumerBase.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'include/gui/ConsumerBase.h') diff --git a/include/gui/ConsumerBase.h b/include/gui/ConsumerBase.h index a0ddca8723..68cce5ae76 100644 --- a/include/gui/ConsumerBase.h +++ b/include/gui/ConsumerBase.h @@ -152,7 +152,14 @@ protected: // it is overridden the derived class's implementation must call // ConsumerBase::acquireBufferLocked. virtual status_t releaseBufferLocked(int buf, EGLDisplay display, - EGLSyncKHR eglFence, const sp& fence); + EGLSyncKHR eglFence); + + // addReleaseFence adds the sync points associated with a fence to the set + // of sync points that must be reached before the buffer in the given slot + // may be used after the slot has been released. This should be called by + // derived classes each time some asynchronous work is kicked off that + // references the buffer. + status_t addReleaseFence(int slot, const sp& fence); // Slot contains the information and object references that // ConsumerBase maintains about a BufferQueue buffer slot. -- cgit v1.2.3-59-g8ed1b