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

Commit cc604d15 authored by Rachel Lee's avatar Rachel Lee Committed by Android (Google) Code Review
Browse files

Merge "Avoid vsync enabled when in DOZE mode (AOD)." into tm-dev

parents 9fdc02c7 8f96ec4b
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -376,6 +376,11 @@ void HWComposer::setVsyncEnabled(PhysicalDisplayId displayId, hal::Vsync enabled
    }

    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);
    RETURN_IF_HWC_ERROR(error, displayId);

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

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

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

        nsecs_t lastHwVsync = 0;
    };