diff options
author | Alex Sarraf <asarraf@codeaurora.org> | 2021-11-15 17:26:28 -0800 |
---|---|---|
committer | Alex Sarraf <asarraf@codeaurora.org> | 2021-11-19 16:32:52 -0800 |
commit | ab575ea2e34872e460a49c56ff399b9b6b954655 (patch) | |
tree | ebfd918ba557e36c46efdeb17eb5927a3432dc63 | |
parent | 449b4f121e9026e34d253492c866d4d1fff1e796 (diff) |
sf: addPresentFence based off of vsync source
Call scheduler addPresentFence based on whether the
vsync source is valid and on. Previous implementation
only relied on primary internal display being on.
CRs-Fixed: 3072839
Change-Id: I62157e6013d0ac0e9aa921f1b59bf2a0d805363f
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 4aea4878e6..b7ab6a24d9 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -3108,7 +3108,8 @@ void SurfaceFlinger::postComposition() { mTransactionCallbackInvoker.addPresentFence(mPreviousPresentFences[0].fence); mTransactionCallbackInvoker.sendCallbacks(); - if (display && display->isPrimary() && display->getPowerMode() == hal::PowerMode::ON && + if (vSyncSource && vSyncSource == getCurrentVsyncSource() && + vSyncSource->getPowerMode() == hal::PowerMode::ON && mPreviousPresentFences[0].fenceTime->isValid()) { mScheduler->addPresentFence(mPreviousPresentFences[0].fenceTime); } |