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

Commit eee8fc1c authored by Zheng Zhang's avatar Zheng Zhang Committed by android-build-merger
Browse files

DO NOT MERGE: SF: disable HW vsync while dozing

am: 46d455b3

Change-Id: I8e2eb78fc79b5127d9baa6079095115c431e1823
parents 05f4679d 46d455b3
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -2651,6 +2651,22 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& hw,
        getHwComposer().setPowerMode(type, mode);
        mVisibleRegionsDirty = true;
        // from this point on, SF will stop drawing on this display
    } else if (mode == HWC_POWER_MODE_DOZE) {
        // Update display while dozing
        getHwComposer().setPowerMode(type, mode);
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
            // FIXME: eventthread only knows about the main display right now
            mEventThread->onScreenAcquired();
            resyncToHardwareVsync(true);
        }
    } else if (mode == HWC_POWER_MODE_DOZE_SUSPEND) {
        // Leave display going to doze
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
            disableHardwareVsync(true); // also cancels any in-progress resync
            // FIXME: eventthread only knows about the main display right now
            mEventThread->onScreenReleased();
        }
        getHwComposer().setPowerMode(type, mode);
    } else {
        getHwComposer().setPowerMode(type, mode);
    }
+16 −0
Original line number Diff line number Diff line
@@ -2567,6 +2567,22 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& hw,
        getHwComposer().setPowerMode(type, mode);
        mVisibleRegionsDirty = true;
        // from this point on, SF will stop drawing on this display
    } else if (mode == HWC_POWER_MODE_DOZE) {
        // Update display while dozing
        getHwComposer().setPowerMode(type, mode);
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
            // FIXME: eventthread only knows about the main display right now
            mEventThread->onScreenAcquired();
            resyncToHardwareVsync(true);
        }
    } else if (mode == HWC_POWER_MODE_DOZE_SUSPEND) {
        // Leave display going to doze
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
            disableHardwareVsync(true); // also cancels any in-progress resync
            // FIXME: eventthread only knows about the main display right now
            mEventThread->onScreenReleased();
        }
        getHwComposer().setPowerMode(type, mode);
    } else {
        getHwComposer().setPowerMode(type, mode);
    }