summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dan Stoza <stoza@google.com> 2016-06-20 17:23:50 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-06-20 17:23:50 +0000
commit9409a53b45e7ba85c46d44c0e217d2c192d9b421 (patch)
tree97eb427c27a49fff0b10282b982008ca42771e04
parent1b02d14df34034e9a558002ce83d6fc8a93e73f7 (diff)
parent7bdf55aacf84715fae7dcd495756d9606e900a86 (diff)
Merge "HWC2: Skip validate/present if display is off" into nyc-mr1-dev
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp17
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);