From 3fd12e41afcf323fdb99a4cf6bef0f904d72cc8b Mon Sep 17 00:00:00 2001 From: Jamie Gennis Date: Tue, 2 Oct 2012 16:40:30 -0700 Subject: [PATCH] libgui: fix up compile options This change adds debug info to SurfaceFlinger's dumpsys to indicate that the USE_WAIT_SYNC compile option was enabled, and it removes the ALLOW_DEQUEUE_CURRENT_BUFFER option. Bug: 7238122 Change-Id: I70e08e34c2ef58aa6d2f88229e781a119f84b5a9 --- libs/gui/Android.mk | 4 ---- libs/gui/BufferQueue.cpp | 45 +++++++++---------------------------- libs/gui/GuiConfig.cpp | 4 ++-- libs/gui/SurfaceTexture.cpp | 10 --------- 4 files changed, 12 insertions(+), 51 deletions(-) diff --git a/libs/gui/Android.mk b/libs/gui/Android.mk index 923845c16..902aecaf4 100644 --- a/libs/gui/Android.mk +++ b/libs/gui/Android.mk @@ -57,10 +57,6 @@ ifeq ($(TARGET_BOARD_PLATFORM), msm8960) LOCAL_CFLAGS += -DUSE_NATIVE_FENCE_SYNC endif -ifeq ($(TARGET_BOARD_PLATFORM), tegra) - LOCAL_CFLAGS += -DALLOW_DEQUEUE_CURRENT_BUFFER -endif - include $(BUILD_SHARED_LIBRARY) ifeq (,$(ONE_SHOT_MAKEFILE)) diff --git a/libs/gui/BufferQueue.cpp b/libs/gui/BufferQueue.cpp index 8594b843f..d40847674 100644 --- a/libs/gui/BufferQueue.cpp +++ b/libs/gui/BufferQueue.cpp @@ -32,23 +32,6 @@ #include #include -// This compile option causes SurfaceTexture to return the buffer that is currently -// attached to the GL texture from dequeueBuffer when no other buffers are -// available. It requires the drivers (Gralloc, GL, OMX IL, and Camera) to do -// implicit cross-process synchronization to prevent the buffer from being -// written to before the buffer has (a) been detached from the GL texture and -// (b) all GL reads from the buffer have completed. - -// During refactoring, do not support dequeuing the current buffer -#undef ALLOW_DEQUEUE_CURRENT_BUFFER - -#ifdef ALLOW_DEQUEUE_CURRENT_BUFFER -#define FLAG_ALLOW_DEQUEUE_CURRENT_BUFFER true -#warning "ALLOW_DEQUEUE_CURRENT_BUFFER enabled" -#else -#define FLAG_ALLOW_DEQUEUE_CURRENT_BUFFER false -#endif - // Macros for including the BufferQueue name in log messages #define ST_LOGV(x, ...) ALOGV("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) #define ST_LOGD(x, ...) ALOGD("[%s] "x, mConsumerName.string(), ##__VA_ARGS__) @@ -325,24 +308,16 @@ status_t BufferQueue::dequeueBuffer(int *outBuf, sp& outFence, dequeuedCount++; } - // this logic used to be if (FLAG_ALLOW_DEQUEUE_CURRENT_BUFFER) - // but dequeuing the current buffer is disabled. - if (false) { - // This functionality has been temporarily removed so - // BufferQueue and SurfaceTexture can be refactored into - // separate objects - } else { - if (state == BufferSlot::FREE) { - /* We return the oldest of the free buffers to avoid - * stalling the producer if possible. This is because - * the consumer may still have pending reads of the - * buffers in flight. - */ - bool isOlder = mSlots[i].mFrameNumber < - mSlots[found].mFrameNumber; - if (found < 0 || isOlder) { - found = i; - } + if (state == BufferSlot::FREE) { + /* We return the oldest of the free buffers to avoid + * stalling the producer if possible. This is because + * the consumer may still have pending reads of the + * buffers in flight. + */ + bool isOlder = mSlots[i].mFrameNumber < + mSlots[found].mFrameNumber; + if (found < 0 || isOlder) { + found = i; } } } diff --git a/libs/gui/GuiConfig.cpp b/libs/gui/GuiConfig.cpp index 0744e4f56..bafd21aae 100644 --- a/libs/gui/GuiConfig.cpp +++ b/libs/gui/GuiConfig.cpp @@ -28,8 +28,8 @@ void appendGuiConfigString(String8& configStr) #ifdef USE_NATIVE_FENCE_SYNC " USE_NATIVE_FENCE_SYNC" #endif -#ifdef ALLOW_DEQUEUE_CURRENT_BUFFER - " ALLOW_DEQUEUE_CURRENT_BUFFER" +#ifdef USE_WAIT_SYNC + " USE_WAIT_SYNC" #endif "]"; configStr.append(config); diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp index 8df1302e0..57bcd2c84 100644 --- a/libs/gui/SurfaceTexture.cpp +++ b/libs/gui/SurfaceTexture.cpp @@ -63,16 +63,6 @@ static const bool useWaitSync = true; static const bool useWaitSync = false; #endif -// This compile option makes SurfaceTexture use the EGL_KHR_fence_sync extension -// to synchronize access to the buffers. It will cause dequeueBuffer to stall, -// waiting for the GL reads for the buffer being dequeued to complete before -// allowing the buffer to be dequeued. -#ifdef USE_FENCE_SYNC -#ifdef ALLOW_DEQUEUE_CURRENT_BUFFER -#error "USE_FENCE_SYNC and ALLOW_DEQUEUE_CURRENT_BUFFER are incompatible" -#endif -#endif - // Macros for including the SurfaceTexture name in log messages #define ST_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__) #define ST_LOGD(x, ...) ALOGD("[%s] "x, mName.string(), ##__VA_ARGS__)