dweymouth / supersonic

A lightweight and full-featured cross-platform desktop client for self-hosted music servers
GNU General Public License v3.0
675 stars 26 forks source link

[Bug?] Forces display to 60Hz refresh (Windows 11 + NVIDIA G-SYNC) #290

Closed opticsthewebsite closed 6 months ago

opticsthewebsite commented 6 months ago

I have a Windows 11 PC with a display running at 175Hz refresh with NVIDIA G-SYNC enabled.

When Supersonic is the selected application, it forces the entire display to revert to a 60Hz refresh. This causes the monitor to use strobing to fill in the "missing" frames. When Supersonic loses focus, the display reverts back to 175Hz refresh. This basically makes the program unusable because the frame strobing is extremely distracting.

dweymouth commented 6 months ago

This is probably due to the UI library Supersonic uses - Fyne (https://github.com/fyne-io/fyne) - which does run on a 60Hz refresh rate but I am a bit surprised it forces the monitor to change the hardware refresh rate. Could you try the Fyne demo or any other Fyne app and if this reproduces there as well, open an issue with the Fyne project? Thanks!

opticsthewebsite commented 6 months ago

Looks like they are aware of the issue and are working on incorporating it into their version 2.5 toolkit. No release date available yet.

https://github.com/fyne-io/fyne/issues/3853

opticsthewebsite commented 6 months ago

I realized I had my G-SYNC settings improperly applied to my system. G-SYNC can be enabled in one of two modes: Full screen mode, or windowed + full screen mode. In windowed + full screen mode, whichever window has the lowest refresh rate forces the entire screen to use that rate. In full screen mode, this is not the case. Setting my G-SYNC settings to full screen mode has solved the issue for me.

I would consider this issue closed due to user error with a misconfigured graphics system. But I'll leave it up to you if you want to close the issue to keep it open.

dweymouth commented 6 months ago

Thanks for the update! I'll close this since we also have the open issue in Fyne tracking this