On Mon,  8 Dec 2025 11:08:27 +0100
Boris Brezillon <[email protected]> wrote:

> 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

Queued to drm-misc-next.

> 
>  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(-)
> 

Reply via email to