aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-02-09 17:19:56 +0200
committerRoman Stratiienko <roman.o.stratiienko@globallogic.com>2022-02-09 17:21:32 +0200
commitef5348b7a53ee7fc169956a95d959c2823aaf478 (patch)
treefb77d97f5bcb750bd42370cd95602173a6643b02
parent71f196fce021326fe9a72f6ee205bfb6b71c794f (diff)
downloaddrm_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.cpp15
-rw-r--r--compositor/DrmDisplayCompositor.h4
-rw-r--r--hwc2_device/HwcDisplay.cpp10
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());