Photo of Alyssa Rosenzweig
Alyssa Rosenzweig

Working on hard, ambitious graphics software for the dream of FOSS

Hello, who are you and what are you working on?

Hi, I'm Alyssa Rosenzweig, a free software enthusiast and a graphics hacker working on the Panfrost driver at Collabora. Panfrost is a free and open-source graphics driver for Mali GPUs, ubiquitous in embedded Linux devices. Prior to Panfrost, Mali required a proprietary blob running in userspace to get accelerated graphics, and that blob, in turn, required an out-of-tree kernel driver - preventing users from using mainline Linux in freedom with their Mali devices. Now, a user can download Debian, Fedora, or Arch onto their device, and graphics will work out-of-the-box with exclusively open-source software!

How did you get involved with Panfrost?

A few years ago, I became interested in running Linux on Arm devices, specifically Rockchip Chromebooks. These Chromebooks run with free software down to the boot firmware (coreboot), and support for mainline Linux is excellent, thanks especially to contributions by Google and Collabora. Unfortunately, I discovered that the proprietary drivers for Mali prevented the Chromebooks from running at full speed with only free software. It looked like a dead-end, unless somebody began to reverse-engineer the modern Malis... and so I got to work :-)

How has Panfrost grown in usage?

Panfrost was born as a research project living on a few laptops and single-board computers, developing into a proof-of-concept presented at XDC2018. Over the months, many community members like Connor Abbott and Lyude Paul contributed to the nascent project, and soon developers at Collabora like Tomeu Vizoso began to contribute. Our snowballing work culminating in the Mesa 19.2 release in August, when Panfrost shipped officially in upstream Mesa. With this release, Panfrost ships as the default graphics driver on support Mali hardware with your favorite upstream distribution.

How do you manage the workload and the community?

As an open source maintainer, I strive to put Panfrost's community first. As soon as I log in every day to work on Panfrost, I check our public project IRC (#panfrost on chat.freenode.net - join us!), reviewing the thoughts of users and developers alike, answering any questions to the best of my ability. With my maintainer hat off, as a developer, I try to prioritize features and bug fixes which will have the greatest impact on our users' experience and with open source graphics. Throughout my work, I keep community, freedom, and openness as my defining values and according priorities.

How much time do you devote to Panfrost?

I'm a full-time undergraduate student at University of Toronto. Mornings, nights, and weekends, I'm a part-time employee at Collabora working on Panfrost. It's a balance, but I strive to let Panfrost excel while keeping up with my studies.

What are the biggest obstacles you've had to overcome?

Although I've enjoyed hacking on software as a hobby for years, Panfrost has been my most ambitious successful project. This ambition is a double-edged sword: the inherent difficulties of reverse-engineering and compiler development have stretched my persistence. Early in the project, I faced moments where I was ready to give up and declare Panfrost too hard, walking away from the project after struggling on a technical problem for days or even weeks. Nevertheless, this ambition is a powerful force of perseverance -- however difficult a task may be, the Panfrost dream has kept me going until this day.

What are your hopes for the future of Panfrost?

I dream of a world where modern computing and freedom coexist in harmony. I understand this harmony to require free and open-source software as the de facto standard, with hardware and firmware reflecting these ideals. This dream motivates my free software contributions, including my work on Panfrost, which I see as a step in the direction of free computing. In the future, I hope the trend of increasing open-source software adoption as driven by projects like Panfrost and groups like Collabora creates a kinder, freer world for the information age.

What advice do you have for other open source maintainers?

Remember to put freedom, openness, community, and users first - from there, the path to a perfect open source project is rarely murky. Contribute where you are able - if you can code, just start hacking where you feel you can help. If you can translate, translate; if you can support your fellow users, join a project IRC channel, forums or wiki and get involved! Contribute as much as you can to push forward free and open source software... but no more. Remember to take care of yourself, too! It's okay to have hobbies that don't involve development. Take breaks: maybe open Krita and paint something pretty - just come back to the project when you're done!


To find out more about Alyssa, you can visit her blog here and to get involved with Panfrost, you can start contributing on GitLab here.