diff options
author | Boreddy Mahidhar <quic_bmahidha@quicinc.com> | 2022-08-03 18:25:24 +0530 |
---|---|---|
committer | Boreddy Mahidhar <quic_bmahidha@quicinc.com> | 2022-08-10 14:56:00 +0530 |
commit | c9cc4fadcae1cdb6932f6856d5cd23bc9776691a (patch) | |
tree | 4c103ddd006c2b2938a4a437bc7079d107d65ab3 | |
parent | 14a22c006cda71d43982448183c36c1c6ac7b6d8 (diff) |
composer: Restrict drawcycle bypass to resource state failures.
Change-Id: I0d92db94447eee6d855b2b9feffb3ce55dd5c271
-rw-r--r-- | composer/hwc_display.cpp | 5 | ||||
-rw-r--r-- | composer/hwc_display_builtin.cpp | 1 | ||||
-rw-r--r-- | composer/hwc_display_pluggable.cpp | 1 | ||||
-rw-r--r-- | composer/hwc_display_virtual_dpu.cpp | 1 |
4 files changed, 6 insertions, 2 deletions
diff --git a/composer/hwc_display.cpp b/composer/hwc_display.cpp index f4c2c73a..65a544b3 100644 --- a/composer/hwc_display.cpp +++ b/composer/hwc_display.cpp @@ -1815,8 +1815,9 @@ HWC2::Error HWCDisplay::CommitOrPrepare(bool validate_only, shared_ptr<Fence> *o if (exit_validate) { validate_done_ = true; client_target_3_1_set_ = false; - *needs_commit = true; - bypass_drawcycle_ = true; + if (bypass_drawcycle_) { + *needs_commit = true; + } return HWC2::Error::None; } diff --git a/composer/hwc_display_builtin.cpp b/composer/hwc_display_builtin.cpp index fbff70bb..9cde32cc 100644 --- a/composer/hwc_display_builtin.cpp +++ b/composer/hwc_display_builtin.cpp @@ -256,6 +256,7 @@ HWC2::Error HWCDisplayBuiltIn::PreValidateDisplay(bool *exit_validate) { if (display_paused_ || CheckResourceState(&res_exhausted)) { MarkLayersForGPUBypass(); *exit_validate = true; + bypass_drawcycle_ = true; return status; } diff --git a/composer/hwc_display_pluggable.cpp b/composer/hwc_display_pluggable.cpp index 0a22d804..2c5bc748 100644 --- a/composer/hwc_display_pluggable.cpp +++ b/composer/hwc_display_pluggable.cpp @@ -168,6 +168,7 @@ HWC2::Error HWCDisplayPluggable::PreValidateDisplay(bool *exit_validate) { current_power_mode_ == HWC2::PowerMode::DozeSuspend)) || CheckResourceState(&res_exhausted)) { MarkLayersForGPUBypass(); *exit_validate = true; + bypass_drawcycle_ = true; return status; } diff --git a/composer/hwc_display_virtual_dpu.cpp b/composer/hwc_display_virtual_dpu.cpp index 133e3074..1257db2c 100644 --- a/composer/hwc_display_virtual_dpu.cpp +++ b/composer/hwc_display_virtual_dpu.cpp @@ -175,6 +175,7 @@ HWC2::Error HWCDisplayVirtualDPU::PreValidateDisplay(bool *exit_validate) { if (NeedsGPUBypass()) { MarkLayersForGPUBypass(); *exit_validate = true; + bypass_drawcycle_ = true; return HWC2::Error::None; } |