diff options
author | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2022-02-09 17:19:56 +0200 |
---|---|---|
committer | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2022-02-09 17:21:32 +0200 |
commit | ef5348b7a53ee7fc169956a95d959c2823aaf478 (patch) | |
tree | fb77d97f5bcb750bd42370cd95602173a6643b02 | |
parent | 71f196fce021326fe9a72f6ee205bfb6b71c794f (diff) | |
download | drm_hwcomposer-ef5348b7a53ee7fc169956a95d959c2823aaf478.tar.gz |
drm_hwcomposer: Remove AtomicCommitArgs::clear_active_composition field
Now we can use empty DrmKmsPlan to achieve the same goal.
+ Remove unused HwcDisplay::ClearDisplay()
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
-rw-r--r-- | compositor/DrmDisplayCompositor.cpp | 15 | ||||
-rw-r--r-- | compositor/DrmDisplayCompositor.h | 4 | ||||
-rw-r--r-- | hwc2_device/HwcDisplay.cpp | 10 |
3 files changed, 4 insertions, 25 deletions
diff --git a/compositor/DrmDisplayCompositor.cpp b/compositor/DrmDisplayCompositor.cpp index 5be2941..e588b7f 100644 --- a/compositor/DrmDisplayCompositor.cpp +++ b/compositor/DrmDisplayCompositor.cpp @@ -58,11 +58,6 @@ auto DrmDisplayCompositor::CommitFrame(AtomicCommitArgs &args) -> int { args.active = true; } - if (args.clear_active_composition && args.composition) { - ALOGE("%s: Invalid arguments", __func__); - return -EINVAL; - } - auto new_frame_state = NewFrameState(); auto *drm = pipe_->device; @@ -126,12 +121,7 @@ auto DrmDisplayCompositor::CommitFrame(AtomicCommitArgs &args) -> int { } } - if (args.clear_active_composition) { - new_frame_state.used_framebuffers.clear(); - new_frame_state.used_planes.clear(); - } - - if (args.clear_active_composition || args.composition) { + if (args.composition) { for (auto &plane : unused_planes) { if (plane->Get()->AtomicDisablePlane(*pset) != 0) { return -EINVAL; @@ -176,7 +166,8 @@ auto DrmDisplayCompositor::ExecuteAtomicCommit(AtomicCommitArgs &args) -> int { pipe_->connector->Get()->GetName().c_str()); // Disable the hw used by the last active composition. This allows us to // signal the release fences from that composition to avoid hanging. - AtomicCommitArgs cl_args = {.clear_active_composition = true}; + AtomicCommitArgs cl_args{}; + cl_args.composition = std::make_shared<DrmKmsPlan>(); if (CommitFrame(cl_args)) { ALOGE("Failed to clean-up active composition for pipeline %s", pipe_->connector->Get()->GetName().c_str()); diff --git a/compositor/DrmDisplayCompositor.h b/compositor/DrmDisplayCompositor.h index b556268..7e39eef 100644 --- a/compositor/DrmDisplayCompositor.h +++ b/compositor/DrmDisplayCompositor.h @@ -39,15 +39,13 @@ struct AtomicCommitArgs { std::optional<DrmMode> display_mode; std::optional<bool> active; std::shared_ptr<DrmKmsPlan> composition; - /* 'clear' should never be used together with 'composition' */ - bool clear_active_composition = false; /* out */ UniqueFd out_fence; /* helpers */ auto HasInputs() -> bool { - return display_mode || active || composition || clear_active_composition; + return display_mode || active || composition; } }; diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp index f778e22..e02019d 100644 --- a/hwc2_device/HwcDisplay.cpp +++ b/hwc2_device/HwcDisplay.cpp @@ -120,16 +120,6 @@ HwcDisplay::~HwcDisplay() { main_lock.lock(); } -void HwcDisplay::ClearDisplay() { - if (IsInHeadlessMode()) { - ALOGE("%s: Headless mode, should never reach here: ", __func__); - return; - } - - AtomicCommitArgs a_args = {.clear_active_composition = true}; - pipeline_->compositor->ExecuteAtomicCommit(a_args); -} - HWC2::Error HwcDisplay::Init() { int ret = vsync_worker_.Init(pipeline_, [this](int64_t timestamp) { const std::lock_guard<std::mutex> lock(hwc2_->GetResMan().GetMainLock()); |