[Mesa-dev] [RFC 2/2] gallium: add tegra support
Emil Velikov
emil.l.velikov at gmail.com
Thu Oct 15 16:33:09 PDT 2015
Hi Christian,
Mostly minor suggestions I'm afraid. Things just look too good for
anything serious.
On 11 October 2015 at 16:09, Christian Gmeiner
<christian.gmeiner at gmail.com> wrote:
> This commit adds tegra support, which uses the renderonly driver
> library.
>
> Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
> ---
> configure.ac | 19 +++++++-
> src/gallium/Makefile.am | 6 +++
> .../auxiliary/target-helpers/inline_drm_helper.h | 29 ++++++++++++
> 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 ++++++++++++++++++++++
> 11 files changed, 226 insertions(+), 1 deletion(-)
> 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
>
> diff --git a/configure.ac b/configure.ac
> index ea485b1..9fb8244 100644
> --- a/configure.ac
> +++ b/configure.ac
[snip]
> @@ -2166,6 +2167,12 @@ if test -n "$with_gallium_drivers"; then
> HAVE_GALLIUM_LLVMPIPE=yes
> fi
> ;;
> + xtegra)
> + HAVE_GALLIUM_TEGRA=yes
We need an extra NEED_GALLIUM_NOUVEAU conditional (set to yes here and
in the xnouveau case).
One will also need to duplicate (as a temporary workaround) the
nouveau PKG_CHECK_MODULES here.
Then update the src/gallium/Makefile.am to use it over HAVE_GALLIUM_NOUVEAU
[snip]
> +dnl We need to validate some needed dependencies for renderonly drivers.
> +
> +if test "x$HAVE_GALLIUM_NOUVEAU" != xyes -a "x$HAVE_GALLIUM_TEGRA" == xyes ; then
> + AC_ERROR([Building with tegra requires that nouveau])
> +fi
> +
> +
And then you can drop this hunk.
> --- a/src/gallium/auxiliary/target-helpers/inline_drm_helper.h
> +++ b/src/gallium/auxiliary/target-helpers/inline_drm_helper.h
> @@ -59,6 +59,10 @@
> #include "vc4/drm/vc4_drm_public.h"
> #endif
>
> +#if GALLIUM_TEGRA
> +#include "tegra/drm/tegra_drm_public.h"
> +#endif
> +
FYI, I'm just testing some updates/rewrites of these target-helpers,
so things might clash in the not so distant future.
[snip]
> --- /dev/null
> +++ b/src/gallium/drivers/tegra/Automake.inc
> @@ -0,0 +1,10 @@
> +if HAVE_GALLIUM_TEGRA
> +
> +TARGET_DRIVERS += tegra
> +TARGET_CPPFLAGS += -DGALLIUM_TEGRA
> +TARGET_LIB_DEPS += \
> + $(top_builddir)/src/gallium/drivers/renderonly/librenderonly.la \
> + $(top_builddir)/src/gallium/winsys/tegra/drm/libtegradrm.la \
> + $(LIBDRM_LIBS)
This, perhaps, should be TEGRA_LIBS, yet we're not using anything from
libdrm_tegra so we should be safe.
[snip]
> --- /dev/null
> +++ b/src/gallium/winsys/tegra/drm/Android.mk
I think we can drop this file for now. Android + tegra is quite
incomplete as is.
[snip]
> --- /dev/null
> +++ b/src/gallium/winsys/tegra/drm/tegra_drm_winsys.c
[snip]
> +#include "renderonly/renderonly_screen.h"
> +#include "../winsys/tegra/drm/tegra_drm_public.h"
> +#include "../winsys/nouveau/drm/nouveau_drm_public.h"
> +
Please rework things to avoid the ../'s
> +#include <drm/tegra_drm.h>
(as mentioned before) Please drop the path from the include.
> +#include <xf86drm.h>
> +
Flip these two and move them to the top ?
> +static int tegra_tiling(int fd, uint32_t handle)
> +{
> + struct drm_tegra_gem_set_tiling args;
> +
> + memset(&args, 0, sizeof(args));
> + args.handle = handle;
> + args.mode = DRM_TEGRA_GEM_TILING_MODE_BLOCK;
> + args.value = 4;
Worth adding a note wrt the magic number ?
Thanks
Emil
More information about the mesa-dev
mailing list