display: Enable triple framebuffers
Change-Id: I323c10b939277477f724c2d0a20f9c6da4899481
diff --git a/libgralloc/Android.mk b/libgralloc/Android.mk
index 44108c7..b9eb9e4 100644
--- a/libgralloc/Android.mk
+++ b/libgralloc/Android.mk
@@ -26,7 +26,8 @@
LOCAL_MODULE := gralloc.$(TARGET_BOARD_PLATFORM)
LOCAL_MODULE_TAGS := optional
LOCAL_CFLAGS := -DLOG_TAG=\"$(TARGET_BOARD_PLATFORM).gralloc\" \
- -DDEBUG_CALC_FPS
+ -DDEBUG_CALC_FPS \
+ -Wno-missing-field-initializers
LOCAL_SRC_FILES := gpu.cpp gralloc.cpp framebuffer.cpp mapper.cpp
ifeq ($(TARGET_USES_POST_PROCESSING),true)
diff --git a/libgralloc/fb_priv.h b/libgralloc/fb_priv.h
index 677d1c1..46b119f 100644
--- a/libgralloc/fb_priv.h
+++ b/libgralloc/fb_priv.h
@@ -20,8 +20,7 @@
#include <linux/fb.h>
#define NUM_FRAMEBUFFERS_MIN 2
-//XXX: Enable triple framebuffers
-#define NUM_FRAMEBUFFERS_MAX 2
+#define NUM_FRAMEBUFFERS_MAX 3
#define NO_SURFACEFLINGER_SWAPINTERVAL
#define COLOR_FORMAT(x) (x & 0xFFF) // Max range for colorFormats is 0 - FFF
diff --git a/libgralloc/framebuffer.cpp b/libgralloc/framebuffer.cpp
index 931024b..bd9ca9c 100644
--- a/libgralloc/framebuffer.cpp
+++ b/libgralloc/framebuffer.cpp
@@ -582,9 +582,10 @@
struct qbuf_t qb;
fb_context_t* ctx = (fb_context_t*)dev;
- private_handle_t const* hnd = reinterpret_cast<private_handle_t const*>(buffer);
- private_module_t* m = reinterpret_cast<private_module_t*>(
- dev->common.module);
+ private_handle_t const* hnd =
+ reinterpret_cast<private_handle_t const*>(buffer);
+ private_module_t* m =
+ reinterpret_cast<private_module_t*>(dev->common.module);
if (hnd->flags & private_handle_t::PRIV_FLAGS_FRAMEBUFFER) {
@@ -1001,6 +1002,7 @@
const_cast<float&>(dev->device.fps) = m->fps;
const_cast<int&>(dev->device.minSwapInterval) = PRIV_MIN_SWAP_INTERVAL;
const_cast<int&>(dev->device.maxSwapInterval) = PRIV_MAX_SWAP_INTERVAL;
+ const_cast<int&>(dev->device.numFramebuffers) = m->numBuffers;
if (m->finfo.reserved[0] == 0x5444 &&
m->finfo.reserved[1] == 0x5055) {
dev->device.setUpdateRect = fb_setUpdateRect;