mbox series

[v7,00/15] TegraDRM UAPI

Message ID 20210610110456.3692391-1-mperttunen@nvidia.com (mailing list archive)
Headers show
Series TegraDRM UAPI | expand

Message

Mikko Perttunen June 10, 2021, 11:04 a.m. UTC
Hi all,

here's the seventh revision of the TegraDRM UAPI proposal.
Only some small changes to v6 here to fix things on older
Tegras with certain configuration combinations, as well as
rebasing to latest linux-next.

The following pieces of userspace have been updated to support
this revision of the UAPI (unchanged from v6):

* vaapi-tegra-driver - https://github.com/cyndis/vaapi-tegra-driver
  Experimental support for MPEG2 and H264 decoding on T210, T186
  and T194.

* xf86-video-opentegra - https://github.com/grate-driver/xf86-video-opentegra
  X11 userspace acceleration driver for Tegra20, Tegra30, and Tegra114.

* grate - https://github.com/grate-driver/grate
  3D rendering testbed for Tegra20, Tegra30, and Tegra114

The series can be also found in
https://github.com/cyndis/linux/commits/work/tegradrm-v7.

Older versions:
v1: https://www.spinics.net/lists/linux-tegra/msg51000.html
v2: https://www.spinics.net/lists/linux-tegra/msg53061.html
v3: https://www.spinics.net/lists/linux-tegra/msg54370.html
v4: https://www.spinics.net/lists/dri-devel/msg279897.html
v5: https://www.spinics.net/lists/linux-tegra/msg56353.html
v6: https://www.spinics.net/lists/linux-tegra/msg58950.html

Thank you,
Mikko

Mikko Perttunen (15):
  gpu: host1x: Add DMA fence implementation
  gpu: host1x: Add no-recovery mode
  gpu: host1x: Add job release callback
  gpu: host1x: Add support for syncpoint waits in CDMA pushbuffer
  gpu: host1x: Add option to skip firewall for a job
  drm/tegra: Extract tegra_gem_lookup
  drm/tegra: Add new UAPI to header
  drm/tegra: Boot VIC during runtime PM resume
  drm/tegra: Allocate per-engine channel in core code
  drm/tegra: Implement new UAPI
  drm/tegra: Implement syncpoint management UAPI
  drm/tegra: Implement syncpoint wait UAPI
  drm/tegra: Implement job submission part of new UAPI
  drm/tegra: Add job firewall
  drm/tegra: Bump driver version

 drivers/gpu/drm/tegra/Makefile             |   4 +
 drivers/gpu/drm/tegra/drm.c                |  84 ++--
 drivers/gpu/drm/tegra/drm.h                |  12 +
 drivers/gpu/drm/tegra/firewall.c           | 254 ++++++++++
 drivers/gpu/drm/tegra/gather_bo.c          |  82 +++
 drivers/gpu/drm/tegra/gather_bo.h          |  24 +
 drivers/gpu/drm/tegra/gem.c                |  13 +
 drivers/gpu/drm/tegra/gem.h                |   2 +
 drivers/gpu/drm/tegra/submit.c             | 557 +++++++++++++++++++++
 drivers/gpu/drm/tegra/submit.h             |  21 +
 drivers/gpu/drm/tegra/uapi.c               | 337 +++++++++++++
 drivers/gpu/drm/tegra/uapi.h               |  58 +++
 drivers/gpu/drm/tegra/vic.c                | 112 ++---
 drivers/gpu/host1x/Makefile                |   1 +
 drivers/gpu/host1x/cdma.c                  |  58 ++-
 drivers/gpu/host1x/fence.c                 | 184 +++++++
 drivers/gpu/host1x/fence.h                 |  13 +
 drivers/gpu/host1x/hw/channel_hw.c         |  87 +++-
 drivers/gpu/host1x/hw/debug_hw.c           |   9 +-
 drivers/gpu/host1x/hw/hw_host1x02_uclass.h |  12 +
 drivers/gpu/host1x/hw/hw_host1x04_uclass.h |  12 +
 drivers/gpu/host1x/hw/hw_host1x05_uclass.h |  12 +
 drivers/gpu/host1x/hw/hw_host1x06_uclass.h |  12 +
 drivers/gpu/host1x/hw/hw_host1x07_uclass.h |  12 +
 drivers/gpu/host1x/intr.c                  |   9 +
 drivers/gpu/host1x/intr.h                  |   2 +
 drivers/gpu/host1x/job.c                   |  98 +++-
 drivers/gpu/host1x/job.h                   |  16 +
 drivers/gpu/host1x/syncpt.c                |   2 +
 drivers/gpu/host1x/syncpt.h                |  12 +
 include/linux/host1x.h                     |  28 +-
 include/uapi/drm/tegra_drm.h               | 414 ++++++++++++++-
 32 files changed, 2374 insertions(+), 179 deletions(-)
 create mode 100644 drivers/gpu/drm/tegra/firewall.c
 create mode 100644 drivers/gpu/drm/tegra/gather_bo.c
 create mode 100644 drivers/gpu/drm/tegra/gather_bo.h
 create mode 100644 drivers/gpu/drm/tegra/submit.c
 create mode 100644 drivers/gpu/drm/tegra/submit.h
 create mode 100644 drivers/gpu/drm/tegra/uapi.c
 create mode 100644 drivers/gpu/drm/tegra/uapi.h
 create mode 100644 drivers/gpu/host1x/fence.c
 create mode 100644 drivers/gpu/host1x/fence.h

Comments

Dmitry Osipenko June 15, 2021, 8:32 p.m. UTC | #1
10.06.2021 14:04, Mikko Perttunen пишет:
> Hi all,
> 
> here's the seventh revision of the TegraDRM UAPI proposal.
> Only some small changes to v6 here to fix things on older
> Tegras with certain configuration combinations, as well as
> rebasing to latest linux-next.
> 
> The following pieces of userspace have been updated to support
> this revision of the UAPI (unchanged from v6):
> 
> * vaapi-tegra-driver - https://github.com/cyndis/vaapi-tegra-driver
>   Experimental support for MPEG2 and H264 decoding on T210, T186
>   and T194.
> 
> * xf86-video-opentegra - https://github.com/grate-driver/xf86-video-opentegra
>   X11 userspace acceleration driver for Tegra20, Tegra30, and Tegra114.
> 
> * grate - https://github.com/grate-driver/grate
>   3D rendering testbed for Tegra20, Tegra30, and Tegra114
> 
> The series can be also found in
> https://github.com/cyndis/linux/commits/work/tegradrm-v7.

The needs of the newer hardware are mostly understood now, so it's not
the biggest problem now, which is good. The only part that is still not
clear to me is whether sync points sharing is mandatory or optional
since it's needed only by a proprietary monitoring software.

This is still not a full UAPI implementation and it's difficult for me
to see how this will integrate with the DRM scheduler and etc.

I don't like that the new code is build upon the old troublesome
codebase. The half of it will be removed later on and the other half
will be reshuffled, which is a lot of effort that could be avoided. It's
apparent to me that it should be much better if we could clean up the
current code base first, but before doing it we need to agree on the
organization of the updated driver, which should help a lot with moving
forward.