Why we need a free desktop

This post was written by Neil McGovern, Executive Director of the GNOME Foundation.

A photo of Neil McGovern, Ecexutive Director of the GNOME Foundation in August 2019. He is wearing a suit. Behind him is a sign that says "GUADEC" and "Private Internet Access."
Photo courtesy of Richard Brown. Licensed CC-BY-NC.

I am frequently asked if there’s any point in the desktop anymore. With the rise of cloud services, it’s easy to wonder whether there is a need. I believe that a free software desktop system is more important than ever.

GNOME creates an entire desktop environment that is beautifully designed and simple to use. We do this to ensure user freedoms. It is this empowerment of end users – acknowledging their right to control their own computing – that drives me forward.

The intention behind making free software is important, but irrelevant if the reality is that users cannot make use of those freedoms. When fewer than 0.5% of the world’s population can code, the chance of someone being able to modify their own desktop, or pay someone to do so, is vanishingly small. It is our responsibility, as technologists, a community, and a foundation, to provide to put the user first. Software must be built for everyone, and that’s what we are doing.

It is not enough for software to be free of charge, or even available under an open source license, if your data is being sent to third parties in attempts at monetization. It’s not enough if it is still necessary to have a fast, expensive internet connection to get the latest upgrades or access to files. It’s not enough if you need accessibility features that are under developed or unavailable. We see these situations as unacceptable and are working to change them.

Over the last year, we’ve grown from two full time, and one part time, employees to seven. Two more will be joining us shortly. This is to provide the support to enable the GNOME desktop to be what we need it to be. We will be launching a renewed focus on accessibility. We’re introducing out Coding Education Challenge – to make it easier for people to contribute to GNOME and free and open source software, regardless of background. We will do all of this while driving innovation and continuing to update our software based on solid user testing.

To do this, we need your help. We rely on individual donors to help support us. Help us bring the user freedoms to millions more people by joining Friends of GNOME today.

We recommend a donation of $25/month ($5/month for students). These donations support our staff, programs, and the ongoing development of the GNOME desktop environment and other software in the GNOME ecosystem.

With your help and support we’ll continue to develop world class free software and bring user freedom into the hands of every user.

ATK, GTK, and plans for 2020

The GNOME Project is built by a vibrant community and supported by the GNOME Foundation, a 501(c)(3) non-profit charity registered in California (USA). The GNOME community has spent more than 20 years creating a desktop environment designed for the user. We‘re asking you to become Friend of GNOME, with a recommended donation of $25/month ($5/month for students). We’re working to have 100 new Friends of GNOME join by January 6, 2020.

GNOME is about so much more than a desktop environment. In addition to the eponymous GNOME desktop, we work on projects like GStreamer, GTK, and Flatpak. We have a mostly complete list of technologies you can read on our web site. While the Foundation largely works on support, we also do development and outreach for GTK and GNOME core application development platform.

A group of people around a conference room table, covered in things. Everyone is smiling.
West Coast Hackfest 2019

In addition to routine, and some not so routine, fixes, Emmanuele Bassi, GTK Core Developer, led development initiatives across the GNOME ecosystem. A far from complete list of work includes:

  • reliability and usability of continuous integration (CI) for Glib and GTK;
  • completed constraints layout work for GTK4;
  • progress on the animation framework API for GTK, a necessary step for the GTK 4 release; and
  • reviewing contributions and closing of numerous bugs.

Emmanuele mentored Ravgeet Dhillon in Google Summer of Code working on updates to the GTK web site. Additionally, Xiang Fan worked on GTK 4 Rust bindings.

Additionally, Emmanuele worked on the migration of the various GTK mailing lists to the new Discourse support forum.

We are already working on projects for 2020. Notably, there will be a hackfest in Brussels before FOSDEM, focused on GTK4, serving as a checkpoint for the 2020 release and accessibility (a11y).

A11y work is very important to us at the GNOME Foundation. We believe software needs to be for everyone, which means it needs to work for people who have physical disabilities, including those who are blind. In general, we plan to do a major a11y overhaul in 2020, focusing on developing our Accessibility Tool Kit (ATK). We are auditing what exists right now, and are currently seeking expert help with this. We hope to partner with other projects, to come together to create a11y support that rivals that of proprietary options.

