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 🪄
Color is a visual perception. Human eyes can detect a broader range of colors than any devices in the graphics chain. Since each device can generate, capture or reproduce a specific subset of colors and tones, color management controls color conversion and calibration across devices to ensure a more accurate and consistent color representation. We can expose a GPU-accelerated display color...
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...
This demo will showcase the Wayfire OpenGL Wayland compositor running on the Raspberry Pi 3 using Pixman to render the desktop. We will briefly discuss the efforts involved with converting an OpenGL compositor to render using Pixman and some of the issues we encountered on the way. We will also discuss multiple performance optimizations targeted specifically at improving the Pixman rendering...
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...
In this workshop, we would like to demonstrate how to set up a CI system at home!
We will provide deployment examples and the necessary hardware to experiment with it:
- amd64- or arm64-based CI gateway
- Power cutting and monitoring using wireless smart plugs
- arm64 test machines
- serial consoles
Attendees should be able to deploy a CI system within 30 minutes.
Feel free...
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...
What could be possibly worse that an almost unbeatable boss in a game or a tough maze that consume hours of gameplay with not much progress? How about a Linux kernel crash that makes you lose all the game progress with no apparent reason or feedback?
Though rare, it is a real possibility that would make gamers quite annoyed, given that Linux is used more and more as a platform for playing...
The dGPU prime feature allows an integrated GPU (iGPU) to display output data rendered by a discrete GPU(dGPU). This is a collection of features in the Linux kernel[1], mesa[2] and various drivers under Linux system. The dGPU exports it's render buffer to iGPU so that iGPU can display it. This allows switching between iGPU and dGPU to handle more use cases requiring different levels of...
The Qualcomm display pipeline accepts solid color as a valid input for DRM planes.
This talk will introduce the background, use cases and benefits of solid fill planes. In addition, it will give an overview of a proposal to enable solid fill planes by introducing core DRM framework changes.
The Vulkan Video extension has been in development since 2018, with the intention of exposing video codec blocks as a new acceleration API. AVC and HEVC are shipping with good support for decode, and nascent encode support. AV1 and VP9 are in the works.
While several APIs exist amid the convenience/control/portability tradeoff, the Vulkan extension exposes a much greater level of...
In addition to increasing the feature range and stability, the v3d/v3dv team has been continuously working on improving the performance of both drivers.
One of the tools used to check if a change would provide a performance gain/penalty, were to run several gfxreconstruc/apitrace traces, with and without such change, and compare the outcome of both runs.
This presentation will summarize...
Migrating to Wayland also means to bid farewell to X11 Window Manager features that were popular in a few niches. Among them: The ability to set WM hints for an icon window.
This talk will present a brief recap on what this feature was used for, sketch a proposal for a Wayland protocol for this use-case. Including a short demonstration of a prototype implementation in protocol and compositor.
A regression is reported, but it is working for you, developers are always -EBUSY and it feels the technical debts just increases. In the open-source world it is hard to get usage data back from users to choose which bug to prioritize. Also, other developers are worried about their use cases and they don't care much if they broke yours (or maybe they just don't have the hardware to test it)....
Whoops! There is a reminder to check your project's dependencies and update the revisions used. Oof, again we need to deal with job failures caused by changes made long ago. You tell yourself it's something you should do more often, but monitoring those dependencies is tedious.
Continuous Integration is here to help us during development. We have automated the testing process, so we can...
Quick presentation of what being a Mesa release maintainer entails, with a call for volunteers to reach out.
Quick summary of the current status and plans for the future, for this and for similar IP.
A collection of integration tests designed to ensure compositors' adherence to, and agreement on the interpretation of, the Wayland protocol and extensions.
I brief summary of the discussions that happened in the KMS Color Management Workshop.
Currently CrOS supports a custom format for HDR content. While this works well enough, HDR10 support is ideal for the increasing HDR content on the web.
Stop using mouse. Use power of command line with FDO GitLab CI.
Feedback on the CI workshop: the plan, reality, and discussions
Through the last years cameras' ISPs have evolved from something configurable to something programmable, just like the video cards.
Unfortunately, video4linux2 (v4l2) has not evolved in the same way. It still abstracts the cameras as a set of blocks that send video streams to others in well known formats that have controls (the media controller). This has these problems:
- v4l2 drivers...