All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] drm/panfrost: drm/panfrost: Add a new submit ioctl
@ 2021-07-01  9:12 Boris Brezillon
  2021-07-01  9:12 ` [PATCH v2 1/7] drm/panfrost: Pass a job to panfrost_{acquire, attach_object_fences}() Boris Brezillon
                   ` (6 more replies)
  0 siblings, 7 replies; 24+ messages in thread
From: Boris Brezillon @ 2021-07-01  9:12 UTC (permalink / raw)
  To: Rob Herring, Tomeu Vizoso, Alyssa Rosenzweig, Steven Price, Robin Murphy
  Cc: Jason Ekstrand, dri-devel, Boris Brezillon

Hello,

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 (7):
  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: 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       | 442 ++++++++++++++++--
 drivers/gpu/drm/panfrost/panfrost_job.c       |  89 ++--
 drivers/gpu/drm/panfrost/panfrost_job.h       |  10 +-
 .../gpu/drm/panfrost/panfrost_submitqueue.c   | 130 ++++++
 .../gpu/drm/panfrost/panfrost_submitqueue.h   |  27 ++
 include/uapi/drm/panfrost_drm.h               | 103 ++++
 8 files changed, 720 insertions(+), 86 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] 24+ messages in thread

end of thread, other threads:[~2021-07-02 14:09 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-01  9:12 [PATCH v2 0/7] drm/panfrost: drm/panfrost: Add a new submit ioctl Boris Brezillon
2021-07-01  9:12 ` [PATCH v2 1/7] drm/panfrost: Pass a job to panfrost_{acquire, attach_object_fences}() Boris Brezillon
2021-07-02  9:42   ` [PATCH v2 1/7] drm/panfrost: Pass a job to panfrost_{acquire,attach_object_fences}() Steven Price
2021-07-01  9:12 ` [PATCH v2 2/7] drm/panfrost: Move the mappings collection out of panfrost_lookup_bos() Boris Brezillon
2021-07-02  9:43   ` Steven Price
2021-07-01  9:12 ` [PATCH v2 3/7] drm/panfrost: Add BO access flags to relax dependencies between jobs Boris Brezillon
2021-07-02  9:45   ` Steven Price
2021-07-01  9:12 ` [PATCH v2 4/7] drm/panfrost: Add the ability to create submit queues Boris Brezillon
2021-07-02  9:56   ` Steven Price
2021-07-02 10:43     ` Boris Brezillon
2021-07-02 10:55       ` Steven Price
2021-07-02 11:02         ` Daniel Stone
2021-07-02 13:58       ` Alyssa Rosenzweig
2021-07-02 14:09         ` Boris Brezillon
2021-07-02 10:08   ` Steven Price
2021-07-02 10:52     ` Boris Brezillon
2021-07-02 10:58       ` Steven Price
2021-07-02 11:01         ` Boris Brezillon
2021-07-01  9:12 ` [PATCH v2 5/7] drm/panfrost: Add a new ioctl to submit batches Boris Brezillon
2021-07-02 10:08   ` Steven Price
2021-07-01  9:12 ` [PATCH v2 6/7] drm/panfrost: Advertise the SYNCOBJ_TIMELINE feature Boris Brezillon
2021-07-02 10:08   ` Steven Price
2021-07-01  9:12 ` [PATCH v2 7/7] drm/panfrost: Bump minor version to reflect the feature additions Boris Brezillon
2021-07-02 10:08   ` Steven Price

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.