At age 20, she reverse-engineered the Apple GPU. At age 40, I got the LED to blink on my Arduino.
post
Of you look at all of the work behind Asahi, it's incredible. I'm so grateful for heroes like Alyssa who are saving millions of computers from landfills when Apple no longer supports them
I applaud them for their thankless work. I hate that it's necessary in the first place.
Name is misspelled in the title: https://en.wikipedia.org/wiki/Alyssa_Rosenzweig.
Also, wow, impressive.
Sometimes I think I'm smart then I hear stories like this and I'm humbled.
She is a hero and a legend. It just makes me think, it's so sad that we live in a world where the most altruistic, talented, and capable people make less than those that are the best at taking advantage of the system and others for their own greed.
That's what our economic system suppresses to bring the losers to the top.
Wanna bet someone else profited off her hard work in some fashion without her seeing a dime? I know AI did.
Did you know that the board game "Monopoly" was originally called The Landlord's Game, meant to showcase how property ownership breaks the capitalist system for the common man?
A capitalist came along, rebranded it "Monopoly", took all the credit and lived like a king.
Sweat of my brow indeed.
And beside those who survive (and provide us with great software), let us spare a thought for the ones who didn't, proof the opensource community can be an evil pit of haters: marcan and AsahiLina.
Both quit for different reasons, but both did it facing extremely unpleasant behaviours.
As a regular Asahi user (m2pro mbp), I literally felt the project slowing down when they quit.
An outcome of that crisis was the buildup of an organised directorial structure, with funding through the "Open Collective" organisation. That's good, and it's full of good people in there. Alyssa is an admin now btw.
Let us wish them all the best (and strength against all evil neckbeards).
Lina rebranded as Hoshino Lina and is working on an open source implementation of Live2D now.
Some missing links:
- https://alyssarosenzweig.ca/
- https://en.wikipedia.org/wiki/Alyssa_Rosenzweig
- https://en.wikipedia.org/wiki/Asahi_Linux
Alyssa Rosenzweig, GPU lead. Alyssa is a Linux graphics hacker. After reverse-engineering the Arm Mali GPUs and building the free Panfrost driver for them, she did the same magic trick on the Apple GPU and built the userspace Asahi graphics drivers.
IIRC Apple were refusing to implement open standards because they were trying to force developers to use their proprietary Metal API.
Transphobes can fuck right off. The fact that a SINGLE person contributed this much says quite a lot about their own abilities, and whether they are trans or a woman is irrelevant.
And a talented engineer is a talented engineer! Pulling that off at 20 is mad, when I was 20 I didn't have as much skill in my little toenail. Massive respect for her.
Alyssa Rosenzweig. Not Resenzweig. It means Twig of Roses. Here's her website: https://alyssarosenzweig.ca/
So encouraging the bright young minds that are still being spawned. Amazing on her.
Her live streams are something else
We need more people who know how to reverse engineer
We need more open hardware standards. Late-stage capitalism ruins everything.
It's so weird how Apple basically explicitly said, "yeah so you can write software for it if you want, we won't stop you. Also, we will obfuscate everything and provide no documentation." So it is a very soft fuck you that should likely prevent lawsuits.
I miss Apple, the company that gave you schematics and programming instructions for their computers. Wonder whatever happened to them.
very based
personally grateful as i daily drive asahi linux
posting this comment from an m2 macbook pro running fedora asahi
I've always wondered how the fuck people do that? Absolute wizards.
Insane levels of dedication. And probably autism
She’s amazing. Also fascinating life story, came out as transgender at 10, was raised Jewish but she is now a Quaker
Alyssa reverse-engineered Apple's M1 GPU with no public documentation and developed an open-source Linux driver.
Be like Alyssa.
I'd rather watch her do that than someone doing triple saltos at the olympics.
This is way more impressive. 10/10
No need to diminish Olympic athletes. They worked very hard to get there. There are plenty of influences you can diminish instead.
clearly she is on the spectrum..

It's an amazing accomplishment, but if anybody is wondering why it's not flat-out impossible, she very likely was snooping on how it was controlled by existing drivers, either by looking at the software side, which honestly, I'm less familiar with, or by using something like a logic analyzer, which can be used to record signals being sent to the hardware directly. So, if she did it that way, she didn't reuse the code of the existing driver, but analyzed the output. I've had to debug some drivers in the past with a logic analyzer, and just that was a lot of work.
If she did it without existing drivers, then it would have been an absolute slog, I think bordering on impossible. You'd have to guess every signal. GPUs may be more specialized than CPUs, meaning that their instruction set will be smaller, but that would be insane.
lol I randomly searched for a page from collabora about how they reverse engineer GPU drivers (since I've seen that they've done that for other GPUs) and the very first page I went to was written by this person. Apparently this was a side project while she did fairly similar work on Mali GPUs at Collabora.
Anyways, here's what she said about the process:
Typically, for Linux or Android driver reverse-engineering, a small wrap library will be written to inject into a test application via LD_PRELOAD that hooks key system calls like ioctl and mmap in order to analyze user-kernel interactions. Once the “submit command buffer” call is issued, the library can dump all (mapped) shared memory for offline analysis...
it took some elbow grease to identify the three critical calls: memory allocation, command buffer creation, and command buffer submission...
With those obstacles cleared, we can finally get to the shader binaries, black boxes in themselves. However, the process from here on out is standard: start with the simplest fragment or compute shader possible, make a small change in the input source code, and compare the output binaries. Iterating on this process is tedious but will quickly reveal key structures, including opcode numbers.
From https://alyssarosenzweig.ca/blog/asahi-gpu-part-1.html , there's a lot more details about the subsequent parts of the process in the next articles but they're harder to summarize
top 50 comments