One of the chief challenges in modern graphics drivers is accessing resources that live outside the shader. While shader compilation is largely a well-understood problem, the interface between the shader and the rest of the API is still a challenge. OpenGL and Vulkan, and D3D12 all have vastly different approaches to solving this problem. In this talk, Faith will give an overview of...
ir3, the compiler backend for Adreno GPUs used by Freedreno and Turnip, has recently gained support for some interesting hardware features. From vectorized instructions to register aliasing, this talk will cover some of those features and the challenges we faced while implementing them. To lay the groundwork, I will also talk about the internals of ir3, and about the debugging and reverse...
Introductory workshop to the Linux embedded graphics stack, presented by Collabora Ltd. This is a great opportunity for students and professionals who are not familiar yet with this area, and who would like to learn more about how open source software drives high performance graphics across the industry, and how to contribute in these areas.
Planned Agenda:
- Brief introduction to the...
This talk will deliver an overview of the recent development efforts in the Raspberry Pi driver stack focusing on three areas: bugfixing and stability improvements, better performance and OpenGL 3.2 compliance.
The first part of the presentation will focus on new features to better align with OpenGL 3.2 requirements, namely seamless cubemaps, 16-bit normalized format suppport as well as...
Until recently, freedreno, the upstream kernel driver for Qualcomm Adreno GPUs, has been using the same legacy memory management paradigm as other upstream DRM drivers. While this worked well for the gallium/GL driver, it was a poor fit for Vulkan, where memory is managed explicitly by the user, resulting in unnecessary complexity and CPU overhead, and it couldn't handle the more sophisticated...
Present the current status of the Panthor driver, update on the features we are working on and what the plans are for the future with regards to Arm Mali GPUs.
This talk will cover the current state of Tyr, a new GPU kernel mode driver written in Rust for ARM Mali GPUs. We will discuss the status of the abstractions in the Rust-for-Linux ecosystem and lay out the roadmap to upstream the driver. We will touch upon its relationship to the current C implementation in the kernel (Panthor) and how we plan to have these two drivers co-exist for the...
All GPU drivers need a load balancing mechanism for submitting jobs (i.e., command buffers) to their GPU. The shared infrastructure for this in the Linux kernel's DRM subsystem is the DRM GPU Scheduler. This component has accumulated a large number of problems over the course of a decade. The talk shall give an overview over the history of the scheduler and how the problems came to be....
Compositors have long relied on ignoring additional GPUs on a system as far as they can, while application configuration is left to users with obscure environment variables and config files.
We propose a new service with dynamic configuration and policies similar to what other OSes provide already and accompanying changes to desktop environments and compositors to finally allow...
Mesa CI has one of the most complex CI pipelines. While this is great for test coverage, this also brings challenges in infrastructure, usability, and sustainability. In this talk, we will present what we think works, what needs improvement, and what is currently on our roadmap.
We've submitted a workshop proposal to discuss these issues further and agree on the roadmap for the next 12...
The Vulkan Conformance Test Suite contains millions of conformance tests to check Vulkan drivers implement the specification correctly. Most people working on Vulkan drivers and related projects will have to deal with it at some point. In this talk I will present an overview of the project and some of its internals, and will try to answer some practical questions such as:
- How to best...
DisplayPort is a feature-rich display standard with plenty of features that are hard to get implemented in a correct and efficient way.
The DRM HDMI connector framework, recently added to the kernel, pointed out the necessity to get core parts of a similar standard implemented in the framework itself. This talk is focused on implementing the DisplayPort framework to be used by DRM drivers.
A quick update will be given on the two Mesa-based NPU drivers (Etnaviv and Rocket) and also on other two drivers that are in the planning phase as of May 2025. Also on plans for 2026.
Extensions to NIR that allow to express operations on tensors will be explained. New intrinsics will be introduced and there will be quick walkthroughs on how to optimize a NIR ML program with hardware-independent and hardware-specific passes. Machine code generation will be also quickly covered, both to GPGPU units and to fixed-function accelerator hardware.
The Mesa CI is complex and has many issues that are being addressed (see presentation "Addressing Mesa CI pain points: what we've done, and where we are going").
This workshop will be dedicated to discussing outstanding pain points from the presentation, so that we (the CI developers) can make sure you (the CI users = Mesa developers) agree on what these pain points are, and what our plan...
XR compositors rely on timely execution of GPU workloads to apply a late-stage framebuffer update shortly before scanout. This operation often contends with other concurrent rendering workloads occupying the GPU, and its completion might get delayed past its deadline, resulting in undesired artefacts.
A widely used solution to this problem is to apply some form of GPU-level preemption....
Spectrum is a Linux-based desktop operating system which aims to provide improved security by isolating each application running on the system (as well as drivers where possible) into its own lightweight virtual machine, while still providing a integrated desktop system. In contrast to previous virtualization-based desktop compartmentalization efforts, Spectrum...
Wayback is a new project which aims to provide an alternative to the X.org server and DDX drivers using Wayland components instead. This talk will include a review of current progress, a discussion of the overall roadmap and a demo of wayback’s capabilities at the time of the talk.
Unexpected errors can sometimes occur at the GPU driver level, so the GPU must be capable of recovering from these problems in a way that minimizes disruption to the user experience. GPU recovery is a complex topic that becomes even more challenging when considering the specific characteristics of vendor hardware. Additionally, it is necessary to establish some level of interoperability...
This talk will introduce the KosmicKrisp Vulkan to Metal driver LunarG has been creating. We will discuss why the driver was created, and how the Mesa Vulkan driver framework enabled a fast, Vulkan conformant implementation.
This demo will showcase the KosmicKrisp Vulkan to Metal driver LunarG has been creating.
There are a plethora of YUV formats found in the wild, and it seems
like more are added every day. Adding a new format to Mesa requires
several steps that may not always be obvious. In this talk we'll
discuss how to add support for a new YUV texture format to OpenGL,
and some of the recent infrastructure work that should make this easier.
Our focus is on OpenGL and EGL, but if time...
Numerous chips still come with dedicated 2D hardware accelerators that are often not part of bigger gpu unit. These devices are usually very efficient for simple compositing and transform works and can be useful to accelerate display compositing or be used as part of multimedia pipelines. They also typically offer low latencies and low power cost.
Unfortunately they are mostly unsupported...
The migration from X11 to Wayland has fundamentally transformed how everyday operations work under the hood, introducing new challenges that required innovative solutions. Screencasting is one such challenge that needed complete reinvention.
Leveraging the hands-on experience we gained at NVIDIA, this talk will examine screencasting on Wayland from both compositor and client perspectives,...
DRM drivers implement different APIs to drive in-kernel applications such as framebuffer console support and drm_panic. More in-kernel applications, like bootsplash, will be in the kernel before we know it.
Many DRM drivers implement DRM framebuffer console support while only a few support drm_panic. Adding more in-kernel applications with separate driver APIs will lead to few initial...
This talk will give an overview of the current progress of adding color pipeline support to the Qualcomm DPU display drivers. This will cover the driver changes, added support for new color processing hardware blocks, and the remaining TODOs for the color pipeline on Qualcomm devices.
DRM Panic faces the challenging task of informing users about a kernel crash.
This presentation will cover the current implementation, the compromises made during its development, and provide guidance on adding DRM Panic support for your preferred GPU.
Finally, we will demonstrate how the panic screen can be configured and customized. We will also show how its QR code feature can assist in...
Adreno GPUs have a 2D engine which can be used for most buffer and image copies, so operations like vkCmdCopyBuffer()
, vkCmdCopyBufferToImage()
, vkCmdCopyImage()
, and vkCmdCopyImageToBuffer()
.
With the introduction of the Adreno A750 GPU, a new feature was added to the 2D engine allowing for faster copy operations. However it does come with some restrictions that we’ve had to...
Mary started to implement cooperative Matrix support in NVK/NAK and I finished it and added some performance optimizations. We want to go over some of the details and highlight some Nvidia specific things in there.
This hacking session is dedicated to identifying the parts of the DisplayPort standard that should be handled by the DRM framework and discussing possible implementations.
Turnip is a Vulkan driver for Adreno GPUs, written by reverse engineering the hardware. We also don’t yet have many real-world users running games, but the driver is capable of running games that use D3D12, VK, D3D11, and older APIs. In such an environment, maintaining driver correctness while delivering performance improvements is a challenge.
At previous XDCs, I talked about how to debug...
PanVK has been improving quickly over the last year. This talk will go through the current status of PanVK, what happened over the last year, the challenges we've encountered along the road, and what tasks lays ahead!
The etnaviv driver is beginning to support the latest features added to the newer GPU generations of Vivante hardware. This talk will present the challenges that we’re facing in adapting the driver and how we’ve improved the CI system notably to make these changes possible. A significant focus will be on our strides towards full GLES3 support: what’s landed, what’s in progress, and what’s...
A lot has happened in Nouveau in the last year, including Vulkan 1.4 support in NVK; Vulkan conformance on Maxwell, Pascal, Volta, and Kepler; and the switch to Zink for OpenGL. Faith will talk about the advances made in NVK in the last year as well as plans going forward.
I'll give an overview of how KDE's compositor uses KMS offloading for improved efficiency and performance - including overlay planes, underlays and color operations - and what problems we've faced when trying to use more of these KMS features.
This workshop is a meeting for all developers and users (and, of course, in general interested people) of the DRM GPU Scheduler. It is planned as a general brainstorming session to share ideas, plans and goals for the scheduler. Notably, the workshop shall serve to discuss problems in the domain of shared infrastructure in DRM, which has to satisfy quite different hardware vendors while...
MSM display and graphics drivers (both kernel and user space) continue to evolve over the years both in terms of feature set , chipsets supported and also complexity.
This talk focuses on the new features gained by the drivers (new chipsets, improved resource allocation for display planes, VM_BIND, RustiCL support) and on lessons learned during this development.
In this talk, we will present an adaptive sharpness filter implemented in the Intel graphics display engine [1], designed to intelligently enhance image clarity based on content characteristics. Unlike conventional sharpening techniques that apply uniform enhancement, our solution preserves visual quality by adapting dynamically to scene details, with minimal power and performance...
Going over new features added to Rusticl and will highlight a few of them (e.g Shared Virtual Memory). Also what's in the pipeline and will be coming.
In 2014, an initiative emerged to supplant the kernel's graphical console, fbcon, with a userspace alternative named Kmscon. Despite this effort, and fbcon's subsequent loss of scrolling support due to a CVE, most Linux distributions continue to default to fbcon in 2025.
This presentation will explore various alternatives designed to enhance the user experience beyond what fbcon currently...
A overview of progress on DP MST support in Qualcomm's DP drivers and an accompanying demo of DP MST.