Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Freesync/VRR is BLOCKED when an app draws an icon on the System Tray applet #12687

Open
AchillesBoi opened this issue Jan 27, 2025 · 8 comments
Labels

Comments

@AchillesBoi
Copy link

AchillesBoi commented Jan 27, 2025

Distribution

Mint 22.1 (happens in older releases)

Package version

Cinamon 6.4.6 (happens in older versions)

Graphics hardware in use

AMD RX 6800 XT

Frequency

Always

Bug description

When a game has its own launcher (ex: GTA and Rockstar Launcher, Titanfall 2 and EA Launcher) and it draws an icon on the System Tray applet, Variable Refresh Rate (Freesync/VRR) remains completely disabled until said app/launcher closes.

Image

Freeesync/VRR is disabled whenever any application draws a System Tray icon, not just the above examples.

Steps to reproduce

  1. Enable VRR through the method supported by X11 (amdgpu.conf)
  2. Open a game that uses a launcher (or any app) that draws a System Tray icon
  3. Notice how the game can be at 60fps but the monitor will remain at its highest refresh rate (ex: 75, 120, 170, etc)

Expected behavior

Games should be able to trigger VRR regardless of what icons are drawn on the System Tray. Removing the System Tray applet does not resolve the issue; something about an application wanting to draw a System Tray icon is interfering with VRR regardless of the panel configuration.

Additional information

A temporary solution is to remove Cinnamon from Mesa's VRR blacklist. This impedes Cinnamon to incorrectly disable VRR while on a fullscreen app/game. The downside is that Cinnamon, while on the desktop, runs at the lowest range at all times. In the case of my monitor, it gets stuck at 48hz.

Image

This confirms that Cinnamon is getting in the way of VRR. It seems that X11 thinks that Cinnamon is drawing something on top of the game and thus disables VRR as per Mesa's default configuration.

The real solution would be to change how Cinnamon handles System Tray icons. The only potential lead I have is the following:

Image

The soundboard application Soundux (flatpak) also draws a System Tray icon and also interferes with VRR. However, if I grant it access to the D-Bus session bus socket through Flatseal, it fails to draw its icon on the System Tray and thus is unable to interfere with VRR.

Image

This is the only way I can use Soundux with other games with VRR enabled and working properly.

Reminder: Removing the System Tray applet does not resolve the issue; something about an application wanting to draw a System Tray icon is interfering with VRR regardless of the panel configuration.

@AchillesBoi AchillesBoi changed the title Freesync/VRR is BLOCKED when an app draws an icon in the System Tray applet Freesync/VRR is BLOCKED when an app draws an icon on the System Tray applet Jan 27, 2025
@SpoOokY1983
Copy link

SpoOokY1983 commented Jan 27, 2025

Another workaround is to set the task bar to autohide. Once the full screen app "pushes" the task bar out of the screen, VRR works even though the tray symbol is actually present.

Another one is to bind "pkill CrBrowserMain" to a shortcut. I figured that Blizzard as well as RSI launcher create the same process. Once it is killed, the launchers close, tray icons vanish but games still work.

@AchillesBoi
Copy link
Author

AchillesBoi commented Jan 27, 2025

Unfortunately hiding the panel does not work for me. This was one of the first things I tried but for some reason VRR remains blocked until the app/launcher stops drawing the tray icon. It might have something to do with AMD versus Nvidia.

I will try your second workaround and will report back. Hopefully it works for Rockstar Launcher.

Update: it does not work with the Rockstar Launcher. It detects that it's being closed and automatically shuts down whatever game is being played through it. In my case it was Red Dead Redemption II and GTA Trilogy.

@AchillesBoi
Copy link
Author

AchillesBoi commented Jan 27, 2025

Devs please fix this. My computer is perfectly capable of running every game with VRR but Cinnamon gets in the way of a handful of them for no reason. We are able to fix this in GNOME easily by disabling the legacy tray icons extension, but disabling the System Tray applet in Cinnamon does nothing. Since Cinnamon is based on GNOME, a similar solution should be possible.

This is unfortunately pushing me to consider other DEs like KDE Plasma, which I don't really want to switch to (but I'll have to if there's no fix in sight) because Mint/Cinnamon is amazing and the perfect setup for my work/play environment.

@SpoOokY1983
Copy link

@AchillesBoi
Copy link
Author

AchillesBoi commented Jan 27, 2025

Very disappointing to see how one of the devs here completely dismissed this very real problem when you opened the issue report those many months ago. I'm hoping this is brought to the attention of other developers that may be able to help. At the very least there should be an option to completely (but temporarily) disable legacy tray icon support like you can in GNOME.

@SpoOokY1983
Copy link

Just tried again with VRRTest (https://github.com/Nixola/VRRTest) and the bar set to "Intelligently hide panel". Even though RSI Launcher runs and shows the tray icon, VRR kicks in with all apps. But yeah, that is probably a difference between AMD and my Nvidia GPU.

Anyway, this issue exists since ages and I cannot understand why this is not being worked on. Should be pretty easy to add a option to hide legacy tray icons or individual ones.

@AchillesBoi
Copy link
Author

AchillesBoi commented Jan 29, 2025

Yeah it's just a case of Cinnamon getting in the way. If only removing the System Tray applet disabled legacy icons completely then we could have a nice workaround but currently it doesn't. It just stays active for some reason unlike GNOME. Maybe there could be a switch in the settings, or through a dconf flag? This sounds like a super easy fix but I'm no expert so I guess we'll just have to wait and see.

@Hessutar
Copy link

Plus one here. Noticed the same with Battle.net. Got an AMD RX 7600.

If I leave the Battle.net app open in the background while I play World of Warcraft VRR doesn't work. The moment I close the Battle.net app completely VRR starts to work.

Image

Battle.net app open.

Image

Battle.net app closed.

Image

To make things easier for now I just use this settings to solve the problem.

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants