Cursor freeze when no updates are happening on the screen in 45.3
System
Laptop with hybrid Intel HD 3000/Nvidia GT640M graphics
OS: Fedora 39
Windowing System: Wayland
Mutter: 45.3
Mesa: 23.3.2
Nvidia driver: 470.223.02 (legacy branch)
More system information
System:
Host: fedora Kernel: 6.6.12-200.fc39.x86_64 arch: x86_64 bits: 64
compiler: gcc v: 2.40-13.fc39 Desktop: GNOME v: 45.3 tk: GTK v: 3.24.39
wm: gnome-shell dm: GDM Distro: Fedora release 39 (Thirty Nine)
CPU:
Info: dual core model: Intel Core i3-2370M bits: 64 type: MT MCP
arch: Sandy Bridge rev: 7 cache: L1: 128 KiB L2: 512 KiB L3: 3 MiB
Speed (MHz): avg: 2124 high: 2400 min/max: 800/2400 cores: 1: 1686 2: 2400
3: 2010 4: 2400 bogomips: 19156
Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics
vendor: QUANTA driver: i915 v: kernel arch: Gen-6 ports: active: LVDS-1
empty: DP-1,HDMI-A-1,VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0116
Device-2: NVIDIA GK107M [GeForce GT 640M] vendor: QUANTA driver: nvidia
v: 470.223.02 arch: Kepler pcie: speed: 2.5 GT/s lanes: 16 ports:
active: none empty: VGA-2 bus-ID: 01:00.0 chip-ID: 10de:0fd2
Device-3: Bison [] driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
lanes: 1 bus-ID: 2-3:3 chip-ID: 5986:04ac
Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 23.2.4
compositor: gnome-shell driver: X: loaded: modesetting,nvidia
unloaded: fbdev,nouveau,vesa alternate: nv dri: crocus gpu: i915
display-ID: 0
Monitor-1: LVDS-1 model: AU Optronics 0x22ec res: 1366x768 dpi: 101
diag: 394mm (15.5")
API: EGL v: 1.5 platforms: device: 0 drv: nvidia device: 1 drv: crocus
device: 3 drv: swrast gbm: drv: crocus surfaceless: drv: crocus wayland:
drv: crocus x11: drv: crocus inactive: device-2
API: OpenGL v: 4.6.0 compat-v: 3.3 vendor: intel mesa v: 23.3.3 glx-v: 1.4
direct-render: yes renderer: Mesa Intel HD Graphics 3000 (SNB GT2)
device-ID: 8086:0116 display-ID: :0.0
API: Vulkan v: 1.3.268 surfaces: xcb,xlib,wayland device: 0
type: discrete-gpu driver: nvidia device-ID: 10de:0fd2 device: 1 type: cpu
driver: mesa llvmpipe device-ID: 10005:0000
Details
Mouse pointer barely moves unless something else causing screen to update, e.g. blinking cursor in terminal/text editor, hovering over buttons/menu items, or glxgears running and visible on screen. When the movement actually happens pointer instantly jumps into new location. If updates are frequent enough (as in the case of glxgears) then cursor moves without any visible issues.
Doesn't happen if either nvidia's proprietary driver completely disabled
or when hardware cursor disabled through MUTTER_DEBUG_DISABLE_HW_CURSORS=1
.
Seems to be somehow related to changes introduced in !2905 (merged), rebuilding mutter with those reverted also restores normal cursor behavior.
Steps to reproduce
Looks like it depends on certain combination of legacy hardware and/or drivers, so I'm not sure how to reproduce it on another machine.
Relevant information
To me this behavior looks very similar to gnome-shell#7007 (closed) (2,3,4 examples), except that it happens without any screencasting in my case. Don't know if that issue itself is actually related to mine though.