From 720a72479292406b821cbb17b93e6e1659ce0c3e Mon Sep 17 00:00:00 2001 From: Jaesoo Lee Date: Tue, 31 Jan 2017 15:26:18 +0900 Subject: configstore: removing BoardConfig variables (NUM_FRAMEBUFFER_SURFACE_BUFFERS) This change removes the use of NUM_FRAMEBUFFER_SURFACE_BUFFERS from SurfaceFlinger. Instead of using it, the implementation is changed so that it retrieves corresponding configuration value (useTripleFramebuffer) from configstore. Design doc: go/design-confighal Bug: 34723491 Test: build, run, log message "SurfaceFlinger FrameBuffer: ?" should be seen. Change-Id: If6f6d13738d894b4880f42576f4ce8220b4a8bef --- services/surfaceflinger/DisplayDevice.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'services/surfaceflinger/DisplayDevice.cpp') 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 +#include + // ---------------------------------------------------------------------------- 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() { -- cgit v1.2.3-59-g8ed1b