From 15fb96e63f2de336bb01e0824cc85141e5edfdea Mon Sep 17 00:00:00 2001 From: David Sodman Date: Sun, 7 Jan 2018 10:23:24 -0800 Subject: SF: Track compositionType across displayId's Make sure that compositionType tracks displayId's Bug: 112259502 Test: cts -m CtsViewTestCases SurfaceFlinger_test vrflinger_test Change-Id: I748ef1a6da8257e780daf89af06d76f29d19ad6f --- services/surfaceflinger/SurfaceFlinger.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'services/surfaceflinger/SurfaceFlinger.cpp') 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; } } -- cgit v1.2.3-59-g8ed1b