Lima Graphics Driver Can Beat ARM's Binary Blob
The open-source Lima graphics driver that's a reverse-engineered user-space software driver for ARM's Mali graphics core, is now faster than the official ARM binary graphics driver in certain cases, such as when running Quake 3.
Luc Verhaegen presented this past weekend at FOSDEM 2013 to talk about Open ARM GPU Drivers. Of course, most of what he talked about when it came to open-source ARM drivers was his own Lima driver project. This performance milestone was something that I hinted at last week.
On Luc's blog he wrote about his favorite point of the talk: "We now have a limare (our proto/research driver) port of Quake 3 Arena which is running the q3a timedemo 2% faster than the binary driver. With 3% less cpu overhead than the binary driver to boot! ... It is almost pixel-perfect, with just a few rounding errors introduced due to us being forced to use a slightly different vertex shader (ESSL, pulled through the binary compiler instead of a hand coded shader). We have the exact same tearing as the binary drivers, which are also not synced to display on the linux-sunxi kernel (but ever so slightly more tearing than the original ;))."
Before getting too excited though, this is only their research/prototype "Limare" code. This isn't yet a Mesa / Gallium3D driver or any other polished driver implementation. Additionally, Limare is still relying upon ARM's binary-only shader compiler. Luc does believe though they will get decent performance out of their shader compiler but right now the code is a bit messy.
In related open-source ARM graphics news, the Freedreno Gallium3D driver is coming along nicely.