Two of the game's SPU jobs now run as native code: up to 14% faster on 4-core CPUs
On the PS3, much of each frame is built by small programs on the SPU co-processors. The port normally runs them as translated SPU code, which is exact but slow. Two of them now run as ordinary native code:
- The render-list builder: it writes the GPU command blocks for every object drawn in a frame. It was one of the heaviest SPU jobs left.
- The BSP clipper: it trims polygons against the level's partition tree.
Both are ports of the native versions from ThiagoFraga761/infamous2-pc and SamiEnazi/infamous2-port (MIT), adapted to this build. The picture is the same: in testing, about 1.15 million render-list jobs and 178,000 clipper runs were compared with the original SPU code, with no difference. The few jobs the native version doesn't cover (about 8%) still run the original code.
Measured frame time:
| CPU threads | Scene | v0.1.34 | Now |
|---|---|---|---|
| 4 | First big fight (the gate) | 28.1 ms | 24.5 ms (+14%) |
| 4 | New Marais dock | 24.7 ms | 21.7 ms (+14%) |
| 6 | First big fight (the gate) | 20.3 ms | 19.3 ms (+6%) |
| 6 | New Marais dock | 18.1 ms | 16.7 ms (+9%) |
With default settings on a 4-core / 8-thread CPU, the dock went from 64 to 68 fps, and its slowest moments from 59 to 63 fps. PCs with 6 or more fast cores were already at the frame cap in these scenes, so they gain headroom rather than fps there.
Press Update now in the launcher, then Build/Play. This update re-translates the SPU jobs and recompiles the game: no full toolkit rebuild. Or download inFamous2Recomp-v0.1.35-windows.zip / inFamous2Launcher.exe below.
If you see missing, stretched or flickering objects anywhere, please send a Save report from the launcher with a note of where it was.