Hey Muketsu.
Thanks for posting this.
I’m also experiencing exactly the same issues as you described. My MacBook model is exactly the same as yours and I’m running exactly the same macOS version too
My App is written in Golang using GLFW 3.3 and Vulkan Wrapper (Vulkan version 1.1.211)
My App displays fly-by scene with around 2M textured triangles, I had consistent 120 FPS on fullscreen in highest 4K resolution before (on earlier macOS versions, so it has been broken on some macOS version, probably 14.5).
What I’ve found though is the following:
- If you run the App in windowed mode, and maximize window to fullscreen, then move your mouse cursor to the top of the screen to reveal the Top Menu Bar, then for that period of time you will get 120 FPS again, but once you hide the Top Menu Bar by moving your cursor away, FPS will again drop to 80-90 FPS.
I’ve done some extra research and I’ve found that latest macOS introduced so-called “Game Mode” which bumps process priority for your app (game).
Automatically prioritises the performance of your game for smoother, more consistent frame rates and improved in-game responsiveness
Game Mode
Apple Dev Forum Answer
In order to enable that mode, you need to add the following key to your application bundle Info.plist file:
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
Once this is done, when I run app from within macOS bundle, and switch to fullscreen mode, I’m getting system notification in the top right corner, saying:
Game Mode: On
Game mode prioritises the performance of this game while in full
When that notification is present on screen the FPS will be 120 FPS, once it disappears it will be 80-90 FPS again.
But that doesn’t solve the problem with FPS. What does (temporarily), is when you reveal Top Bar Menu again, you will see new GamePad like icon there, you can click on it and from menu you can either turn Game Mode OFF or ON.
But when you switch it to ON, it might be still broken (currently set value doesn’t really matter).
What matters is simply Toggling that value!
Once you toggle it, move cursor away, and voila you will get 120 FPS again without toolbar being visible. This is only fixing the issue temporarily, as when you restart the app you need to do same dance again.
Pretty weird ha!?
Apple has messed something up, and I’m waiting for macOS 14.6 and hoping it will fix it.
Please confirm that you can fix it temporarily in the same way.
Thanks.
Mojzesh