GS JIT - 400% speedup in Shadow of the Colossus

It's been a little while, hasn't it? We've been working hard and haven't had time for any updates. To get straight to the point, Shadow of the Colossus has gone from 1 to 5 FPS on my 2015 Mac laptop.

This is thanks to the GS JIT that I've been working on, as well as water111's new scanline-based triangle rasterizer that is significantly faster than the old one. As you may know, the GS is the video card of the PS2. DobieStation uses a software renderer, which means all graphics code is executed on your CPU, rather than your GPU. This is great for accuracy as modern CPUs are very good at executing arbitrary code, but horrible for speed, since CPUs aren't specialized for graphics like GPUs are. That being said, the fixed nature of the GS makes it possible to create a highly optimized software renderer, and the JIT is the first step towards that. Read our previous post, The VU Recompiler has been merged, to see how a GS JIT is possible. 

Of course, Shadow of the Colossus isn't the only game to benefit. Okami and Atelier Iris, two other GS-limited games, go from 2->5 FPS and 10->18 FPS respectively. Even in a game like Final Fantasy X, which is EE-limited, profiling reveals that the GS thread can render 2x-4x faster.

With that being said, why are we still not at full speed? There are still some improvements to be made to the GS side, such as the addition of a texture cache and using multiple threads to render. However, the majority of games are now EE-limited, meaning that we need an EE JIT. Souzooka has been diligently working on an EE JIT (GitHub) which I've also pushed my GS JIT commits to. However, the EE JIT isn't quite ready for testing yet - it's got some bugs to iron out. Although not an issue yet, the VU JIT mentioned in previous posts is also rather inefficient and can be optimized further.

This newfound speed is encouraging. So encouraging, in fact, that I've decided I will do our first release once the EE and GS JITs have been merged. I foresee this happening before the end of the summer. This only gives us a few months, but I believe that's all we need. All three JITs have a good foundation, so it is merely a matter of bug fixing and optimization.

See you then!



Become a patron to

Unlock 1 exclusive post
Be part of the community
Connect via private message