[PATCH v2 0/6] drm/imagination: Add async VM_BIND with sparse mappings
From: Gyeyoung Baek
Date: Sun Nov 08 2026 - 00:17:09 EST
Userspace MR:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/43794
This series is for Vulkan sparse binding.
- Patches 1-2 switch the GPUVM to immediate mode.
- Patch 3 moves the existing map and unmap paths onto a single bind
entry point.
- Patch 4 adds the VM_BIND ioctl.
- Patch 5 adds asynchronous requests.
- Patch 6 adds sparse mappings.
Patches 1-2 were sent separately [1]. They conflict with drm-misc-next,
so they are rebased and included here.
Testing:
Tested on BeagleY-AI.
- The existing IGT pvr_vm_map passes without regressions.
- dEQP-VK.sparse_resources passes for the sparse features the Mesa MR
above exposes.
[1] https://lore.kernel.org/r/20261011-pvr-gpuvm-immediate-v2-0-744ddc6644c3@xxxxxxxxx
Signed-off-by: Gyeyoung Baek <gye976@xxxxxxxxx>
---
Changes in v2:
- New patch 3, "Route map and unmap through pvr_vm_bind()".
- Split v1 3/4 into the ioctl (4) and the asynchronous mode (5).
- Bump the driver interface version to 1.2, as 1.1 is already taken by
another patch.
- Link to v1: https://lore.kernel.org/r/20260817-pvr-vm-bind-v1-0-0a0f21be7d38@xxxxxxxxx
---
Gyeyoung Baek (6):
drm/imagination: Switch the GPUVM to immediate mode
drm/imagination: Stop locking reservations around map and unmap
drm/imagination: Route map and unmap through pvr_vm_bind()
drm/imagination: Add VM_BIND ioctl
drm/imagination: Add asynchronous VM_BIND
drm/imagination: Add MAP_SPARSE to VM_BIND
Documentation/gpu/imagination/uapi.rst | 15 +
drivers/gpu/drm/imagination/pvr_device.h | 10 +
drivers/gpu/drm/imagination/pvr_drv.c | 331 ++++++++++++
drivers/gpu/drm/imagination/pvr_drv.h | 4 +-
drivers/gpu/drm/imagination/pvr_fw_meta.c | 6 +-
drivers/gpu/drm/imagination/pvr_fw_riscv.c | 6 +-
drivers/gpu/drm/imagination/pvr_job.c | 6 +
drivers/gpu/drm/imagination/pvr_mmu.c | 2 +-
drivers/gpu/drm/imagination/pvr_mmu.h | 1 +
drivers/gpu/drm/imagination/pvr_queue.c | 3 +
drivers/gpu/drm/imagination/pvr_sync.c | 146 +++++-
drivers/gpu/drm/imagination/pvr_sync.h | 13 +
drivers/gpu/drm/imagination/pvr_vm.c | 781 ++++++++++++++++++++++-------
drivers/gpu/drm/imagination/pvr_vm.h | 63 ++-
include/uapi/drm/pvr_drm.h | 129 +++++
15 files changed, 1303 insertions(+), 213 deletions(-)
---
base-commit: 2d5a8313d9cf989b8f53a5689a96e891bf99fb2c
change-id: 20260817-pvr-vm-bind-1ce4f09a1774
prerequisite-message-id: <20261015-pvr-unmap-all-loop-v1-1-54c676d41269@xxxxxxxxx>
prerequisite-patch-id: 5188d944e90112e4cf2678e75255c7a91434ad09
Best regards,
--
Gyeyoung Baek <gye976@xxxxxxxxx>