Native Apple silicon Support for M1 and M2 Macs Enabled [1.47] [September 2023]

Hi Jannik,

Does that mean - with replacing the „high“ profile against the „ultra“ profile, that you are actually playing at an ultra profile?

My sense is the config file modifications do make a difference and allow my M1Pro to capture some aspects of the full Zwift Ultra Profile that are implemented via the config files; however, it seems the only way to have true Ultra is for Zwift to code their servers on their end to provide it for M series Macs. They haven’t done that so far but might at some point. Plenty of folks are asking. Think about how they FINALLY turned on Rider Shadows for the M series macs. For now, see the series of posts above by BooX etal starting Sept 18 for some info on config file modifications.

And allow me to ask, that means „virtually locked 60FPS“? Is that a setting you set by your own, or does the MacBook limit it to 60FPS, instead it would be able to display more?

I think my FPS is limited to 60 by since 60hz is the highest setting allowed for my Samsung TV in my MacBook’s external display settings. The fact that my fps never goes above 60 and rarely below 50 suggests my M1pro could go higher if my display would accept it.

I’ve thought about moving up to an M3pro/max, but see no reason to unless Zwift implements the Ultra Profile for the M3’s but not for my current M1pro since otherwise my M1pro handles my needs quite well. Ball is in Zwift’s court…


I thought the graphics were all rendered locally on the local device?

If they were rendered on the server it wouldn’t matter what GPU you had as long as it could play the video feed, surely?

1 Like

Yes profiles are set in the client software.

Aah, is that a process managed by Zwift?
Thought it is an easy decision in the background, based on the available hardware.

For example like: better = higher profile

It’s apparently a manual process matching a specific GPU and requiring a new game release.

1 Like

Good to know, thank you. I am excited for the next few releases…

Re: {GMPLAY-8068} Accessing Mac Sonoma Game Mode apparently is a function of the LSApplicationCategoryType property set in the Info.plist of the app rather than just being in Full Screen mode. Your developers might be interested in Howard Oakley’s article at eclecticlight dot co/2023/11/16/game-mode-revisited-why-e-cores-are-so-important/

it seems I am the first with M3 Max. Just as a reference, same as your other M2 screenshots.

I was used to run Zwift on an old iPad, it looks amazing here on my big 4K display! (but I am still slow on the bike, damn it!)


Thanks for posting this. I’ve been curious. It doesn’t look any different from what I see with my M1pro. I hope Zwift will implement the Ultra graphics profile for at least the M3pro/max processors, if not for all the M series pro & max chips. If nothing else, I’m curious as to how much visual difference it would make when running 4k resolution and might nudge me to upgrade from my 2 year old M1pro.

It’s generally not recommended to try to achieve a higher profile by tinkering with config files, and it’s worth noting that the visual difference between High and Ultra settings may not be very noticeable in any case. You can’t change profile with config file hacks.

1 Like

For what it’s worth, my 4K display has power over USB-PD limited to 60W.
Which is perfect for most things, but not for Zwift which tries to use 65-70W. Therefore I was looking how to decrease quality so my battery wouldn’t discharge during Zwifting.

FWIW you don’t need to tweak profiles and in Zwift laptop battery saver settings you can keep them as “Off” but… in macos system settings if you switch Low Power Mode on it decreases power consumption. Obviously under the hood it might impact the profile but this way is a bit more user friendly. YMMV.

Interesting find. I modified the info.plist in the Zwift app to change the LSApplicationCategoryType from “Fitness App” to “Game”, however, game mode did not trigger.

I think the reason behind this is because the executable that the Zwift App triggers is based on the info.plist “Executable file” property value, which is the ZwiftLauncher-OSX executable. This executable basically launches the Zwift Launcher, which then launches the actual game client from an external folder when you click “Let’s Go” from the launcher.

My guess is that the info.plist config only persists for the initial executable that’s executed (ZwiftLauncher-OSX), and does not persist for what the external executable the initial executable actually executes.

Second edit: So what i tried for fun was to launch the actual zwift client from the info.plist, which failed spectacularly, I don’t think it works with absolute paths. So instead, I copied the Zwift client and all its folders/files into the Zwift App, but then the game crashed before properly launching XD.

Interesting experiment and results. The crashes noted in your edit may be triggered by the change in the info.plist. The link to the article I attached to the original post noted that simply changing the info.plist could cause a crash since the change would break the app’s signature and “Mac OS won’t be amused”. If this is the case, I presume the change would have to be made by Zwift before signing the app for distribution.

Ultimately, the question remains as to whether it would make any visible or meaningful difference.

What I forgot to mention is that changing the info.plist LSApplicationCategoryType (without making any changes to the executable file property) launched the launcher successfully, which then launched the game successfully after clicking “Let’s go”. It’s just that the Game Mode didn’t trigger on the game, possibly because of the fact that the launcher executes the external game client executable.

In terms of the game crashing when I did my weird experiment, it may be as a result of what you mentioned. The terminal was showing that ZwiftAppSilicon was loading/decompressing whatever assets were required to launch, then displayed an “corrupt and unarchivable nib file” error a few seconds in after some assets were loaded. I didn’t have a chance to play around with this more after encountering that error.

As a potential next step, for fun, I’ll see if i can create an app package in Xcode, with a properly configured info.plist, with the contents of /Users//Library/Application Support/Zwift bundled in. Or maybe it will be as simple as launching my weird experiment zwift app package in admin mode. To be determined :slight_smile:

Edit: The side effect of doing it this way, assuming the game client even launches successfully, is that it will bypass the Zwift Launcher and any automatic updates, and will require username/password input each time. But still a fun experiment :wink:

Edit2: To your point, I should also probably document whether or not it makes an actual difference, @Eric_Oshlo :sweat_smile:

Edit3: Couldn’t get this approach to work at all, finally :frowning:

Great idea and nice try. You gave it a good shot. Guess it’ll be up to Zwift to decide whether to do anything. At a minimum it would be nice if they test it and let mac users know whether it’s a viable benefit and option or not. It doesn’t sound like it would be a significant coding task.

More than this, though, I hope they will release a version with the Ultra Graphics profile for the M series (or at least the M3pro/max).

That’s great - clearly macOS needs access to Ultra.

With M3 coming to iPad next year, hoping to be allowed something more than Basic/720p/30fps as well! :sob:

1 Like

Set up a new M3 Pro (12 core CPU, 18 core GPU) yesterday, and did a quick test today. Using default settings in Zwift everything seemed pretty smooth. Activity Monitor showed Zwift was hanging around 100% CPU, but I didn’t hear the fans kick on during this shorter test (unlike my previous M1 MBP).


So the M3 Max doesn’t run in Ultra 4k?

My $350 i5 PC does at 60fps, and my 16" Macbook Pro running an intel i9 does, just drops to 24 on the frame rate when crowded. Have you tried running it at a higher res?

Just got off a chat with Zwift, and they tell me it should run flawlessly under Ultra 4k on m3 max. But, I would sure love to see verification before I drop $3500 on a new laptop, right?

:woozy_face: :astonished:

Well its not just for Zwift. I do motion graphics for film. Its a tool that pays dividends in hours saved for work. But I do question if it would save another junk PC in the house!

1 Like