Merge "More thorough check for expensive rendering" into tm-dev
diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp
index e4bd325..7e650a1 100644
--- a/services/surfaceflinger/CompositionEngine/src/Output.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp
@@ -1203,8 +1203,12 @@
// because high frequency consumes extra battery.
const bool expensiveBlurs =
refreshArgs.blursAreExpensive && mLayerRequestingBackgroundBlur != nullptr;
- const bool expensiveRenderingExpected =
- clientCompositionDisplay.outputDataspace == ui::Dataspace::DISPLAY_P3 || expensiveBlurs;
+ const bool expensiveRenderingExpected = expensiveBlurs ||
+ std::any_of(clientCompositionLayers.begin(), clientCompositionLayers.end(),
+ [outputDataspace =
+ clientCompositionDisplay.outputDataspace](const auto& layer) {
+ return layer.sourceDataspace != outputDataspace;
+ });
if (expensiveRenderingExpected) {
setExpensiveRenderingExpected(true);
}