Rust-Written Apple DRM Linux Kernel Driver Renders First Cube

The very early stage Direct Rendering Manager (DRM) driver being written in the Rust programming language to support the Apple M1/M2 graphics processor achieved the milestone of being able to render a cube.

Asahi Linux developer Asahi Lina who has been focusing on creating this Apple AGX DRM kernel driver announced on Friday night that the milestone was achieved of being able to render a spinning cube with the appropriate user-space code. Though this driver is still in the very early stages and was noted that HDMI output isn’t even working at the moment.

Asahi Lina previously brought up the first rendered triangle on the M1 with an open-source driver rendered from within the m1n1 based environment while now has been progressing toward a working Linux driver stack. This DRM kernel driver is also set to be the first GPU kernel driver written in Rust and dependent upon the yet-to-be-merged Rust Linux kernel infrastructure, which will hopefully land in Linux 6.1 but it’s still likely some ways out before this DRM driver will be in a state for mainlining.

Meanwhile happening in user-space is the Mesa Gallium3D AGX driver work for the Apple M1/M2 graphics to have OpenGL support. There the hope is possibly having OpenGL 2.1 support by the end of 2022. Obviously it will be much longer before seeing OpenGL 3.x/4.x and any Vulkan driver for the Apple SoC graphics. Basically, it’s still a long road ahead on the graphics side while at least Asahi Linux on the Apple Silicon hardware is quite usable if not needing any accelerated graphics.

In any event, the milestone achieved this weekend for the kernel driver effort is the spinning cube as shared on Asahi Lina’s Twitter:


Asahi Lina shows off the first spinning cube running atop the work-in-progress DRM kernel driver for the Apple M1/M2.

For those wanting to reminisce, back in 2008 was the big milestone of open-source rendered triangles with the ATI RV770 GPU.

.

Leave a Comment

Your email address will not be published.