[Mesa-dev] [RFC 0/2] Add renderonly gpu support

Christian Gmeiner christian.gmeiner at gmail.com
Sun Oct 11 08:09:20 PDT 2015


This patch set introduces a more generic renderonly driver library based on
"[RFC] tegra: Initial support" [0] from Thierry Reding.

I am re-using almost all of the existing code and extended it with a
struct renderonly_ops, which defines the wanted behavior for the
target hardware.

There are two different usage patterns, which are supported.
1) Set a required tiling on the scanout buffer (tegra)
2) Use an intermediate buffer and blit to dumb buffer (imx)

The setup of struct renderonly_ops happens in winsys. So it is possible
to support different configurations for different versions of an IP core,
which are using the same KMS driver.

I really hope to get some feedback as the bare metal EGL use case is important
as not everyone runs a compositor, which understands rendernodes.

This patch set was successfully tested on tegra and imx-drm (etnaviv based)
and runs kmscube.

The patch set is available directly via git:
https://github.com/austriancoder/mesa.git branch renderonly-rfc-1

[0] http://lists.freedesktop.org/archives/mesa-dev/2014-November/071521.html

Christian Gmeiner (2):
  gallium: add renderonly driver
  gallium: add tegra support

 configure.ac                                       |  20 +-
 src/gallium/Makefile.am                            |   6 +
 .../auxiliary/target-helpers/inline_drm_helper.h   |  29 +
 src/gallium/drivers/renderonly/Makefile.am         |  11 +
 src/gallium/drivers/renderonly/Makefile.sources    |   4 +
 .../drivers/renderonly/renderonly_context.c        | 721 +++++++++++++++++++++
 .../drivers/renderonly/renderonly_context.h        |  80 +++
 .../drivers/renderonly/renderonly_resource.c       | 296 +++++++++
 .../drivers/renderonly/renderonly_resource.h       | 101 +++
 src/gallium/drivers/renderonly/renderonly_screen.c | 178 +++++
 src/gallium/drivers/renderonly/renderonly_screen.h |  55 ++
 src/gallium/drivers/tegra/Automake.inc             |  10 +
 src/gallium/drivers/tegra/Makefile.am              |   9 +
 src/gallium/targets/dri/Makefile.am                |   2 +
 src/gallium/winsys/tegra/drm/Android.mk            |  34 +
 src/gallium/winsys/tegra/drm/Makefile.am           |  33 +
 src/gallium/winsys/tegra/drm/Makefile.sources      |   3 +
 src/gallium/winsys/tegra/drm/tegra_drm_public.h    |  31 +
 src/gallium/winsys/tegra/drm/tegra_drm_winsys.c    |  51 ++
 19 files changed, 1673 insertions(+), 1 deletion(-)
 create mode 100644 src/gallium/drivers/renderonly/Makefile.am
 create mode 100644 src/gallium/drivers/renderonly/Makefile.sources
 create mode 100644 src/gallium/drivers/renderonly/renderonly_context.c
 create mode 100644 src/gallium/drivers/renderonly/renderonly_context.h
 create mode 100644 src/gallium/drivers/renderonly/renderonly_resource.c
 create mode 100644 src/gallium/drivers/renderonly/renderonly_resource.h
 create mode 100644 src/gallium/drivers/renderonly/renderonly_screen.c
 create mode 100644 src/gallium/drivers/renderonly/renderonly_screen.h
 create mode 100644 src/gallium/drivers/tegra/Automake.inc
 create mode 100644 src/gallium/drivers/tegra/Makefile.am
 create mode 100644 src/gallium/winsys/tegra/drm/Android.mk
 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/tegra_drm_public.h
 create mode 100644 src/gallium/winsys/tegra/drm/tegra_drm_winsys.c

-- 
2.4.3



More information about the mesa-dev mailing list