enable ALLOW_DEQUEUE_CURRENT_BUFFER for tegra devices

this flag should be enabled for all targets, but currently
some have issues with it, so we're turning it on only for
tested targets.

this will hopefully resolve some performance issues.

Bug: 5553562
Change-Id: I939992b4cd0debea980dec0127c72be2dff33af8
This commit is contained in:
Mathias Agopian 2011-11-14 19:17:37 -08:00
parent 7cd230c508
commit 251ce852cc
2 changed files with 11 additions and 3 deletions

View File

@ -32,6 +32,10 @@ LOCAL_SHARED_LIBRARIES := \
LOCAL_MODULE:= libgui
ifeq ($(TARGET_BOARD_PLATFORM), tegra)
LOCAL_CFLAGS += -DALLOW_DEQUEUE_CURRENT_BUFFER
endif
include $(BUILD_SHARED_LIBRARY)
ifeq (,$(ONE_SHOT_MAKEFILE))

View File

@ -36,8 +36,12 @@
#include <utils/Log.h>
#include <utils/String8.h>
#define ALLOW_DEQUEUE_CURRENT_BUFFER false
#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 SurfaceTexture name in log messages
#define ST_LOGV(x, ...) LOGV("[%s] "x, mName.string(), ##__VA_ARGS__)
@ -323,7 +327,7 @@ status_t SurfaceTexture::dequeueBuffer(int *outBuf, uint32_t w, uint32_t h,
LOGW_IF((state == BufferSlot::FREE) && (mCurrentTexture==i),
"dequeueBuffer: buffer %d is both FREE and current!", i);
if (ALLOW_DEQUEUE_CURRENT_BUFFER) {
if (FLAG_ALLOW_DEQUEUE_CURRENT_BUFFER) {
if (state == BufferSlot::FREE || i == mCurrentTexture) {
foundSync = i;
if (i != mCurrentTexture) {