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

Commit cb71410f authored by Jaesoo Lee's avatar Jaesoo Lee
Browse files

configstore: add new configuration item

This change adds to configstore@1.0 HAL a new configuration item
for surfaceflinger; useTripleFramebuffer()

In the default implementation, useTripleFramebuffer() will return true
only if the build flag NUM_FRAMEBUFFER_SURFACE_BUFFERS is defined as 3.

Bug: 34723491
Test: build & run. log message "SurfaceFlinger FrameBuffer: ?"
      should be seen.

Change-Id: I7ab9f17f43d68ee7b37b5db8c24b542db4d1c216
Merged-In: Iac97e25cd69717c73a135f6b2a44538124544987
parent ad54c308
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -17,4 +17,5 @@ package android.hardware.configstore@1.0;

interface ISurfaceFlingerConfigs {
    vsyncEventPhaseOffsetNs() generates (OptionalInt64 value);
    useTripleFramebuffer() generates (OptionalBool value);
};
+0 −2
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@ LOCAL_SHARED_LIBRARIES := \
    libbase \
    libhidlbase \
    libhidltransport \
    libhwbinder \
    libutils \
    android.hardware.configstore@1.0 \
    android.hidl.base@1.0
@@ -35,7 +34,6 @@ LOCAL_SHARED_LIBRARIES := \
    libutils \
    libhidlbase \
    libhidltransport \
    libhwbinder \
    android.hardware.configstore@1.0 \

include $(BUILD_EXECUTABLE)
+9 −0
Original line number Diff line number Diff line
@@ -19,6 +19,15 @@ Return<void> SurfaceFlingerConfigs::vsyncEventPhaseOffsetNs(vsyncEventPhaseOffse
    return Void();
}

Return<void> SurfaceFlingerConfigs::useTripleFramebuffer(useTripleFramebuffer_cb _hidl_cb) {
    bool value = false;
#ifdef USE_TRIPLE_FRAMEBUFFER
    value = true;
#endif
    _hidl_cb({true, value});
    LOG(INFO) << "SurfaceFlinger FrameBuffer: " << (value ? "triple" : "double");
    return Void();
}

// Methods from ::android::hidl::base::V1_0::IBase follow.

+1 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ using ::android::sp;
struct SurfaceFlingerConfigs : public ISurfaceFlingerConfigs {
    // Methods from ::android::hardware::configstore::V1_0::ISurfaceFlingerConfigs follow.
    Return<void> vsyncEventPhaseOffsetNs(vsyncEventPhaseOffsetNs_cb _hidl_cb) override;
    Return<void> useTripleFramebuffer(useTripleFramebuffer_cb _hidl_cb) override;

    // Methods from ::android::hidl::base::V1_0::IBase follow.

+4 −0
Original line number Diff line number Diff line
@@ -4,3 +4,7 @@ LOCAL_SRC_FILES += SurfaceFlingerConfigs.cpp
ifneq ($(VSYNC_EVENT_PHASE_OFFSET_NS),)
    LOCAL_CFLAGS += -DVSYNC_EVENT_PHASE_OFFSET_NS=$(VSYNC_EVENT_PHASE_OFFSET_NS)
endif

ifeq ($(NUM_FRAMEBUFFER_SURFACE_BUFFERS),3)
    LOCAL_CFLAGS += -DUSE_TRIPLE_FRAMEBUFFER
endif