Early Work Is Underway On Reverse-Engineering The Apple M1 GPU
Over the past few weeks Alyssa began exploring the M1 GPU with a new Apple Mac Mini. The ultimate goal she hopes is to create a Mesa driver for the M1 GPU, which will be critical if the Linux efforts to get the new SoC/devices working outside of macOS are to succeed... Without a fully-working GPU, Linux on the Apple M1 devices won't do much good for desktop/mobile use-cases.
After getting a macOS environment setup that is friendly for reverse-engineering around the various kernel interfaces, Alyssa began poking at the shader binaries. Some early takeaways are that the Apple M1 GPU is scalar for all bit sizes, hardware scheduling is being used, various modifiers are supported, and other indications of its super-scalar architecture.
Early thoughts on the Apple M1 and the reverse engineering effort can be found on Alyssa's blog. The early work on disassembling of shaders for the Apple M1 can be found via this GitHub repository.