macOS and Apple Metal [February 2023]

After updating to version 1.33.1, Zwift quits shortly after I click “LET’S GO.” Zwift fails to initialize OpenGL. This occurs on a 2011 MacBook Pro (MacBookPro8,3) running Monterey (using OpenCore Legacy Patcher). It works fine on a 2016 MacBook Pro.

Zwift 1.33.0 ran fine on the 2011 MacBookPro. Log files for 1.33.1 and 1.33.0 are provided below.

Untitled

The Log.txt file for the failed launch shows:

[20:23:14] Log Time: 20:23:14 2023-01-30
[20:23:14] Game Version: 1.33.1(107342) rc/1.33.1
[20:23:14] Config: Shipping
[20:23:14] Device: MacBookPro8,3
[20:23:14] [OS]: Initialized
[20:23:14] [ZWATCHDOG]: Initialized
[20:23:14] Launcher Version : 1.1.1
[20:23:14] DEBUG LEVEL: Open assets/global.wad in file 0x11016650
[20:23:14] Loading WAD file ‘assets/global.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/Worlds/worlds.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/Worlds/worlds.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/Environment/Ground/textures.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/Environment/Ground/textures.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/UI/WhiteOrangeTheme/WhiteOrangeTheme.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/UI/WhiteOrangeTheme/WhiteOrangeTheme.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/UI/minimap/minimap.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/UI/minimap/minimap.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/UI/WhiteOrangeTheme/Scotty/Scotty.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/UI/WhiteOrangeTheme/Scotty/Scotty.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/UI/layouts/layouts.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/UI/layouts/layouts.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] DEBUG LEVEL: Open assets/Environment/GrassTextures/GrassTextures.wad in file 0x11016650
[20:23:15] Loading WAD file ‘assets/Environment/GrassTextures/GrassTextures.wad’ with file.
[20:23:15] DEBUG LEVEL: Close file 0x11016650
[20:23:15] Successful audio init!
[20:23:15] Loaded audio banks
[20:23:15] Initializing graphics window of size 0 x 0
[20:23:15] GFXDevice_Metal::Initialize(): Failed to find device
[20:23:15] Failed initializing graphics

A log file from a launch of version 1.33.0 shows Zwift successfully initializing OpenGL:

[13:57:13] Log Time: 13:57:13 2023-01-26
[13:57:13] Game Version: 1.33.0(107174) rc/1.33.0
[13:57:13] Config: Shipping
[13:57:13] Device: MacBookPro8,3
[13:57:13] [OS]: Initialized
[13:57:13] [ZWATCHDOG]: Initialized
[13:57:13] Launcher Version : 1.1.1
[13:57:13] DEBUG LEVEL: Open assets/global.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/global.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/Worlds/worlds.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/Worlds/worlds.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/Environment/Ground/textures.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/Environment/Ground/textures.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/UI/WhiteOrangeTheme/WhiteOrangeTheme.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/UI/WhiteOrangeTheme/WhiteOrangeTheme.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/UI/minimap/minimap.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/UI/minimap/minimap.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/UI/WhiteOrangeTheme/Scotty/Scotty.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/UI/WhiteOrangeTheme/Scotty/Scotty.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/UI/layouts/layouts.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/UI/layouts/layouts.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] DEBUG LEVEL: Open assets/Environment/GrassTextures/GrassTextures.wad in file 0x0ac2d780
[13:57:13] Loading WAD file ‘assets/Environment/GrassTextures/GrassTextures.wad’ with file.
[13:57:13] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:13] Successful audio init!
[13:57:13] Loaded audio banks
[13:57:13] Initializing graphics window of size 0 x 0
[13:57:14] Attached Monitors:

[13:57:14] preferred monitor found at: 0,0

[13:57:14] GFX_Initialize: GL_version = 2.1 ATI-1.66.42
[13:57:14] GL_vendor = ATI Technologies Inc.
[13:57:14] GL_render = AMD Radeon HD 6770M OpenGL Engine
[13:57:14] Checking Extensions
[13:57:14] [GFX]: Compatability profile
[13:57:14] [GFX]: GFX_Tier 0
[13:57:14] Screen reported DPI: 133 physical DPI: 133 Scale: 1.00
[13:57:14] Calculating Graphics Score
[13:57:14] GFX: Found a vendor/model match for RADEON HD 6770
[13:57:14] Initializing Render Targets
[13:57:14] Initializing Texture Systems
[13:57:14] Shader Loaded successfully. data/shaders/Final/Blur.psh
[13:57:14] Calling initialize_zwift_network()
[13:57:14] [INFO] CNL 3.28.4
[13:57:14] [INFO] Machine Id: 2-19143423-c95c-49cf-985f-16ef131b8d8b
[13:57:14] Suceeded initializing graphics
[13:57:14] Shader Loaded successfully. data/shaders/Final/GFXDRAW_NoTexture.psh
[13:57:14] Shader Loaded successfully. data/shaders/Final/GFXDRAW_Textured.psh
[13:57:14] Shader Loaded successfully. data/shaders/Final/GFXDRAW_Textured_Simple.psh
[13:57:14] Shader Loaded successfully. data/shaders/Final/GFXDRAW_Textured_GammaCorrect.psh
[13:57:14] DEBUG LEVEL: Open assets/fonts/font.wad in file 0x0ac2d780
[13:57:14] Loading WAD file ‘assets/fonts/font.wad’ with file.
[13:57:14] DEBUG LEVEL: Close file 0x0ac2d780
[13:57:14] Shader Loaded successfully. data/shaders/Final/GFXDRAW_FontW.psh
[13:57:14] Using medium graphics profile
[13:57:14] > res 1280x720(0x)

