From 8be81f8a2a9f3f838cc550aeddf79657608e1008 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michel=20D=C3=A4nzer?= Date: Fri, 31 Jan 2020 16:07:10 +0100 Subject: [PATCH] gitlab-ci: Build radeonsi & RADV in the ppc64el job This requires cross-building libdrm for ppc64el. Reviewed-by: Adam Jackson Reviewed-by: Eric Anholt Tested-by: Marge Bot Part-of: --- .gitlab-ci.yml | 3 ++- .gitlab-ci/container/x86_build.sh | 39 +++++++++++++++++-------------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a194d6c0838..508ae0df36a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -483,8 +483,9 @@ meson-ppc64el: - meson-s390x variables: CROSS: ppc64el - GALLIUM_DRIVERS: "nouveau,swrast,virgl" + GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl" LLVM_VERSION: "8" + VULKAN_DRIVERS: "amd" meson-mingw32-x86_64: extends: .meson-build diff --git a/.gitlab-ci/container/x86_build.sh b/.gitlab-ci/container/x86_build.sh index 141c198eac8..7fcb32ef328 100644 --- a/.gitlab-ci/container/x86_build.sh +++ b/.gitlab-ci/container/x86_build.sh @@ -64,6 +64,7 @@ apt-get install -y --no-remove \ libva-dev \ libvdpau-dev \ libvulkan-dev \ + libvulkan-dev:ppc64el \ libx11-dev \ libx11-xcb-dev \ libxdamage-dev \ @@ -139,6 +140,23 @@ PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/lib/pkgconfig pkg-config \$@ EOF chmod +x /usr/local/bin/x86_64-w64-mingw32-pkg-config + +# Generate cross build files for Meson +for arch in $CROSS_ARCHITECTURES; do + cross_file="/cross_file-$arch.txt" + /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file" + # Explicitly set ccache path for cross compilers + sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file" + if [ "$arch" = "i386" ]; then + # Work around a bug in debcrossgen that should be fixed in the next release + sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file" + fi + + # Rely on qemu-user being configured in binfmt_misc on the host + sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" +done + + # for the vulkan overlay layer wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip unzip glslang-master-linux-Release.zip bin/glslangValidator @@ -175,7 +193,10 @@ rm -rf $LIBXCB_VERSION wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2 tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2 -cd $LIBDRM_VERSION; meson build -D vc4=true -D freedreno=true -D etnaviv=true; ninja -j4 -C build install; cd .. +cd $LIBDRM_VERSION +meson build -D vc4=true -D freedreno=true -D etnaviv=true -D libdir=lib/x86_64-linux-gnu; ninja -j4 -C build install +rm -rf build; meson --cross-file=/cross_file-ppc64el.txt build -D libdir=lib/powerpc64le-linux-gnu; ninja -j4 -C build install +cd .. rm -rf $LIBDRM_VERSION wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz @@ -207,22 +228,6 @@ make -j4 popd -# Generate cross build files for Meson -for arch in $CROSS_ARCHITECTURES; do - cross_file="/cross_file-$arch.txt" - /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file" - # Explicitly set ccache path for cross compilers - sed -i "s|/usr/bin/\([^-]*\)-linux-gnu\([^-]*\)-g|/usr/lib/ccache/\\1-linux-gnu\\2-g|g" "$cross_file" - if [ "$arch" = "i386" ]; then - # Work around a bug in debcrossgen that should be fixed in the next release - sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file" - fi - - # Rely on qemu-user being configured in binfmt_misc on the host - sed -i -e '/\[properties\]/a\' -e "needs_exe_wrapper = False" "$cross_file" -done - - # Remove ccache directory, useless for the build jobs rm -rf $(ccache --get-config=cache_dir) -- 2.30.2