From 101065642d2bf6ae07b72139d13011f5dcc3125a Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 25 Oct 2024 19:50:41 +0100 Subject: [PATCH] ci/debian: Upgrade Debian images to LLVM 19 LLVM 15 is pretty old, and notably not supported by either ANGLE nor Skia anymore. So let's move up to LLVM 19 using packages provided by LLVM themselves, apart from PPC and ARMv7 which don't have builds. The Skia build now requires a bunch of new warning exclusions; hopefully most of these are no longer needed when we can upgrade Skia shortly. The ci-deb-repo revision has also been bumped to get us a new version of xtensor which builds with LLVM 19, and a version of spirv-tools which also works with LLVM 19. Signed-off-by: Daniel Stone Closes: mesa/mesa#11538 Part-of: --- .gitlab-ci/build/gitlab-ci.yml | 1 + .gitlab-ci/container/build-llvm-spirv.sh | 6 +- .gitlab-ci/container/build-skqp_base.gn | 5 + .gitlab-ci/container/debian/arm64_build.sh | 7 +- .../container/debian/maybe-add-llvm-repo.sh | 18 ++++ .gitlab-ci/container/debian/test-base.sh | 5 +- .../container/debian/x86_64_build-base.sh | 4 +- .gitlab-ci/container/debian/x86_64_build.sh | 1 + .gitlab-ci/container/gitlab-ci.yml | 12 ++- .gitlab-ci/container/lava_build.sh | 5 +- .gitlab-ci/image-tags.yml | 14 +-- src/freedreno/ci/freedreno-a618-fails.txt | 91 +++++++++++++++++++ src/freedreno/ci/freedreno-a660-fails.txt | 3 + .../llvmpipe/ci/llvmpipe-rusticl-fails.txt | 3 + src/intel/ci/intel-adl-fails.txt | 3 + 15 files changed, 160 insertions(+), 18 deletions(-) create mode 100644 .gitlab-ci/container/debian/maybe-add-llvm-repo.sh diff --git a/.gitlab-ci/build/gitlab-ci.yml b/.gitlab-ci/build/gitlab-ci.yml index dfc9a148876..c666b80ae47 100644 --- a/.gitlab-ci/build/gitlab-ci.yml +++ b/.gitlab-ci/build/gitlab-ci.yml @@ -708,6 +708,7 @@ debian-clang: -Wno-error=overloaded-virtual -Wno-error=tautological-constant-out-of-range-compare -Wno-error=unused-private-field + -Wno-error=vla-cxx-extension DRI_LOADERS: > -D glx=dri -D gbm=enabled diff --git a/.gitlab-ci/container/build-llvm-spirv.sh b/.gitlab-ci/container/build-llvm-spirv.sh index 125420c9731..8fcfa4e9851 100644 --- a/.gitlab-ci/container/build-llvm-spirv.sh +++ b/.gitlab-ci/container/build-llvm-spirv.sh @@ -4,7 +4,11 @@ set -ex uncollapsed_section_start llvm-spirv "Building LLVM-SPIRV-Translator" -VER="${LLVM_VERSION:?llvm not set}.0.0" +if [ "${LLVM_VERSION:?llvm version not set}" -ge 18 ]; then + VER="${LLVM_VERSION}.1.0" +else + VER="${LLVM_VERSION}.0.0" +fi curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \ -O "https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/refs/tags/v${VER}.tar.gz" diff --git a/.gitlab-ci/container/build-skqp_base.gn b/.gitlab-ci/container/build-skqp_base.gn index 472b44fb8e4..1a64da34e0e 100644 --- a/.gitlab-ci/container/build-skqp_base.gn +++ b/.gitlab-ci/container/build-skqp_base.gn @@ -34,6 +34,11 @@ extra_cflags_cc = [ "-Wno-unused-but-set-variable", "-Wno-sizeof-array-div", "-Wno-string-concatenation", + "-Wno-unsafe-buffer-usage", + "-Wno-switch-default", + "-Wno-cast-function-type-strict", + "-Wno-format", + "-Wno-enum-constexpr-conversion", ] cc_wrapper = "ccache" diff --git a/.gitlab-ci/container/debian/arm64_build.sh b/.gitlab-ci/container/debian/arm64_build.sh index e9d4e078477..e3cf5351ca6 100644 --- a/.gitlab-ci/container/debian/arm64_build.sh +++ b/.gitlab-ci/container/debian/arm64_build.sh @@ -9,10 +9,11 @@ set -o xtrace : "${LLVM_VERSION:?llvm version not set}" -apt-get -y install ca-certificates +apt-get -y install ca-certificates curl gnupg2 sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list -apt-get update + +. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh # Ephemeral packages (installed for this script and removed again at the end) EPHEMERAL=( @@ -81,6 +82,8 @@ DEPS=( zstd ) +apt-get update + apt-get -y install "${DEPS[@]}" "${EPHEMERAL[@]}" pip3 install --break-system-packages git+http://gitlab.freedesktop.org/freedesktop/ci-templates@ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 diff --git a/.gitlab-ci/container/debian/maybe-add-llvm-repo.sh b/.gitlab-ci/container/debian/maybe-add-llvm-repo.sh new file mode 100644 index 00000000000..6890fb63721 --- /dev/null +++ b/.gitlab-ci/container/debian/maybe-add-llvm-repo.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +# Check to see if we need a separate repo to install LLVM. + +case "${FDO_DISTRIBUTION_VERSION%-*},${LLVM_VERSION}" in + bookworm,15) + NEED_LLVM_REPO="false" + ;; + *) + NEED_LLVM_REPO="true" + ;; +esac + +if [ "$NEED_LLVM_REPO" = "true" ]; then + curl -s https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - + export LLVM_APT_REPO="deb [trusted=yes] https://apt.llvm.org/${FDO_DISTRIBUTION_VERSION%-*}/ llvm-toolchain-${FDO_DISTRIBUTION_VERSION%-*}-${LLVM_VERSION} main" + echo "$LLVM_APT_REPO" | tee /etc/apt/sources.list.d/llvm.list +fi diff --git a/.gitlab-ci/container/debian/test-base.sh b/.gitlab-ci/container/debian/test-base.sh index e4ea33d906a..01d3907e49e 100644 --- a/.gitlab-ci/container/debian/test-base.sh +++ b/.gitlab-ci/container/debian/test-base.sh @@ -15,7 +15,7 @@ uncollapsed_section_start debian_setup "Base Debian system setup" export DEBIAN_FRONTEND=noninteractive -apt-get install -y ca-certificates gnupg2 software-properties-common +apt-get install -y curl ca-certificates gnupg2 software-properties-common sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* @@ -23,6 +23,8 @@ echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/ : "${LLVM_VERSION:?llvm version not set!}" +. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh + # Ephemeral packages (installed for this script and removed again at the end) EPHEMERAL=( autoconf @@ -40,6 +42,7 @@ EPHEMERAL=( libasound2-dev libcap-dev "libclang-cpp${LLVM_VERSION}-dev" + "libclang-rt-${LLVM_VERSION}-dev" libdrm-dev libegl-dev libelf-dev diff --git a/.gitlab-ci/container/debian/x86_64_build-base.sh b/.gitlab-ci/container/debian/x86_64_build-base.sh index 91f2a42ae0d..a7fcc8184f7 100644 --- a/.gitlab-ci/container/debian/x86_64_build-base.sh +++ b/.gitlab-ci/container/debian/x86_64_build-base.sh @@ -14,10 +14,12 @@ set -o xtrace export DEBIAN_FRONTEND=noninteractive : "${LLVM_VERSION:?llvm version not set!}" -apt-get install -y ca-certificates +apt-get install -y ca-certificates curl gnupg2 sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list.d/* echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list +. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh + # Ephemeral packages (installed for this script and removed again at # the end) EPHEMERAL=( diff --git a/.gitlab-ci/container/debian/x86_64_build.sh b/.gitlab-ci/container/debian/x86_64_build.sh index ffb5f1f320c..86b6a4de2b5 100644 --- a/.gitlab-ci/container/debian/x86_64_build.sh +++ b/.gitlab-ci/container/debian/x86_64_build.sh @@ -31,6 +31,7 @@ DEPS=( libarchive-dev libdrm-dev "libclang-cpp${LLVM_VERSION}-dev" + "libclang-rt-${LLVM_VERSION}-dev" libgbm-dev libglvnd-dev liblua5.3-dev diff --git a/.gitlab-ci/container/gitlab-ci.yml b/.gitlab-ci/container/gitlab-ci.yml index 8f4a3888997..e65cf894638 100644 --- a/.gitlab-ci/container/gitlab-ci.yml +++ b/.gitlab-ci/container/gitlab-ci.yml @@ -72,7 +72,7 @@ debian/x86_64_build-base: - .debian-container variables: MESA_IMAGE_TAG: &debian-x86_64_build-base "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}" - LLVM_VERSION: &debian-x86_64-llvm 15 + LLVM_VERSION: &debian-x86_64-llvm 19 .use-debian/x86_64_build-base: extends: @@ -130,6 +130,7 @@ debian/ppc64el_build: - .use-debian/x86_64_build-base variables: MESA_IMAGE_TAG: &debian-ppc64el_build ${DEBIAN_BUILD_TAG} + LLVM_VERSION: &debian-ppc64el-llvm 15 # no LLVM packages for PPC .use-debian/ppc64el_build: extends: @@ -138,7 +139,7 @@ debian/ppc64el_build: MESA_BASE_TAG: *debian-x86_64_build-base MESA_IMAGE_PATH: "debian/ppc64el_build" MESA_IMAGE_TAG: *debian-ppc64el_build - LLVM_VERSION: *debian-x86_64-llvm + LLVM_VERSION: *debian-ppc64el-llvm needs: - debian/ppc64el_build @@ -148,6 +149,7 @@ debian/s390x_build: - .use-debian/x86_64_build-base variables: MESA_IMAGE_TAG: &debian-s390x_build ${DEBIAN_BUILD_TAG} + LLVM_VERSION: &debian-s390x-llvm 19 .use-debian/s390x_build: extends: @@ -156,7 +158,7 @@ debian/s390x_build: MESA_BASE_TAG: *debian-x86_64_build-base MESA_IMAGE_PATH: "debian/s390x_build" MESA_IMAGE_TAG: *debian-s390x_build - LLVM_VERSION: *debian-x86_64-llvm + LLVM_VERSION: *debian-s390x-llvm needs: - debian/s390x_build @@ -200,7 +202,7 @@ debian/arm64_build: - aarch64 variables: MESA_IMAGE_TAG: &debian-arm64_build "${DEBIAN_BASE_TAG}--${PKG_REPO_REV}" - LLVM_VERSION: &debian-arm64-llvm 15 + LLVM_VERSION: &debian-arm64-llvm 19 .use-debian/arm64_build: extends: @@ -485,7 +487,7 @@ kernel+rootfs_arm32: - .firmware_arm32 variables: DEBIAN_ARCH: "armhf" - LLVM_VERSION: *debian-arm64-llvm # these are tied together as arm32 is built within aarch64 + LLVM_VERSION: &debian-arm32-llvm 15 # no armhf builds for LLVM # Cannot use anchors defined here from included files, so use extends: instead .use-kernel+rootfs-arm: diff --git a/.gitlab-ci/container/lava_build.sh b/.gitlab-ci/container/lava_build.sh index 56fc400ea41..7f617e8b7f6 100755 --- a/.gitlab-ci/container/lava_build.sh +++ b/.gitlab-ci/container/lava_build.sh @@ -183,6 +183,8 @@ CONTAINER_EPHEMERAL=( echo "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" | tee /etc/apt/sources.list.d/gfx-ci_.list +. .gitlab-ci/container/debian/maybe-add-llvm-repo.sh + apt-get update apt-get install -y --no-remove \ -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' \ @@ -266,7 +268,8 @@ mmdebstrap \ bookworm \ "$ROOTFS/" \ "http://deb.debian.org/debian" \ - "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" + "deb [trusted=yes] https://gitlab.freedesktop.org/gfx-ci/ci-deb-repo/-/raw/${PKG_REPO_REV}/ ${FDO_DISTRIBUTION_VERSION%-*} main" \ + "${LLVM_APT_REPO:-}" ############### Install mold . .gitlab-ci/container/build-mold.sh diff --git a/.gitlab-ci/image-tags.yml b/.gitlab-ci/image-tags.yml index e4ec3ec93de..e0abbd58ec3 100644 --- a/.gitlab-ci/image-tags.yml +++ b/.gitlab-ci/image-tags.yml @@ -13,10 +13,10 @@ variables: DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base" - DEBIAN_BASE_TAG: "20250128-llversionm1" + DEBIAN_BASE_TAG: "20250128-llvm19-up" DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build" - DEBIAN_BUILD_TAG: "20250128-llversionm1" + DEBIAN_BUILD_TAG: "20250128-llvm19-up" DEBIAN_X86_64_TEST_BASE_IMAGE: "debian/x86_64_test-base" DEBIAN_ARM64_TEST_BASE_IMAGE: "debian/arm64_test-base" @@ -27,10 +27,10 @@ variables: DEBIAN_ARM64_TEST_IMAGE_VK_PATH: "debian/arm64_test-vk" DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android" - DEBIAN_TEST_ANDROID_TAG: "20250128-llversionm1" - DEBIAN_TEST_GL_TAG: "20250128-llversionm1" - DEBIAN_TEST_VK_TAG: "20250128-llversionm1" - KERNEL_ROOTFS_TAG: "20250128-llversionm1" + DEBIAN_TEST_ANDROID_TAG: "20250128-llvm19-up" + DEBIAN_TEST_GL_TAG: "20250128-llvm19-up" + DEBIAN_TEST_VK_TAG: "20250128-llvm19-up" + KERNEL_ROOTFS_TAG: "20250128-llvm19-up" DEBIAN_PYUTILS_IMAGE: "debian/x86_64_pyutils" DEBIAN_PYUTILS_TAG: "20241223-pyutils" @@ -41,7 +41,7 @@ variables: KERNEL_TAG: "v6.13-rc4-mesa-5e77" KERNEL_REPO: "gfx-ci/linux" - PKG_REPO_REV: "bca9635d" + PKG_REPO_REV: "95bf62c" FLUSTER_VECTORS_VERSION: "5" diff --git a/src/freedreno/ci/freedreno-a618-fails.txt b/src/freedreno/ci/freedreno-a618-fails.txt index b164b81e9fe..979eba223cd 100644 --- a/src/freedreno/ci/freedreno-a618-fails.txt +++ b/src/freedreno/ci/freedreno-a618-fails.txt @@ -311,3 +311,94 @@ program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float16, program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float2,Fail program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float4,Fail program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float8,Fail + +# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i". +program@execute@vector-conversion,Fail + +# piles of new fails since updating skqp; to be re-evaluated with new upstream +gl_all_bitmap_configs,Fail +gl_androidblendmodes,Fail +gl_annotated_text,Fail +gl_arithmode,Fail +gl_bitmapcopy,Fail +gl_blob_rsxform,Fail +gl_blurSmallRadii,Fail +gl_coloremoji_blendmodes,Fail +gl_colorwheelnative,Fail +gl_combinemaskfilter,Fail +gl_dashtextcaps,Fail +gl_degenerate_gradients,Fail +gl_draw-atlas-colors,Fail +gl_encode,Fail +gl_gammagradienttext,Fail +gl_gammatext,Fail +gl_gpusamplerstress,Fail +gl_gradtext,Fail +gl_highcontrastfilter,Fail +gl_image-surface,Fail +gl_imageblur2,Fail +gl_imageblur_large,Fail +gl_imageblurtiled,Fail +gl_lcdblendmodes,Fail +gl_lcdtextsize,Fail +gl_scaled_tilemode_bitmap,Fail +gl_scaled_tilemode_gradient,Fail +gl_scaled_tilemodes,Fail +gl_simpleaaclip_aaclip,Fail +gl_skbug_5321,Fail +gl_srcmode,Fail +gl_surfaceprops,Fail +gl_textblob_intercepts,Fail +gl_textblobblockreordering,Fail +gl_textblobcolortrans,Fail +gl_textfilter_color,Fail +gl_textfilter_image,Fail +gl_tilemode_bitmap,Fail +gl_typefacestyles,Fail +gl_wacky_yuv_formats,Fail +gl_wacky_yuv_formats_cs,Fail +gl_xfermodes2,Fail +gl_xfermodes3,Fail +vk_all_bitmap_configs,Fail +vk_androidblendmodes,Fail +vk_annotated_text,Fail +vk_arithmode,Fail +vk_bitmapcopy,Fail +vk_blob_rsxform,Fail +vk_blurSmallRadii,Fail +vk_coloremoji_blendmodes,Fail +vk_colorwheelnative,Fail +vk_combinemaskfilter,Fail +vk_dashtextcaps,Fail +vk_degenerate_gradients,Fail +vk_draw-atlas-colors,Fail +vk_encode,Fail +vk_gammagradienttext,Fail +vk_gammatext,Fail +vk_gpusamplerstress,Fail +vk_gradtext,Fail +vk_highcontrastfilter,Fail +vk_image-surface,Fail +vk_imageblur2,Fail +vk_imageblur_large,Fail +vk_imageblurtiled,Fail +vk_lcdblendmodes,Fail +vk_lcdtextsize,Fail +vk_scaled_tilemode_bitmap,Fail +vk_scaled_tilemode_gradient,Fail +vk_scaled_tilemodes,Fail +vk_simpleaaclip_aaclip,Fail +vk_skbug_5321,Fail +vk_srcmode,Fail +vk_surfaceprops,Fail +vk_textblob_intercepts,Fail +vk_textblobblockreordering,Fail +vk_textblobcolortrans,Fail +vk_textfilter_color,Fail +vk_textfilter_image,Fail +vk_tilemode_bitmap,Fail +vk_typefacestyles,Fail +vk_wacky_yuv_formats,Fail +vk_wacky_yuv_formats_cs,Fail +vk_xfermodes2,Fail +vk_xfermodes3,Fail diff --git a/src/freedreno/ci/freedreno-a660-fails.txt b/src/freedreno/ci/freedreno-a660-fails.txt index 10d5e10da4e..1159f7c350b 100644 --- a/src/freedreno/ci/freedreno-a660-fails.txt +++ b/src/freedreno/ci/freedreno-a660-fails.txt @@ -80,3 +80,6 @@ program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float16, program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float2,Fail program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float4,Fail program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float8,Fail + +# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i". +program@execute@vector-conversion,Fail diff --git a/src/gallium/drivers/llvmpipe/ci/llvmpipe-rusticl-fails.txt b/src/gallium/drivers/llvmpipe/ci/llvmpipe-rusticl-fails.txt index edb994f0381..b42d41f5fdc 100644 --- a/src/gallium/drivers/llvmpipe/ci/llvmpipe-rusticl-fails.txt +++ b/src/gallium/drivers/llvmpipe/ci/llvmpipe-rusticl-fails.txt @@ -42,3 +42,6 @@ api@clgetcommandqueueinfo,Fail # demands at least 1/4 system RAM be allocatable, which we can't guarantee api@clgetdeviceinfo,Fail + +# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i". +program@execute@vector-conversion,Fail diff --git a/src/intel/ci/intel-adl-fails.txt b/src/intel/ci/intel-adl-fails.txt index c90c39595f5..d66146f81ba 100644 --- a/src/intel/ci/intel-adl-fails.txt +++ b/src/intel/ci/intel-adl-fails.txt @@ -12,6 +12,9 @@ program@execute@vstore@vstore-uchar-private,Crash program@execute@vstore@vstore-ushort-private,Crash program@execute@vstore@vstore_half-float-private,Crash +# (file=input,line=0,column=0,index=0): Unresolved external reference to "_Z21convert_char4_sat_rteDv4_i". +program@execute@vector-conversion,Fail + # Piglit CL bug program@execute@builtin@builtin-float-nextafter-1.0.generated,Fail program@execute@builtin@builtin-float-nextafter-1.0.generated@nextafter float1,Fail