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
This commit is contained in:
parent
35387922bd
commit
3fd12e41af
@ -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))
|
||||
|
@ -32,23 +32,6 @@
|
||||
#include <gui/SurfaceTexture.h>
|
||||
#include <utils/Trace.h>
|
||||
|
||||
// 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<Fence>& 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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__)
|
||||
|
Loading…
Reference in New Issue
Block a user