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...
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...
Heterogeneous Memory Management (HMM) has been part of the Linux kernel for some time, with prior GPU-focused implementations in AMDKFD, Nouveau, and OpenNV. However, integrating HMM correctly—ensuring proper API usage, race handling, and locking—is notoriously complex. This talk introduces GPU SVM, a new abstraction layer that streamlines interactions between HMM and the core memory...
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...
As a userspace developer, creating graphical applications is a common
task. While software and frameworks like Weston or Qt make it
straightforward to display content on a screen, ensuring compatibility
across various displays poses significant challenges. Users may have
different screen sizes, resolutions, and capabilities, making
comprehensive testing complex. How will your application...
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...
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.
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.
New Mesa drivers are starting to default to Vulkan-first (with OpenGL provided as a layer by Zink). One important part of enabling a new Vulkan driver is to enable WSI (Window System Integration) and support compositors through e.g. Wayland. The options to support this WSI development for new Vulkan-first drivers haven't been too many or require significant enablement upfront, so these...
With the rapid proliferation of high-quality digital media, effective content protection mechanisms have become essential to prevent unauthorized copying, redistribution, and piracy. This presentation explores the architecture and implementation of content protection (CP) technologies in the Linux graphics stack, focusing primarily on High-bandwidth Digital Content Protection (HDCP) and...
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.
For the past two years, there has been some great work done across display components to optimize power consumption for video playback. This talk will highlight some of this work using Firefox/MPV, Weston, and amdgpu as an example. The goal is to demonstrate real power savings, and to show what can be done today to improve video playback power.
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...
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...
RADV is the Mesa Vulkan driver for AMD GPUs. It started in 2016 as an experiment for GCN 1. Now RADV supports the very latest GPUs and offers cutting-edge features such as ray tracing, mesh shading, DGC and more. We spearheaded a custom compiler backend called ACO. Thanks to the ubiquity of Vulkan on the Linux desktop, today RADV is the most widely used open source Vulkan driver for...
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.
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...
Now a days many consumer electronics segments demand several display outputs coming out of a single Graphics card. Like modern Automotive infotainment segment demands 12-15 HDMI display outputs being driven from a single GPU, so that they can be used to display navigation panel, control panel, mirrors, multiple media players and several independent status readers to show speedometer, maps,...
In early July AMD is hosting a Display Next Hackfest where compositor and driver developers come together to discuss features and pain points and work toward solutions across the stack, including compositors, wayland protocols, DRM/KMS interfaces, and kernel drivers. Previous year's Hackfests have been hosted by Red Hat and Igalia.
Proposed topics can be found at...
State of the X.Org Foundation