summaryrefslogtreecommitdiff
path: root/services/surfaceflinger/SurfaceFlinger.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index c0c684a502..8cee8d7801 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1464,8 +1464,11 @@ void SurfaceFlinger::handleMessageRefresh() {
mVsyncModulator.onRefreshed(mHadClientComposition);
mLayersWithQueuedFrames.clear();
- for (auto& compositionInfo : getBE().mCompositionInfo) {
- compositionInfo.hwc.hwcLayer = nullptr;
+ for (const auto& [token, display] : mDisplays) {
+ const auto displayId = display->getId();
+ for (auto& compositionInfo : getBE().mCompositionInfo[displayId]) {
+ compositionInfo.hwc.hwcLayer = nullptr;
+ }
}
}
@@ -1551,16 +1554,18 @@ void SurfaceFlinger::calculateWorkingSet() {
}
mDrawingState.colorMatrixChanged = false;
- getBE().mCompositionInfo.clear();
for (const auto& [token, display] : mDisplays) {
+ const auto displayId = display->getId();
+ getBE().mCompositionInfo[displayId].clear();
for (auto& layer : display->getVisibleLayersSortedByZ()) {
auto displayId = display->getId();
layer->getBE().compositionInfo.compositionType = layer->getCompositionType(displayId);
if (!layer->setHwcLayer(displayId)) {
ALOGV("Need to create HWCLayer for %s", layer->getName().string());
}
- getBE().mCompositionInfo.push_back(layer->getBE().compositionInfo);
+ layer->getBE().compositionInfo.hwc.displayId = displayId;
+ getBE().mCompositionInfo[displayId].push_back(layer->getBE().compositionInfo);
layer->getBE().compositionInfo.hwc.hwcLayer = nullptr;
}
}