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

Commit 00f16423 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Make blur sysprop persist across boots

Test: SurfaceFlinger_test
Test: manual on settings app
Bug: 149792636
Change-Id: Id53dd87f48285728dfff78e3d8db2cf4708a16eb
parent 3c04ff26
Loading
Loading
Loading
Loading
+9 −7
Original line number Original line Diff line number Diff line
@@ -364,11 +364,8 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI


    property_get("ro.surface_flinger.supports_background_blur", value, "0");
    property_get("ro.surface_flinger.supports_background_blur", value, "0");
    bool supportsBlurs = atoi(value);
    bool supportsBlurs = atoi(value);
    property_get("debug.sf.disable_blurs", value, "0");
    mSupportsBlur = supportsBlurs;
    bool disableBlurs = atoi(value);
    ALOGI_IF(!mSupportsBlur, "Disabling blur effects, they are not supported.");
    mEnableBlurs = supportsBlurs && !disableBlurs;
    ALOGI_IF(!mEnableBlurs, "Disabling blur effects. supported: %d, disabled: %d", supportsBlurs,
             disableBlurs);
    property_get("ro.sf.blurs_are_expensive", value, "0");
    property_get("ro.sf.blurs_are_expensive", value, "0");
    mBlursAreExpensive = atoi(value);
    mBlursAreExpensive = atoi(value);


@@ -625,7 +622,7 @@ void SurfaceFlinger::init() {
                .setUseColorManagerment(useColorManagement)
                .setUseColorManagerment(useColorManagement)
                .setEnableProtectedContext(enable_protected_contents(false))
                .setEnableProtectedContext(enable_protected_contents(false))
                .setPrecacheToneMapperShaderOnly(false)
                .setPrecacheToneMapperShaderOnly(false)
                .setSupportsBackgroundBlur(mEnableBlurs)
                .setSupportsBackgroundBlur(mSupportsBlur)
                .setContextPriority(useContextPriority
                .setContextPriority(useContextPriority
                        ? renderengine::RenderEngine::ContextPriority::HIGH
                        ? renderengine::RenderEngine::ContextPriority::HIGH
                        : renderengine::RenderEngine::ContextPriority::MEDIUM)
                        : renderengine::RenderEngine::ContextPriority::MEDIUM)
@@ -707,6 +704,11 @@ void SurfaceFlinger::readPersistentProperties() {


    property_get("persist.sys.sf.color_mode", value, "0");
    property_get("persist.sys.sf.color_mode", value, "0");
    mForceColorMode = static_cast<ColorMode>(atoi(value));
    mForceColorMode = static_cast<ColorMode>(atoi(value));

    property_get("persist.sys.sf.disable_blurs", value, "0");
    bool disableBlurs = atoi(value);
    mDisableBlurs = disableBlurs;
    ALOGI_IF(disableBlurs, "Disabling blur effects, user preference.");
}
}


void SurfaceFlinger::startBootAnim() {
void SurfaceFlinger::startBootAnim() {
@@ -3594,7 +3596,7 @@ uint32_t SurfaceFlinger::setClientStateLocked(
        if (layer->setCornerRadius(s.cornerRadius))
        if (layer->setCornerRadius(s.cornerRadius))
            flags |= eTraversalNeeded;
            flags |= eTraversalNeeded;
    }
    }
    if (what & layer_state_t::eBackgroundBlurRadiusChanged) {
    if (what & layer_state_t::eBackgroundBlurRadiusChanged && !mDisableBlurs) {
        if (layer->setBackgroundBlurRadius(s.backgroundBlurRadius)) flags |= eTraversalNeeded;
        if (layer->setBackgroundBlurRadius(s.backgroundBlurRadius)) flags |= eTraversalNeeded;
    }
    }
    if (what & layer_state_t::eLayerStackChanged) {
    if (what & layer_state_t::eLayerStackChanged) {
+3 −1
Original line number Original line Diff line number Diff line
@@ -1060,8 +1060,10 @@ private:
    const std::shared_ptr<TimeStats> mTimeStats;
    const std::shared_ptr<TimeStats> mTimeStats;
    const std::unique_ptr<FrameTracer> mFrameTracer;
    const std::unique_ptr<FrameTracer> mFrameTracer;
    bool mUseHwcVirtualDisplays = false;
    bool mUseHwcVirtualDisplays = false;
    // If blurs should be enabled on this device.
    bool mSupportsBlur = false;
    // Disable blurs, for debugging
    // Disable blurs, for debugging
    bool mEnableBlurs = false;
    std::atomic<bool> mDisableBlurs = false;
    // If blurs are considered expensive and should require high GPU frequency.
    // If blurs are considered expensive and should require high GPU frequency.
    bool mBlursAreExpensive = false;
    bool mBlursAreExpensive = false;
    std::atomic<uint32_t> mFrameMissedCount = 0;
    std::atomic<uint32_t> mFrameMissedCount = 0;