diff --git a/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp b/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp index 560a680eab..9ab2024924 100644 --- a/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp +++ b/src/platformsupport/scenes/opengl/abstract_egl_backend.cpp @@ -192,11 +192,7 @@ void AbstractEglBackend::initWayland() LinuxDmaBufV1ClientBufferIntegration *dmabuf = waylandServer()->linuxDmabuf(); dmabuf->setRenderBackend(this); dmabuf->setSupportedFormatsWithModifiers(m_tranches); - if (auto syncObj = waylandServer()->linuxSyncObj()) { - syncObj->setRenderBackend(this); - } } - waylandServer()->setRenderBackend(this); } diff --git a/src/wayland_server.cpp b/src/wayland_server.cpp index 36c02cd3eb..eefdde86ff 100644 --- a/src/wayland_server.cpp +++ b/src/wayland_server.cpp @@ -855,6 +855,10 @@ void WaylandServer::setRenderBackend(RenderBackend *backend) } } else if (m_linuxDrmSyncObj) { m_linuxDrmSyncObj->remove(); + m_linuxDrmSyncObj = nullptr; + } + if (m_linuxDrmSyncObj) { + m_linuxDrmSyncObj->setRenderBackend(backend); } }