The Big Ring route - can't complete due Zwift crashing

Hi,

this is bit of a odd one and leaves me with head scratching because everything else works flawlessly and there’s no indication that something is or is about to get wrong. But it is happening repeatedly. I can’t basically finish The Big Ring route in Watopia - Zwift always crashes on the way up from the Mayan Jungle towards and close to the Jungle Start Pens with about 15km of the route remaining (very close to a 33km mark total distance ridden). It happens passing the spawn point and it’s a distance/location thing, not time or any power / speed / cadence / HR / used function thing. Well, crashes. It basically exits the app without any warning, confirmation or an error message. No crash report or a spindump. There’s no prior performance degradation or glitches, nothing in the world to indicate a problem. Zwift just stops and I am back to desktop. Trawling through the various logs I can’t find any indication of what might be the cause. It’s always the same place.

Video of how it looks like just before and when the crash happens:

Any ideas?

Here’s my config:
Computer: Apple MacBook Pro 16" 2023 (Apple Silicon M2 Max 12-core CPU / 38-core GPU, 96GB memory)
System: macOS Sonoma 14.3.1
Zwift version: Launcher Version 1.1.11 / Game Version 1.59.0 Apple Silicon runtime
Screen: 4K Samsung TV (144Hz capable, variable refresh rate set) connected via HDMI direct to the MacBook (there are also 2 other 4K monitors connected via Thunderbolt 4 dock, displaying just MacOS desktop at the time)

Here’s the last portion of the Zwift log:

[10:59:00] [INFO] Sending telemetry...
[10:59:00] Hit checkpoint 309 out of 439 on route: "  The Big Ring"
[10:59:00] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:00] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:00] Play Haptic BOMB_RIDEON
[10:59:00] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:00] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = F340AA4E-5170-C0DC-90F2-94A6431F77E5]
[10:59:00] Play Haptic BOMB_RIDEON
[10:59:00] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:00] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = EFF7C07C-AFB1-6C41-B3E2-A57937B980D8]
[10:59:00] Total Ride Ons Given: 98
[10:59:00] Total Ride Ons Given: 99
[10:59:00] Total Ride Ons Given: 100
[10:59:01] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:01] [FTMS] SIM Grade -1.20% --> -1.21%
[10:59:01] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:01] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:01] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:01] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = F340AA4E-5170-C0DC-90F2-94A6431F77E5]
[10:59:01] [INFO] Sending telemetry...
[10:59:01] FPS 120.48, -226254, 27863, -84641
[10:59:01] Starting critical power curve search job (4939451)  mTimeStamp = 3964.61841  m_lastSearchTime = 3954.61621   calculating=false
[10:59:01] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:01] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:02] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:02] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = EFF7C07C-AFB1-6C41-B3E2-A57937B980D8]
[10:59:02] [INFO] Sending telemetry...
[10:59:03] [INFO] Sending telemetry...
[10:59:03] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:03] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = EFF7C07C-AFB1-6C41-B3E2-A57937B980D8]
[10:59:04] [INFO] Sending telemetry...
[10:59:05] [INFO] Sending telemetry...
[10:59:06] [INFO] Sending telemetry...
[10:59:07] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:07] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 00000003-19CA-4651-86E5-FA29DCDD09D1] of peripheral [Addr = F340AA4E-5170-C0DC-90F2-94A6431F77E5]
[10:59:08] [INFO] Sending telemetry...
[10:59:09] Hit checkpoint 310 out of 439 on route: "  The Big Ring"
[10:59:09] [INFO] Sending telemetry...
[10:59:09] FPS 114.50, -220324, 27332, -77552
[10:59:10] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:10] [FTMS] SIM Grade -1.21% --> -1.21%
[10:59:10] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:10] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:10] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:10] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:11] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:11] [FTMS] SIM Grade -1.21% --> -1.20%
[10:59:11] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:11] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:11] [INFO] Sending telemetry...
[10:59:11] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:11] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:11] Starting critical power curve search job (4949413)  mTimeStamp = 3974.62891  m_lastSearchTime = 3964.62549   calculating=false
[10:59:12] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:12] [FTMS] SIM Grade -1.20% --> -1.19%
[10:59:12] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:12] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:12] [INFO] Sending telemetry...
[10:59:12] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:12] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:13] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:13] [FTMS] SIM Grade -1.19% --> -1.16%
[10:59:13] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:13] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:13] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9
[10:59:13] [FTMS] Updated state from 7 to 15 and opcode from 17 to 127
[10:59:14] [INFO] Sending telemetry...
[10:59:14] [FTMS] Updated state from 15 to 7 and opcode from 127 to 17
[10:59:14] [FTMS] SIM Grade -1.16% --> -1.09%
[10:59:14] BLEMW::Info [SwiftBLEInterface.swift:260 (writeCharacteristic(_:characteristicUUIDString:value:))]: Leaving writeCharacteristic
[10:59:14] BLEMW::Info [ZwiftBLEMiddleware.cc:293 (writeCharacteristic)]: Performing characteristic write [UUID = 0x2AD9] of peripheral [Addr = F627FC1C-A807-9891-37B2-191B5A1667FF]
[10:59:14] BLEMW::Info [SwiftBLEInterface.swift:664 (peripheral(_:didWriteValueFor:error:))]: Did write new value for characteristic 2AD9

