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

Commit 8f96ec4b authored by Rachel Lee's avatar Rachel Lee
Browse files

Avoid vsync enabled when in DOZE mode (AOD).

Bug: 219109873
Test: perfetto trace
Change-Id: Id3373dc9bb0cf4c0375c79a32ca9802fd77e06c2
parent 56becd9a
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -376,6 +376,11 @@ void HWComposer::setVsyncEnabled(PhysicalDisplayId displayId, hal::Vsync enabled
    }
    }


    ATRACE_CALL();
    ATRACE_CALL();
    if (displayData.powerMode == hal::PowerMode::DOZE && enabled == hal::Vsync::ENABLE) {
        ALOGV("%s will not enable vsync for display %s due to power mode %s", __FUNCTION__,
              to_string(displayId).c_str(), to_string(displayData.powerMode).c_str());
        return;
    }
    auto error = displayData.hwcDisplay->setVsyncEnabled(enabled);
    auto error = displayData.hwcDisplay->setVsyncEnabled(enabled);
    RETURN_IF_HWC_ERROR(error, displayId);
    RETURN_IF_HWC_ERROR(error, displayId);


@@ -553,6 +558,7 @@ status_t HWComposer::setPowerMode(PhysicalDisplayId displayId, hal::PowerMode mo
        setVsyncEnabled(displayId, hal::Vsync::DISABLE);
        setVsyncEnabled(displayId, hal::Vsync::DISABLE);
    }
    }


    mDisplayData[displayId].powerMode = mode;
    const auto& displayData = mDisplayData[displayId];
    const auto& displayData = mDisplayData[displayId];
    auto& hwcDisplay = displayData.hwcDisplay;
    auto& hwcDisplay = displayData.hwcDisplay;
    switch (mode) {
    switch (mode) {
+2 −0
Original line number Original line Diff line number Diff line
@@ -454,6 +454,8 @@ private:
        std::mutex vsyncEnabledLock;
        std::mutex vsyncEnabledLock;
        hal::Vsync vsyncEnabled GUARDED_BY(vsyncEnabledLock) = hal::Vsync::DISABLE;
        hal::Vsync vsyncEnabled GUARDED_BY(vsyncEnabledLock) = hal::Vsync::DISABLE;


        hal::PowerMode powerMode = hal::PowerMode::ON;

        nsecs_t lastHwVsync = 0;
        nsecs_t lastHwVsync = 0;
    };
    };