Refresh rates are mixed up in maximized and full screen apps on a multi monitor setup
Affected version
Fedora 34, Gnome 40.4
gnome-shell-40.4-1.fc34.x86_64
mutter-40.5-2.fc34.x86_64
Bug summary
When you have multiple displays set up in "Join Displays" mode with different refresh rates, the wrong refresh rate is applied to apps that use V-Sync.
Setup
Hardware:
- Dell U2718Q - 4K 60 Hz
- LG 27GN950 - 4k 144 Hz
Display setup:
- "Join Displays" mode, U2718Q (60 Hz) on the left, 27GN950 (144 Hz) on the right.
- The default monitor (which has the shell UI) is set to the 27GN950 (144 Hz) on the right.
Steps to reproduce
- Log in to the Gnome Wayland session
- Launch
glxgears
- Maximize
glxgears
on the 60 Hz monitor -> now it will report a frame rate of 144 fps - Maximize
glxgears
on the 144 Hz monitor -> now it will report a frame rate of 60 fps - Run
glxgears
in fullscreen mode -> now it reports 60 fps regardless of which monitor it's on
NOTE: the frame rate is correct if the window isn't maximized or full screen.
What happened
The V-synced frame rates are mixed up.
What did you expect to happen
The V-synced frame rates should match the monitor's refresh rate.
Possible workarounds
- If I disable the one of the monitors entirely, the issue doesn't happen.
- If I set up the display configuration so that the 144 Hz monitor is on the left, it's different: now 144 fps is selected for V-Synced fullscreen applications even on the 60 Hz monitor.