In order to push these projects forward, we need your help. Please consider becoming a Friend of GNOME in order to support our work on new accessibility development, community building around a11y, and getting GTK 4 out the door.

Friends of GNOME Update December 2019

This is it! The last Friends of GNOME Update for 2019! We have a lot planned for 2020, so stay tuned for more Updates!

The GNOME logo against a dark blue background with animated stars.

GNOME on the Road

November was full of excitement for us. We went around the world, bringing GNOME to exciting locations, from New York to Shanghai.

Executive Director Neil McGovern went to China Open Source Convention in Shanghai, China. While there, he gave two talks, one about the importance of free software on the desktop, and one about why open source is about communities.

We also hosted a very successful Linux App Summit in beautiful Barcelona, Spain with our friends from KDE.

Strategic Initiatives Manager Molly de Blanc could be found at Sustain NYC in Brooklyn, NY, talking about sustainability in open source.

January looks quite for the GNOME Foundation, but at the end of the month you can find us in Brussels, Belgium at FOSDEM, CopyleftConf, the GNOME hackfest, and other ancillary events.

On that note…

GTK Hackfest in Brussels, Belgium!

Are you going to be in Brussels January 28 – 31? We’re hosting a GTK hackfest. We have two main goals for this hackfest: determining the requirements for a new accessibility stack inside GTK and identifying the remaining GTK4 blockers.

Rothschild Patent Imaging alleged that Shotwell is in violation of one of their patents. People, especially within the free and open source communities, have been stepping up to help us raise funds for the case. We have so far raised over $150,000 from more than 4,000 donors. You can read more on our blog.

Friends of GNOME Drive

We’re aiming to have 100 new Friends of GNOME join us by January 6, 2020. If you’re not a Friend of GNOME, please consider signing up. If you already are, consider telling a friend of sharing on social media how to become a Friend of GNOME.

Flathub Updates

One of the things we do as a Foundation is host Flathub, an app store and build service for Linux. We’ve been busy making some updates to help it run more smoothly for the end user.

Flathub works with Flatpak, which is celebrated its fifth birthday on December 17. Happy birthday!

Thanks, AWS!

AWS donated credits to GNOME. GNOME infrastructure uses AWS S3 as a service as file storage for the many Docker images that are updated daily.

GUADEC and GNOME.Asia

GUADEC 2020 is going to take place in Zacatecas, Mexico! Planning is already in full swing, with the local team working hard.

The call for GNOME.Asia 2020 hosts is now open! Do you live in Asia and think you’re ready to organize a GNOME.Asia in your hometown? The deadline for proposals is 17 January 2020 and we’re happy to help you out! Feel free to direct questions to gnome-asia-committee-list@gnome.org.

Outreachy This Winter

We have two brand new Outreachy interns! Sonja Heinze will be working on Fractal, while Pryanka Saggu will be busy with the GNOME translation editor, Gtranslator. We’d like to shout out to their mentors, Jordan Petridis, Daniel García Moreno, and Daniel Mustieles García. You can follow their adventures on their blogs, which are linked to above.

Thank you!

As always, thank you!

Keeping the (server) lights on

The GNOME project is built by a vibrant community and supported by the GNOME Foundation, a 501(c)(3) nonprofit charity registered in California (USA). The GNOME community has spent more than 20 years creating a free desktop environment designed for the user. We‘re asking you to join us by becoming Friend of GNOME.

The GNOME Foundation manages the technical infrastructure powering GNOME projects. Our Infrastructure Team is led by Andrea Veri and also includes Bartłomiej Piotrowski, working in devops and systems engineering. While Andrea has been with the Foundation for some time, Bart was hired in 2019.

A dark server room, filled with computer stacks emitting eerie blue and green light.
Photo by The National Archives (UK) is licensed under a CC-BY 3.0 License.

Building and maintaining infrastructure for the GNOME project is one of the many activities of the GNOME Foundation, and it’s one of the most important. Building software like the GNOME desktop environment requires a lot of technical support, including managing servers and providing collaboration tools. Since GNOME is focused on being a self-sustaining community, we look as much as possible to managing our own services and software, and making sure it is free and open source.

