am 3fd12e41
: libgui: fix up compile options
* commit '3fd12e41afcf323fdb99a4cf6bef0f904d72cc8b': libgui: fix up compile options
This commit is contained in:
commit
596f5efd4e
@ -57,10 +57,6 @@ ifeq ($(TARGET_BOARD_PLATFORM), msm8960)
|
|||||||
LOCAL_CFLAGS += -DUSE_NATIVE_FENCE_SYNC
|
LOCAL_CFLAGS += -DUSE_NATIVE_FENCE_SYNC
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_BOARD_PLATFORM), tegra)
|
|
||||||
LOCAL_CFLAGS += -DALLOW_DEQUEUE_CURRENT_BUFFER
|
|
||||||
endif
|
|
||||||
|
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
include $(BUILD_SHARED_LIBRARY)
|
||||||
|
|
||||||
ifeq (,$(ONE_SHOT_MAKEFILE))
|
ifeq (,$(ONE_SHOT_MAKEFILE))
|
||||||
|
@ -32,23 +32,6 @@
|
|||||||
#include <gui/SurfaceTexture.h>
|
#include <gui/SurfaceTexture.h>
|
||||||
#include <utils/Trace.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
|
// Macros for including the BufferQueue name in log messages
|
||||||
#define ST_LOGV(x, ...) ALOGV("[%s] "x, mConsumerName.string(), ##__VA_ARGS__)
|
#define ST_LOGV(x, ...) ALOGV("[%s] "x, mConsumerName.string(), ##__VA_ARGS__)
|
||||||
#define ST_LOGD(x, ...) ALOGD("[%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++;
|
dequeuedCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// this logic used to be if (FLAG_ALLOW_DEQUEUE_CURRENT_BUFFER)
|
if (state == BufferSlot::FREE) {
|
||||||
// but dequeuing the current buffer is disabled.
|
/* We return the oldest of the free buffers to avoid
|
||||||
if (false) {
|
* stalling the producer if possible. This is because
|
||||||
// This functionality has been temporarily removed so
|
* the consumer may still have pending reads of the
|
||||||
// BufferQueue and SurfaceTexture can be refactored into
|
* buffers in flight.
|
||||||
// separate objects
|
*/
|
||||||
} else {
|
bool isOlder = mSlots[i].mFrameNumber <
|
||||||
if (state == BufferSlot::FREE) {
|
mSlots[found].mFrameNumber;
|
||||||
/* We return the oldest of the free buffers to avoid
|
if (found < 0 || isOlder) {
|
||||||
* stalling the producer if possible. This is because
|
found = i;
|
||||||
* 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
|
#ifdef USE_NATIVE_FENCE_SYNC
|
||||||
" USE_NATIVE_FENCE_SYNC"
|
" USE_NATIVE_FENCE_SYNC"
|
||||||
#endif
|
#endif
|
||||||
#ifdef ALLOW_DEQUEUE_CURRENT_BUFFER
|
#ifdef USE_WAIT_SYNC
|
||||||
" ALLOW_DEQUEUE_CURRENT_BUFFER"
|
" USE_WAIT_SYNC"
|
||||||
#endif
|
#endif
|
||||||
"]";
|
"]";
|
||||||
configStr.append(config);
|
configStr.append(config);
|
||||||
|
@ -63,16 +63,6 @@ static const bool useWaitSync = true;
|
|||||||
static const bool useWaitSync = false;
|
static const bool useWaitSync = false;
|
||||||
#endif
|
#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
|
// Macros for including the SurfaceTexture name in log messages
|
||||||
#define ST_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__)
|
#define ST_LOGV(x, ...) ALOGV("[%s] "x, mName.string(), ##__VA_ARGS__)
|
||||||
#define ST_LOGD(x, ...) ALOGD("[%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