Hacker News new | ask | show | jobs
by iforgotpassword 1406 days ago
On that note, I recently read that Asahi now has pretty much a finished driver for the M1 GPU. How did they pull that off that quickly? Was there extensive documentation available?

Thanks to nouveau being mediocre at best and lagging 2 or 3 generations behind until it has usable support for a GPU, I always assumed writing a decent GPU driver through reverse engineering must be next to impossible.

So what's up with Asahi? Were there just some gifted Wunderkind working on it? Is the architecture so much simpler? Is there more information available? Iirc it's based on powerVR, so not completely unknown, but then again the nouveau team got some hints from Nvidia in the past, and also they have been working on it for a really long time in comparison. Just really curious.

3 comments

> I recently read that Asahi now has pretty much a finished driver for the M1 GPU

Where have you read that? According to Asahi Lina's tweet from a few days ago, they are just starting with it:

https://nitter.net/LinaAsahi/status/1559408257965309952

Hmm, I can't seem to find it, but it was some article maybe half a year ago, where in the end they managed to render some model of a rabbit with shaders and all. Am I remembering something else here?
> Am I remembering something else here?

No. That has indeed happened. It was a work by Alyssa Rosenzweig [0].

If I understand correctly, she implemented the userspace Mesa driver. The kernel driver is being developed by Asahi Lina. Together, they are meant to provide "full open source graphics stack for 3D acceleration on Asahi Linux" [1].

[0] https://rosenzweig.io/blog/asahi-gpu-part-5.html

[1] https://rosenzweig.io/blog/asahi-gpu-part-6.html

Edit: make the quote more accurate, adjust formatting

https://news.ycombinator.com/item?id=25873887

(“Dissecting the Apple M1 GPU, Part II”)

nouveau has the problem that they rely on nvidia signed firmware blobs for some functionality (like reclocking), and if nvidia don't want to give them those blobs, then they can't use the features the blobs enable. With nvidia's Linux kernel driver going open (but firmware and userspace staying proprietary), the firmware will be released separately and be redistributable, so nouveau will be able to use it.
> if nvidia don't want to give them those blobs, then they can't use the features the blobs enable

Nvidia is giving these blobs to Windows users who download their drivers, so why can't they write a script/etc that extracts blobs from a Windows driver binary and let the user download that binary manually?

They are giving the blobs to Linux proprietary driver users too. I'm not sure why that isn't viable, but they definitely did it for very old unsigned versions of the firmware on old GPUs. I guess they got tired of the upgrade treadmill if they aren't doing it any more, but probably they have such a script for their own reverse engineering efforts but don't want to deal with the support issues from when users try the script against newer driver downloads etc.