Notify listeners about active picture profiles
Bug: 337330263
Test: atest ActivePictureUpdaterTest
Test: atest SurfaceControlPictureProfileTest
Flag: com.android.graphics.libgui.flags.apply_picture_profiles
Change-Id: If08b79faf3d3c4c07248ecd7385a75cfe5357726
diff --git a/services/surfaceflinger/CompositionEngine/src/Output.cpp b/services/surfaceflinger/CompositionEngine/src/Output.cpp
index ee813bf..f9ed92d 100644
--- a/services/surfaceflinger/CompositionEngine/src/Output.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/Output.cpp
@@ -830,11 +830,13 @@
for (int i = 0; i < getMaxLayerPictureProfiles() && !layersWithProfiles.empty();
layersWithProfiles.pop(), ++i) {
layersWithProfiles.top()->commitPictureProfileToCompositionState();
+ layersWithProfiles.top()->getLayerFE().onPictureProfileCommitted();
}
// No layer-specific picture processing, so apply the highest priority picture profile to
// the entire display.
} else if (!layersWithProfiles.empty()) {
editState().pictureProfileHandle = layersWithProfiles.top()->getPictureProfileHandle();
+ layersWithProfiles.top()->getLayerFE().onPictureProfileCommitted();
}
}
diff --git a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
index f6d9a1a..65ded8b 100644
--- a/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
+++ b/services/surfaceflinger/CompositionEngine/src/OutputLayer.cpp
@@ -432,7 +432,7 @@
}
const auto* layerState = getLayerFE().getCompositionState();
if (layerState) {
- editState().pictureProfileHandle = getLayerFE().getCompositionState()->pictureProfileHandle;
+ editState().pictureProfileHandle = layerState->pictureProfileHandle;
}
}