29 September 2025 to 1 October 2025
Europe/Vienna timezone

Support for VM_BIND and sparse textures in Freedreno

29 Sep 2025, 11:25
45m
Talk (full slot) Talk (full slot) Main Track

Speakers

Connor Abbott (Valve) Rob Clark (Google)

Description

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 use-cases required by "sparse textures" that are used by some of the latest games. In order to fix this we embarked on a major project across the entire stack to rewrite the internals of the kernel driver to use the recently-upstreamed gpuvm subsystem, expose a completely new "VM_BIND" uAPI for managing memory, and take advantage of it in turnip, the upstream Vulkan driver. This then finally allowed us to implement sparse textures in turnip. In this talk we'll go over the challenges of retrofitting VM_BIND into a mature production driver and dealing with the quirks of sparse textures on Adreno.

GSoC, EVoC or Outreachy No
Code of Conduct Yes
In-person or virtual presentation In-person

Primary authors

Presentation Materials

There are no materials yet.
2025 Host
Technische Universität Wien
2025 Gold Sponsors
AMD
Arm
Collabora
Microsoft
NVIDIA
Snap AR
2025 Silver Sponsors
CodeWeavers
FEX-Emu
Igalia
Qualcomm
The Linux Foundation
2025 Bronze Sponsors
Khronos Group
Libre Computer