summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/DisplayDevice.cpp
diff options
context:
space:
mode:
author Jaesoo Lee <jaesoo@google.com> 2017-02-16 05:27:03 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2017-02-16 05:27:04 +0000
commit125c3ae33e284b09dede27a7e01b0b51d0653227 (patch)
tree72ea8f979d9b4eb63a8af42f293781ac41e95c48 /services/surfaceflinger/DisplayDevice.cpp
parent6bd7143ec726bb17ea6858836be7a59ea22d5354 (diff)
parent720a72479292406b821cbb17b93e6e1659ce0c3e (diff)
Merge changes from topic 'cfg_nsfbuf'
* changes: configstore: removing BoardConfig variables (NUM_FRAMEBUFFER_SURFACE_BUFFERS) configstore: use utility functions defined in ConfigStoreUtils.h
Diffstat (limited to 'services/surfaceflinger/DisplayDevice.cpp')
-rw-r--r--services/surfaceflinger/DisplayDevice.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/services/surfaceflinger/DisplayDevice.cpp b/services/surfaceflinger/DisplayDevice.cpp
index 6c18ef7389..9af4402802 100644
--- a/services/surfaceflinger/DisplayDevice.cpp
+++ b/services/surfaceflinger/DisplayDevice.cpp
@@ -47,6 +47,9 @@
#include "SurfaceFlinger.h"
#include "Layer.h"
+#include <android/hardware/configstore/1.0/ISurfaceFlingerConfigs.h>
+#include <configstore/Utils.h>
+
// ----------------------------------------------------------------------------
using namespace android;
// ----------------------------------------------------------------------------
@@ -57,6 +60,14 @@ static constexpr bool kEGLAndroidSwapRectangle = true;
static constexpr bool kEGLAndroidSwapRectangle = false;
#endif
+// retrieve triple buffer setting from configstore
+using namespace android::hardware::configstore;
+using namespace android::hardware::configstore::V1_0;
+
+static bool useTripleFramebuffer = getBool<
+ ISurfaceFlingerConfigs,
+ &ISurfaceFlingerConfigs::useTripleFramebuffer>(false);
+
#if !defined(EGL_EGLEXT_PROTOTYPES) || !defined(EGL_ANDROID_swap_rectangle)
// Dummy implementation in case it is missing.
inline void eglSetSwapRectangleANDROID (EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint) {
@@ -165,9 +176,9 @@ DisplayDevice::DisplayDevice(
// initialize the display orientation transform.
setProjection(DisplayState::eOrientationDefault, mViewport, mFrame);
-#ifdef NUM_FRAMEBUFFER_SURFACE_BUFFERS
- surface->allocateBuffers();
-#endif
+ if (useTripleFramebuffer) {
+ surface->allocateBuffers();
+ }
}
DisplayDevice::~DisplayDevice() {