Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 251ce852 authored by Mathias Agopian's avatar Mathias Agopian
Browse files

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
parent 7cd230c5
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -32,6 +32,10 @@ LOCAL_SHARED_LIBRARIES := \


LOCAL_MODULE:= libgui
LOCAL_MODULE:= libgui


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))
+7 −3
Original line number Original line Diff line number Diff line
@@ -36,8 +36,12 @@
#include <utils/Log.h>
#include <utils/Log.h>
#include <utils/String8.h>
#include <utils/String8.h>



#ifdef ALLOW_DEQUEUE_CURRENT_BUFFER
#define ALLOW_DEQUEUE_CURRENT_BUFFER    false
#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
// Macros for including the SurfaceTexture name in log messages
#define ST_LOGV(x, ...) LOGV("[%s] "x, mName.string(), ##__VA_ARGS__)
#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),
            LOGW_IF((state == BufferSlot::FREE) && (mCurrentTexture==i),
                    "dequeueBuffer: buffer %d is both FREE and current!", 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) {
                if (state == BufferSlot::FREE || i == mCurrentTexture) {
                    foundSync = i;
                    foundSync = i;
                    if (i != mCurrentTexture) {
                    if (i != mCurrentTexture) {