The open-source ARM Mali graphics driver, known as the the Lima project
, has achieved a major milestone.
Since delivering the exclusive news of the Lima project as an open-source reverse-engineered ARM Mali graphics driver
for Linux back in January, there hasn't been too much else to report on about this driver that's still early in its development life. This driver is called Lima since it doesn't have the official blessing of ARM Holdings and right now has been only running simple demos with Limare
. The code is available
and is running on the KDE Plasma Active Tablet
as was talked about and shown at FOSDEM 2012
Fortunately this morning I've heard some news from the Lima developers about hitting a major milestone. Joining Luc Verhaegen, the lead developer of the Lima project, have been Ben Brewer (another employee of Codethink) and Connor Abbot have been the latest developers joining the Belgian on this open-source driver project.
What these developers have now achieved is being able to decode the instruction set encoding for the fragment (pixel) shader unit of the ARM Mali graphics core. After reverse-engineering this, they've written tools to allow the code to be assembled and disassembled, including being able to pack the instruction data into ARM's shader binary format. With this, the assembled binaries can then be loaded in a clean manner by the official (closed-source) ARM Mali Linux graphics driver. The vertex shader unit is still being deciphered but is nearing a successful point too. It took about one month to decipher Mali's fragment shader.
Ben Brewer mentioned to me that when they have more of the command stream deciphered that they should then be able to implement OpenGL ES 2.0 and OpenCL drivers for this ARM chipset.
These new Lima driver tools can be found on Gitorious
while they've also written documentation on the Lima assembler
, Lima ISA
(instruction set architecture), MBS format
, and offline shader compiler
Luc Verhaegen wrote to Phoronix, "When we started with lima a year ago, it was clear that we needed to split the job up in logical parts: the infrastructure and the shaders. Once the initial infrastructure was out, the work on the shaders could start in earnest. It was amazing to see Connor and Ben piece together everything from just the compiler output at such speed. Now we have the fragment assembler and they are working on the vertex shaders. I love it when a plan comes together. ;)"
Unrelated to this driver, coming up this week still is some really good open-source GPU driver news