[13:57:14] Changed resolution to 1280 x 720 ( NO MSAA )

[13:57:14] > sres 1024x1024

[13:57:14] Changed shadow resolution to 1024 x 1024

[13:57:14] Syntax Error. USAGE: set VARNAME=VALUE
[13:57:14] Type ‘listvars’ for list of tweakable variables
[13:57:14] Unknown command "aniso 4
"
[13:57:14] > set gSSAO=0

[13:57:14] > set gFXAA=1

[13:57:14] > set gSunRays=0

[13:57:14] > set gHeadlight=0

[13:57:14] > set gFoliagePercent=0.5

[13:57:14] > set gSimpleReflections=1

[13:57:14] > set gLODBias=1

[13:57:14] OpenGL 2.1 ATI-1.66.42 initialized
[13:57:14] Graphics Vendor: ATI Technologies Inc.
[13:57:14] Graphics Renderer: AMD Radeon HD 6770M OpenGL Engine
[13:57:14] RAM: 16GB
[13:57:14] CPU: Intel(R) Core™ i7-2760QM CPU @ 2.40GHz

I should note that running ~/Library/Application Support/Zwift/ZwiftApp directly works.

Running ~/Library/Application Support/Zwift/ZwiftAppMetal directly shows the following (after decompressing all the WADs):

Assertion failed: (0), function FATAL, file OS.cpp, line 592.
Abort trap: 6
logout

Saving session…
…copying shared history…
…saving history…truncating history files…
…completed.

You probably need to update OpenCore Legacy Patcher. If that doesn’t fix it, you’re barking up the wrong tree since Zwift isn’t going to help you fix an unsupported configuration.

2 Likes

I have the same issue with a 2011 iMac.
Not having seen this I tried updating OCLP root patches (0.52 to 0.61) then updating to 12.6.3 (from 12.6.1, I’d stuck on because Zwift worked until this 1.33 update).
Still the same issue then I tried updating to 13.2 and it’s still the same error.
GFXDevice_Metal::Initialize(): Failed to find device.

How about…

cp ~/Library/Application\ Support/Zwift/ZwiftApp ~/Library/Application\ Support/Zwift/ZwiftAppMetal

2 Likes

Yes that works, thanks for that.

1 Like

Thank you, Christian for confirming that my problem wasn’t just me. I was already using the most recent OCLP (0.6.1) before the Zwift update to 1.33.1. The Zwift update definitely changed something that causes the problem. I recognize, of course, that Zwift is unlikely to support non-standard systems like ours.

Thank you, Paul for the suggestion to replace ZwiftAppMetal with a copy (or symbolic link) of ZwiftApp. That works nicely, though it will need to be recopied each time Zwift is updated.

I took a slightly different tack. Using Automator, I created an application that runs ~/Library/ApplicationSupport/Zwift/ZwiftApp in a shell. I then copied the Zwift icon to the resulting application and added it to the dock. This will work across Zwift updates, but has the downside of requiring me to provide my password for Zwift at each launch.

Could you create an Automator task that copies ZwiftApp over ZwiftAppMetal and then runs the launcher? (Not something I have needed to try)

Interesting idea!

I have the same problem with a mid 2011 imac on OCLP with the last root patcher.
(GFXDevice_Metal::Initialize(): Failed to find device).
Can you explain how you applied: cp ~/Library/Application\ Support/Zwift/ZwiftApp ~/Library/Application\ Support/Zwift/ZwiftAppMetal

I’m far from a programmer but found my way with youtube :wink:

Thank you very much in advance

Open the Terminal app and paste that command in it. Repeat every time Zwift is updated. (Some day it may stop working if they drop support for non-Metal capable macs.)

1 Like

@Scott_Barrett1 and others in this thread:
Shuji at Zwift HQ here. We’ve been phasing in Metal support across Apple platforms for many months now.

We will be requiring Apple Metal support from here forwards, and thus only the hardware Apple has written Metal support for will be able to run Zwift soon. This is the reason we require macOS 10.14.4 or later.

While 10.15 and later may unofficially run on older computers it seems that it doesn’t include Apple Metal API functionality. Generally speaking only devices from the past 9 or 10 years appear to have received Metal support from Apple.

1 Like

It would be helpful to state this on the supported devices page so people understand that older macs without Metal support will not run the game, regardless of whether they meet all the other criteria currently on that page. It would give support people something official to point at when customers run into compatibility problems. The page also doesn’t mention that the game will run on M1/M2 macs. Because of how the mac and PC info is combined in a single table, it doesn’t really make sense.

Updates are in progress.

Hello,
I just tried to install and run latest Zwift on my MacBook Pro (late 2013) running Ventura 13.3 and oclp 0.62 and it crashes right away at start…I know this is unsupported, but has anyone got the latest running, above workaround does not work as there is no ZwiftApp in the Application Support Zwift folder…? I have access to a newer Mac that works but it would be great to use this mbp for this…

No chance get this working on my spare mbp?? :frowning:

good news…with oclp 0.63 update, Zwift works on my map late 2013 :smiley:

1 Like

Hi, almost 1 year after these post I’ve ran into the same issue but this time on a 2017 model running 13.6.6…

I’ve tried the said command and which looks promising in the beginning but then crashes stating “zsh: segmentation fault”

Any guidance will be appreciated…

They’ve dropped support for non-Metal macs but a 2017 model should have a Metal capable GPU. Your system should be supported so if you can’t install and run the game normally I would suggest contacting support.

You could also try doing a clean reinstall of the game using these instructions:

https://support.zwift.com/en_us/re-installing-zwift-BymCF82TH

Hi Paul,

Thanks so much…for some reason it worked. I did try it previously without any success…

Appreciate your assistance.