diff --git a/scene.cpp b/scene.cpp --- a/scene.cpp +++ b/scene.cpp @@ -964,7 +964,8 @@ if (isValid() || toplevel()->isDeleted()) { return; } - if (toplevel()->surface()) { + // always update from Buffer on Wayland, don't try using XPixmap + if (kwinApp()->shouldUseWaylandForCompositing()) { // use Buffer updateBuffer(); if ((m_buffer || !m_fbo.isNull()) && m_subSurface.isNull()) {