diff options
author | Vikas batchu <quic_vikabatc@quicinc.com> | 2022-08-12 19:10:48 +0530 |
---|---|---|
committer | Vikas batchu <quic_vikabatc@quicinc.com> | 2022-08-12 19:54:55 +0530 |
commit | 5afd9f11490b17bc9fe15d43a42767e253a34f09 (patch) | |
tree | 50ed2c3fe9a36245015ee5ebcd713d3ba51dfc58 | |
parent | fd9c16bb1c83414104e614e252e4591ab60a994a (diff) |
sdm: wait on current retire fence for virtual display power state changes
Change-Id: Iad8b9b856cc3723acb249a09792a592dec205d4e
-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 31961642..4f8adf6a 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); } |