Kwin_wayland_drm: Pageflip timed out! This is a bug in the nvidia-drm kernel driver

kwin_wayland_drm: Pageflip timed out! This is a bug in the nvidia-drm kernel driver
kwin_wayland_drm: Please report this at Linux - NVIDIA Developer Forums
kwin_wayland_drm: With the output of ‘sudo dmesg’ and ‘journalctl --user-unit plasma-kwin_wayland --boot 0’

This has started to be an issue from 570.133.04.
570.144 did not fix the issue.

Anytime I do anything graphically intensive my monitor will just freeze. Sounds will still come through, just no response from the display.

dmesg.txt (88.9 KB)
journalctl.txt (12.3 KB)

3 Likes

This happens to me too. I can recreate it consistently by changing display settings, easiest to show by sliding the brightness up and down, but it also happens randomly while I’m doing other things.

nvidia-bug-report.log.gz (209.2 KB)
dmesg.txt (81.2 KB)
journalctl.txt (11.9 KB)

Happens on both both normal kernel and LTS kernel.

Update: Changing to X11 from Wayland does not solve this issue.

I see similar error logs reported by another user on different thread and he no longer sees this issue with beta drivers (currently 575.51.02).
Could someone please verify it once and update.

Nope. Issue still persists

journalctl.txt (40.0 KB)

Update: I am trying to aquire the bug report file. The system hangs where even keyboard inputs do not register. I do not have remote access to tty.

Update 2: Got the files
dmesg.txt (130.1 KB)
journalctl.txt (15.0 KB)
nvidia-bug-report.log.gz (285.9 KB)

I have this problem on arch linux with

  • kde plasma 6.3.4, kde frameworks 6.13.0, qt 6.9.0
  • kernel 6.14.5-arch-1-1
  • nvidia-open 570.144-4
  • RTX 5070 Ti

I have 3 screens, and when I toggle night color one of the screens will freeze and then the journal spams these repeatedly:

kwin_wayland[115930]: kwin_wayland_drm: Pageflip timed out! This is a bug in the nvidia-drm kernel driver
kwin_wayland[115930]: kwin_wayland_drm: Please report this at https://forums.developer.nvidia.com/c/gpu-graphics/linux
kwin_wayland[115930]: kwin_wayland_drm: With the output of 'sudo dmesg' and 'journalctl --user-unit plasma-kwin_wayland --boot 0'

I have only encountered it when toggling night color or adjusting night color intensity. But I haven’t tried all the ways it could be triggered. But for me it is repeatable by toggling night color.

Thanks for sharing the repro steps, I was able to duplicate issue locally and have file a bug 5275547 internally for tracking purpose.

2 Likes

Hi All,
Fix is already incorporated in 575.51.02 beta release driver, please help to verify and share test results.

nvidia-bug-report.log.gz (285.9 KB)

Hmmmm, no avail.

Thank you for sharing quick test results and bug report.
Shall share it with engineering for triage purpose.

Can confirm that 570.153.02 does not fix the issue

Hi @hackcr1258
We have the fix already incorporated in 575.51.02 beta driver and I have verified the same on my setup locally as well.
There are few other users on another threads which said that issue no longer persists with 575 beta drivers.
However, it seems that you might be running into some other issue. Could you please confirm exact reliable repro steps and repro video is possible.

I have tried to generate a bug report file. I couldn’t as the computer is already frozen. Not even the keyboard works when it is frozen.

The bug happens when starting WINE to run graphical intensive tasks.
In my case, Zenless Zone Zero.

nvidia-bug-report.log.gz (175.2 KB)
Heres the bug report file on 570.153.02

Still trying to get another 575.51.02 bug report.

Thanks, shall wait for bug report from driver 575.51.02 .

Turns out the issue is fixed after completely powering down my system(turning off my PSU even) after removing the libata.noacpi=1 flag from the kernel parameters. Then turn off Ultra Fast Boot in the BIOS

I’m on linux-cachyos-nvidia-open which corresponds to nvidia-open 580.95.05 driver on the linux-cachyos kernel. I have the same issue when loading the overworld in Baldur’s Gate 3.

dmesg.txt (130.5 KB)

journalctl.txt (31.2 KB)

1 Like

Still getting this on 580.95.05, also on linux-cachyos-rc-nvidia-open. This happens every time I even attempt to load a Plasma Wayland session, and COSMIC also refuses to start (though I don’t see that COSMIC reports this specific bug, it just crashes). I simply get a black screen until I hard shutdown my computer - as such, I can’t get a dmesg output. However, GNOME (which is now Wayland-only since 49) loads fine, as do X sessions.

