Steam Wayland Mouse Bug - Solved with X11 4K@120Hz Workaround
Overview
This report documents a critical Steam client bug on Wayland and provides a complete workaround by enabling 4K@120Hz on X11 with AMD GPUs using HDMI 2.1 adapters.
System Specifications
| Component |
Details |
| OS |
Zorin OS 18 (Ubuntu 24.04 based) |
| Kernel |
6.14.0-35-generic |
| GPU |
AMD Radeon RX 7900 XTX |
| Display |
Samsung QC90 4K 120Hz |
| Connection |
DisplayPort 1.4 → HDMI 2.1 (Cable Matters adapter) |
| RAM |
62 GB |
The Problem: Steam Mouse Alignment Bug on Wayland
Bug Description
When running the native Steam for Linux client on a Wayland session, the mouse cursor is severely misaligned with UI elements. This makes the client effectively unusable:
- Right-clicking shows context menus far from the cursor
- Hovering over menu items doesn't highlight them
- Clicks don't register on the intended elements
- Mouse cursor frequently disappears during interactions
Failed Troubleshooting Attempts
The following did not resolve the issue:
- Restarting Steam - issue persists across launches
steam -vgui flag - no effect
steam -no-cef-sandbox flag - no effect
steam --reset - no effect
- Verified display scaling at 100% (no fractional scaling)
Root Cause
This appears to be a software bug in the Steam client's interaction with Wayland compositors on AMD GPUs - not a user configuration issue.
The Solution: X11 with 4K@120Hz
Why X11 Was Previously Not Viable
X11 didn't expose HDMI 2.1 FRL (Fixed Rate Link) modes through xrandr, limiting displays to 4K@60Hz. Since Wayland handled 4K@120Hz correctly, it seemed like the only option despite the Steam bug.
The Discovery
While Wayland's DRM/KMS layer automatically handles HDMI 2.1 FRL modes, X11/xrandr requires manual modeline configuration. The kernel successfully detects FRL PCON support:
[drm] DP-HDMI FRL PCON supported
But xrandr doesn't expose these modes automatically.
X11 4K@120Hz Configuration
Manual Mode Setup
Add the 4K@120Hz mode manually:
xrandr --newmode "3840x2160_120" 1188.000 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync
xrandr --addmode DisplayPort-0 "3840x2160_120"
xrandr --output DisplayPort-0 --mode "3840x2160_120"
Persistent Configuration
Create ~/.config/autostart/set-120hz.desktop:
[Desktop Entry]
Type=Application
Name=Set 120Hz Display
Exec=/bin/bash -c 'sleep 2 && xrandr --newmode "3840x2160_120" 1188.000 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync 2>/dev/null; xrandr --addmode DisplayPort-0 "3840x2160_120" 2>/dev/null; xrandr --output DisplayPort-0 --mode "3840x2160_120"'
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
This automatically applies 4K@120Hz when logging into X11.
Additional Optimizations
CPU Performance Mode (Persistent)
Create /etc/systemd/system/cpu-performance.service:
[Unit]
Description=Set CPU Governor to Performance
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor'
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Enable with:
sudo systemctl daemon-reload
sudo systemctl enable --now cpu-performance.service
GPU Performance Mode
Already configured via udev rule at /etc/udev/rules.d/99-amdgpu-performance.rules to set power_dpm_force_performance_level=high.
vkBasalt Sharpening
For enhanced image quality in Vulkan games:
~/.config/vkBasalt/vkBasalt.conf:
effects = cas
casSharpness = 1.0
toggleKey = F12
Launch games with:
ENABLE_VKBASALT=1 /path/to/game
Verification Commands
Check Display Mode
xrandr --verbose | grep "3840x2160_120"
# Should show: *current
Check CPU Governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Should output: performance
Check GPU Performance
cat /sys/class/drm/card*/device/power_dpm_force_performance_level
# Should output: high
Results
| Metric |
Before |
After |
| Display Server |
Wayland |
X11 |
| Resolution |
3840x2160 |
3840x2160 |
| Refresh Rate |
120Hz |
120Hz |
| Steam Usable |
No |
Yes |
| Mouse Alignment |
Broken |
Working |
Hardware Requirements
For this solution to work, you need:
- GPU with DisplayPort 1.4 - AMD RX 6000/7000 series or equivalent
- HDMI 2.1 FRL adapter - Must support 48Gbps for 4K@120Hz
- Confirmed working: Cable Matters 8K DP to HDMI (B08XFSLWQF)
- Also works: Club3D CAC-1085
- Display with HDMI 2.1 - Ensure correct port and settings enabled
- Samsung TVs: Enable "Input Signal Plus" for the HDMI port
Why This Matters
Linux lacks HDMI 2.1 licensing, so the open-source drivers can't officially implement HDMI 2.1. However, with FRL-capable DP-to-HDMI adapters and manual xrandr configuration, 4K@120Hz is achievable on X11.
This provides a viable workaround for users affected by Wayland-specific bugs (like the Steam mouse issue) while maintaining high refresh rate gaming.
Conclusion
The Steam Wayland mouse bug remains unresolved in the Steam client. However, by manually configuring X11 to support 4K@120Hz through custom xrandr modelines, users can:
- Avoid the Steam Wayland mouse alignment bug
- Maintain full 4K@120Hz gaming capability
- Benefit from X11's mature gaming ecosystem
This solution is confirmed working on AMD RX 7900 XTX with kernel 6.14 and Cable Matters DP-to-HDMI 2.1 adapter.
Files & Resources
- Autostart script:
~/.config/autostart/set-120hz.desktop
- CPU service:
/etc/systemd/system/cpu-performance.service
- GPU udev rule:
/etc/udev/rules.d/99-amdgpu-performance.rules
- vkBasalt config:
~/.config/vkBasalt/vkBasalt.conf
Contributing
If you've found additional solutions or have similar hardware configurations, please share your findings to help the Linux gaming community.