On Sat, Mar 25, 2023 at 11:24:56AM -0700, Rob Clark wrote:
Hi Dave and Daniel,
Here is the series for dma-fence deadline hint, without driver specific patches, with the intent that it can be merged into drm-next as well as -driver next trees to enable landing driver specific support through their corresponding -next trees.
The following changes since commit eeac8ede17557680855031c6f305ece2378af326:
Linux 6.3-rc2 (2023-03-12 16:36:44 -0700)
are available in the Git repository at:
https://gitlab.freedesktop.org/drm/msm.git tags/dma-fence-deadline-core
for you to fetch changes up to 0bcc8f52a8d9d1f9cd5af7f88c6599a89e64284a:
drm/atomic-helper: Set fence deadline for vblank (2023-03-25 10:55:08 -0700)
Ok apparently there's only igts for the sync_file uabi and the only only userspace for syncobj is the mesa mr that is still under discussion :-/
Yes I know there's a clearly established need for something like this, but also in drm we don't merge conjectured uabi. Especially with tricky stuff that's meant to improve best effort performance/tuning problems, where you really have to benchmark the entire thing and make sure you didn't screw up some interaction.
To make sure this isn't stuck another full cycle, is there a way to wittle this just down to the kms atomic flip boosting parts? That way we could at least start landing the core&driver bits ... -Daniel
Immutable branch with dma-fence deadline hint support between drm-next and driver -next trees.
Rob Clark (11): dma-buf/dma-fence: Add deadline awareness dma-buf/fence-array: Add fence deadline support dma-buf/fence-chain: Add fence deadline support dma-buf/dma-resv: Add a way to set fence deadline dma-buf/sync_file: Surface sync-file uABI dma-buf/sync_file: Add SET_DEADLINE ioctl dma-buf/sw_sync: Add fence deadline support drm/scheduler: Add fence deadline support drm/syncobj: Add deadline support for syncobj waits drm/vblank: Add helper to get next vblank time drm/atomic-helper: Set fence deadline for vblank
Documentation/driver-api/dma-buf.rst | 16 ++++++- drivers/dma-buf/dma-fence-array.c | 11 +++++ drivers/dma-buf/dma-fence-chain.c | 12 +++++ drivers/dma-buf/dma-fence.c | 60 ++++++++++++++++++++++++ drivers/dma-buf/dma-resv.c | 22 +++++++++ drivers/dma-buf/sw_sync.c | 81 +++++++++++++++++++++++++++++++++ drivers/dma-buf/sync_debug.h | 2 + drivers/dma-buf/sync_file.c | 19 ++++++++ drivers/gpu/drm/drm_atomic_helper.c | 37 +++++++++++++++ drivers/gpu/drm/drm_syncobj.c | 64 ++++++++++++++++++++------ drivers/gpu/drm/drm_vblank.c | 53 +++++++++++++++++---- drivers/gpu/drm/scheduler/sched_fence.c | 46 +++++++++++++++++++ drivers/gpu/drm/scheduler/sched_main.c | 2 +- include/drm/drm_vblank.h | 1 + include/drm/gpu_scheduler.h | 17 +++++++ include/linux/dma-fence.h | 22 +++++++++ include/linux/dma-resv.h | 2 + include/uapi/drm/drm.h | 17 +++++++ include/uapi/linux/sync_file.h | 59 +++++++++++++++--------- 19 files changed, 496 insertions(+), 47 deletions(-)