[Mesa-dev] [PATCH 18/18] travis: meson: port gallium build combinations over

Dylan Baker dylan at pnwbakers.com
Mon Dec 17 19:37:05 UTC 2018


Quoting Emil Velikov (2018-12-17 11:03:32)
> On Fri, 14 Dec 2018 at 17:53, Dylan Baker <dylan at pnwbakers.com> wrote:
> >
> > Quoting Emil Velikov (2018-12-13 08:06:07)
> > > From: Emil Velikov <emil.velikov at collabora.com>
> > >
> > > This commit adds a number of build combos:
> > >
> > >  - Gallium Drivers {SWR, RadeonSI, Others)
> > > Each one has different LLVM requirements. Building SWR alone is twice
> > > as slow as all other drivers combined.
> > >
> > >  - Gallium ST Clover LLVM {5,6,7}
> > > Because C++ API changes all the time. Analogous to above building
> > > Clover takes as much time as building all other ST combined.
> > >
> > >  - Gallium ST Others
> > > Nouveau is used, instead of i915g since meson has explicit target
> > > tracking. Meaning that a configure error is throws if we use i915g
> > > with say va, vdpau or others.
> > >
> > > Note: LLVM prior to 5.0 is intentionally dropped. If needed we can add
> > > that later.
> > >
> > > Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> > > ---
> > >  .travis.yml | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 187 insertions(+)
> > >
> > > diff --git a/.travis.yml b/.travis.yml
> > > index 125d6ce3c68..b70df99d67e 100644
> > > --- a/.travis.yml
> > > +++ b/.travis.yml
> > > @@ -98,6 +98,193 @@ matrix:
> > >              - libxfixes-dev
> > >              - python3-pip
> > >              - python3-setuptools
> > > +    - env:
> > > +        # NOTE: Building SWR is 2x (yes two) times slower than all the other
> > > +        # gallium drivers combined.
> > > +        # Start this early so that it doesn't hunder the run time.
> > > +        - LABEL="meson Gallium Drivers SWR"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
> > > +        - GALLIUM_DRIVERS="swr"
> > > +        - LLVM_VERSION=6.0
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          packages:
> > > +            - llvm-6.0-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3.5
> > > +            - python3-pip
> > > +            - python3-setuptools
> > > +    - env:
> > > +        - LABEL="meson Gallium Drivers RadeonSI"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
> > > +        - GALLIUM_DRIVERS="radeonsi"
> > > +        - LLVM_VERSION=7
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          sources:
> > > +            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
> > > +              key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
> > > +          packages:
> > > +            # From sources above
> > > +            - llvm-7-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3.5
> > > +            - python3-pip
> > > +            - python3-setuptools
> > > +    - env:
> > > +        - LABEL="meson Gallium Drivers Other"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
> > > +        - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
> > > +        - LLVM_VERSION=5.0
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          packages:
> > > +            # LLVM packaging is broken and misses these dependencies
> > > +            - libedit-dev
> > > +            - llvm-5.0-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3.5
> > > +            - python3-pip
> > > +            - python3-setuptools
> > > +    - env:
> > > +        - LABEL="meson Gallium ST Clover LLVM-5.0"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
> > > +        - GALLIUM_DRIVERS="r600"
> > > +        - LLVM_VERSION=5.0
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          packages:
> > > +            - libclc-dev
> > > +            # LLVM packaging is broken and misses these dependencies
> > > +            - libedit-dev
> > > +            - llvm-5.0-dev
> > > +            - clang-5.0
> > > +            - libclang-5.0-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3-pip
> > > +            - python3-setuptools
> > > +    - env:
> > > +        - LABEL="meson Gallium ST Clover LLVM-6.0"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
> > > +        - GALLIUM_DRIVERS="r600"
> > > +        - LLVM_VERSION=6.0
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          packages:
> > > +            - libclc-dev
> > > +            - llvm-6.0-dev
> > > +            - clang-6.0
> > > +            - libclang-6.0-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3.5
> > > +            - python3-pip
> > > +            - python3-setuptools
> > > +    - env:
> > > +        - LABEL="meson Gallium ST Clover LLVM-7"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
> > > +        - GALLIUM_DRIVERS="r600,radeonsi"
> > > +        - LLVM_VERSION=7
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          sources:
> > > +            - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
> > > +              key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
> > > +          packages:
> > > +            - libclc-dev
> > > +            # From sources above
> > > +            - llvm-7-dev
> > > +            - clang-7
> > > +            - libclang-7-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3.5
> > > +            - python3-pip
> > > +            - python3-setuptools
> > > +    - env:
> > > +        - LABEL="meson Gallium ST Other"
> > > +        - BUILD=meson
> > > +        - UNWIND="true"
> > > +        - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
> > > +        - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=true -Dgallium-xvmc=true -Dgallium-omx=bellagio -Dgallium-va=true -Dgallium-xa=true -Dgallium-nine=true -Dgallium-opencl=disabled -Dosmesa=gallium"
> > > +        # We need swrast for osmesa and nine.
> > > +        # Nouveau supports, or builds at least against all ST.
> > > +        - GALLIUM_DRIVERS="nouveau,swrast"
> > > +        - LLVM_VERSION=5.0
> > > +        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
> > > +      addons:
> > > +        apt:
> > > +          packages:
> > > +            - llvm-5.0-dev
> > > +            # LLVM packaging is broken and misses these dependencies
> > > +            - libedit-dev
> > > +            # Nine requires gcc 4.6... which is the one we have right ?
> > > +            - libxvmc-dev
> > > +            # Build locally, for now.
> > > +            #- libvdpau-dev
> > > +            #- libva-dev
> > > +            - libomxil-bellagio-dev
> > > +            # Common
> > > +            - xz-utils
> > > +            - libexpat1-dev
> > > +            - libx11-xcb-dev
> > > +            - libelf-dev
> > > +            - libunwind8-dev
> > > +            - python3.5
> > > +            - python3-pip
> > > +            - python3-setuptools
> > >      - env:
> > >          # NOTE: Building SWR is 2x (yes two) times slower than all the other
> > >          # gallium drivers combined.
> > > --
> > > 2.19.2
> >
> > for the last three patches:
> > Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
> >
> Smashing, tyvm.
> 
> > I was thinking about SWR. Since it's so slow it might make sense to make the SWR
> > builds the first builds so we can run the rest of the builds concurrently with
> > it. Just a thought
> >
> Eric did explicitly push vulkan/classic at the top for quicker feedback.
> If you can agree on which one - personally either way looks fine.
> 
> -Emil

It's just a thought that since SWR takes ~25 minutes in travis, and travis runs 4
builds concurrently we could probably build all the other builds in ~the same
time as the two SWR builds. But quicker feedback of "this is borked" seems
useful too. 

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181217/4a220f21/attachment.sig>


More information about the mesa-dev mailing list