From 7dddcf202b4f647ccb8a7512d67f56f27f054133 Mon Sep 17 00:00:00 2001 From: Xaver Hugl Date: Mon, 19 Apr 2021 12:22:29 +0200 Subject: [PATCH] platforms/drm: Don't create outputs without primary plane in AMS --- src/plugins/platforms/drm/drm_gpu.cpp | 7 ++++++- src/plugins/platforms/drm/drm_output.cpp | 4 ---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/platforms/drm/drm_gpu.cpp b/src/plugins/platforms/drm/drm_gpu.cpp index c43eb97ee2..10e5fe0547 100644 --- a/src/plugins/platforms/drm/drm_gpu.cpp +++ b/src/plugins/platforms/drm/drm_gpu.cpp @@ -256,10 +256,15 @@ bool DrmGpu::updateOutputs() continue; } + auto primary = getCompatiblePlane(DrmPlane::TypeIndex::Primary, crtc); + if (m_atomicModeSetting && !primary) { + continue; + } + DrmOutput *output = new DrmOutput(this->m_backend, this); output->m_conn = con; output->m_crtc = crtc; - output->m_primaryPlane = getCompatiblePlane(DrmPlane::TypeIndex::Primary, crtc); + output->m_primaryPlane = primary; qCDebug(KWIN_DRM) << "For new output use mode" << con->currentMode().mode.name; if (!output->init()) { diff --git a/src/plugins/platforms/drm/drm_output.cpp b/src/plugins/platforms/drm/drm_output.cpp index ce8bdf1d66..4e4132c9d9 100644 --- a/src/plugins/platforms/drm/drm_output.cpp +++ b/src/plugins/platforms/drm/drm_output.cpp @@ -155,10 +155,6 @@ bool DrmOutput::moveCursor() bool DrmOutput::init() { - if (m_gpu->atomicModeSetting() && !m_primaryPlane) { - return false; - } - setSubPixelInternal(m_conn->subpixel()); setInternal(m_conn->isInternal()); setCapabilityInternal(Capability::Dpms);