[Mesa-dev] [PATCH 12/15] travis: split the make target to three separate ones

Andres Gomez agomez at igalia.com
Fri Apr 28 15:00:21 UTC 2017


On Thu, 2017-04-27 at 19:38 +0100, Emil Velikov wrote:
> From: Emil Velikov <emil.velikov at collabora.com>
> 
> Split the target to allow faster builds for each run.
> 
> The overall build time will be more, yet Travis runs multiple builds in
> parallel so we're limited by the slowest one.
> 
> Things are split roughly as:
>  - DRI loaders, classic DRI drivers, classic OSMesa, make check
>  - All Gallium drivers (minus the SWR) alongside st/dri (mesa)
>  - The Vulkan drivers - ANV and RADV, make check (anv)

I think it would be better to split ANV and RADV on different builds
too.

> v2:
>  - rework RUN_CHECK to MAKE_CHECK_COMMAND
>  - explicitly disable DRI loaders
>  - generate linux/memfd.h locally and enable ANV
>  - add libedit-dev
> 
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
>  .travis.yml | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 79 insertions(+), 16 deletions(-)
> 
> diff --git a/.travis.yml b/.travis.yml
> index a4be936656e..57c4a431534 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -26,28 +26,21 @@ env:
>  matrix:
>    include:
>      - env:
> -        - LABEL="make"
> +        - LABEL="make loaders/classic DRI"
>          - BUILD=make
>          - MAKEFLAGS=-j2
> -        - LLVM_VERSION=3.9
> -        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> +        - MAKE_CHECK_COMMAND="make check"
> +        # XXX: Add wayland platform
> +        - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless --enable-osmesa"
>          - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
> -        - GALLIUM_DRIVERS="i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
> -        - VULKAN_DRIVERS="radeon"
> +        - GALLIUM_DRIVERS=""
> +        - VULKAN_DRIVERS=""
>        addons:
>          apt:
> -          sources:
> -            - llvm-toolchain-trusty-3.9
>            packages:
> -            # LLVM packaging is broken and misses these dependencies
> -            - libedit-dev
> -            # From sources above
> -            - llvm-3.9-dev
> -            # Common
>              - x11proto-xf86vidmode-dev
>              - libexpat1-dev
>              - libx11-xcb-dev
> -            - libelf-dev
>      - env:
>          # NOTE: Building SWR is 2x (yes two) times slower than all the other
>          # gallium drivers combined.
> @@ -55,10 +48,12 @@ matrix:
>          - LABEL="make Gallium Drivers SWR"
>          - BUILD=make
>          - MAKEFLAGS=-j2
> +        - MAKE_CHECK_COMMAND="true"
>          - LLVM_VERSION=3.9
>          - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
>          - OVERRIDE_CC="gcc-5"
>          - OVERRIDE_CXX="g++-5"
> +        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
>          - DRI_DRIVERS=""
>          - GALLIUM_DRIVERS="swr"
>          - VULKAN_DRIVERS=""
> @@ -68,6 +63,8 @@ matrix:
>              - ubuntu-toolchain-r-test
>              - llvm-toolchain-trusty-3.9
>            packages:
> +            # LLVM packaging is broken and misses these dependencies
> +            - libedit-dev
>              # From sources above
>              - g++-5
>              - llvm-3.9-dev
> @@ -77,6 +74,57 @@ matrix:
>              - libx11-xcb-dev
>              - libelf-dev
>      - env:
> +        - LABEL="make Gallium Drivers Other"
> +        - BUILD=make
> +        - MAKEFLAGS=-j2
> +        - MAKE_CHECK_COMMAND="true"
> +        - LLVM_VERSION=3.9
> +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> +        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
> +        - DRI_DRIVERS=""
> +        - GALLIUM_DRIVERS="i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
> +        - VULKAN_DRIVERS=""
> +      addons:
> +        apt:
> +          sources:
> +            - llvm-toolchain-trusty-3.9
> +          packages:
> +            # From sources above
> +            - llvm-3.9-dev
> +            # Common
> +            - x11proto-xf86vidmode-dev
> +            - libexpat1-dev
> +            - libx11-xcb-dev
> +            - libelf-dev
> +    - env:
> +        - LABEL="make Vulkan"
> +        - BUILD=make
> +        - MAKEFLAGS=-j2
> +        - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
> +        - LLVM_VERSION=3.9
> +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> +        # XXX: we want to test the WSI, but those are enabled via the EGL toggles
> +        # XXX: Add wayland platform
> +        # XXX: Platform X11 dependencies are checked when --enable-glx is set
> +        - DRI_LOADERS="--enable-glx --disable-gbm --enable-egl --with-platforms=x11"
> +        - DRI_DRIVERS=""
> +        - GALLIUM_DRIVERS=""
> +        - VULKAN_DRIVERS="intel,radeon"
> +      addons:
> +        apt:
> +          sources:
> +            - llvm-toolchain-trusty-3.9
> +          packages:
> +            # LLVM packaging is broken and misses these dependencies
> +            - libedit-dev
> +            # From sources above
> +            - llvm-3.9-dev
> +            # Common
> +            - x11proto-xf86vidmode-dev
> +            - libexpat1-dev
> +            - libx11-xcb-dev
> +            - libelf-dev
> +    - env:
>          - LABEL="scons"
>          - BUILD=scons
>          - SCONSFLAGS="-j4"
> @@ -207,18 +255,33 @@ install:
>        (cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
>      fi
>  
> +  # Generate the header since one is missing on the Travis instance
> +  - mkdir -p linux
> +  - echo "#ifndef _LINUX_MEMFD_H"                         > linux/memfd.h
> +  - echo "#define _LINUX_MEMFD_H"                         >> linux/memfd.h
> +  - echo ""                                               >> linux/memfd.h
> +  - echo "#define __NR_memfd_create 319"                  >> linux/memfd.h
> +  - echo "#define SYS_memfd_create __NR_memfd_create"     >> linux/memfd.h
> +  - echo ""                                               >> linux/memfd.h
> +  - echo "#define MFD_CLOEXEC             0x0001U"        >> linux/memfd.h
> +  - echo "#define MFD_ALLOW_SEALING       0x0002U"        >> linux/memfd.h
> +  - echo ""                                               >> linux/memfd.h
> +  - echo "#endif /* _LINUX_MEMFD_H */"                    >> linux/memfd.h

This is a bit ugly on the travis log output. What about replacing it
with something like?:

  - printf "%s\n" \
           "#ifndef _LINUX_MEMFD_H" \
           "#define _LINUX_MEMFD_H" \
           "" \
           "#define __NR_memfd_create 319" \
           "#define SYS_memfd_create __NR_memfd_create" \
           "" \
           "#define MFD_CLOEXEC             0x0001U" \
           "#define MFD_ALLOW_SEALING       0x0002U" \
           "" \
           "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h

-- 
Br,

Andres


More information about the mesa-dev mailing list