Here’s the last portion of the FIT file, that gets corrupted by an unfinished write:

Read 3,947 records, 145,989 bytes, discarded 4 bytes
Record 3948: FIT Runtime Error end of stream at byte 145986

2024-03-05T10:58:19.000Z,-11.668161,166.942815,168,76,32701.79,123,8.846,99.2
2024-03-05T10:58:20.000Z,-11.668091,166.942854,168,78,32710.67,107,9.070,99.0
2024-03-05T10:58:21.000Z,-11.668021,166.942899,168,80,32719.81,184,9.282,98.8
2024-03-05T10:58:22.000Z,-11.667951,166.942949,167,81,32729.23,64,9.472,98.6
2024-03-05T10:58:23.000Z,-11.667883,166.943003,167,81,32738.81,95,9.530,98.4
2024-03-05T10:58:24.000Z,-11.667817,166.943058,167,81,32748.33,102,9.550,98.2
2024-03-05T10:58:25.000Z,-11.667752,166.943116,167,80,32757.80,84,9.515,98.2
2024-03-05T10:58:26.000Z,-11.667692,166.943177,167,79,32767.29,147,9.453,98.2
2024-03-05T10:58:27.000Z,-11.667635,166.943241,167,81,32776.76,231,9.450,98.0
2024-03-05T10:58:28.000Z,-11.667581,166.943309,167,81,32786.27,175,9.469,98.0
2024-03-05T10:58:29.000Z,-11.667530,166.943379,166,81,32795.82,190,9.447,98.0
2024-03-05T10:58:30.000Z,-11.667480,166.943449,166,82,32805.26,218,9.435,98.2
2024-03-05T10:58:31.000Z,-11.667432,166.943520,166,82,32814.68,229,9.439,98.2
2024-03-05T10:58:32.000Z,-11.667385,166.943592,166,84,32824.09,259,9.454,98.2
2024-03-05T10:58:33.000Z,-11.667337,166.943664,166,84,32833.57,260,9.492,98.2
2024-03-05T10:58:34.000Z,-11.667291,166.943737,165,85,32843.04,249,9.525,98.2
2024-03-05T10:58:35.000Z,-11.667244,166.943810,165,85,32852.58,183,9.530,98.2
2024-03-05T10:58:36.000Z,-11.667197,166.943883,165,85,32862.07,206,9.494,98.2
2024-03-05T10:58:37.000Z,-11.667149,166.943955,165,85,32871.57,206,9.479,98.2
2024-03-05T10:58:38.000Z,-11.667100,166.944026,165,85,32880.98,174,9.443,98.2
2024-03-05T10:58:39.000Z,-11.667051,166.944096,165,84,32890.35,187,9.418,98.2
2024-03-05T10:58:40.000Z,-11.666999,166.944165,165,84,32899.73,173,9.410,98.2
2024-03-05T10:58:41.000Z,-11.666945,166.944231,165,84,32909.09,210,9.420,98.2
2024-03-05T10:58:42.000Z,-11.666888,166.944296,165,84,32918.48,170,9.453,98.2
2024-03-05T10:58:43.000Z,-11.666828,166.944357,165,85,32927.86,160,9.480,98.0
2024-03-05T10:58:44.000Z,-11.666763,166.944414,165,85,32937.27,167,9.527,98.0
2024-03-05T10:58:45.000Z,-11.666693,166.944466,165,85,32946.88,170,9.601,97.8
2024-03-05T10:58:46.000Z,-11.666618,166.944511,165,85,32956.55,155,9.689,97.6
2024-03-05T10:58:47.000Z,-11.666538,166.944549,164,85,32966.29,134,9.780,97.6
2024-03-05T10:58:48.000Z,-11.666456,166.944582,164,86,32976.12,145,9.875,97.4
2024-03-05T10:58:49.000Z,-11.666370,166.944609,163,86,32985.96,120,9.985,97.0
2024-03-05T10:58:50.000Z,-11.666283,166.944634,163,86,32996.05,127,10.095,96.8
2024-03-05T10:58:51.000Z,-11.666194,166.944657,163,87,33006.24,149,10.226,96.6
2024-03-05T10:58:52.000Z,-11.666104,166.944680,163,82,33016.45,110,10.370,96.4
2024-03-05T10:58:53.000Z,-11.666013,166.944707,163,78,33026.93,71,10.485,96.0
2024-03-05T10:58:54.000Z,-11.665924,166.944740,163,79,33037.51,120,10.597,95.8
2024-03-05T10:58:55.000Z,-11.665836,166.944780,163,79,33048.23,55,10.725,95.4

