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

Commit 05fe2526 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fixes vsync behavior in power mode transitions."

parents dc448df6 38d4961e
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -3186,7 +3186,8 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& hw,
    if (currentMode == HWC_POWER_MODE_OFF) {
        // Turn on the display
        getHwComposer().setPowerMode(type, mode);
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
        if (type == DisplayDevice::DISPLAY_PRIMARY &&
            mode != HWC_POWER_MODE_DOZE_SUSPEND) {
            // FIXME: eventthread only knows about the main display right now
            mEventThread->onScreenAcquired();
            resyncToHardwareVsync(true);
@@ -3218,7 +3219,8 @@ 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) {
    } else if (mode == HWC_POWER_MODE_DOZE ||
               mode == HWC_POWER_MODE_NORMAL) {
        // Update display while dozing
        getHwComposer().setPowerMode(type, mode);
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
@@ -3235,6 +3237,7 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& hw,
        }
        getHwComposer().setPowerMode(type, mode);
    } else {
        ALOGE("Attempting to set unknown power mode: %d\n", mode);
        getHwComposer().setPowerMode(type, mode);
    }
}
+5 −2
Original line number Diff line number Diff line
@@ -2845,7 +2845,8 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& hw,
    if (currentMode == HWC_POWER_MODE_OFF) {
        // Turn on the display
        getHwComposer().setPowerMode(type, mode);
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
        if (type == DisplayDevice::DISPLAY_PRIMARY &&
            mode != HWC_POWER_MODE_DOZE_SUSPEND) {
            // FIXME: eventthread only knows about the main display right now
            mEventThread->onScreenAcquired();
            resyncToHardwareVsync(true);
@@ -2877,7 +2878,8 @@ 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) {
    } else if (mode == HWC_POWER_MODE_DOZE ||
               mode == HWC_POWER_MODE_NORMAL) {
        // Update display while dozing
        getHwComposer().setPowerMode(type, mode);
        if (type == DisplayDevice::DISPLAY_PRIMARY) {
@@ -2894,6 +2896,7 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& hw,
        }
        getHwComposer().setPowerMode(type, mode);
    } else {
        ALOGE("Attempting to set unknown power mode: %d\n", mode);
        getHwComposer().setPowerMode(type, mode);
    }
}