Low FPS on iPad Pro (Apple M2 GPU) in NYC map

Zwift performance on iPad Pro (Apple M2 GPU) was really bad today on NYC central park route. I wonder if anyone else experienced similar bad performance and has any suggestions on how to improve it.

The FPS in some areas dropped to 2-4 frames per second. The iPad Pro was 100% charged before the ride, had no other applications running. Both Zwift App and iPad OS were recently updated. I did not notice any slowness in any other application. It was indoor ride with AC set to 70 - so overheating should not be an issue. It is not shown in the screenshot below - but there was no network connectivity issues. Extreme slowness occurred in 4 different areas, which made the whole ride experience quite miserable.

I know, I can run Zwift on my 4080 PC, but I was hopping to have a working setup with iPad Pro.

Any suggestions and feedback are welcome.

Thanks!

A few suggestions @Sany_Boldman

Ensure your iPad is plugged in to a power source while riding to prevent it from throttling the CPU.

Uninstall the app entirely, restart the iPad, reinstall Zwift.

After every ride, the Zwift app should be force-closed. Not doing so seems to cause issues on iOS/iPadOS/tvOS.

1 Like

Thank you very much for these suggestions! I will try to do the same ride tomorrow with freshly restarted and plugged in iPad. Hopefully this will resolve the issue.

1 Like

Look for the video screenshots setting and make sure it’s turned off. The pattern of your performance drops doesn’t look like what I would expect from video screenshots, and your CPU is very nice and should be able to handle it, so I’m guessing that video screenshots can’t entirely explain what’s going on. But if it’s disabled you should get a little bit of performance back.

2 Likes

Yeah, seconding this. I had it all typed out.

I’m really trying not to slag ZwiftHQ for the Video Screenshot feature but it’s been implicated in more problems on my devices than it’s worth, at this point and I’ve disabled it everywhere.

1 Like

I always disable video screenshot feature - so this was not an issue. However following your suggestion, I restarted iPad before the ride and it made all the difference. The iPad was on battery (not plugged in), but i was still getting very stable 30 fps. The lowest it dropped to was 24. The setup and the route was exactly the same. The only difference was freshly restarted iPad.

So the conclusion is that iPad needs to be restarted before the ride to ensure flawless performance.

Thank you very much for the suggestions, I really appreciate it.

2 Likes

Personally, I am wondering if - even if disabled - the video screenshots are still ‘hogging’ resources in the background. The timing of a number of issues seems to coincide and, even with them turned off, my devices are much more unstable now.

1 Like

For what’s it’s worth, I’ve also disabled Route HoloReplay and Segment HoloReplay, hidden Leaderboard HoloReplay, and set HoloReplay Privacy to “Private”, in an attempt to reduce CPU/GPU overhead. Unsure if those really make any difference but I’ll be mindful of any transient glitches.

I have both Route HoloReplay and Segment HoloReplay enabled and neither option created any visible issues for me. Hovewer restarting Zwift application after/before every ride - makes all the difference.

I compared log files for rides with good vs bad performance and could not find any meaningful difference. The memory usage was almost the same in both cases, but FPS was very different (on exactly the same segment).

---------------- Low FPS ride ------------------
[18:48:09] TimingArch: (NEW YORK KOM) passed checkpoint 1
[18:48:11] FPS 3.24, -20365, 21451, -15324 [607MB]
[18:48:11] Starting critical power curve search job (42839158) mTimeStamp = 463.45050 m_lastSearchTime = 453.37057 calculating=false
[18:48:13] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.142:21588 (secure)
[18:48:13] [INFO] Auxiliary Controller failed to connect to socket: ‘Host is down’ (64)
[18:48:17] Hit checkpoint 26 out of 303 on route: " Everything Bagel"
[18:48:19] FPS 17.57, -24372, 21559, -18188 [601MB]
[18:48:27] Starting critical power curve search job (42854886) mTimeStamp = 474.73035 m_lastSearchTime = 463.56451 calculating=false
[18:48:28] FPS 3.07, -30542, 21609, -21015 [604MB]
[18:48:29] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.142:21588 (secure)
[18:48:30] Hit checkpoint 27 out of 303 on route: " Everything Bagel"

---------------- Normal FPS ride ------------------
[17:16:17] TimingArch: (NEW YORK KOM) passed checkpoint 1
[17:16:18] FPS 27.91, -19393, 21384, -13778 [606MB]
[17:16:23] Starting critical power curve search job (770930) mTimeStamp = 471.86258 m_lastSearchTime = 461.85980 calculating=false
[17:16:26] FPS 25.80, -22844, 21545, -17261 [602MB]
[17:16:27] Hit checkpoint 26 out of 303 on route: " Everything Bagel"
[17:16:30] [INFO] Auxiliary Controller attempting to connect to phone at: 192.168.1.230:21588 (secure)
[17:16:30] [INFO] Auxiliary Controller failed to connect to socket: ‘Connection refused’ (61)
[17:16:33] Starting critical power curve search job (780968) mTimeStamp = 481.90042 m_lastSearchTime = 471.89658 calculating=false
[17:16:34] FPS 27.17, -28331, 21574, -20232 [602MB]
[17:16:40] Hit checkpoint 27 out of 303 on route: " Everything Bagel"

1 Like

I finally figured out the root cause of the Zwift performance issues on the iPad. It was related to overheating. iPad does not report CPU/battery temperature, so troubleshooting is not very straightforward, however the iPad will stop changing when the temperature exceeds some threshold (there will be a corresponding notification).

iPad cases are designed for the impact protection, and often have low thermal conductivity, leading to overheating and subsequent performance throttling. To maximize performance, consider removing extra cover layers and, optionally, direct a fan towards the iPad for improved cooling. This optimization strategy can mitigate overheating concerns and ensure a smoother Zwift experience on your iPad Pro.

Therefore to enhance Zwift performance on iPad Pro - remove the protective case from the iPad!

If you have any issues running Zwift on iPad, the first thing to try is to remove the protective case.

P.S. thermal conductivity of the aluminum is 237 W/mK while typical plastic has about 0.2 W/mK, which is more than 1000 times smaller. Some iPad cases have several layers of plastic such as plastic case and book like cover, which makes this issue even worse.

P.P.S is there any way to include iPad temperature in the Zwift log, does Apple allow API access to CPU and battery temperature ? This would have been very helpful.