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

Commit de793924 authored by Dan Stoza's avatar Dan Stoza Committed by android-build-merger
Browse files

HWC2: Skip validate/present if display is off

am: 00ac359a

Change-Id: I31fad8a631fc6b52cb4b6b4cfc26185ebb0214f2
parents 8806e2a7 00ac359a
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -1022,7 +1022,12 @@ void SurfaceFlinger::doDebugFlashRegions()
    }

    for (size_t displayId = 0; displayId < mDisplays.size(); ++displayId) {
        status_t result = mDisplays[displayId]->prepareFrame(*mHwc);
        auto& displayDevice = mDisplays[displayId];
        if (!displayDevice->isDisplayOn()) {
            continue;
        }

        status_t result = displayDevice->prepareFrame(*mHwc);
        ALOGE_IF(result != NO_ERROR, "prepareFrame for display %zd failed:"
                " %d (%s)", displayId, result, strerror(-result));
    }
@@ -1248,7 +1253,12 @@ void SurfaceFlinger::setUpHWComposer() {
    }

    for (size_t displayId = 0; displayId < mDisplays.size(); ++displayId) {
        status_t result = mDisplays[displayId]->prepareFrame(*mHwc);
        auto& displayDevice = mDisplays[displayId];
        if (!displayDevice->isDisplayOn()) {
            continue;
        }

        status_t result = displayDevice->prepareFrame(*mHwc);
        ALOGE_IF(result != NO_ERROR, "prepareFrame for display %zd failed:"
                " %d (%s)", displayId, result, strerror(-result));
    }
@@ -1286,6 +1296,9 @@ void SurfaceFlinger::postFramebuffer()

    for (size_t displayId = 0; displayId < mDisplays.size(); ++displayId) {
        auto& displayDevice = mDisplays[displayId];
        if (!displayDevice->isDisplayOn()) {
            continue;
        }
        const auto hwcId = displayDevice->getHwcDisplayId();
        if (hwcId >= 0) {
            mHwc->commit(hwcId);