Skip to content

Video/animated wallpapers render black or crash plasmashell on hybrid NVIDIA+AMD Wayland setup #290

Description

@Pesqually

Video/animated wallpapers render black or crash plasmashell on hybrid NVIDIA+AMD Wayland setup

Environment

  • Distro: CachyOS Linux
  • Kernel: 7.1.8-1-cachyos
  • Plasma: 6.7.4 (plasmashell 6.7.4, kwin_wayland 6.7.4), Wayland session
  • GPU: NVIDIA GeForce RTX 5070 Ti (driver 610.57.04, nvidia-open kernel modules) + AMD Ryzen 7 9700X iGPU (amdgpu) — hybrid GPU / PRIME setup
  • Plugin: Smart Video Wallpaper Reborn v2.13.0 (luisbocanegra.smart.video.wallpaper.reborn)

Summary

Video-based Plasma wallpapers stopped rendering after a suspend/resume cycle and have not worked since, across two independent wallpaper plugins. The pattern points at a shared root cause in how decoded video frames are imported as GPU textures into KWin's Wayland compositor scene graph on this hybrid NVIDIA+AMD setup, rather than a bug in either individual plugin.

Primary issue: Smart Video Wallpaper Reborn renders solid black

  • Was working correctly for weeks with a local 4K AV1 video file.
  • Broke immediately after a suspend/resume cycle — wallpaper area has rendered solid black ever since, with no crash and no errors surfaced to the user.
  • Confirmed the video file itself decodes fine standalone: manually tested with gst-launch-1.0 using NVDEC hardware decode — works, so this is not a codec/decode problem.
  • Switched Qt Multimedia backend from FFmpeg (default) to GStreamer via QT_MEDIA_BACKEND=gstreamer — no change in behavior. (Reverted this after testing since it didn't help.)
  • Full system package update + reboot — no change.
  • NVIDIA driver confirmed already at latest available version (610.57.04) at time of testing.
  • Cleared all GPU-related shader/pipeline caches (~/.cache/nvidia, ~/.cache/mesa_shader_cache, ~/.cache/qtshadercache-*) in case a stale cache entry from the original crash was the cause, followed by full reboot — no change.
  • KWIN_EXPLICIT_SYNC=0 was tested as a possible workaround but had to be reverted — it broke monitor EDID negotiation/resolution detection on this system.
  • Confirmed via qdbus6 org.kde.KWin /KWin supportInformation and journalctl -t kwin_wayland that the compositor itself is healthy during wallpaper playback — no pageflip errors, no context-loss errors, no GL/EGL errors logged while the black wallpaper is displayed.
  • Known secondary/cosmetic bug also present: contents/ui/tools/gdbus_get_signal.sh is missing its execute bit in the installed package, producing repeated "Permission denied" errors in the user journal (unrelated to the black-screen issue, but worth fixing alongside).

Working theory: video decode succeeds, but the resulting frame is never successfully imported as a texture into the QML/KWin scene graph on this hybrid GPU (NVIDIA discrete + AMD iGPU) Wayland configuration — likely a DMA-BUF/EGL texture-import failure that fails silently rather than erroring.

Secondary data point: same symptom on a second, independent plugin

To rule out a plugin-specific bug, also installed plasma6-wallpapers-wallpaper-engine-git (native C++ Wallpaper Engine integration for Plasma 6, unrelated codebase to the plugin above) and tested with genuine Steam Workshop Wallpaper Engine content (owned via Steam).

  • First attempt (bundled default scene razer_vortex) crashed plasmashell outright with SIGSEGV, immediately and repeatedly (hit systemd's start-limit-hit after a few auto-restarts, taking the whole panel/shell down with it). Journal showed a JSON.parse: Parse error immediately before each crash, while loading .../wallpaper_engine/projects/defaultprojects/razer_vortex/scene.json.
  • Second attempt with a different, real subscribed Workshop wallpaper (item id 3509243656, not the bundled demo) — crashed plasmashell the same way, SIGSEGV on every startup attempt until the wallpaper config was reverted.
  • Both crashes were recovered the same way: edit ~/.config/plasma-org.kde.plasma.desktop-appletsrc to set the affected containments' wallpaperplugin back to org.kde.image, then systemctl --user reset-failed plasma-plasmashell.service && systemctl --user start plasma-plasmashell.service. Without this, plasmashell stays permanently crash-looped (systemd start-limit-hit) since it re-attempts loading the same broken wallpaper config on every restart.

This plugin did not just fail to render (like Smart Video Wallpaper Reborn) — it reliably crashed the entire Plasma shell (panel, desktop, everything) on every scene tested, whether a bundled demo or genuine Workshop content. Two independently-developed plugins, doing the same fundamental thing (decode/render a video or animated scene, then composite it as the desktop background), both fail on this system in ways consistent with a GPU texture import/composite problem rather than either plugin's own logic — strengthening the theory that this is an NVIDIA-Wayland-hybrid-GPU compositor issue rather than an application bug. Filing here since Smart Video Wallpaper Reborn is the plugin actually in daily use and where the most diagnostic work was done; happy to cross-post/link to the Wallpaper Engine KDE plugin repo (com.github.catsout.wallpaperEngineKde) separately given the severity of that crash.

What would help

  • Any known compatibility issue with nvidia-open hybrid GPU (PRIME) setups importing decoded video frames as Wayland/EGL textures.
  • Whether there's a KWin or Qt env var / config workaround (other than KWIN_EXPLICIT_SYNC=0, which is not viable here due to EDID/resolution side effects) for forcing a different texture import path.
  • Confirmation of whether this is more likely an upstream NVIDIA driver bug, a KWin bug, or something plugin-fixable — willing to gather more logs/traces if pointed at the right diagnostic.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions