diff options
author | qctecmdr <qctecmdr@localhost> | 2022-08-24 05:01:51 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2022-08-24 05:01:50 -0700 |
commit | 9673d81bada0330a5e85dbf77ed648ba8bafcf35 (patch) | |
tree | 345da5cebd06e012f832f292c10dee6e68123b0e | |
parent | 4bb77883ced9e0340087a68c67ddb4d2fb7384a5 (diff) | |
parent | 5afd9f11490b17bc9fe15d43a42767e253a34f09 (diff) |
Merge "sdm: wait on current retire fence for virtual display power state changes"
-rw-r--r-- | sdm/libs/core/display_base.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp index e2754ee7..a49731ac 100644 --- a/sdm/libs/core/display_base.cpp +++ b/sdm/libs/core/display_base.cpp @@ -1915,9 +1915,15 @@ DisplayError DisplayBase::SetDisplayState(DisplayState state, bool teardown, } if ((pending_power_state_ == kPowerStateNone) && (!first_cycle_ || display_type_ == kHDMI)) { - CacheRetireFence(); SyncPoints sync = {}; - sync.retire_fence = retire_fence_; + if (draw_method_ == kDrawDefault || display_type_ == kVirtual) { + // Wait on current retire fence. + sync.retire_fence = sync_points.retire_fence; + } else { + // For displays in unified draw, wait on cached retire fence in steady state. + comp_manager_->GetRetireFence(display_comp_ctx_, &retire_fence_); + sync.retire_fence = retire_fence_; + } WaitForCompletion(&sync); } |