summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2022-08-24 05:01:51 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2022-08-24 05:01:50 -0700
commit9673d81bada0330a5e85dbf77ed648ba8bafcf35 (patch)
tree345da5cebd06e012f832f292c10dee6e68123b0e
parent4bb77883ced9e0340087a68c67ddb4d2fb7384a5 (diff)
parent5afd9f11490b17bc9fe15d43a42767e253a34f09 (diff)
Merge "sdm: wait on current retire fence for virtual display power state changes"
-rw-r--r--sdm/libs/core/display_base.cpp10
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);
}