journalctl.txt (780.2 KB)

I’m still running into this as well. I worked with Opus 4.5 to get a work around for my machine, hopefully it’ll prove useful to y’all. Please excuse the AI-isms.

Workaround for black screen after monitor power-off (Samsung G9 / DP HPD de-assert)

I’ve been hitting this bug with a Samsung Odyssey G9 (5120x1440) on DisplayPort. When the monitor is powered off, Samsung monitors fully de-assert the DP HPD line (not just DPMS standby — they look completely disconnected). This triggers the pageflip timeout in nvidia-drm, and KWin Wayland loses all outputs, crashing plasmashell. On wake, the display stays black.

System: CachyOS (Linux 6.18.7-2), RTX 4090, driver 590.48.01, KDE Plasma 6 Wayland, single
5120x1440@120Hz monitor on DP.

After extensive debugging, I found a three-part workaround that reliably recovers the display:

The root cause chain:

  1. Monitor powers off → DP HPD de-asserts
  2. NVIDIA DRM reports connector disconnected
  3. KWin sees zero outputs → plasmashell crashes (SIGABRT: KWaylandBackend: no output modes
    available anymore)
  4. When monitor powers back on, NVIDIA GPU doesn’t re-train the DP link

The fix:

Part 1 — Mask sleep targets (prevents suspend on output disconnect):
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Part 2 — Force DRM connector always-on (prevents KWin from seeing the disconnect):

Create /usr/local/bin/dp-keep-alive-setup.sh:
#!/bin/bash
DEBUGFS=/sys/kernel/debug/dri/1/DP-1 # adjust card number and connector
EDID_FILE=/etc/firmware/edid/your-monitor.bin

Wait for debugfs

for i in $(seq 1 30); do [ -f “${DEBUGFS}/force” ] && break; sleep 1; done

Save your EDID first (run once while monitor is on):

sudo cp /sys/class/drm/card1-DP-1/edid /etc/firmware/edid/your-monitor.bin

Load EDID override and force connector on

[ -f “$EDID_FILE” ] && cp “$EDID_FILE” “${DEBUGFS}/edid_override”
echo on > “${DEBUGFS}/force”

Create a systemd service to run this at boot:
[Unit]
Description=Force DP connector always-on
After=display-manager.service
Requires=sys-kernel-debug.mount

[Service]
Type=oneshot
ExecStart=/usr/local/bin/dp-keep-alive-setup.sh
RemainAfterExit=yes

[Install]
WantedBy=graphical.target

Part 3 — Automatic display recovery (forces modeset on reconnection):

With force=on, KWin never crashes, but the GPU stops driving the display signal when HPD drops.
The key insight: changing to a different resolution via kscreen-doctor forces a real modeset,
which makes the GPU re-train the DP link.

Note: I2C polling (i2cdetect) doesn’t work for detection with force=on because the GPU’s I2C
controller answers on behalf of the monitor. However, PowerDevil’s ddcutil-based DDC monitoring
still detects the real physical state and logs reconnection events.

Create /usr/local/bin/dp-monitor-recovery.sh:
#!/bin/bash
journalctl --user -u plasma-powerdevil -f --no-pager -g “Adding connected display with bus” |
while read -r line; do
sleep 3 # wait for link to stabilize
kscreen-doctor output.DP-1.mode.2560x1440@120 # different mode forces real modeset
sleep 1
kscreen-doctor output.DP-1.mode.5120x1440@120 # back to native
done

Run this as a user systemd service (~/.config/systemd/user/) so kscreen-doctor has the right
Wayland session environment.

Result: Monitor power off → system stays alive, no plasmashell crash. Monitor power on → ~5 second
delay → display automatically recovers. Tested repeatedly with RTX 4090 on driver 590.48.01.

Key findings during debugging:

  • Setting the same mode is a no-op — you must change to a different resolution to trigger a real
    modeset
  • kscreen-doctor output.DP-1.disable doesn’t work — KWin blocks disabling the only output
  • udev rules on SUBSYSTEM==“drm” ACTION==“change” don’t fire with force=on (status never changes)
  • The display works fine at the framebuffer/Plymouth level — confirmed by the monitor coming back
    during reboot after KWin exits, proving the issue is entirely in the KWin↔nvidia-drm interaction

Happy hunting!