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

Commit 1971b63a authored by Fabien Sanglard's avatar Fabien Sanglard
Browse files

Use max acquired buffer setting to configStore

Change-Id: I48454243bcac12f5a83d080cd9115686f9f728ca
parent 4d8f5390
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -64,10 +64,6 @@ else
        DisplayHardware/HWComposer_hwc1.cpp
endif

ifneq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),)
    LOCAL_CFLAGS += -DNUM_FRAMEBUFFER_SURFACE_BUFFERS=$(NUM_FRAMEBUFFER_SURFACE_BUFFERS)
endif

LOCAL_CFLAGS += -fvisibility=hidden -Werror=format

LOCAL_HEADER_LIBRARIES := \
+2 −3
Original line number Diff line number Diff line
@@ -64,9 +64,8 @@ static constexpr bool kEGLAndroidSwapRectangle = false;
using namespace android::hardware::configstore;
using namespace android::hardware::configstore::V1_0;

static bool useTripleFramebuffer = getBool<
        ISurfaceFlingerConfigs,
        &ISurfaceFlingerConfigs::useTripleFramebuffer>(false);
static bool useTripleFramebuffer = getInt64< ISurfaceFlingerConfigs,
        &ISurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers>(2) == 3;

#if !defined(EGL_EGLEXT_PROTOTYPES) || !defined(EGL_ANDROID_swap_rectangle)
// Dummy implementation in case it is missing.
+3 −5
Original line number Diff line number Diff line
@@ -40,10 +40,7 @@

#include "FramebufferSurface.h"
#include "HWComposer.h"

#ifndef NUM_FRAMEBUFFER_SURFACE_BUFFERS
#define NUM_FRAMEBUFFER_SURFACE_BUFFERS (2)
#endif
#include "../SurfaceFlinger.h"

// ----------------------------------------------------------------------------
namespace android {
@@ -88,7 +85,8 @@ FramebufferSurface::FramebufferSurface(HWComposer& hwc, int disp,
    mConsumer->setDefaultBufferFormat(mHwc.getFormat(disp));
    mConsumer->setDefaultBufferSize(mHwc.getWidth(disp), mHwc.getHeight(disp));
#endif
    mConsumer->setMaxAcquiredBufferCount(NUM_FRAMEBUFFER_SURFACE_BUFFERS - 1);
    mConsumer->setMaxAcquiredBufferCount(
            SurfaceFlinger::maxFrameBufferAcquiredBuffers - 1);
}

status_t FramebufferSurface::beginFrame(bool /*mustRecompose*/) {
+6 −0
Original line number Diff line number Diff line
@@ -118,6 +118,7 @@ bool SurfaceFlinger::useHwcForRgbToYuv;
uint64_t SurfaceFlinger::maxVirtualDisplaySize;
bool SurfaceFlinger::hasSyncFramework;
bool SurfaceFlinger::useVrFlinger;
int64_t SurfaceFlinger::maxFrameBufferAcquiredBuffers;

SurfaceFlinger::SurfaceFlinger()
    :   BnSurfaceComposer(),
@@ -185,6 +186,9 @@ SurfaceFlinger::SurfaceFlinger()
    useVrFlinger = getBool< ISurfaceFlingerConfigs,
            &ISurfaceFlingerConfigs::useVrFlinger>(false);

    maxFrameBufferAcquiredBuffers = getInt64< ISurfaceFlingerConfigs,
            &ISurfaceFlingerConfigs::maxFrameBufferAcquiredBuffers>(2);

    // debugging stuff...
    char value[PROPERTY_VALUE_MAX];

@@ -3226,6 +3230,8 @@ void SurfaceFlinger::appendSfConfigString(String8& result) const
    result.appendFormat(" FORCE_HWC_FOR_RBG_TO_YUV=%d", useHwcForRgbToYuv);
    result.appendFormat(" MAX_VIRT_DISPLAY_DIM=%" PRIu64, maxVirtualDisplaySize);
    result.appendFormat(" RUNNING_WITHOUT_SYNC_FRAMEWORK=%d", !hasSyncFramework);
    result.appendFormat(" NUM_FRAMEBUFFER_SURFACE_BUFFERS=%" PRId64,
                        maxFrameBufferAcquiredBuffers);
    result.append("]");
}

+4 −0
Original line number Diff line number Diff line
@@ -147,6 +147,10 @@ public:
    // Equal to min(max_height, max_width).
    static uint64_t maxVirtualDisplaySize;

    // Controls the number of buffers SurfaceFlinger will allocate for use in
    // FramebufferSurface
    static int64_t maxFrameBufferAcquiredBuffers;

    static char const* getServiceName() ANDROID_API {
        return "SurfaceFlinger";
    }
Loading