Added check for forceClientComposition for every layer.
Instead of having the Layers check for forceClientComposition, have
SurfaceFlinger check since it will be skipping hwc. This also ensures
that new Layer types also get the same check.
Fixes: 69254085
Test: Current tests pass. Rotation works correctly now.
Change-Id: I7a2a378d9690206008b1dab9ce521f959542903a
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 96ba5fb..1237ee4 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -1956,6 +1956,12 @@
"display %zd: %d", displayId, result);
}
for (auto& layer : displayDevice->getVisibleLayersSortedByZ()) {
+ if (layer->getForceClientComposition(hwcId)) {
+ ALOGV("[%s] Requesting Client composition", layer->getName().string());
+ layer->setCompositionType(hwcId, HWC2::Composition::Client);
+ continue;
+ }
+
layer->setPerFrameData(displayDevice);
}