diff options
Diffstat (limited to 'services/surfaceflinger/BufferLayer.cpp')
-rw-r--r-- | services/surfaceflinger/BufferLayer.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/services/surfaceflinger/BufferLayer.cpp b/services/surfaceflinger/BufferLayer.cpp index b7b4a445c7..ddf6f10d2b 100644 --- a/services/surfaceflinger/BufferLayer.cpp +++ b/services/surfaceflinger/BufferLayer.cpp @@ -571,8 +571,17 @@ bool BufferLayer::latchBuffer(bool& recomputeVisibleRegions, nsecs_t latchTime, recomputeVisibleRegions = true; } - if (mFlinger->mSmoMo) { - mFlinger->mSmoMo->SetPresentTime(getSequence(), mBufferInfo.mDesiredPresentTime); + const uint32_t layerStackId = getLayerStack(); + SmomoIntf *smoMo = nullptr; + for (auto &instance: mFlinger->mSmomoInstances) { + if (instance.layerStackId == layerStackId) { + smoMo = instance.smoMo; + break; + } + } + + if (smoMo) { + smoMo->SetPresentTime(getSequence(), mBufferInfo.mDesiredPresentTime); } return true; |