[Mesa-dev] [PATCH 0/5] NVIDIA Tegra support

Thierry Reding thierry.reding at gmail.com
Wed Feb 21 15:30:54 UTC 2018


From: Thierry Reding <treding at nvidia.com>

This series of patches implements initial support for Tegra. The first
two patches import DRM UAPI from v4.16-rc1 that provide framebuffer
modifiers that can be used to specify buffers shared between Nouveau
and the Tegra DRM driver.

Patches 3 and 4 add support for framebuffer modifiers to Nouveau and
patch 5 build on top of those to provide initial Tegra support in Mesa.
The current patches allow running common use-cases such as Wayland,
kmscube, etc.

Some people have been using earlier versions of these patches to run a
completely open-source graphics stack on various Tegra210 devices. I've
Cc'ed some of them so that they can provide feedback.

This series is also available in a git repository here:

	https://cgit.freedesktop.org/~tagr/mesa #master

though that also contains the Nouveau syncfd patches that are still work
in progress and which require new kernel/userspace ABI. The patches here
work on top of a vanilla recent (v4.16-rc1) Linux kernel.

Thierry

Thierry Reding (5):
  drm/fourcc: Fix fourcc_mod_code() definition
  drm/tegra: Sanitize format modifiers
  nouveau/nvc0: Extract common tile mode macro
  nouveau: Add framebuffer modifier support
  tegra: Initial support

 configure.ac                                       |   11 +-
 include/drm-uapi/drm_fourcc.h                      |   38 +-
 include/drm-uapi/tegra_drm.h                       |  225 ++++
 meson.build                                        |    7 +-
 src/gallium/Makefile.am                            |    5 +
 .../auxiliary/pipe-loader/pipe_loader_drm.c        |    7 +-
 src/gallium/auxiliary/target-helpers/drm_helper.h  |   23 +
 .../auxiliary/target-helpers/drm_helper_public.h   |    3 +
 src/gallium/drivers/nouveau/Android.mk             |    3 +
 src/gallium/drivers/nouveau/Makefile.am            |    1 +
 src/gallium/drivers/nouveau/nouveau_buffer.c       |    3 +-
 src/gallium/drivers/nouveau/nouveau_buffer.h       |    3 +-
 src/gallium/drivers/nouveau/nouveau_screen.c       |   14 +
 src/gallium/drivers/nouveau/nv30/nv30_resource.c   |    6 +-
 src/gallium/drivers/nouveau/nv50/nv50_resource.c   |    5 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_miptree.c    |    8 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_resource.c   |   80 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_resource.h   |   20 +-
 src/gallium/drivers/tegra/Automake.inc             |   11 +
 src/gallium/drivers/tegra/Makefile.am              |   18 +
 src/gallium/drivers/tegra/Makefile.sources         |    3 +
 src/gallium/drivers/tegra/meson.build              |   41 +
 src/gallium/drivers/tegra/tegra_context.c          | 1294 ++++++++++++++++++++
 src/gallium/drivers/tegra/tegra_context.h          |   81 ++
 src/gallium/drivers/tegra/tegra_resource.h         |   76 ++
 src/gallium/drivers/tegra/tegra_screen.c           |  674 ++++++++++
 src/gallium/drivers/tegra/tegra_screen.h           |   45 +
 src/gallium/meson.build                            |    6 +
 src/gallium/targets/dri/Makefile.am                |    2 +
 src/gallium/targets/dri/meson.build                |    4 +-
 src/gallium/targets/dri/target.c                   |    4 +
 src/gallium/targets/vdpau/Makefile.am              |    2 +
 src/gallium/winsys/tegra/drm/Makefile.am           |   11 +
 src/gallium/winsys/tegra/drm/Makefile.sources      |    2 +
 src/gallium/winsys/tegra/drm/meson.build           |   33 +
 src/gallium/winsys/tegra/drm/tegra_drm_public.h    |   31 +
 src/gallium/winsys/tegra/drm/tegra_drm_winsys.c    |   33 +
 37 files changed, 2797 insertions(+), 36 deletions(-)
 create mode 100644 include/drm-uapi/tegra_drm.h
 create mode 100644 src/gallium/drivers/tegra/Automake.inc
 create mode 100644 src/gallium/drivers/tegra/Makefile.am
 create mode 100644 src/gallium/drivers/tegra/Makefile.sources
 create mode 100644 src/gallium/drivers/tegra/meson.build
 create mode 100644 src/gallium/drivers/tegra/tegra_context.c
 create mode 100644 src/gallium/drivers/tegra/tegra_context.h
 create mode 100644 src/gallium/drivers/tegra/tegra_resource.h
 create mode 100644 src/gallium/drivers/tegra/tegra_screen.c
 create mode 100644 src/gallium/drivers/tegra/tegra_screen.h
 create mode 100644 src/gallium/winsys/tegra/drm/Makefile.am
 create mode 100644 src/gallium/winsys/tegra/drm/Makefile.sources
 create mode 100644 src/gallium/winsys/tegra/drm/meson.build
 create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_public.h
 create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_winsys.c

-- 
2.16.2



More information about the mesa-dev mailing list