Turnip is the fourth Vulkan driver in Mesa to gain support for ray tracing acceleration, after anv, radv, and lavapipe, using the Ray Tracing Unit introduced by Qualcomm on Snapdragon 8 Gen 2. This talk will go over the driver-agnostic framework added to Mesa for building Bounded Volume Hierachy (BVH) trees on the GPU, based on the radv implementation and with turnip as the first user, as well...
A deep dive into how mesh shaders work on NVIDIA hardware and what's next on NVK to fully support it.
This talk covers the process of porting the Nouveau Image Library (NIL) to Rust. It presents a practical "rewrite-it-in-Rust" strategy by exploring how Rust can coexist and interoperate with a large C codebase. Attendees will learn effective techniques for integrating Rust into existing C projects, ensuring both languages work seamlessly together. Additionally, the talk will highlight a few...
In this talk, I will go over the ongoing work with the rust KMS bindings for the kernel that I've been working on for eventual use by the nova driver. This includes many of the challenges I've been running into, what I've come up with so far, and what my future plans are for this, and a little bit of explanation on the rvkms driver.
Linux color pipeline is a prescriptive API to address hardware color management that differs from one hardware to another. Each device driver passes userspace a pipeline consisting of a chain of unique and static colorops that map to color management blocks in hardware.
This talk shares an overview of a color pipeline and the definitions of colorops for 1D curve/LUTs, 3D LUTs and matrices...
An efficient and flexible compiler backend is crucial for performance and adaptability. This presentation will take the audience through the journey of developing a new backend compiler for etnaviv, inspired by the architecture of agx and nak, and partially implemented in Rust. Leveraging the infrastructure that Mesa offers, we will delve into the motivations, challenges, and technical...
In 2023, the Raspberry Pi GPU driver team focused on enabling OpenGL 3.1 (v3d) and Vulkan 1.2 (v3dv) on the Raspberry Pi 5, which launched in October 2023.
It's been one year since the Raspberry Pi 5 hit the market. During this time, we have been working on getting Vulkan 1.3 conformance, improving subgroups support and implementing a number of additional features and performance...
Over the past year, the CI-Tron project has gotten closer to its goal of being a plug-and-play CI system, especially when it comes to compatibility with ARM/RISCV64 SBCs and Android-based devices.
In this demo, I would like to show how simple adding new test machines has become and how Gitlab projects can make use of them.
While efficient video playback has long been possible in the embedded Linux world, desktop applications have been lagging behind other platforms. In the last years, and 2023/24 specifically, various developments made it possible to let the two worlds converge, offering various advantages for both.
The talk aims to give a short overview over recent developments in various components such as...
Getting input right and meeting game expectations right is hard, especially on an OS they were not designed with in mind.
Some use access to raw HID devices - we not only have to sort out permissions but also undo fixes provided by the Linux Kernel.
Then there's Wayland with its limitations, even over XWayland. Are you trying to clip the cursor to an unusual area? Good luck!
I hope to...
Currently, validating DSI panels requires the user to have the physical panel and a valid panel driver. This talk will go over the proposed design for adding a driver that will allow users to simulate different DSI panels without requiring them to have the physical panel attached to the device.
Many notebook systems introduced in recent years are equipped with both integrated and discrete GPUs, and allow for driving displays using either GPU or both GPUs. Several newer notebook designs include dynamic display mux hardware, which enables switching between GPUs while the system is actively running and displaying content. Investigation into implementing support for dynamic mux switches...
Last XDC, we had OpenGL® ES 3.1 running on the M1. But now it's time to play with the big kids.
This XDC, we have conformant Vulkan® 1.3 on the M1 supporting the the most cursed features... Geometry shaders, tessellation, transform feedback, and more. That means it's time for... for... AAA! *hides*
Prepare ye for a harrowing talk and a magical demo.
A lot has happened in NVK in the last year. Faith will give an overview of the new features, performance improvements, and overall status of the nouveau/NVK stack. She'll also talk about OpenGL support through NVK+Zink, status of distro support, and plans for the future.
This talk will cover what's happened in the word of Panfrost in the last year. There's been a lot going on, from V10 support all the way through the kernel and mesa to passing the GLES 3.1 CTS, to further work on PanVK.
Let me tell you a story of a bug affecting larger adoption of EGL standart, which lived for more than 11 years in Mesa3D.
The journey to fix this bug involved many people, a lot of code, some CI testing, a new display extension, and many sleepless nights.
This talk aims to illustrate, what can be done with open-source drivers and CI infrastructure which would never be possible achieve...
Buffer allocation for media contents, despite being required for any framework or application dealing with image capture, processing, decoding, encoding, rendering and display, remains an area plagued by many unsolved problems. Over time improvements have been made to APIs for buffer allocation, both on the kernel side (standardization of the DRM dumb buffer API, or DMA heaps, to name a few)...
Modern GPUs are moving more functionality into firmware in order to allow for user space to submit jobs directly and gain additional performance from that.
DRM framework for rendering nodes assumes that the kernel driver is in charge all the time and job submissions are only happening in kernel context.
io_uring is a mechanism inside the kernel that allows for asynchronously queuing...
What is a cloud workstation, and what does it have to do with compositor developer tools? In this talk I’ll give an introduction to how cloud workstations in a post X11 world can be built with the help of PipeWire and libei, and how that, somehow, opened up ways to create compositor developer tools.
We talk a lot about the value of free software drivers on Linux but what about bringing those same free software drivers to other platforms? Earlier this year, Faith successfully got RADV running on Windows on top of AMD's closed-source kernel driver. In this talk, Faith will go over the basics of the WDDM2 kernel API, how she went about reverse-engineering the AMD interfaces, and talk about...
This demo will showcase concurrent writeback on the Qualcomm SM8650 MTP. We will also briefly give an introduction to the concurrent writeback feature and the current state of the patch series in the MSM DPU driver
The fd.o Code of Conduct team has put in a lot of effort in recent months into documenting our processes, guidelines for moderation and how oversight is implemented. In this talk we'll go through all that and some of the future plans we have.