Loading services/surfaceflinger/CompositionEngine/tests/MockPowerAdvisor.h +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ public: PowerAdvisor(); ~PowerAdvisor() override; MOCK_METHOD0(onBootFinished, void()); MOCK_METHOD2(setExpensiveRenderingExpected, void(DisplayId displayId, bool expected)); MOCK_METHOD0(notifyDisplayUpdateImminent, void()); }; Loading services/surfaceflinger/DisplayHardware/PowerAdvisor.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,10 @@ PowerAdvisor::PowerAdvisor() } } void PowerAdvisor::onBootFinished() { mBootFinished.store(true); } void PowerAdvisor::setExpensiveRenderingExpected(DisplayId displayId, bool expected) { if (expected) { mExpensiveDisplays.insert(displayId); Loading @@ -97,6 +101,12 @@ void PowerAdvisor::setExpensiveRenderingExpected(DisplayId displayId, bool expec } void PowerAdvisor::notifyDisplayUpdateImminent() { // Only start sending this notification once the system has booted so we don't introduce an // early-boot dependency on Power HAL if (!mBootFinished.load()) { return; } if (mSendUpdateImminent.load()) { HalWrapper* const halWrapper = getPowerHal(); if (halWrapper == nullptr) { Loading services/surfaceflinger/DisplayHardware/PowerAdvisor.h +3 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ class PowerAdvisor { public: virtual ~PowerAdvisor(); virtual void onBootFinished() = 0; virtual void setExpensiveRenderingExpected(DisplayId displayId, bool expected) = 0; virtual void notifyDisplayUpdateImminent() = 0; }; Loading @@ -56,12 +57,14 @@ public: PowerAdvisor(); ~PowerAdvisor() override; void onBootFinished() override; void setExpensiveRenderingExpected(DisplayId displayId, bool expected) override; void notifyDisplayUpdateImminent() override; private: HalWrapper* getPowerHal(); std::atomic_bool mBootFinished = false; bool mReconnectPowerHal = false; std::unordered_set<DisplayId> mExpensiveDisplays; Loading services/surfaceflinger/SurfaceFlinger.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -567,6 +567,7 @@ void SurfaceFlinger::bootFinished() postMessageAsync(new LambdaMessage([this]() NO_THREAD_SAFETY_ANALYSIS { readPersistentProperties(); mPowerAdvisor.onBootFinished(); mBootStage = BootStage::FINISHED; if (property_get_bool("sf.debug.show_refresh_rate_overlay", false)) { Loading services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockPowerAdvisor.h +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ public: PowerAdvisor(); ~PowerAdvisor() override; MOCK_METHOD0(onBootFinished, void()); MOCK_METHOD2(setExpensiveRenderingExpected, void(DisplayId displayId, bool expected)); MOCK_METHOD0(notifyDisplayUpdateImminent, void()); }; Loading Loading
services/surfaceflinger/CompositionEngine/tests/MockPowerAdvisor.h +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ public: PowerAdvisor(); ~PowerAdvisor() override; MOCK_METHOD0(onBootFinished, void()); MOCK_METHOD2(setExpensiveRenderingExpected, void(DisplayId displayId, bool expected)); MOCK_METHOD0(notifyDisplayUpdateImminent, void()); }; Loading
services/surfaceflinger/DisplayHardware/PowerAdvisor.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,10 @@ PowerAdvisor::PowerAdvisor() } } void PowerAdvisor::onBootFinished() { mBootFinished.store(true); } void PowerAdvisor::setExpensiveRenderingExpected(DisplayId displayId, bool expected) { if (expected) { mExpensiveDisplays.insert(displayId); Loading @@ -97,6 +101,12 @@ void PowerAdvisor::setExpensiveRenderingExpected(DisplayId displayId, bool expec } void PowerAdvisor::notifyDisplayUpdateImminent() { // Only start sending this notification once the system has booted so we don't introduce an // early-boot dependency on Power HAL if (!mBootFinished.load()) { return; } if (mSendUpdateImminent.load()) { HalWrapper* const halWrapper = getPowerHal(); if (halWrapper == nullptr) { Loading
services/surfaceflinger/DisplayHardware/PowerAdvisor.h +3 −0 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ class PowerAdvisor { public: virtual ~PowerAdvisor(); virtual void onBootFinished() = 0; virtual void setExpensiveRenderingExpected(DisplayId displayId, bool expected) = 0; virtual void notifyDisplayUpdateImminent() = 0; }; Loading @@ -56,12 +57,14 @@ public: PowerAdvisor(); ~PowerAdvisor() override; void onBootFinished() override; void setExpensiveRenderingExpected(DisplayId displayId, bool expected) override; void notifyDisplayUpdateImminent() override; private: HalWrapper* getPowerHal(); std::atomic_bool mBootFinished = false; bool mReconnectPowerHal = false; std::unordered_set<DisplayId> mExpensiveDisplays; Loading
services/surfaceflinger/SurfaceFlinger.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -567,6 +567,7 @@ void SurfaceFlinger::bootFinished() postMessageAsync(new LambdaMessage([this]() NO_THREAD_SAFETY_ANALYSIS { readPersistentProperties(); mPowerAdvisor.onBootFinished(); mBootStage = BootStage::FINISHED; if (property_get_bool("sf.debug.show_refresh_rate_overlay", false)) { Loading
services/surfaceflinger/tests/unittests/mock/DisplayHardware/MockPowerAdvisor.h +1 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ public: PowerAdvisor(); ~PowerAdvisor() override; MOCK_METHOD0(onBootFinished, void()); MOCK_METHOD2(setExpensiveRenderingExpected, void(DisplayId displayId, bool expected)); MOCK_METHOD0(notifyDisplayUpdateImminent, void()); }; Loading