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

Commit bf2ae10c 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

am: eee8fc1c

Change-Id: I35d9ddfd59394b85428faeadd33713c742edc273
parents 08a3d08f eee8fc1c
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -2656,6 +2656,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);
    }