Zink is a work-in-progress Mesa Gallium driver that implements OpenGL on top of Vulkan. This talk will discuss why and how, and give an update on what's happened in Zink recently.
3D graphics with new hardware designs and APIs (such as Vulkan) are evolving rapidly. At the same time, windowing systems evolve with new protocols, use-cases, formats, synchronization mechanisms and so on. To effectively support all this GPU drivers separate the implementation of Windowing System Integration (WSI) from the Core 3D rendering.
In Vulkan, WSI is implemented through...
Radv (the radeon vulkan driver) has for a long time used LLVM as the
shader compiler backend. However, LLVM has a number of issues which
led us to develop an alternative shader compiler that strongly leans
on the shared nir intermediate language. This new compiler is showing
significant gains for compile time as well as runtime performance.
We will talk about our pain points with LLVM and...
Compilers are hard and there are always a lot of design decisions involved in trying to come up with the right architecture to target any given piece of hardware. In this talk, Jason will go over some of the design decisions (especially the mistakes) that have been made by the Intel team as well as other established back-ends and how they have worked out in practice. These will be used as...
Some DRM drivers have been exposing overlay planes for quite some time. Overlay planes can improve battery consumption by scanning out directly client buffers, skipping composition. While compositors usually take advantage of the cursor plane (and sometimes are able to use the primary plane to scan out directly a client's buffer), overlay planes are under-used.
The exception is Weston, which...
GPUs often provide half-float 16-bit registers for floating point calculations. Using these instead of full-precision 32-bit registers can often provide a significant performance benefit, particularly on embedded GPUs. The method used to expose these registers to applications in OpenGLES is that variables can be marked as mediump, meaning that the driver is allowed to use a lower precision...
As more applications come to Linux and drivers move to NIR, the need to perform both application-specific and device-specific shader optimizations increases. Over the past year, numerous enhancements to existing optimizations and new optimization passes have been implemented. Tools and techniques developed from that experience will be presented. The emphasis will be to finding, diagnosing,...
There are many Linux kernel-testing projects, most of them are modeled over proven software testing workflows. These workflows however often rely on a stable host platform and stable test results and, as such, don't apply to testing development versions of Linux where the filesystem, network, boot, or suspend might be unreliable.
The Intel GFX CI debuted in 2016 with a different workflow:...
In this talk, I will briefly describe my contributions as an outreachy round 15 intern. Broadly, I worked on refactoring code in the tinydrm subsystem. Specifically, I refactored the backlight and the spi helper functions.
The Khronos Group industry consortium has created and evolved many key graphics open standards such as OpenGL and Vulkan – and strongly supports their use in open source platforms. Come and hear about the latest Khronos initiatives and roadmap updates, and participate in an AMA session with Neil Trevett, Khronos President.
After a busy first day of presentations, we've reserved a space for all attendees at Bier Markt on René-Lévesque Boulevard West, and the first round of drinks, whether alcoholic or non alcoholic, will be sponsored by X.Org! With one of the best beer list in Montreal (150 from over 30 countries and over 40 local crafts), and some great food, it will be the perfect place to unwind and network...
VR took off for the consumer with the release of Oculus consumer hardware. But the hardware lacked open source drivers and Linux support in general. The OpenHMD project was created to solve this issue. The consumer VR space has now grown from a kickstarter campaign into a large industry. But this growth has its down sides, multiple companies have their own APIs competing. Luckily these...
This talk is meant to give an overview on where we stand with KDE's KWin as an X11 window manager and a Wayland compositor, who is currently working on it and on what tasks now and in the near future.
The topics will broadly be:
- The KWin team
- Technical topics:
- Abstracting KWin's internals
- Updating legacy code / cleaning house
- Wayland multi device and threaded rendering
breakout session to continue mediump discussion
Smooth animation of graphics requires that the presentation timing of
each frame be controlled accurately by the application so that the
contents can be correctly adjusted for the display time. Controlling
the presentation timing involves predicting when rendering of the
frame will be complete and using the display API to request that the
frame be displayed at a specific time.
Traditionally, an application had very little control about when a rendered
frame is actually going to be displayed. For games, this uncertainty can cause
animation stuttering . A Vulkan prototype extension was added to address
this problem .
XR (AR/VR) applications similarly need accurate knowledge of presentation
timestamps in order to predict the head-pose for the time a frame will...
I will discuss the results of an effort to implement the concepts discussed in my prior generic Unix device memory allocator talks as extensions to the existing GBM API with a nouveau driver backend. Based on prior feedback, DRM format modifiers will be used in place of what were previously called "capabilities". I will attempt to demonstrate the feasibility of this less-invasive approach,...
While investigating a performance issue with the F1 2017 game benchmark, we identified some bottlenecks related to how ttm and amdgpu do buffer validation and LRU handling. This ultimately lead to a major redesign of how we handle buffer migration. This talk describes process that we took to identify and fix the bottleneck and what we learned along the way.
The Talos Principle(Vulkan) ...
Lima is an open source graphics driver which supports Mali 400/450 embedded GPUs from ARM via reverse engineering.
Recently, after many years since the beginning of the reverse engineering efforts on these devices, the lima driver has been finally upstreamed in both mesa and linux kernel counterparts.
This talk will cover some information about the target GPUs and implementation details of the...
Since XDC 2018, substantial progress has been made towards automated testing of Mesa. Lots remains to be done and in this session we will be able to discuss existing proposals and problems.
DP adaptive sync, a feature supported by AMD under the marketing name of Freesync, primarily allows for smoother gameplay but also enables other use cases, like idle desktop powersaving and 24Hz video playback. In this talk we'll describe what adaptive sync is, how it works, and will speak to different use cases and how they might be implemented. The presentation will cover design and code...
Ever seen a true 33 million pixel 8K display? The maximum display link bandwidth available with DisplayPort’s highest bit rate of 8.1 Gbps/lane limits the resolution to 5K@60 over a single DP connector. Hence the only true 8K displays allowing upto full 60 frames per second are the tiled displays enabled using 2 DP connectors running at their highest bit rate across 2 CRTCs in the display...
The input stack comprises many pieces. libinput, libevdev, libratbag, libwacom and even a few components that don't start with "lib". The kernel or X for example, also somewhat of importance.
This talk is a tour of recently added features and features currently in development. Examples include libinput user devices, the difficulty of supporting high-resolution wheel scrolling in Wayland, how...
There are similarities between Camera and Display. On how they work and how we interact with them. For example, both need an Atomic API, share the same buffer formats and need features like explicit fences. On the other hand cameras are much more complex devices where many cameras have very special and unique needs. We want to improve the camera support in Linux and their interoperability with...
Avoiding regressions in the input stack is hard. Ideally, every commit and the ones before it are tested against every possible device. But the universe hasn't seen it fit to provide us with an army of people to test devices, infinite resources, or even a lot of time to spare. Pity, that, really. But we do have a computer, so that's a start.
In this talk we show how we moved from basically no...
Thousands of moons ago, an obscure magical art developed by the Magic Resistance beneath the disquieting tides of the Magilectric Revolution: reverse-engineering... Some refuse to acknowledge its existence. Some mistakenly believe it a form of witchcraft or dark magic, entranced by its binary spells and shadowy hexes. The outer world rarely catches more than a glimpse of these powerful mages,...
FPGAs and their less generic cousin, specialized accelerators have come onto the scene in a way that GPUs did 20 or so years ago. Indeed new interfaces have cropped up to support them in a fashion resembling early GPUs, and some vendors have even opted to try to use DRM/GEM APIs for their devices.
This talk will start with a background of what FPGAs are, how they work, and where they're...
Update on DRM/KMS driver validation for the Android Open Source Project (AOSP).
- Status update on adding IGT to AOSP, Android VTS.
- Pixel DRM/KMS status update.
- Generic Kernel Image (GKI.)
Hardware testing can help catch regressions in driver code. One way to test is
to perform manual checks, however this is error-prone and doesn't scale. Another
approach is to build an automatic test suite (e.g. IGT), which calls special
driver interfaces or mocks resources to check whether they are doing the right
thing (for instance, checksums to check that the right frame is...
Your secretary's yearly report on the state of the X.org Foundation. Expect updates on the freedeskoptop.org merger, internship and student programs, XDC, and more!
Lightning talk summarizing the discussions that happened during the workshop "Let's make KMS planes useful for compositors" (https://xdc2019.x.org/event/5/contributions/583/).
Short update on IGT - what has changed, where are we currently and what is cooking up.
IGT GPU Tools is a collection of tools and tests aiding development of DRM drivers. It's widely used by Intel in a public CI system, has targeted test for v3d, panfrost, amdgpu, etc., and helped to test-drive development of VKMS.
I am one of the maintainers.
I will discuss my effort to maintain, bug fix, and further develop vintage (underserved) graphics hardware device drivers. I will go over the accomplishments in this area so far, future plans, and challenges of working with older generation hardware in today's world.
This lightning talk will provide a status update on the open-source graphics stack for Mali Midgard GPUs, including a demo of new features developed since XDC2018.
I'd like to give a lightning talk about the Mesa gitlab CI system I've been building for freedreno and the swrast drivers, and how other driver teams could extend it to keep master always green for them, too.
Quick demo of the Mesa regression testing being done by LunarG on Mesa releases.
SwiftShader is a CPU-based implementation of the Vulkan graphics API. It enables consistent testing of Vulkan applications without a dependency on specific hardware, or provides fallback support for running applications on systems without a Vulkan-capable GPU or driver.
A quick introduction to a compositor-driven approach to input latency reduction. Discuss the idea of introducing an "inking" protocol that uses compositor tricks to cover over application and network latency.
Hey, the X server still exists. Right now nobody is planning any releases, but things still get merged and should get released. This talk will present a strawman proposal for automated major releases and policy for stable releases.
In this lightening talk, Jason will talk about some of the improvements he's made recently to NIR and the intel back-end compiler to reduce compile times when using software emulated fp64.
I want to give a quick overview of my proposed solution for XWayland multi DPI scaling .
This is also meant as a query on what other solutions there might be currently in development by other people or even already implemented.
I will discuss the latest development in OpenChrome Project, including the progress being made on OpenChrome DRM.
AR and VR did not only introduce a new class of output devices, but with tracked controllers and hands also the requirement for a new set of user interactions. This talk investigates solutions in existing implementations and points out how the classical UX model with keyboard and mouse translates to these new devices. The technical aspect of these requirements will also be highlighted. The...
Earlier setting up the mode (screen resolution, color depth, and refresh rate) for display screen was done through userspace programs, thus exposing system calls and breaking up while changing different modes. In order to configure the mode setting, the dri-devel community developed the Kernel Mode Setting (KMS) code, and API. Virtual Kernel Mode Setting(VKMS) is a newly added device driver in...