summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xservices/surfaceflinger/SurfaceFlinger.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index cc6f7c9864..24c3e67441 100755
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4903,14 +4903,19 @@ status_t SurfaceFlinger::setTransactionState(
state.traverseStatesWithBuffers([&](const layer_state_t& state) {
sp<Layer> layer = fromHandle(state.surface).promote();
if (layer != nullptr) {
- const uint32_t layerStackId = layer->getLayerStack();
SmomoIntf *smoMo = nullptr;
- for (auto &instance: mSmomoInstances) {
- if (instance.layerStackId == layerStackId) {
- smoMo = instance.smoMo;
- break;
+ if (mSmomoInstances.size() > 1) {
+ const uint32_t layerStackId = layer->getLayerStack();
+ for (auto &instance: mSmomoInstances) {
+ if (instance.layerStackId == layerStackId) {
+ smoMo = instance.smoMo;
+ break;
+ }
}
}
+ else if (mSmomoInstances.size() == 1) {
+ smoMo = mSmomoInstances[0].smoMo;
+ }
if (smoMo) {
smomo::SmomoBufferStats bufferStats;