Relevant entries from the MacOS system diagnostics:

default	2024-03-05 10:59:15.210644 +0000	runningboardd	Now tracking process: [anon<ZwiftMacCrashHandler>(501):1067]
default	2024-03-05 10:59:15.213617 +0000	runningboardd	Acquiring assertion targeting [anon<ZwiftMacCrashHandler>(501):1067] from originator [anon<ZwiftMacCrashHandler>(501):1067] with description <RBSAssertionDescriptor| "com.apple.CFNetwork.StorageDB" ID:388-1067-2061 target:1067 attributes:[
	<RBSDomainAttribute| domain:"com.apple.common" name:"FinishTaskUninterruptable" sourceEnvironment:"(null)">,
	<RBSAcquisitionCompletionAttribute| policy:AfterApplication>
	]>
default	2024-03-05 10:59:15.213663 +0000	runningboardd	Assertion 388-1067-2061 (target:[anon<ZwiftMacCrashHandler>(501):1067]) will be created as active as no start-time-defining assertions exist
default	2024-03-05 10:59:15.216125 +0000	runningboardd	Invalidating assertion 388-357-749 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.coreservices.launchservicesd>:357]
default	2024-03-05 10:59:15.217804 +0000	runningboardd	Invalidating assertion 388-383-759 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.WindowServer(88)>:383]
default	2024-03-05 10:59:15.236684 +0000	powerd	Process ZwiftAppSilicon.1060 ClientDied NoDisplaySleepAssertion "Zwift" age:01:20:50  id:21474870570 [System: PrevIdle DeclUser IntPrevDisp kDisp]
default	2024-03-05 10:59:15.237678 +0000	runningboardd	Invalidating assertion 388-329-724 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.powerd>:329]
default	2024-03-05 10:59:15.239136 +0000	loginwindow	-[PersistentAppsSupport applicationQuit:] | for app:ZwiftAppSilicon, _appTrackingState = 2
default	2024-03-05 10:59:15.239139 +0000	loginwindow	-[PersistentAppsSupport applicationQuit:] | App: ZwiftAppSilicon, quit, updating active tracking timer
default	2024-03-05 10:59:15.239437 +0000	runningboardd	Invalidating assertion 388-357-728 (target:[anon<ZwiftAppSilicon>(501):1060]) from originator [osservice<com.apple.coreservices.launchservicesd>:357]
default	2024-03-05 10:59:15.276103 +0000	runningboardd	[xpcservice<com.apple.appkit.xpc.ThemeWidgetControlViewService([anon<ZwiftAppSilicon>(501):1060])(501)>:1158:1158] termination reported by launchd (2, 9, 9)
default	2024-03-05 10:59:15.286009 +0000	loginwindow	-[PersistentAppsSupport applicationQuit:] | for app:ThemeWidgetControlViewService (ZwiftAppSilicon), _appTrackingState = 2

