All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/8] drm/panfrost: drm/panfrost: Add a new submit ioctl
@ 2021-09-30 19:09 Boris Brezillon
  2021-09-30 19:09 ` [PATCH v5 1/8] drm/panfrost: Pass a job to panfrost_{acquire, attach}_object_fences() Boris Brezillon
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Boris Brezillon @ 2021-09-30 19:09 UTC (permalink / raw)
  To: Rob Herring, Tomeu Vizoso, Alyssa Rosenzweig, Steven Price, Robin Murphy
  Cc: dri-devel, Daniel Vetter, Jason Ekstrand, Daniel Stone,
	Christian König, Boris Brezillon

Hello,

I finally got to resubmitting a new version of this series. I think
I fixed all the issues reported by Steve and Daniel. Still no support
for {IN,OUT}_FENCE_FD, but that can be added later if we need it.

For those who didn't follow the previous iterations, this is an
attempt at providing a new submit ioctl that's more Vulkan-friendly
than the existing one. This ioctl

1/ allows passing several out syncobjs so we can easily update
   several fence/semaphore in a single ioctl() call
2/ allows passing several jobs so we don't have to have one ioctl
   per job-chain recorded in the command buffer
3/ supports disabling implicit dependencies as well as 
   non-exclusive access to BOs, thus removing unnecessary
   synchronization

I've also been looking at adding {IN,OUT}_FENCE_FD support (allowing
one to pass at most one sync_file object in input and/or creating a
sync_file FD embedding the render out fence), but it's not entirely
clear to me when that's useful. Indeed, we can already do the
sync_file <-> syncobj conversion using the
SYNCOBJ_{FD_TO_HANDLE,HANDLE_TO_FD} ioctls if we have to.
Note that, unlike Turnip, PanVk is using syncobjs to implement
vkQueueWaitIdle(), so the syncobj -> sync_file conversion doesn't
have to happen for each submission, but maybe there's a good reason
to use sync_files for that too. Any feedback on that aspect would
be useful I guess.

Any feedback on this new ioctl is welcome, in particular, do you
think other things are missing/would be nice to have for Vulkan?

Regards,

Boris

P.S.: basic igt tests for these new ioctls re available there [1]

[1]https://gitlab.freedesktop.org/bbrezillon/igt-gpu-tools/-/tree/panfrost-batch-submit

Boris Brezillon (8):
  drm/panfrost: Pass a job to panfrost_{acquire,attach}_object_fences()
  drm/panfrost: Move the mappings collection out of
    panfrost_lookup_bos()
  drm/panfrost: Add BO access flags to relax dependencies between jobs
  drm/panfrost: Add the ability to create submit queues
  drm/panfrost: Add a new ioctl to submit batches
  drm/panfrost: Support synchronization jobs
  drm/panfrost: Advertise the SYNCOBJ_TIMELINE feature
  drm/panfrost: Bump minor version to reflect the feature additions

 drivers/gpu/drm/panfrost/Makefile             |   3 +-
 drivers/gpu/drm/panfrost/panfrost_device.h    |   2 +-
 drivers/gpu/drm/panfrost/panfrost_drv.c       | 637 +++++++++++++-----
 drivers/gpu/drm/panfrost/panfrost_job.c       |  93 ++-
 drivers/gpu/drm/panfrost/panfrost_job.h       |   8 +-
 .../gpu/drm/panfrost/panfrost_submitqueue.c   | 132 ++++
 .../gpu/drm/panfrost/panfrost_submitqueue.h   |  26 +
 include/uapi/drm/panfrost_drm.h               | 119 ++++
 8 files changed, 796 insertions(+), 224 deletions(-)
 create mode 100644 drivers/gpu/drm/panfrost/panfrost_submitqueue.c
 create mode 100644 drivers/gpu/drm/panfrost/panfrost_submitqueue.h

-- 
2.31.1


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

end of thread, other threads:[~2021-10-04 13:05 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-30 19:09 [PATCH v5 0/8] drm/panfrost: drm/panfrost: Add a new submit ioctl Boris Brezillon
2021-09-30 19:09 ` [PATCH v5 1/8] drm/panfrost: Pass a job to panfrost_{acquire, attach}_object_fences() Boris Brezillon
2021-09-30 19:09 ` [PATCH v5 2/8] drm/panfrost: Move the mappings collection out of panfrost_lookup_bos() Boris Brezillon
2021-09-30 19:09 ` [PATCH v5 3/8] drm/panfrost: Add BO access flags to relax dependencies between jobs Boris Brezillon
2021-09-30 19:09 ` [PATCH v5 4/8] drm/panfrost: Add the ability to create submit queues Boris Brezillon
2021-09-30 19:09 ` [PATCH v5 5/8] drm/panfrost: Add a new ioctl to submit batches Boris Brezillon
2021-10-04 11:30   ` Steven Price
2021-09-30 19:09 ` [PATCH v5 6/8] drm/panfrost: Support synchronization jobs Boris Brezillon
2021-10-04 11:30   ` Steven Price
2021-10-04 12:24     ` Boris Brezillon
2021-10-04 13:05       ` Steven Price
2021-09-30 19:09 ` [PATCH v5 7/8] drm/panfrost: Advertise the SYNCOBJ_TIMELINE feature Boris Brezillon
2021-09-30 19:09 ` [PATCH v5 8/8] drm/panfrost: Bump minor version to reflect the feature additions 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.