gitlab-ci: Build i386 and ARM drivers in surfaceless mode.

I don't particularly care about getting x86/ARM cross-build coverage
of all the window systems, but we do want to be building src/mesa/
(for x86 asm) and gallium drivers (for vc4 NEON asm).  I'm also hoping
to use these build products for testing freedreno on actual HW (which
we do using surfaceless).

This increases the docker image from 1.4G to 1.5G.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
Acked-by: Eric Engestrom <eric@engestrom.ch>
This commit is contained in:
Eric Anholt 2019-07-11 12:58:28 -07:00 committed by Eric Engestrom
parent ce81c9a2e1
commit 11aa32a447
3 changed files with 88 additions and 2 deletions

View File

@ -14,7 +14,7 @@
# repository's registry will be used there as well.
variables:
UPSTREAM_REPO: mesa/mesa
DEBIAN_TAG: "2019-07-04"
DEBIAN_TAG: "2019-07-11"
DEBIAN_VERSION: stretch-slim
DEBIAN_IMAGE: "$CI_REGISTRY_IMAGE/debian/$DEBIAN_VERSION:$DEBIAN_TAG"
@ -227,6 +227,71 @@ meson-vulkan:
EXTRA_OPTION: >
-D vulkan-overlay-layer=true
.meson-cross:
extends: .meson-build
variables:
UNWIND: "false"
DRI_LOADERS: >
-D glx=disabled
-D gbm=false
-D egl=false
-D platforms=surfaceless
-D osmesa=none
GALLIUM_ST: >
-D dri3=false
-D gallium-vdpau=false
-D gallium-xvmc=false
-D gallium-omx=disabled
-D gallium-va=false
-D gallium-xa=false
-D gallium-nine=false
-D llvm=false
CROSS: >
--libdir lib
--cross /tmp/cross_file.txt
script:
- /usr/share/meson/debcrossgen --arch ${ARCH} -o /tmp/cross_file.txt
# Work around a bug in debcrossgen that should be fixed in the next release
- sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" /tmp/cross_file.txt
- .gitlab-ci/meson-build.sh
meson-armhf:
extends: .meson-cross
variables:
ARCH: armhf
VULKAN_DRIVERS: freedreno
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
# Disable the tests since we're cross compiling.
EXTRA_OPTION: >
-D build-tests=false
-D I-love-half-baked-turnips=true
-D vulkan-overlay-layer=true
meson-arm64:
extends: .meson-cross
variables:
ARCH: arm64
VULKAN_DRIVERS: freedreno
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,tegra,v3d,vc4"
# Disable the tests since we're cross compiling.
EXTRA_OPTION: >
-D build-tests=false
-D I-love-half-baked-turnips=true
-D vulkan-overlay-layer=true
meson-i386:
extends: .meson-cross
variables:
ARCH: i386
VULKAN_DRIVERS: intel
GALLIUM_DRIVERS: "swrast"
# Disable i386 tests, because u_format_tests gets precision
# failures in dxtn unpacking
EXTRA_OPTION: >
-D build-tests=false
-D vulkan-overlay-layer=true
scons-nollvm:
extends: .scons-build
variables:

View File

@ -5,6 +5,11 @@ set -o xtrace
export DEBIAN_FRONTEND=noninteractive
CROSS_ARCHITECTURES="armhf arm64 i386"
for arch in $CROSS_ARCHITECTURES; do
dpkg --add-architecture $arch
done
apt-get install -y \
apt-transport-https \
ca-certificates \
@ -75,6 +80,22 @@ apt-get install -y \
gettext \
make
# Cross-build Mesa deps
for arch in $CROSS_ARCHITECTURES; do
apt-get install -y \
libdrm-dev:${arch} \
libexpat1-dev:${arch} \
libelf-dev:${arch}
done
apt-get install -y \
dpkg-dev \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu \
gcc-arm-linux-gnueabihf \
g++-arm-linux-gnueabihf \
gcc-i686-linux-gnu \
g++-i686-linux-gnu
# for 64bit windows cross-builds
apt-get install -y mingw-w64
@ -185,7 +206,6 @@ apt-get install -y libxml2-utils
apt-get purge -y \
automake \
libtool \
make \
curl \
unzip \
wget \

View File

@ -16,6 +16,7 @@ fi
rm -rf _build
meson _build --native-file=native.file \
${CROSS} \
-D buildtype=debug \
-D build-tests=true \
-D libunwind=${UNWIND} \