diff options
| author | qctecmdr <qctecmdr@localhost> | 2022-08-15 13:21:42 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2022-08-15 13:21:42 -0700 |
| commit | d5ea2493fd6dd016a91bd3b71a3df5c978bfd18e (patch) | |
| tree | 44f47b1d01bf60527f13dcfbe8fa1b757194e0a5 | |
| parent | b55a900f860a71fdd4407ac59261f5743ccc5ccd (diff) | |
| parent | c9cc4fadcae1cdb6932f6856d5cd23bc9776691a (diff) | |
Merge "composer: Restrict drawcycle bypass to resource state failures."
| -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 42b0770f..5407fbc9 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 da768d82..5596eaca 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; } |
