Skip to content

Automatically disabling Game Mode on macOS 14+ #1297

@crystall1nedev

Description

@crystall1nedev

Is your feature request related to a problem? Please describe.
This issue comes from a problem that Apple created with macOS Sonoma 14.0 and later: Game Mode. The feature is designed and marketed as such:

Game Mode automatically gives games top priority on the CPU and GPU of your Mac, lowering usage for background tasks. And it dramatically reduces latency with wireless accessories, like AirPods and your favorite controllers, for responsiveness you can feel.

However, after examination across multiple Apple silicon Macs and multiple apps, Game Mode causes issues with apps that stream games to your Mac (GeForce NOW and Moonlight are the two that have major issues.)

Issues that can be observed while in macOS' native fullscreen (using Borderless Windowed, without notch):

  • Mouse and trackpad jitter, latency, and inability to function properly.
    • Even without the mouse captured, the mouse will struggle to properly move and "jump" around the screen. This is a serious issue that I discovered with my wife, and makes gaming with a mouse completely unusable. We have reproduced it on macOS 14.3 and later.
  • Audio and video stutter, and inability to sustain stable frame times.
    • This causes Moonlight to blame the network even though the network is fine!

Describe the solution you'd like
In order to avoid this issue, the Info.plist of the macOS application needs to be modified. gamepolicyd on macOS 14 and later (part of GamePolicy.framework) checks for an LSApplicationCategoryType of *.games. That's it - the entire check is "does it end in games". If you change this to another category, it prevents the issue.

The reason I recommend this approach is because of how disabling Game Mode works on Mac: you can only do it if the app is running, and if you can point your mouse to the menu bar. It's automatically enabled, and there is no system-wide way to disable it without disabling SIP (unloading the service file doesn't work with it on, which is... stupid.)

Describe alternatives you've considered
I understand that changing the app category to something else might confuse the end user, as this is also how Launchpad determines where to put applications, and it might be a bit weird for the developers to implement. However, this might prevent any issues like the above from being filed if they are directly caused by Game Mode.

Additional context
A few things I gathered from Reddit and other issues on this repo:

https://www.reddit.com/r/GeForceNOW/comments/16tehae/mac_os_sonoma_game_mode/
#1170

Also:

  • Game Mode will only be enabled when you fullscreen the application using macOS' native APIs for doing so.
    • As of the latest nightlies, this is Borderless Windowed without the notch enabled.
  • Game Mode cannot be disabled system-wide, from System Settings, or from windowed mode.
    • The Game Mode icon may or may not appear in windowed mode as Paused - from here you can turn it off.
  • Once Game Mode is turned off from the menu bar, it is turned off until you re-enable it.
    • I have discovered a bug in macOS 14.5 that causes Game Mode to re-enable itself and the problem occurs again.

Tested on:
MacBook Pro (16-inch, 2021) with M1 Max, macOS 14.4, 14.4.1, 14.5
MacBook Pro (16-inch, 2021) with M1 Pro, macOS 14.3, 14.4, 14.5
Mac mini (M1, 2020), macOS 14.0, 14.2, 14.5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions