[PATCH v2 2/3] etnaviv: gallium driver for Vivante GPUs

Emil Velikov emil.l.velikov at gmail.com
Mon Jan 9 20:00:59 UTC 2017


Hi Christian,

There's a few nitpicks. Note that neither is a blocker so feel free to
send patches in the week(s) to come.

On 23 December 2016 at 22:04, Christian Gmeiner
<christian.gmeiner at gmail.com> wrote:

> --- a/configure.ac
> +++ b/configure.ac
> @@ -76,6 +76,7 @@ LIBDRM_NVVIEUX_REQUIRED=2.4.66
>  LIBDRM_NOUVEAU_REQUIRED=2.4.66
>  LIBDRM_FREEDRENO_REQUIRED=2.4.74
>  LIBDRM_VC4_REQUIRED=2.4.69
> +LIBDRM_ETNAVIV_REQUIRED=2.4.74
>  DRI2PROTO_REQUIRED=2.6
>  DRI3PROTO_REQUIRED=1.0
>  PRESENTPROTO_REQUIRED=1.0
> @@ -2506,6 +2507,11 @@ if test -n "$with_gallium_drivers"; then
>              PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
>              require_libdrm "freedreno"
>              ;;
> +        xetnaviv)
> +            HAVE_GALLIUM_ETNAVIV=yes
> +            PKG_CHECK_MODULES([ETNAVIV], [libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
> +            require_libdrm "etnaviv"
> +            ;;
- There's a comment/documentation missing why we want/need
etnaviv_dri.so anywhere.
Please add something - be that in configure or a readme file in
{drivers,winsys}/etnaviv.

Pretty much anything will do ;-)

- This and 3/3 will need to update the "AC_ARG_WITH([gallium-drivers]"
help string.
Again - perfectly fine to address with separate commit.


> --- /dev/null
> +++ b/src/gallium/drivers/etnaviv/Makefile.am

> +
> +libetnaviv_la_SOURCES = $(C_SOURCES) $(CPP_SOURCES)
> +
CPP_SOURCES is empty. Please remove it (with later commit ?)

> +noinst_PROGRAMS = etnaviv_compiler
> +
> +etnaviv_compiler_SOURCES = \
> +       etnaviv_compiler_cmdline.c
> +
> +etnaviv_compiler_LDADD = \
> +       libetnaviv.la \
> +       ../../auxiliary/libgallium.la \
Don't use relative paths, use the below instead.

$(top_builddir)/src/gallium/auxiliary/libgallium.la


> --- /dev/null
> +++ b/src/gallium/drivers/etnaviv/Makefile.sources
> @@ -0,0 +1,26 @@
> +C_SOURCES :=  \
> +       etnaviv_asm.c \
> +       etnaviv_blend.c \
> +       etnaviv_clear_blit.c \
> +       etnaviv_compiler.c \
> +       etnaviv_context.c \
> +       etnaviv_disasm.c \
> +       etnaviv_emit.c \
> +       etnaviv_fence.c \
> +       etnaviv_format.c \
> +       etnaviv_query.c \
> +       etnaviv_query_sw.c \
> +       etnaviv_rasterizer.c \
> +       etnaviv_resource.c \
> +       etnaviv_rs.c \
> +       etnaviv_screen.c \
> +       etnaviv_shader.c \
> +       etnaviv_state.c \
> +       etnaviv_surface.c \
> +       etnaviv_tiling.c \
> +       etnaviv_texture.c \
> +       etnaviv_transfer.c \
> +       etnaviv_uniforms.c \
> +       etnaviv_zsa.c
> +
Iirc earlier commits had all the files (headers including) listed here.
Can we have those back please ?


> --- /dev/null
> +++ b/src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c

> +static struct pipe_screen *
> +screen_create(struct renderonly *ro)
> +{
> +   struct etna_device *dev;
> +   struct etna_gpu *gpu;
> +   uint64_t val;
> +   int i;
> +
> +   dev = etna_device_new_dup(ro->gpu_fd);
> +   if (!dev) {
> +      fprintf(stderr, "Error creating device\n");
> +      return NULL;
> +   }
> +
> +   for (i = 0;; i++) {
> +      gpu = etna_gpu_new(dev, i);
> +      if (!gpu) {
> +         fprintf(stderr, "Error creating gpu\n");
> +         return NULL;
> +      }
> +
> +      /* Look for a 3D capable GPU */
> +      if (etna_gpu_get_param(gpu, ETNA_GPU_FEATURES_0, &val) == 0 &&
> +            val & (1 << 2))
We cannot used the VIV_FEATURE macro yet, but can we replace "1 << 2"
with the corresponding define ?

Thanks
Emil


More information about the etnaviv mailing list