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>
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 @@
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 @@
}
}
- 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 @@
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 @@
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 @@
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());