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.
Video/animated wallpapers render black or crash plasmashell on hybrid NVIDIA+AMD Wayland setup
Environment
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
gst-launch-1.0using NVDEC hardware decode — works, so this is not a codec/decode problem.QT_MEDIA_BACKEND=gstreamer— no change in behavior. (Reverted this after testing since it didn't help.)~/.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=0was tested as a possible workaround but had to be reverted — it broke monitor EDID negotiation/resolution detection on this system.qdbus6 org.kde.KWin /KWin supportInformationandjournalctl -t kwin_waylandthat 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.contents/ui/tools/gdbus_get_signal.shis 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).razer_vortex) crashed plasmashell outright with SIGSEGV, immediately and repeatedly (hit systemd'sstart-limit-hitafter a few auto-restarts, taking the whole panel/shell down with it). Journal showed aJSON.parse: Parse errorimmediately before each crash, while loading.../wallpaper_engine/projects/defaultprojects/razer_vortex/scene.json.3509243656, not the bundled demo) — crashed plasmashell the same way, SIGSEGV on every startup attempt until the wallpaper config was reverted.~/.config/plasma-org.kde.plasma.desktop-appletsrcto set the affected containments'wallpaperpluginback toorg.kde.image, thensystemctl --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
nvidia-openhybrid GPU (PRIME) setups importing decoded video frames as Wayland/EGL textures.KWIN_EXPLICIT_SYNC=0, which is not viable here due to EDID/resolution side effects) for forcing a different texture import path.