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

Commit b8ab286f authored by Rob Carr's avatar Rob Carr Committed by Automerger Merge Worker
Browse files

Merge "SurfaceFlinger: Avoid race in flag manager" into tm-dev am: dfc68add

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/17301626

Change-Id: I486caf6deeb241c704cecb3ca02e9ec5af5578bd
parents 9bea2d2b dfc68add
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -690,10 +690,9 @@ void SurfaceFlinger::bootFinished() {
    const nsecs_t duration = now - mBootTime;
    ALOGI("Boot is finished (%ld ms)", long(ns2ms(duration)) );

    mFlagManager = std::make_unique<android::FlagManager>();
    mFrameTracer->initialize();
    mFrameTimeline->onBootFinished();
    getRenderEngine().setEnableTracing(mFlagManager->use_skia_tracing());
    getRenderEngine().setEnableTracing(mFlagManager.use_skia_tracing());

    // wait patiently for the window manager death
    const String16 name("window");
@@ -722,7 +721,7 @@ void SurfaceFlinger::bootFinished() {

        readPersistentProperties();
        mPowerAdvisor.onBootFinished();
        mPowerAdvisor.enablePowerHint(mFlagManager->use_adpf_cpu_hint());
        mPowerAdvisor.enablePowerHint(mFlagManager.use_adpf_cpu_hint());
        if (mPowerAdvisor.usePowerHintSession()) {
            std::optional<pid_t> renderEngineTid = getRenderEngine().getRenderEngineTid();
            std::vector<int32_t> tidList;
@@ -5473,9 +5472,7 @@ void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) co
    /*
     * Dump flag/property manager state
     */
    if (mFlagManager != nullptr) {
        mFlagManager->dump(result);
    }
    mFlagManager.dump(result);

    result.append(mTimeStats->miniDump());
    result.append("\n");
+2 −1
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@
#include "DisplayHardware/PowerAdvisor.h"
#include "DisplayIdGenerator.h"
#include "Effects/Daltonizer.h"
#include "FlagManager.h"
#include "FrameTracker.h"
#include "LayerVector.h"
#include "Scheduler/RefreshRateConfigs.h"
@@ -1424,7 +1425,7 @@ private:

    const sp<WindowInfosListenerInvoker> mWindowInfosListenerInvoker;

    std::unique_ptr<FlagManager> mFlagManager;
    FlagManager mFlagManager;

    // returns the framerate of the layer with the given sequence ID
    float getLayerFramerate(nsecs_t now, int32_t id) const {