linuxmint / linuxmint/cinnamon

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

Open
#12,687 20 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

BUG
Dominant language
JavaScript
Stars
5.6k
Forks
915
Avg merge
5d 22h
Merged PRs (30d)
3

Description

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.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue with Cinnamon's System Tray applet, an application-created tray icon, and X11 VRR enabled; compare behavior with Cinnamon removed from Mesa's VRR blacklist and with the app's D-Bus session-bus access restricted. Trace how tray icons are handled and how fullscreen applications interact with VRR. Done means tray icons no longer prevent games from triggering VRR without breaking desktop refresh behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.