The GNOME Infrastructure Team currently supports a total of 34 virtual machines hosted on a total of eight bare metal nodes. These virtual machines allow us to run services like the Openshift Container Platform (OSCP), which provides self-service access to the community to run any of their workflows on an automated and containarized fashion.

GNOME is build using self-hosted FOSS. We collaboratively build GNOME using a GitLab instance, which has a total of 15k accounts. We do shared storage using NextCloud. Community discussion is handled over Mailman, Discourse, and MoinMoin. We are currently using Indico and Connfa for our event planning and management.

There are other community-focused services as well, including:

    • internationalization services including localized home pages and translation toolings;
    • mail services for staff and community members;
    • staff mail endpoint for all the GNOME employees and contractors to store their mails on a supported hosting;
    • an IDM solution with more than 2.5k accounts, mirroring infrastructure for the GNOME sources to be available to a place that is closest to where you live for fastest download speeds;
    • Cachet for a dynamically updated Infrastructure Status page; and
    • a Surveys system and several app migrations from virtual machines into containers with a major improvement over maintainability, performance and budget that allowed us to retire unnecessary hypervisors and reduce the costs for the hardware renewals; and
    • a list of tools we offer to the community that keeps increasing year over year.

Additionally, the GNOME builders for the CI/CD processes were fully automated allowing the team to save time putting the system into service whenever a new builder is being donated to the GNOME Foundation.

We have a lot planned for the future. In particular we‘ll be focusing on migrating additional virtual machines into containers on OSCP. The idea is to consolidate and simplify the existing infrastructure even further to reduce maintenance and costs but at the same time offer the community the toolings they need in order for the GNOME Project to be successful as a whole.

We’re asking you to help us to help make the GNOME Project successful becoming a Friend of GNOME. By supporting the Foundation, you’re helping us to provide these necessary resources to the GNOME community, as well as expand our offerings to better meet the growing needs of the Project.

Everything the GNOME Foundation does is for the GNOME community. By supporting us, you’re supporting a global community looking to serve everyone, regardless of geography or language. Join us in working towards a brighter future for GNOME by becoming a Friend of GNOME today.

GNOME programs go global

The GNOME project is built by a vibrant community and supported by the GNOME Foundation, a 501(c)(3) nonprofit charity registered in California (USA). The GNOME community has spent more than 20 years creating a desktop environment designed for the user. We‘re asking you to join us by becoming Friend of GNOME.

The GNOME community hosts numerous hackfests, meetings, workshops, and first time contributor events around the world. We also host two very special events: GUADEC and GNOME.Asia. These two conferences are for GNOME contributors, enthusiasts, and the GNOME curious together twice a year on two different continents. Over the past few years, we have also organized Linux Application Summit (LAS) with the KDE community.

Every year, GUADEC (GNOME’s biggest annual conference) brings together developers, designers, users, and other experts and enthusiasts for a week of talks, workshops, roundtables, team building, and more. GUADEC is one of the most important events for the GNOME community, giving us an unparalleled opportunity to push the project forward. GUADEC 2019 was no exception. Taking place in the beautiful city of Thessaloniki, Greece from 23 – 28 of August, we had conversations on a variety of topics and a splendid range of presentations, many of which are available online.

A photo of ten people on a stage. Many of them are smiling.

GUADEC not only offers a place for people to enjoy different sessions and workshops, but it’s also a unique opportunity to bring together the GNOME Foundation staff, board members, and Advisory Board for making strategic decisions.

While GUADEC has historically been in Europe, we are very excited that GUADEC 2020 will take place in Zacatecas, Mexico. This will provide an opportunity for people who have trouble traveling to Europe. By hosting the event on the North American continent, a whole new group of people will be able to join us to celebrate GNOME.

Another interesting event we have is GNOME.Asia. GNOME.Asia 2019 took place in Gresik, Indonesia between 11 – 13 of October at the Universitas Muhammadiyah Gresik (UMG). This too was a rousing success. It was the biggest event organized by the GNOME community in Asia, with the first day dedicated to workshops and the second and third days for presentations.

In 2019 we also worked with the KDE community on organizing LAS in Barcelona, Spain. LAS is designed to accelerate the growth of the Linux application ecosystem by bringing together everyone involved in creating a great Linux application user experience. Thanks to the generosity of sponsors and the hard work of the organizing team, attendance was free for everyone.

Among the hackfests this past year, there was a particularly large West Coast Hackfest, which took place in Portland, OR. The focus was on getting the members of Documentation team, Engagement team and GTK team working together for four days to push some initiatives forward. This was a unique opportunity for the Documentation team to work on ideas that had been planned for some time. Members of the Engagement team worked activities such as social media strategy, event planning, and merchandise design. The GTK team continued their outstanding work on one of the most popular free libraries for graphical user interfaces.

GNOME events are organized by the GNOME community, with the support of GNOME Foundation employees, principally Programs Coordinator Kristi Progri, with sponsorship assistance from Strategic Initiatives Manager Molly de Blanc. These events are built by the GNOME community, and supported by the GNOME Foundation. We provide infrastructure and organizational support for the local and global teams who spearhead these events. We work alongside the community to make these events happen.

In 2020, we are going to continue to step up for the community and are asking you to join us by becoming a Friend of GNOME. Though this, you’re helping to make amazing events like these possible. By continuing our work, we are able to support the GNOME community and help it grow. We want to keep doing this, and we want you to help us.

We recommend a recurring, monthly donation of $25 ($5/month for students). As thanks for becoming a Friend of GNOME, we’ll send you a thank you postcard from a GNOME hacker and offer you a discount on swag at events. If you donate more than $30 a month, you are eligable for a subscription to LWN at no additional cost to you. If you donate more than $500 a year, Executive Director Neil McGovern will send you a special thank you note.

Everything the GNOME Foundation does is for the GNOME community. By supporting us, you’re supporting a global community looking to serve everyone, regardless of geography or language. Join us in working towards a brighter future for GNOME by becoming a Friend of GNOME today.

Step up and become a Friend of GNOME

The GNOME project is built by a vibrant community and supported by the GNOME Foundation, a 501(c)(3) non-profit charity registered in California (USA). The GNOME community has spent more than 20 years creating a desktop environment designed for the user. We‘re asking you to step up for GNOME and become Friend of GNOME. We’re working to have 100 new Friends of GNOME join by January 6, 2020.

A photo of a group of GNOME contributors at GUADEC, standing behind a large beach blanket full of colorful GNOME logos.

The GNOME Foundation was founded in 2000, to support the activities of the GNOME project and our goal of building a desktop environments that respects the freedom of every user, developer, and contributor. We continue to make great strides towards this.

2019 has been an exciting year for us with the expansion of the Foundation‘s staff and efforts:

This year has not been without challenges. Most notably, October brought with it allegations of patent infringement from Rothschild Imaging, Ltd. Rather than settling or backing down, we are taking this fight as far as we have to in order to say that patent trolls have no place in free software. This effort is something we’ll be carrying forward into the coming year.

Looking ahead to 2020, we already have a lot going on in addition to our patent case. There’s kicking off the GNOME Coding Education Challenge in order to expand the tools we have available to learn and teach. We will be seriously expanding our accessibility efforts, and are currently planning an accessibility audit and making plans for updates to the Orca screen reader. We’ve already started planning GUADEC 2020, which will bring us to our first North American GUADEC in Zacatecas, Mexico. We have a GNOME.Asia in the works. There will be more hackfests and newcomer events, intern and mentorship opportunities, and constant efforts to work on, for, and with the community. We’ll do all of this while upholding the standards of technical excellence you have come to expect from the GNOME project, building software for people of every country with every level of ability.

The GNOME Foundation supports the work of the GNOME community, and we need your help to keep going. We’re working on the future, not just of how you interact with your computer, but the future of free software and we want you to join us. Step up for GNOME! You can become a Friend of GNOME, to support us on either an annual or monthly basis. We ask for a minimum donation of $10/month, and recommend $25 a month ($5 for students). Every donation comes with a Thank You postcard from a GNOME hacker and a discount on GNOME swag when you find our booth at a conference. For $30 a month, you can get a subscription to LWN. If you donate $500 or more on an annual basis, you’ll get a wonderful Thank You note especially from executive director Neil McGovern.

We’re bringing software freedom to the desktop. We‘re developing a safe, secure, accessible desktop environment for everyone; building a global community of contributors; and fostering the next generation of free and open source software contributors. By becoming a Friend of GNOME you are becoming a part of that.

Cheers,

Andrea, Bart, Emmanuele, Kristi, Molly, Neil, and Rosanna

Photo courtesy of Ana Rey. Licensed under a Creative Commons Attribution Share Alike license.

GNOME Patent Troll Defense Fund reaches nearly 4,000 donors!

A lot has happened since our announcement that Rothschild Imaging Ltd was alleging that GNOME is violating one of their patents. We wanted to provide you with a brief update of what has been happening over the past few weeks.

Legal cases can be expensive, and the cost of a patent case can easily reach over a million dollars. As a small non-profit, we decided to reach out to our community and ask for financial support towards our efforts to keep patent trolls out of open source. More than 3,800 of you have stepped up and contributed to the GNOME Patent Troll Legal Defense Fund. We’d like to sincerely thank everyone who has donated. If you need any additional documentation for an employer match, please contact us.

Individuals aren’t the only supporters of this initial fundraiser. The Debian Project generously reached out with a donation and Igalia also donated to support our legal efforts.

There’s been a wonderful outpouring of support from the free and open source software communities. The Software Freedom Conservancy issued a statement. Meanwhile the Open Invention Network is lending a hand in the search for examples or prior art.

We set ourselves an ambitious fundraising goal of $1.1 million to support our defense. We expect the majority of this to be raised from corporate sponsorship, but we’re going to keep working for more individual and community donations. Please share our GiveLively donation page with your social media networks. If you’re a non-profit that has issued (or is is interested in issuing) a statement of support, we’d love to hear from you.

If you want to receive updates on the case, please sign up for the GNOME Legal Updates List.

Friends of GNOME Update – October 2019

Welcome to the October 2019 Friends of GNOME Update!

A jack-o-lantern: an orange pumpkin with a GNOME foot carved into it and candle light coming through the foot.

GNOME on the Road

  • Molly de Blanc and Sri Ramkrishna were at All Things Open this past month. They both gave talks, ran a booth, and met lots of great people who were excited to learn about GNOME. They ran out of stickers.
  • Neil McGovern and Rosanna Yuen attended GNOME.Asia Summit, both delivering keynotes! While he was in Indonesia, Neil also delivered a keynote at openSUSE.Asia Summit.
  • Board member Carlos Soriano spoke at GitLab Commit about how GNOME uses GitLab.
  • Not quite on the road, but Neil was on FLOSS Weekly. You can watch the episode on their web site.

If you have a GNOME-related speaking engagement coming up, feel free to drop us a line!

Patented

Technical developments

  • There have been changes to buildbot in order to accommodate the latest release of the FreeDesktop SDK.
  • You can now find org.freedesktop.Sdk.Extension.golang for FreeDesktop SDK 19.08 and io.qt.qtwebkit.BaseApp for KDE runtime 5.13.

Read all about it!

LAS

  • Along with our friends at KDE, we’re organizing the Linux App Summit (LAS). LAS is taking place this year in Barcelona, Spain, from November 12 – 15th. Registration is open so sign up today.

Thank you!

As always, thank you for being a Friend of GNOME!

Photo courtesy of Britt Yazel under a CC-BY license.

Join GNOME in our fight against a patent troll

A photo of a large group of people sitting and standing on steps, with GNOME balloons and signs in the background.

A month ago, GNOME was hit by a patent troll for developing the Shotwell image management application. It’s the first time a free software project has been targeted in this way, but we worry it won’t be the last. Rothschild Patent Imaging, LLC offered to let us settle for a high five figure amount, for which they would drop the case and give us a license to carry on developing Shotwell. This would have been simple to do so; it would have caused less work, cost less money, and provided the Foundation a lot less stress. But it also would be wrong. Agreeing to this would leave this patent live, and allow this to be used as a weapon against countless others. We will stand firm against this baseless attack, not just for GNOME and Shotwell, but for all free and open source software projects.

For these reasons, GNOME Foundation Executive Director Neil McGovern instructed our legal counsel at Shearman & Sterling to file three papers with the court in California.

First, a motion to dismiss the case outright. We don’t believe that this is a valid patent, or that software can or should be able to be patented in this way. We want to make sure that this patent isn’t used against anyone else, ever.

Second, our answer to the claim. We don’t believe that there is a case GNOME needs to answer to. We want to show that the use of Shotwell, and free software in general, isn’t affected by this patent.

Thirdly, our counterclaim. We want to make sure that this isn’t just dropped when Rothschild realizes we’re going to fight this.

We want to send a message to all software patent trolls out there — we will fight your suit, we will win, and we will have your patent invalidated. To do this, we need your help. Please help support the GNOME Foundation in sending a message that patent trolls should never target free software by making a donation to the GNOME Patent Troll Defense Fund. If you’re interested in keeping up with the news on this case, subscribe to our Legal Updates email list.

GUADEC 2017 Group Photo” by Jonathan Kang licensed CC-BY-SA

Meet Alyssa Rosenzweig and Panfrost

Hi, I’m Gaurav Agrawal, a member of the GNOME Engagement Team. I recently had the chance to interview Alyssa Rosenzweig, who is a lead developer at Panfrost project which is a free and open source driver Mali Midgard and Bifrost GPUs. Alyssa spent her summer as an intern at Collabora working on improving Panfrost’s OpenGL ES 2.0 userspace, which helps GNOME Shell work fluidly on supported Mali Hardware.

A screenshot of panfrost in action, with four open images of a Debian terminal, a logo, a jellyfish, and a computer generated landscape.

How about we kick off with a little bit of background on Panfrost?

Panfrost is a free, open-source graphics stack for Arm Mali GPUs, focused on the popular Midgard series. While these chips are popular among Android devices, they have been historical thorns in Linux’s side, due to the closed nature of the official drivers. Panfrost aims to change that, bringing the benefits of open-source to the Mali world.

What started out as a small community reverse-engineering effort has now matured into a reliable OpenGL ES 2.0 driver. Since May, I’ve been using Panfrost as my daily driver to program Panfrost. And yes, I’m answering these questions from a machine with Panfrost!

How did you get involved with the Project’s team/founded the team.

I’m passionate about spreading free software across the entire stack. To me, it’s not enough to have a free kernel; we also need a free desktop environment like GNOME. Yet it’s not enough to have just a free kernel and free desktop environment — we need free drivers and free firmware. Researching the state of free firmware for x86 systems, I realized that for long-term success, free software needs to win on Arm platforms, where free firmware at the lowest levels is still an option on systems like the Rockchip RK3399. These Rockchip systems have gained considerable mainline support, including support for the on-board video processing unit, thanks to past Collabora contributions. The future looked bright for Linux on Arm.

Unfortunately, despite these freedom wins, these Arm boards featured Mali GPUs, whose proprietary drivers prevented free software from truly taking off here. Frustrated with the GPU serving as the sole obstacle to a modern fully open source laptop, two years ago I purchased a development machine with a Mali — and the rest is history.

We will love to know, what were the issues with existing proprietary Arm drivers, which users were facing?

The issue with proprietary drivers is both practical and philosophical, and the proprietary Mali drivers are no exception. 3D acceleration is a de facto requirement of the modern system; even if a user is not interested in video games, they still need acceleration to run software using OpenGL like GNOME with full performance. Thus, philosophically, the requirement of the proprietary drivers for OpenGL support prevents normal usage of systems with Mali with free software.

Practically, the proprietary drivers pose a number of challenges for Linux users. Arm’s userspace drivers require the use of Arm’s kernel drivers. While these kernel drivers are technically open source, they are tightly coupled with the proprietary stack, which prevents their integration with the upstream “mainline” kernel. Today, most users never have to think about installing a kernel; the kernel for their hardware is part of their distribution, and distributions can easily maintain support for any hardware supported upstream. But a Linux user that needs a Mali chip cannot rely on their distribution for the kernel; the driver is maintained out-of-tree and requires a complex porting process to work against a normal upstream kernel. Far too often, users will resort to use outdated, buggy, insecure, downstream kernels, simply because they cannot use the mainline kernel if they need graphics.

Panfrost changes that. Our kernel module is designed for open-source and is included in the mainline kernel. Likewise, our userspace implementation is open-source and part of the upstream Mesa project, shared with the open-source Linux drivers for Intel, AMD, and Broadcom GPUs. Thus, with Panfrost, Linux users can install the distribution of their choice, using a modern, secure upstream kernel, while 3D graphics works out of the box.

Your project focuses on improving Panfrost’s OpenGL ES 2.0 userspace, we will like to know what this is about, and how it will benefit others?

OpenGL ES 2.0 is the core API for graphics on Arm platforms. Although newer versions of OpenGL ES exist, most software a user will encounter day-to-day can run on OpenGL ES 2.0. By focusing on this API, Panfrost is able to provide a smooth user experience where it counts.

Panfrost uses the open source Mesa implementation of OpenGL ES 2.0 to provide this experience to users. Mesa provides the OpenGL frontend via the common open-source “Gallium” API. Panfrost is a Gallium driver, thus enabling OpenGL ES 2.0 apps to run atop Mali with no proprietary components.

But Panfrost goes further! OpenGL ES is the “embedded subset” of OpenGL, the API used more commonly on Linux. The proprietary userspace drivers only support OpenGL ES, with no support for desktop OpenGL, leaving Linux users forced to specially compile software or use fickle translation layers. Fortunately, Panfrost provides a solution!

Leveraging the power of a strong open-source community via Mesa and Gallium, Panfrost is able to support OpenGL 2.1, a “common denominator” API prevalent on Linux. Other drivers have contributed to the desktop OpenGL support in Mesa and Gallium, and via this shared open-source framework, this work is shared and everyone benefits — including Panfrost users.

In practice, this support means a user running a distribution like Debian can install desktops like GNOME and have acceleration work out of the box. Whereas the proprietary userspace would leave a would-be GNOME user to fend for herself, Panfrost provides a smooth, Linux-first experience.

A young woman, against a blue background, wearing a red shirt. She has long, dark brown hair.We really want to know how are you so creative with commit messages ;) (… , :^, ./test-clear works, woo, I think I got it ?, Fix textures \0/, 🤔 , I tried…, Hmm )

Programming is mentally draining for some and physically draining for others. For me, I think programming is _emotionally_ draining. By the time my code works, sometimes you just have to let out all that emotion into the nearest text box. Sometimes that’s IRC, and sometimes that’s the commit message :-)

You went on a bug fixing adventure with GNOME, and we are excited to know what treasures you got ;)

Sometimes debugging feels like chasing my tail. But that’s not a problem — I’m not going in circles; I’m spiraling out and learning so much along the way. Sometimes that knowledge doesn’t help fix the bug, but it’s always a treasure!

GNOME offered no shortage of treasures. I installed a standard GNOME system from my distribution, which was built with OpenGL 2.1, rather than OpenGL ES 2.0. While OpenGL 2.1 has been tested with Panfrost, at the time, we had not tested it as extensively as ES 2.0, so there were all sorts of little gotcha’s I discovered. For instance, desktop OpenGL uses a slightly different texture specification mechanism, which challenged our previous texture implementation and demenaded a refactor — something I never would have noticed if I weren’t bringing up an app like GNOME.

_The_ bug, as it were, was unrelated to my research into complex topics like textures and tilers. No, in fact, it was a trivial piece of code related to the viewport descriptor. Panfrost’s implementation was correct for OpenGL ES 2.0, but again, OpenGL 2.1 offers more flexibility, so our implementation did not work there. After an agonizing bug search, a little bit of robustness improvements to the viewport code made all the difference in the world, and a moment later, I was running GNOME.

It will be really interesting to know how you all got nearer to the “Rasterization Discard” with the work “Scoreboard Implementation” on Mali’s Tiled Architecture, and we are curious to know simple explanation of these terms.

In graphics with OpenGL, the fundamental unit is a “draw”. Each draw has a pair of shaders, small programs running on the GPU. The first shader is the vertex shader, which determines where on the screen the GPU should render. The second shader is the fragment shader, which determines what colours the GPU should render. For an application like GNOME, these shaders are simple, copying the images of windows onto the screen. For a game, these shaders can be arbitrarily complex to implement fancy rendering algorithms.

Mali’s architecture subdivides draws into two parts, a vertex job (running a vertex shader) and a tiler job (setting up a fragment shader). If a simple app submits 100 draws, the driver will generate 100 vertex jobs and 100 tiler jobs. But these jobs have to run in a specific order: while all of the vertex jobs could run simultaneously, each tiler job (fragment shader) can only run once the corresponding vertex job (vertex shader) has run. Mali lets each job “depend” on other jobs, so one job can only run after its dependencies have run, much like a package in a package manager only installing once its dependencies were installed.

Originally, we hardcoded these dependencies, but this proved inflexible. This hardcoding was replaced by a high-level description of each job’s dependencies, so an automatic algorithm can compute in which order jobs need to be specified. This algorithm is knowing as “scoreboarding”.

The benefit of this automatic approach is seen in “rasterization discard”, an OpenGL feature that runs vertex shaders but does not draw anything to the screen. On Mali, that means we generate a vertex job, but we _don’t_ generate a tiler job. When we hardcoded jobs, this asymmetry was a problem, but once we implemented an automatic algorithm, this is as simple as just… not generating a tiler job. In negative lines of code, we can implement rasterization discard!

What are some popular devices that you believe can adopt your work, and through them it will benefit lots of people ?

A number of Arm-based Chromebooks use GPUs supported by Panfrost, including my personal development laptop, the Samsung Chromebook Plus. Collabora has contributed to the open-source mainline support for ChromeOS on these Chromebooks, and as a result of our open-first approach, Linux users of these Chromebooks benefit from a well-supported mainline stack. With Panfrost in the upstream kernel, these Chromebooks work on mainline _without_ sacrificing critical hardware support!

Beyond Chromebooks, based on the same high-performance RK3399 chipset, the Linux community’s own Pinebook Pro will support Panfrost. On a smaller scale, Mali chips are ubiquitous in phones and tablets; Panfrost will help the postmarketOS project achieve one of their stated goals, running the mainline kernel on phones for Linux for long-term support.

Looking back so far, what did you folks enjoyed the most with working around FOSS projects and communities?

The people! No matter where I go in the FOSS world, there’s always a friendly face. In real life, I can sometimes be timid, but online in the open source community, I can always hop into an IRC channel and strike up a chat with a developer or a fellow user. That sense of community, that despite coming from a myriad of countries, timezones, and identity backgrounds, we’re all united by a common purpose — that is a breath of fresh air from societies so focused on individual competition.

What are some inspirational lessons which you want to share with us, which will inspire newcomers contributing to FOSS ?

You can make a difference in the world of free software. It’s easy to be jaded and feel that nothing we do matters, that the tides of the world are set in stone at the whim of someone more powerful. Sometimes that can be true, but in the free software community, everyone has a chance to make a difference. If you can code, find an interesting open-source project to contribute to. If you’re multilingual, the community is always looking for translators. And even if you’re just an end-user, testing counts — if something doesn’t look right or doesn’t seem right, file a bug report and let the developers know! Or, if you’re a little extroverted and knowledgable on some software (even as a user!), try hanging out on your favourite project’s IRC channel and helping other users with the software — you never know whose day you could be improving with some patience and a little kindness. Little changes add up to making free software the beautiful place it is today, and you can help.

How can someone become involved?

Try Panfrost! Panfrost is shipping with Linux 5.2 and Mesa 19.2, arriving in popular distributions shortly. If you have a board with a compatible Mali GPU, grab the open-source stack and start testing! Maybe try your favourite desktop environment, or grab an open-source video game compatible with OpenGL 2.1, like SuperTuxKart. Give it a spin!

Edited for content and grammar. Images provided by Alyssa Rosenzweig, licensed CC-BY-SA 4.0.