All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 00/13] drm/panfrost, panthor: Cached maps and explicit flushing
@ 2025-12-08 10:08 Boris Brezillon
  2025-12-08 10:08 ` [PATCH v8 01/13] drm/panthor: Provide a custom dma_buf implementation Boris Brezillon
                   ` (13 more replies)
  0 siblings, 14 replies; 16+ messages in thread
From: Boris Brezillon @ 2025-12-08 10:08 UTC (permalink / raw)
  To: Steven Price
  Cc: dri-devel, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Faith Ekstrand, Boris Brezillon,
	kernel

This series implements cached maps and explicit flushing for both panfrost
and panthor.

The PanVK MR to use this lives here:

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36385

This version moves away from the code sharing proposed at the
drm_prime/gem_shmem level and hand-roll a bunch of things that
could potentially be shared. The goal here is to take the path
of least resistance and discuss this controversial code-sharing
topic in a follow-up MR. Dropping driver maintainers Cc-ed on v7
since they should now be aware that we changed gears and hand-rolled
our own thing in pan{thor,frost}.

Changes in v2:
- Expose the coherency so userspace can know when it should skip cache
  maintenance
- Hook things up at drm_gem_object_funcs level to dma-buf cpu_prep hooks
  can be implemented generically
- Revisit the semantics of the flags passed to gem_sync()
- Add BO_QUERY_INFO ioctls to query BO flags on imported objects and
  let the UMD know when cache maintenance is needed on those

Changes in v3:
- New patch to fix panthor_gpu_coherency_set()
- No other major changes, check each patch changelog for more details

Changes in v4:
- Two trivial fixes, check each patch changelog for more details

Changes in v5:
- Add a way to overload dma_buf_ops while still relying on the drm_prime
  boilerplate
- Add default shmem implementation for
  dma_buf_ops::{begin,end}_cpu_access()
- Provide custom dma_buf_ops to deal with CPU cache flushes around CPU
  accesses when the BO is CPU-cacheable
- Go back to a version of drm_gem_shmem_sync() that only deals with
  cache maintenance, and adjust the semantics to make it clear this is
  the only thing it cares about
- Adjust the BO_SYNC ioctls according to the new drm_gem_shmem_sync()
  semantics

Changes in v6:
- No major changes, check the changelog in each patch for more details

Changes in v7:
- Drop the drm_prime/gem_shmem helpers and duplicate the logic in
  panthor/panfrost

Changes in v8:
- Fix a double struct field assignment and collect R-b tags

Boris Brezillon (8):
  drm/panthor: Provide a custom dma_buf implementation
  drm/panthor: Fix panthor_gpu_coherency_set()
  drm/panthor: Expose the selected coherency protocol to the UMD
  drm/panthor: Add a PANTHOR_BO_SYNC ioctl
  drm/panthor: Add an ioctl to query BO flags
  drm/panfrost: Provide a custom dma_buf implementation
  drm/panfrost: Expose the selected coherency protocol to the UMD
  drm/panfrost: Add an ioctl to query BO flags

Faith Ekstrand (4):
  drm/panthor: Bump the driver version to 1.7
  drm/panfrost: Add a PANFROST_SYNC_BO ioctl
  drm/panfrost: Add flag to map GEM object Write-Back Cacheable
  drm/panfrost: Bump the driver version to 1.6

Loïc Molinari (1):
  drm/panthor: Add flag to map GEM object Write-Back Cacheable

 drivers/gpu/drm/panfrost/panfrost_device.h |   1 +
 drivers/gpu/drm/panfrost/panfrost_drv.c    | 101 ++++++++-
 drivers/gpu/drm/panfrost/panfrost_gem.c    | 239 ++++++++++++++++++++
 drivers/gpu/drm/panfrost/panfrost_gem.h    |  10 +
 drivers/gpu/drm/panfrost/panfrost_gpu.c    |  26 ++-
 drivers/gpu/drm/panfrost/panfrost_regs.h   |  10 +-
 drivers/gpu/drm/panthor/panthor_device.c   |  10 +-
 drivers/gpu/drm/panthor/panthor_drv.c      |  79 ++++++-
 drivers/gpu/drm/panthor/panthor_gem.c      | 240 ++++++++++++++++++++-
 drivers/gpu/drm/panthor/panthor_gem.h      |   6 +
 drivers/gpu/drm/panthor/panthor_gpu.c      |   2 +-
 drivers/gpu/drm/panthor/panthor_sched.c    |  18 +-
 include/uapi/drm/panfrost_drm.h            |  76 ++++++-
 include/uapi/drm/panthor_drm.h             | 157 +++++++++++++-
 14 files changed, 953 insertions(+), 22 deletions(-)

-- 
2.51.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-12-09 12:20 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-08 10:08 [PATCH v8 00/13] drm/panfrost, panthor: Cached maps and explicit flushing Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 01/13] drm/panthor: Provide a custom dma_buf implementation Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 02/13] drm/panthor: Fix panthor_gpu_coherency_set() Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 03/13] drm/panthor: Expose the selected coherency protocol to the UMD Boris Brezillon
2025-12-09  9:42   ` Karunika Choo
2025-12-08 10:08 ` [PATCH v8 04/13] drm/panthor: Add a PANTHOR_BO_SYNC ioctl Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 05/13] drm/panthor: Add an ioctl to query BO flags Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 06/13] drm/panthor: Add flag to map GEM object Write-Back Cacheable Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 07/13] drm/panthor: Bump the driver version to 1.7 Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 08/13] drm/panfrost: Provide a custom dma_buf implementation Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 09/13] drm/panfrost: Expose the selected coherency protocol to the UMD Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 10/13] drm/panfrost: Add a PANFROST_SYNC_BO ioctl Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 11/13] drm/panfrost: Add an ioctl to query BO flags Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 12/13] drm/panfrost: Add flag to map GEM object Write-Back Cacheable Boris Brezillon
2025-12-08 10:08 ` [PATCH v8 13/13] drm/panfrost: Bump the driver version to 1.6 Boris Brezillon
2025-12-09 12:20 ` [PATCH v8 00/13] drm/panfrost,panthor: Cached maps and explicit flushing Boris Brezillon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.