Opening up the Mali 200/400 Instruction Set Architecture
This talk will focus on the unusual architecture of the Mali-200/400 shaders and the current efforts to write compiler backends for these two processors.
Nowadays, with more and more functionality moving from fixed-function hardware to programmable shaders in graphics processors, the design of the shader Instruction Set Architecture in hardware and the corresponding compiler in the driver is more important than ever. The Mali 200 and 400 GPU's are no exception, and so one of the most important jobs of a reverse-engineered open-source driver like Lima is to understand the ISA of the hardware in question and write a compiler to replace the existing closed-source one. When Luc Verhaegen kicked off the Lima project last year at FOSDEM, this important work had not been started, but since then a few developers, including Connor Abbott and Ben Brewer, reverse-engineered and then started to write tools for the Mali 200/400 Geometry Processor (GP) and Pixel Processor (PP) architectures.