CompositionEngine: only offload when displays are enabled
When using multithreaded_present, only offload any displays if there are
more than one enabled display. If e.g. there are two displays, but one
is not enabled, there is not the same benefit of offloading it.
Bug: 241285491
Bug: 259132483
Test: libcompositionengine_test
Change-Id: Iad4a6fc47127b5ab945108f8c6ede1216755adbd
diff --git a/services/surfaceflinger/CompositionEngine/src/CompositionEngine.cpp b/services/surfaceflinger/CompositionEngine/src/CompositionEngine.cpp
index 7be5fe3..d87eae3 100644
--- a/services/surfaceflinger/CompositionEngine/src/CompositionEngine.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/CompositionEngine.cpp
@@ -101,6 +101,9 @@
// Not HWC-enabled, so it is always client-composited. No need to offload.
continue;
}
+ if (!output->getState().isEnabled) {
+ continue;
+ }
// Only run present in multiple threads if all HWC-enabled displays
// being refreshed support it.