, the reverse-engineered open-source Qualcomm Snapdragon graphics driver
, continues to advance. The latest accomplishment of the Freedreno Linux driver is that it now has its own working shader assembler, which means Freedreno can now work without any binary blob dependence.
Rob Clark has shared on Sunday afternoon that following some hacking he managed to get his own working shader assembler for the Qualcomm hardware. Qualcomm works on a unified shader ISA so in one-go at reverse-engineering he was able to support both vertex and fragment shaders on the Adreno/Snapdragon hardware.
The caveat though is that only simple shaders are supported without there being any support yet for flow control and other functionality.
For more details see Freedreno's Git repository
and Rob's blog
. "For the last month or so, I've been working on deciphering the adreno shader instruction set and creating a disassembler, and now assembler. I've hooked it up in fdre and now I can run all the test apps with shaders assembled from the fdasm assembler syntax, rather than requiring pre-compiled shaders from the adreno binary blob! This means now I can run 3d tests with no dependency on the binary blob!"