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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev