Publications on the Linux Graphics Stack
Fo those interested in the inner workings of the Linux Graphics Stack, here’s a list of material I published during recent years.
My article series The Linux graphics stack in a nutshell gives an overview of the modern graphics stack on Linux. Part 1 explains how an application draws pixels to an output surface. It covers steps from the scene graph to rendering with Mesa, how Mesa allocates graphics buffers for things like rendering output or textures, and how kernel drivers transfer data to the hardware for processing.
With the resulting application output in mind, Part 2 describes how the modern Linux desktops compose the entire screen from the individual application windows. It further covers display-mode setting and the mode-setting pipeline, buffer transfers among applications, and a few advanced features.
I also gave a presentation at SUSE Labs Conference 2023 on the same topic.
If you want to know more about Linux’ support for boot-up graphics and the various framebuffers that the firmware provides, there’s a presentation (in German) I gave at Chemnitzer Linux Tage 2026. It covers options for outputting graphics on whatever display the firmware provides.
Much of my work on Linux graphics relates to getting something on the screen on these firmware framebuffers; usually summarized under the term simpledrm. On that topic, I gave a presentation at SUSE Labs Conference 2022 when simpledrm was still new. I laid out the changes necessary to use DRM throughout the entire runtime of a Linux system. Recently I gave another presentation with some retrospection on how that progressed over the years.