Skip to content

Skate 3 Recompiled v2.3.0 — iOS

Latest

Choose a tag to compare

@andrewnakas andrewnakas released this 26 Aug 06:29
· 2 commits to master since this release

Locked 60fps.

Previous builds ran 45-50fps in career mode and drifted down over a session. This one holds a locked 60 on an iPhone 13 mini — median frame 16.7ms, and the 95th percentile is 16.8-17.8ms, so it's not an average with dips hiding in it.

Occlusion culling now works on iOS. It never had. The depth grid it needs was only ever produced inside the ambient-occlusion pass, which iOS switches off to save memory — so the feature was silently doing nothing since the port began. It now builds that grid in a pass of its own. Roughly 480,000 hidden items are culled per session instead of zero.

The emulated passes the native renderer replaces are now skipped. GPU timing showed the leftover emulation plumbing cost more per frame than drawing the actual world — 10 render-pass entries alone were 3.2ms, and on a phone GPU every one of those is a full tile load/store. Removing them took GPU time from 17.8-19.4ms to 11.0-11.9ms against a 16.67ms budget.

The world is drawn at console distance again. Draw and LOD distance had been defaulting to twice what the Xbox 360 used, which is roughly four times the world area streaming — affordable standing still, not affordable at speed. That was behind the slowdowns when you built up speed through an area.

The startup and resume hangs are fixed. Both were the same bug: the renderer allowed as many frames in flight as the swapchain had images, so it could ask for a drawable while every one was still held, and wait forever. There is now always one spare.

Also: the texture cache budgets are bounded properly, which keeps memory near 1GB instead of 1.4GB and stops the frame-time drift over long sessions; caches are handed back when the app is backgrounded so iOS is less likely to evict it; and a logging bug is fixed that could turn a recoverable guest fault into a hang.

If lighting looks wrong in some areas, add native_render_suppress_mode=2 to Documents/user/ios_args.txt — that trades a few fps for the old behavior.

As always: this contains no game content. You supply your own copy of the game.