Hardware cursor fails silently on external display → CPU 99% with software cursor fallback
**System Info:**
```
Hyprland 0.55.0 (v0.55.0)
Aquamarine: 0.11.0
GPU: Intel Alder Lake (integrated)
External display: HDMI connected via USB-C / DP Alt Mode
Mouse: Logitech G502 SE HERO (1000Hz)
OS: CachyOS (Arch Linux), kernel 7.0.5
```
---
Description:
When moving the mouse on the external display (connected via USB-C to HDMI adapter), CPU spikes to 99% on a single logical core. The scheduler migrates the thread continuously, indicating a busy-wait or synchronous infinite loop behavior.
This happens because:
1. The DRM atomic commit for the hardware cursor plane (DRM_PLANE_TYPE_CURSOR) is silently rejected by the Intel i915/xe driver on this specific connector (DP Alt Mode path)
2. Aquamarine falls back to software cursor
3. At 1000Hz mouse polling rate, each evdev interrupt triggers full scene damage tracking + OpenGL texture re-upload
4. Render time exceeds 1ms per frame → thread main cannot keep up → CPU saturation
Workaround:
- cursor { no_hardware_cursors = true } in hyprland.conf
- Reduce mouse polling rate to 250Hz (via ratbagctl/piper)
Expected behavior:
- Hardware cursor should work OR software cursor should not cause CPU saturation
_________
This desciption was done by opencode's Minimax2.5 Free
关闭于 2026-05-11 1 条评论