ITADN

Reproducible display freezes and frame jumps associated with page-flip failures

#9179Openrhelder 创建于 2026-06-10
bug
R
rheldercommented
## Issue ### Steps to reproduce 1. Start Sway with upstream default configuration. 2. Open a terminal emulator. 3. Open a long document in Vim or Neovim. 4. Scroll through the document with `Ctrl+F` or `Ctrl+B` for a minute or two. ### Expected behavior Smooth scrolling, if holding down `Ctrl+F` or `Ctrl+B`, or, if pressing `Ctrl+F` or `Ctrl+B` repeatedly, an instant jump each time. ### Actual behavior Sway (or at least the contents of the window) frequently freezes momentarily, and then jumps forward or backward a few pages. Whenever this occurs, Sway emits the following error: ``` 01:07:54.832 [ERROR] [wlr] [backend/drm/atomic.c:82] connector eDP-1: Atomic commit failed: Device or resource busy 01:07:54.832 [ERROR] [sway/desktop/output.c:307] Page-flip failed on output eDP-1 ``` #### Logs (I followed the wlroots DRM debugging guidelines.) - [sway.log](https://github.com/user-attachments/files/28814242/sway.log) - [dmesg.log](https://github.com/user-attachments/files/28814254/dmesg.log) ### Related The symptoms match #7519, which @emersion suggested was connected to https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3507. Although the symptoms match, I'm opening a new issue because my issue is occurring in a different context – in particular, I'm using the Intel xe driver, not the i915 driver. ## System - Sway version: 1.12 (with the default configuration) - Kernel version: 7.0.11-hardened2-1-hardened - Mesa version: 26.1.2 - DRM driver: xe - GPU: Intel Lunar Lake ## Observations I tried to reproduce the issue under a variety of circumstances: - I was able to reproduce the issue in both Vim and Neovim. (The issue is observable in other circumstances as well – e.g. after pressing `Enter` at the command line prompt, or while paging through a man page. Scrolling through a document in Vim or Neovim is just the easiest way I've found to get the freezes to occur.) - I was able to reproduce the issue in both kitty (my usual terminal emulator) and foot. - I was able to reproduce the issue both on an external monitor and on my laptop's built-in monitor. - According to `gputop`, minimal GPU resources were used when reproducing the issue (<1%). - I was not able to reproduce the issue in `tinywl`. - I was not able to reproduce the issue in Hyprland, the only non-wlroots compositor I tried. - I was not able to reproduce the issue in i3. The `tinywl` result in particular shows that not all wlroots compositors suffer from this issue, which is why I'm reporting this as a Sway issue first. The fact that I can't reproduce the issue in Hyprland or i3 at least goes to show that the issue isn't caused by some general defect of my system. And the fact that I can reproduce the issue in multiple terminal emulators and text editors goes to show that the issue isn't being caused by the software used to reproduce the issue. ## Further context I have experienced symptoms of this sort in the past (including on an older machine where I was using the i915 driver), and so I always used to use the legacy DRM backend by setting `WLR_DRM_NO_ATOMIC`, as is suggested by some of the folks commenting on #7519. For some reason, I am no longer able to use the legacy DRM backend as of wlroots 0.20 and Sway 1.12, and so now I am experiencing the issue again (or experiencing a different issue with similar symptoms). The fact that the legacy DRM backend doesn't work for me is a separate issue, but I'll describe it briefly here **just in case** it helps isolate the cause of the issue I'm reporting. Since wlroots 0.20 and Sway 1.12, when I start Sway with the legacy DRM backend, I just get a black screen. It's not easy for me to parse the logs, but it looks as if Sway gives up on finding a valid configuration for my monitor (both with my actual config and the vanilla config) and therefore never activates it. **Just in case** it's useful, here is a Sway debug log and a DRM debug log of what happens when I try to start Sway with the legacy DRM backend. - [sway.log](https://github.com/user-attachments/files/28814312/sway.log) - [dmesg.log](https://github.com/user-attachments/files/28814346/dmesg.log) Thank you for your work!
1 条评论