diff options
| author | 2016-06-20 17:23:50 +0000 | |
|---|---|---|
| committer | 2016-06-20 17:23:50 +0000 | |
| commit | 9409a53b45e7ba85c46d44c0e217d2c192d9b421 (patch) | |
| tree | 97eb427c27a49fff0b10282b982008ca42771e04 | |
| parent | 1b02d14df34034e9a558002ce83d6fc8a93e73f7 (diff) | |
| parent | 7bdf55aacf84715fae7dcd495756d9606e900a86 (diff) | |
Merge "HWC2: Skip validate/present if display is off" into nyc-mr1-dev
| -rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 9f357df63b..fa61a9b528 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1005,7 +1005,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)); } @@ -1229,7 +1234,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)); } @@ -1267,6 +1277,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); |