Here’s Zwiftalizer Log Parser link:
https://zwiftalizer.com/public/d54d5e6b-6e75-481f-a7f7-6c00635a6601

EDIT: I have done some further testing around the location where Zwift was crashing.

To test the problem I have basically started the shortest possible route that spawns close to the problematic location (Jungle Start pens). I rode downhill towards the jungle away from it for couple of km, made an u-turn by the rock close to the first intersection signpost and rode up back through it towards the Level 5+ green gate that’s close to KOM/KOM bypass intersection.

Spoiler alert - apart from the first try, it always crashed shortly after passing the windmill, no matter what setup or settings.

  1. Jungle Circuit Route - first attempt back uphill a little wobble (some graphics glitch / screen refresh), but no crash. U-turn by the green gate, through the spot, back downhill, still ok. Almost thought it’s just the route problem. U turn again and…
  2. Jungle Circuit Route - second attempt back uphill through the spot - crash
  3. Temple Trek Route - first attempt back uphill through the spot - crash
  4. Temple Trek Route - first attempt back uphill through the spot (Game version updated to 1.60) - crash
  5. Temple Trek Route - first attempt back uphill through the spot (fps locked to 60) - crash
  6. Temple Trek Route - first attempt back uphill through the spot (all peripherals removed, using built-in display only - crash

All the LOGs and FIT files look basically the same as above in all test cases. Nothing unusual as far as I can see.

Just for information, here are the various system monitoring graphs for the general overview. I can’t see anything unusual either, no telltale spikes close to crash or temperature, throttling or performance degradation issues.

CPU Total:


CPU Cores:

GPU Memory:

GPU:

CPU Overall Temperature:

GPU Temperature:

Fans:

Power Draw:

I can’t guess what’s causing it, but I would be tempted to test in a simplified environment with no dock or external displays, just the laptop.

You should probably contact Zwift support to analyze the log file.

Thanks Paul.

I have already tried about 3 different setups and it always happened. I’ll probably try it couple of times again, but it’s a little bit tiring and frustrating to ride for 1 hour 20 min just to see it happening again right at the top of the hill :sweat_smile:.

Just the Mac on its own without any peripherals is a good suggestion though to pinpoint the issue, even though nothing in MacOS logs suggests a HW problem.

I’ve tried the Zwift support, but unless I’m blind I can’t find the simple e-mail or even a feedback form, just the useless recursive “AI” chatbot. So the only option was to send the link to this forum post to ambassadors, which I did.

The chat bot is beatable if you keep up the fight

You can also try support@zwift.com which sometimes works

1 Like

My first thought is that the laptop is overheating.

Nope, nowhere near its performance limits or indeed temperature limits. It’s not using 100% of the power available, it’s not thermal throttling and the fans are not running anywhere near max RPM.
Most of the time it doesn’t need fans at all for hours on end (Running Zwift).

Overheating would likely crash the laptop and not just Zwift.

You need to get Zwift support onto this, as has been said.

If the crash location in the game is as consistent as David is saying, it would be really weird for it to magically overheat exactly there every time

I guess a test could include using battery saver, or lower refresh rate (cap at 60Hz)

I have done quite a lot of testing today, you can see the results in the original post above as edits.

Apart from the first try, it always crashed in the same location.

  • The route didn’t make a difference, it was always the same spot regardless of route selected
  • The variable refresh rate (up to 144) vs fixed fps (60) didn’t make a difference
  • 1st person vs 3rd person view didn’t make a difference
  • HUD on/off didn’t make a difference
  • 4 monitor, dual monitor, or just in-built screen setup didn’t make a difference
  • Removing TB4 Dock and any other direct connect peripherals (apart from ride required BT sensors) didn’t make a difference
  • System reboot didn’t make a difference
  • Update of Game version from 1.59.0 to 1.60.0 didn’t make a difference

Observing the system monitoring graphs and logs, there are no noticeable:

  • Temperature issues
  • Performance issues
  • Memory issues
  • Excess temperature or lack of sufficient cooling
  • Throttling
  • Lack of overhead
  • Excessive spikes

One of the ambassadors kindly responded and forwarded the issue to support, so we shall see what happens.

Have you already tried the clean reinstall process that includes nuking all the app data directories?

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

Not yet Paul. There’s a lot of data I wouldn’t like to lose so I need to look through to find what needs to be backed up and do that first.

I think the only thing at risk of being lost is custom workouts if you have any, and if you do you can easily move them to a temp folder and then do the re-install.

There’s also the local cache of fit files, log files, preferences, custom workouts. I’d use Time Machine to get any of it back if desired or tar up Documents/Zwift

1 Like

So, I have done the wipeout / complete reinstall thing and began riding. This must have the sweatiest bug testing I’ve ever done :sweat_smile: :joy:
Well at least those hill repeats work as a kinda nice VO2 training. If there’s such thing.

Attempt one:
Everything default fresh install. Changed settings just in the game dialogue (4K and GUI bits and pieces).
I have done three repeats, rode through the spot 3 times in each direction. No problems at all. Sweet. Bit dull looking but promising.

high. txt config file (default):

res 1280x720(0x)
sres 1024x1024
set gSSAO=1
set gFXAA=1

Attempt two:
Positive, I’ve reinstated my modified high.txt based on the ultra.txt settings (because that’s what M2 Max at 4K is perfectly capable of, despite Zwift refusing to give us that so far). One pass there and back went ok (few glitches around the spot), second pass crash. Ouch.

high.txt config file (ultra++):

res 1920x1080(0x)
sres 2048x2048
set gSSAO=1
set gFXAA=1
set gSimpleReflections=0
set gSunRays=1
set gHeadlight=1
set gFoliagePercent=4
set gLODBias=0

Attempt three:
I have remembered last time I’ve encountered issues (graphics glitching only, no crashes, this was the first), I’ve decreased the foliage multiplier from 5 to 4. So I went one down again to 3. Did 3 passes in both directions. No glitching, no crashes. Perfect. It finally works!

high.txt config file (ultra+):

res 1920x1080(0x)
sres 2048x2048
set gSSAO=1
set gFXAA=1
set gSimpleReflections=0
set gSunRays=1
set gHeadlight=1
set gFoliagePercent=3
set gLODBias=0

In conclusion - it was my tinkering after all, apologies. In my defence, the dense foliage just looks amazing and it’s hard to give up. I know, I know - essentially quadrupling the amount of autogen scenery objects, what was I thinking. But it makes the forests and meadows very life like and realistic and nice to ride along and really makes the sometimes boring scenery pop up without any fps smoothness / performance degradation. There’s just no comparison and I’m sure you’d agree if you’d tried it too.

It is very strange though, that a modifier like this would have such a dramatic result. Nothing on the performance monitoring would suggest an incoming problem. There’s much wilder foliage coverage on Makuri and no crashes there. If I could make a suggestion - I think it would be something for Zwift developers to look into. Along with the high vs ultra settings for Apple Silicon Macs (wink wink).

Just for info, here’s the performance comparison. The performance effects of maxed out graphics are essentially negligible.

Few pics to show you what I’m talking about (bastardised a little by forum downsampling, the original version is much nicer):