SF: Iterate correctly over multiple displays when computing and caching bounds
Bug: 124308298
Test: go/wm-smoke
Test: atest EncodeVirtualDisplayWithCompositionTest
Change-Id: I6d5f1cbe29ba33be4407091cbdd17ec038b7301f
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index a999b27..85411b6 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2329,7 +2329,7 @@
for (const auto& layer : mDrawingState.layersSortedByZ) {
// only consider the layers on the given layer stack
if (!display->belongsInOutput(layer->getLayerStack(), layer->getPrimaryDisplayOnly())) {
- return;
+ continue;
}
layer->computeBounds(displayDevice->getViewport().toFloatRect(), ui::Transform());