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

Commit ba180cc1 authored by Matt Buckley's avatar Matt Buckley
Browse files

Update SF to use createHintSessionWithConfig

Bug: 318517387
Test: atest libpowermanager_test libsurfaceflinger_unittest libcompositionengine_test
Change-Id: Icef6f72f840cdc200ad8ec34b096e5417cb540ad
parent b2e2eefa
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ namespace impl {
using aidl::android::hardware::power::Boost;
using aidl::android::hardware::power::Mode;
using aidl::android::hardware::power::SessionHint;
using aidl::android::hardware::power::SessionTag;
using aidl::android::hardware::power::WorkDuration;

PowerAdvisor::~PowerAdvisor() = default;
@@ -206,9 +207,12 @@ bool PowerAdvisor::supportsPowerHintSession() {

bool PowerAdvisor::ensurePowerHintSessionRunning() {
    if (mHintSession == nullptr && !mHintSessionThreadIds.empty() && usePowerHintSession()) {
        auto ret = getPowerHal().createHintSession(getpid(), static_cast<int32_t>(getuid()),
                                                   mHintSessionThreadIds, mTargetDuration.ns());

        auto ret =
                getPowerHal().createHintSessionWithConfig(getpid(), static_cast<int32_t>(getuid()),
                                                          mHintSessionThreadIds,
                                                          mTargetDuration.ns(),
                                                          SessionTag::SURFACEFLINGER,
                                                          &mSessionConfig);
        if (ret.isOk()) {
            mHintSession = ret.value();
        }
+3 −0
Original line number Diff line number Diff line
@@ -292,6 +292,9 @@ private:
    // Whether we should send reportActualWorkDuration calls
    static const bool sUseReportActualDuration;

    // Metadata about the session returned from PowerHAL
    aidl::android::hardware::power::SessionConfig mSessionConfig;

    // How long we expect hwc to run after the present call until it waits for the fence
    static constexpr const Duration kFenceWaitStartDelayValidated{150us};
    static constexpr const Duration kFenceWaitStartDelaySkippedValidate{250us};
+9 −7
Original line number Diff line number Diff line
@@ -74,12 +74,14 @@ void PowerAdvisorTest::SetUp() {
void PowerAdvisorTest::startPowerHintSession(bool returnValidSession) {
    mMockPowerHintSession = ndk::SharedRefBase::make<NiceMock<MockIPowerHintSession>>();
    if (returnValidSession) {
        ON_CALL(*mMockPowerHalController, createHintSession)
                .WillByDefault(
        ON_CALL(*mMockPowerHalController, createHintSessionWithConfig)
                .WillByDefault(DoAll(SetArgPointee<5>(aidl::android::hardware::power::SessionConfig{
                                             .id = 12}),
                                     Return(HalResult<std::shared_ptr<IPowerHintSession>>::
                                       fromStatus(binder::Status::ok(), mMockPowerHintSession)));
                                                    fromStatus(binder::Status::ok(),
                                                               mMockPowerHintSession))));
    } else {
        ON_CALL(*mMockPowerHalController, createHintSession)
        ON_CALL(*mMockPowerHalController, createHintSessionWithConfig)
                .WillByDefault(Return(HalResult<std::shared_ptr<IPowerHintSession>>::
                                              fromStatus(binder::Status::ok(), nullptr)));
    }
@@ -283,7 +285,7 @@ TEST_F(PowerAdvisorTest, hintSessionValidWhenNullFromPowerHAL) {
}

TEST_F(PowerAdvisorTest, hintSessionOnlyCreatedOnce) {
    EXPECT_CALL(*mMockPowerHalController, createHintSession(_, _, _, _)).Times(1);
    EXPECT_CALL(*mMockPowerHalController, createHintSessionWithConfig(_, _, _, _, _, _)).Times(1);
    mPowerAdvisor->onBootFinished();
    startPowerHintSession();
    mPowerAdvisor->startPowerHintSession({1, 2, 3});
@@ -335,7 +337,7 @@ TEST_F(PowerAdvisorTest, hintSessionTestNotifyReportRace) {
        return ndk::ScopedAStatus::fromExceptionCode(-127);
    });

    ON_CALL(*mMockPowerHalController, createHintSession)
    ON_CALL(*mMockPowerHalController, createHintSessionWithConfig)
            .WillByDefault(Return(
                    HalResult<std::shared_ptr<IPowerHintSession>>::
                            fromStatus(ndk::ScopedAStatus::fromExceptionCode(-127), nullptr)));