Hacker News new | ask | show | jobs
by sph 1552 days ago
> go ahead and play a 4k clip on Wayland enabled Firefox then move the mouse pointer, it stutters like crazy.

Either your DE or your Firefox aren't actually using Wayland because for me it's incredibly smooth, and CPU usage is in the low 10%. Fedora 35 on a 6800 XT here.

Firefox still needs tweaks to have actual complete hardware video acceleration.

1 comments

I should've been more clear, Firefox is just an example, my problem is the mouse pointer being affected by heavy load of any kind on the GPU/UI thread.

As coldblues said, it's probably Mutter not having an independent thread for the mouse pointer, X11's pointer handling is independent from Mutter/KWin it seems.

See the demo here to know exactly what I'm talking about: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1241

> the mouse pointer being affected by heavy load of any kind on the GPU/UI thread.

It's because of stuff like this that we should treat UIs more like real time systems. There's really no good reason at all that a modern machine can't render every frame perfectly every time regardless of system load --- it's due to inadequate attention paid to isolating real-time-ish paths like mouse cursor movement, composition, input event dispatch, and so on from app-induced loads that we get weird responsiveness issues. X actually did a better job in this particular respect than your typical Wayland compositor --- it used interrupt driven mouse cursor rendering, for example.

Weird, I'm not seeing it, not even with a GPU heavy game being rendered in a window.
I can easily reproduce the stuttering cursor on GNOME Wayland on all of my systems by doing this:

* move the mouse cursor evenly in a straight motion

* while moving press `Super+a` to open the application list

During the animation, i.e. when GNOME Shell is busy, the mouse cursor noticeably stutters for a moment. On my faster systems it's less apparent but still visible, except when I set the CPU governor to `performance`.

I recently tried the new Ubuntu 22.04 LTS and the mouse stuttering was unbearable while running games via Wine. I had to switch back to Xorg to get rid of it.
Smooth mouse input, especially when using high-DPI mice, is something that's been fixed in GNOME 42 due to release soon.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1915

From that link:

> Nothing has been done here to avoid potential wayland event queue overflows, as IIUC this is being worked on separately. Although I should probably also mention that this hasn't been seen in the wild during this work.

Interesting!

What's your monitor like? Sometimes I suspect it's because of my 4K monitor (with 1.5x scaling), that's a lot of pixels to shuffle, especially if the rendering code/pipeline is not optimised[0].

Testing my setup with a 1080p/75hz monitor[1], it's crazy fast and responsive, but mouse acceleration curve (and scroll), not speed, is still weird.

[0]See Ubuntu pushing for triple buffering for example, and other optimisation work on the past.

[1]Apparently that causes huge speedup, as it affects frame scheduling, according to one GUADEC talk by a Mutter dev.

I'm on 4K at 2x scaling.