As mentioned previously, Luc Verhaegen was to give a talk about the status of Lima driver (reverse-engineered Mali-200/400 GPU driver), as well as other GPU open source implementation, at FOSDEM 2013. This is now done, and part of the talk included a demo of Quake 3 Arena (q3a timedemo) running on tablet featuring AllWinner A10 SoC (Cortex A8 @ 1Ghz, Mali-400MP1 GPU @ 320 Mhz, and DDR3 memory @ 360MHz), and a 1024×600 LCD. The fact it works is already a great achievement in itself, but this demo runs at 47.2fps with Lima driver (limare), whereas it can be rendered at 46.2fps using the binary driver. In his blog, Luc also explains that apart from being 2% faster, it also uses 3% less cpu than the binary driver! Take that binary blobs!
There’s still more work to do however, as this Quake 3 Arena port is not playable yet for 2 reasons:
- There’s no input support via the touchscreen driver yet.
- Luc only included the shaders needed to run the timedemo, but the full game requires more shaders.
He goes on to explain that Lima is not fully open source just yet, as they are still using the binary shader compiler, but he will push Q3A demo source code soon. If you want to learn more of the steps he and others went through to reverse-engineer Mali-400 driver, and optimize it for Q3A timedemo, read “Quake 3 Arena timedemo on top of the lima driver!“