A guided tour of the AMD display driver code to identify hardware color capabilities on different versions, connect relevant parts of the shared code to DRM, and ultimately deliver a broader range of color features to the userspace. This work is another step towards advanced GPU-accelerated color management for Linux compositors, and it has already enabled improvements to HDR display support...
An overview of Gamescope and our journey to support HDR content and color management at scanout and composite for Steam Deck and Desktop.
Covering the issues we faced along the way from all aspects to UX, to getting HDR and 10-bit on XWayland games/clients, to DRM, and to the future of what we need from the new DRM atomic color management pipeline.
Karol and Faith will talk about what has happened in the nouveau project in the last year, including the latest on kernel GSP support, NVK, and the future of the nouveau GL driver.
The new back-end compiler for NVIDIA hardware, jokingly named NAK, has been almost entirely written in Rust. In this talk, Faith will do a bit of a postmortem on her Rust compiler experience and talk about challenges and advantages of Rust for Mesa in general and compilers in particular.
Twelve moons ago, we demoed early OpenGL 2.1 and OpenGL ES 2.0 drivers running on Linux on the Apple M1. Since then, we've shipped OpenGL 3.1 and passed the OpenGL ES 3.1 conformance tests on the M1 and M2 families! This spellbinding talk will reveal the hardware incantations that make the magic happen... involving some truly cursed driver code. And yes, there will be a demo 🪄
Being a layered OpenGL driver, Zink sometimes needs to emulate some legacy features, that are not exposed by vulkan, using shader passes. Due to OpenGL's design it is not possible to know exactly what needs to be emulated ahead of time and until now Zink has dealt with this by compiling shader variants at draw time, leading to upwards of 100ms spikes in frametime. A possible way of solivng...
The KUnit adoption in the kernel had been in its early stage, having the first DRM KUnit tests into mainline only around the mid of 2022. Since then, there was an active commitment to increase the presence of KUnit tests on DRM, which had involved porting existent self-tests and writing new ones.
In this presentation, we will point out the current status of KUnit tests on DRM, as well as...
Over the summer, Future Me (hopefully) added support to wlroots for intelligently and dynamically changing when, relative to a previous frame, a compositor starts to render. It's better to start it later for lower latency but that comes with a risk of missing the deadline if rendering takes longer than expected. The work includes an API for specifying when rendering should start and a "stock"...
At XDC 2022, RADV's raytracing implementation was dubbed the "World's Slowest Raytracer". Over the course of the last year, RADV has seen lots of exciting progress in its raytracing implementation: Starting with Mesa 23.2, raytracing is even enabled by default.
This talk will cover the challenges of improving RADV's implementation and making it work with more games and other software, as...
Over the last few years the quality of Mesa's drivers has increased exponentially, to the point where many prefer the use of the open source driver to their proprietary counterparts. Open source drivers can have better compatibility, less bugs, and more frequent updates to resolve issues. Because of this uptick in quality, you may want to run the open source drivers on other operating systems...
Mesa3D CI, through the use of GitLab CI pipelines, conducts extensive testing across numerous farms and a multitude of GPUs. With thousands of tests being run, the scale and complexity of this project are immense.
For over three years, we've been running pre-merge testing for various GPUs. You might wonder, how do we manage this feat?
In our presentation, we will provide insights into the...
Hear, hear!
Come witness the tale of a lone Mesa developer who, after the 101st regression caused by external changes, vowed to slay the bisection dragon once and for all by guarding their driver kingdom with CI pre-merge testing!
Too little did they know the sirens of automated testing would take them on an unexpected journey in far-away lands they only ever heard tales of, and tested...
OpenQA is a powerful testing tool developed originally for openSUSE and now used by various major distributions for integration testing. Within Codethink we're also using it to test mainline Linux on hardware across several CPU architectures and GPU stacks.
This talk will show how to create screenshot tests that can quickly verify your graphics pipeline is working. First I'll show how to...
This talk will discuss various on-going efforts in the driver stack for Raspberry Pi 4. Particularly:
OpenGL 3.x on Raspberry Pi 4 (v3d)
The Raspberry Pi 4 isn’t capable of OpenGL 3 but it can implement a large part of it, sufficient to enable many applications to work on the platform. We will discuss the major limitations of the hardware platform for this and what we are doing to...
Quite a lot has happened since last year and I want to talk about what we've implemented since last year, what's the short term lookout and other project related updates.
It has been a while since the last XDC talk about the VKMS and a lot has changed. VKMS now supports multiple formats, the composition is now performed in CRTC, the performance was improved and the planes now have the ability to rotate. And there is more coming: 1D LUT, multi-planar formats, full blend mode support...
So, let's explore a bit of the current status of VKMS, see the current...
GPUs (and their stack) nowadays are too complex as any other systems and subject to errors and bugs. On top of that, along with the device getting stuck, all the stack need to propagate the error correctly so it can recover and move along.
In this talk, I'll present what happens after a DRM device resets in Linux, the challenges in the way to recover from resets, how to report what caused...
In the context of a web browser, GL and Vulkan drivers are exposed to hostile content, in the form of webgl and webgpu. In the case of Vulkan, the spec explicitly declares that invalid usage is undefined behavior. But even for a GL driver it isn't so hard to find a way to trigger a potentially exploitable crash. The browser can sandbox the usermode gl/vk driver (UMD) into it's own process...
Xen is one of the most popular hypervisors in the world, however, the GPU virtualization on Xen is currently lacking in quite a few areas. VirtIO GPU is widely used on KVM, but less so on Xen and a number of features, including vulkan, are not currently functional in a guest VM.
To address this, we are working to have more complete graphics and multimedia support on Xen. Earlier this year, we...
Display and graphic drivers in Linux are part of the Linux DRM subsystem and are using DRM resources like memory management, interrupt handling, and DMA via Kernel Mode Settings (KMS) that act as an abstraction layer to provide uniform access to applications.
Encoders are one of the key KMS components that takes pixel data from a CRTC and converts it to a format suitable for an attached...
Modern GPUs and modern graphics APIs leave less and less responsibilities to kernel GPU drivers, moving those to some firmware or to the usermode driver.
Throughout this presentation we will detail some of the aspects that make recently submitted DRM drivers different from what we had previously, and why things are structured like that. We will also give clues about what modern drivers...
DRM MSM display and graphics driver has evolved quite a bit over the years both in terms of feature set , chipsets supported and also complexity.
This talk will focus broadly on the historical context , achievements, current IGT CI based workflow, IGT bug fixes/enhancements which were done for MSM, feature and chipset roadmap (both current and near future) for display and graphics drivers.
This talk will discuss various on-going efforts in the etnaviv driver stack.
Expanding the board farm
Having a good CI coverage on different GPUs is crucial if we want to catch regressions before they are introduced into the codebase. I will present the current state of the CI board farm used to archive this job.
Road towards OpenGL ES 3.0
More recent GPU models from...
GPU faults aren't easy to debug and half of the time near the end you think "What if I was able to quickly edit this GPU packet", "What if I was able to dump GPU memory here?", "It would have been nice to print that shader register!".
Finally I caved in and spent time implementing these little improvements for Turnip driver. Was it worth it? Spoiler: Yes!
In this talk I'll show...
Many embedded Linux systems that feature a display, nowadays, use a Wayland compositor as the base for the GUI. Using standard desktop technology simplifies application development and increases consistency across products. However, as a significant difference to desktops, the system developer – not the user – decides how to arrange the surfaces on the screen.
Various Wayland compositors...
The journey to implement a Wayland driver for Wine started a few years ago as an experiment with an uncertain future. Since then the experimental driver has grown to fully support a multitude of GDI and GPU accelerated applications and games and is now in the process of being upstreamed.
In this talk I will present the history of and future plans for the project. I will also discuss the...
One of the biggest challenges to have a good experience running Windows software on Linux via Wine (and the various downstreams, including Proton) is windowing. Win32 API is very unlike what we have on X or Wayland.
Displaying and having a window behave correctly when alt+tabbing, etc. is hard to get right and the whole area is quite brittle.
I'm going to present challenges we are facing...