Most of our build jobs have had a timeout of 1 hour since6425b6e3d4, which pushed the timeout as high as possible to allow for LTO building taking forever. Since then, we've pulled LTO back to only running on the fedora-release nightly job. This tries to bring us back to the ideal from322a83f321, where the build jobs all have very low timeouts both for the overall job as well as the build section we run. So if anything goes wrong - apart from fedora-release - we'll just assume the runner has some environmental damage, give up, and try again. Of the build-for-tests jobs, all but the ASan and UBSan jobs regularly complete in around 5 minutes, apart from debian-testing which is our critical-path build job for almost all x86-64 testing. This is obviously not good, but is tracked in mesa#12544. The build-only jobs not using sanitizers also typically complete in 3-4 minutes, with the exception of debian-clang-release and debian-x86_32 which are closer to 10 minutes. That's not ideal, but they're also not currently on the critical path, so we can live with that. Signed-off-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34280>
848 lines
24 KiB
YAML
848 lines
24 KiB
YAML
# Shared between windows and Linux
|
|
.build-common:
|
|
extends: .container+build-rules
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
interruptible: true
|
|
variables:
|
|
# Build jobs are typically taking between 5-12 minutes, depending on how
|
|
# much they build and how many new Rust compilers we have to build twice.
|
|
# Allow 25 minutes as a reasonable margin: beyond this point, something
|
|
# has gone badly wrong, and we should try again to see if we can get
|
|
# something from it.
|
|
#
|
|
# Some jobs not in the critical path use a higher timeout, particularly
|
|
# when building with ASan or UBSan.
|
|
BUILD_JOB_TIMEOUT: 12m
|
|
RUN_MESON_TESTS: "true"
|
|
timeout: 16m
|
|
# We don't want to download any previous job's artifacts
|
|
dependencies: []
|
|
artifacts:
|
|
name: "${CI_PROJECT_NAME}_${CI_JOB_NAME}"
|
|
when: always
|
|
paths:
|
|
- _build/meson-logs/*.txt
|
|
- _build/meson-logs/strace
|
|
- _build/.ninja_log
|
|
- artifacts
|
|
|
|
.build-run-long:
|
|
variables:
|
|
BUILD_JOB_TIMEOUT: 18m
|
|
timeout: 25m
|
|
|
|
|
|
# Just Linux
|
|
.build-linux:
|
|
extends: .build-common
|
|
variables:
|
|
CCACHE_COMPILERCHECK: "content"
|
|
CCACHE_COMPRESS: "true"
|
|
CCACHE_DIR: /cache/mesa/ccache
|
|
# Use ccache transparently, and print stats before/after
|
|
before_script:
|
|
- !reference [default, before_script]
|
|
- |
|
|
export PATH="/usr/lib/ccache:$PATH"
|
|
export CCACHE_BASEDIR="$PWD"
|
|
if test -x /usr/bin/ccache; then
|
|
section_start ccache_before "ccache stats before build"
|
|
ccache --show-stats
|
|
section_end ccache_before
|
|
fi
|
|
after_script:
|
|
- if test -x /usr/bin/ccache; then ccache --show-stats | grep "Hits:"; fi
|
|
- !reference [default, after_script]
|
|
|
|
.build-windows:
|
|
extends:
|
|
- .build-common
|
|
- .windows-docker-tags
|
|
cache:
|
|
key: ${CI_JOB_NAME}
|
|
paths:
|
|
- subprojects/packagecache
|
|
|
|
.meson-build-for-tests:
|
|
extends:
|
|
- .build-linux
|
|
stage: build-for-tests
|
|
script:
|
|
- &meson-build timeout --verbose ${BUILD_JOB_TIMEOUT_OVERRIDE:-$BUILD_JOB_TIMEOUT} bash --login .gitlab-ci/meson/build.sh
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
.meson-build-only:
|
|
extends:
|
|
- .meson-build-for-tests
|
|
- .build-only-delayed-rules
|
|
stage: build-only
|
|
script:
|
|
- *meson-build
|
|
|
|
|
|
debian-testing:
|
|
extends:
|
|
- .meson-build-for-tests
|
|
- .use-debian/x86_64_build
|
|
- .build-run-long # but it really shouldn't! tracked in mesa#12544
|
|
- .ci-deqp-artifacts
|
|
variables:
|
|
UNWIND: "enabled"
|
|
DRI_LOADERS: >
|
|
-D egl=enabled
|
|
-D gbm=enabled
|
|
-D glvnd=disabled
|
|
-D glx=dri
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=true
|
|
-D gallium-va=enabled
|
|
GALLIUM_DRIVERS: "llvmpipe,softpipe,virgl,radeonsi,zink,iris,svga"
|
|
VULKAN_DRIVERS: "swrast,amd,intel,virtio"
|
|
BUILDTYPE: "debugoptimized"
|
|
EXTRA_OPTION: >
|
|
-D intel-elk=false
|
|
-D spirv-to-dxil=true
|
|
-D tools=drm-shim
|
|
-D valgrind=disabled
|
|
S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE}
|
|
RUN_MESON_TESTS: "false" # debian-build-testing already runs these
|
|
artifacts:
|
|
reports:
|
|
junit: artifacts/ci_scripts_report.xml
|
|
|
|
debian-testing-asan:
|
|
extends:
|
|
- debian-testing
|
|
- .meson-build-for-tests
|
|
- .build-run-long
|
|
variables:
|
|
VULKAN_DRIVERS: "swrast"
|
|
GALLIUM_DRIVERS: "llvmpipe,softpipe"
|
|
C_ARGS: >
|
|
-Wno-error=stringop-truncation
|
|
EXTRA_OPTION: >
|
|
-D b_sanitize=address
|
|
-D gallium-va=false
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=false
|
|
-D mesa-clc=system
|
|
-D tools=dlclose-skip
|
|
-D valgrind=disabled
|
|
S3_ARTIFACT_NAME: ""
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
RUN_MESON_TESTS: "false" # just too slow
|
|
# Do a host build for mesa-clc (asan complains not being loaded as
|
|
# the first library)
|
|
HOST_BUILD_OPTIONS: >
|
|
-D build-tests=false
|
|
-D enable-glcpp-tests=false
|
|
-D gallium-opencl=disabled
|
|
-D gallium-rusticl=false
|
|
-D gallium-nine=false
|
|
-D gallium-drivers=
|
|
-D glx=disabled
|
|
-D install-mesa-clc=true
|
|
-D mesa-clc=enabled
|
|
-D platforms=
|
|
-D video-codecs=
|
|
-D vulkan-drivers=
|
|
|
|
debian-testing-msan:
|
|
# https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo
|
|
# msan cannot fully work until it's used together with msan libc
|
|
extends:
|
|
- debian-clang
|
|
- .meson-build-only
|
|
- .build-run-long
|
|
variables:
|
|
# l_undef is incompatible with msan
|
|
EXTRA_OPTION:
|
|
-D b_sanitize=memory
|
|
-D b_lundef=false
|
|
-D mesa-clc=system
|
|
-D precomp-compiler=system
|
|
S3_ARTIFACT_NAME: ""
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
# Don't run all the tests yet:
|
|
# GLSL has some issues in sexpression reading.
|
|
# gtest has issues in its test initialization.
|
|
MESON_TEST_ARGS: "--suite glcpp --suite format"
|
|
GALLIUM_DRIVERS: "freedreno,iris,nouveau,r300,r600,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
|
VULKAN_DRIVERS: intel,amd,broadcom,virtio
|
|
RUN_MESON_TESTS: "false" # just too slow
|
|
# Do a host build for mesa-clc and precomp-compiler (msan complains about uninitialized
|
|
# values in the LLVM libs)
|
|
HOST_BUILD_OPTIONS: >
|
|
-D build-tests=false
|
|
-D enable-glcpp-tests=false
|
|
-D gallium-opencl=disabled
|
|
-D gallium-drivers=panfrost
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D mesa-clc=enabled
|
|
-D install-mesa-clc=true
|
|
-D precomp-compiler=enabled
|
|
-D install-precomp-compiler=true
|
|
|
|
debian-testing-ubsan:
|
|
extends:
|
|
- debian-testing
|
|
- .meson-build-for-tests
|
|
- .build-run-long
|
|
variables:
|
|
C_ARGS: >
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-truncation
|
|
CPP_ARGS: >
|
|
-Wno-error=array-bounds
|
|
GALLIUM_DRIVERS: "llvmpipe,softpipe"
|
|
VULKAN_DRIVERS: "swrast"
|
|
EXTRA_OPTION: >
|
|
-D b_sanitize=undefined
|
|
-D mesa-clc=system
|
|
-D gallium-rusticl=false
|
|
-D gallium-va=false
|
|
-D gallium-nine=false
|
|
S3_ARTIFACT_NAME: ""
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
RUN_MESON_TESTS: "false" # just too slow
|
|
HOST_BUILD_OPTIONS: >
|
|
-D build-tests=false
|
|
-D enable-glcpp-tests=false
|
|
-D gallium-opencl=disabled
|
|
-D gallium-rusticl=false
|
|
-D gallium-drivers=
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D mesa-clc=enabled
|
|
-D install-mesa-clc=true
|
|
|
|
debian-build-testing:
|
|
extends:
|
|
- .meson-build-for-tests
|
|
- .use-debian/x86_64_build
|
|
variables:
|
|
UNWIND: "enabled"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D glvnd=disabled
|
|
-D platforms=x11,wayland
|
|
-D legacy-x11=dri2
|
|
GALLIUM_ST: >
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=true
|
|
-D gallium-rusticl=false
|
|
GALLIUM_DRIVERS: "i915,iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
|
VULKAN_DRIVERS: "intel_hasvk,imagination-experimental,microsoft-experimental,nouveau,swrast"
|
|
BUILDTYPE: "debugoptimized"
|
|
EXTRA_OPTION: >
|
|
-D spirv-to-dxil=true
|
|
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,intel-ui,nir,nouveau,lima,panfrost,asahi
|
|
-D perfetto=true
|
|
S3_ARTIFACT_NAME: debian-build-testing
|
|
|
|
# Test a release build with -Werror so new warnings don't sneak in.
|
|
debian-release:
|
|
extends:
|
|
- .meson-build-only
|
|
- .use-debian/x86_64_build
|
|
variables:
|
|
UNWIND: "enabled"
|
|
C_ARGS: >
|
|
-Wno-error=stringop-overread
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D glvnd=disabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=false
|
|
-D llvm=enabled
|
|
GALLIUM_DRIVERS: "i915,iris,nouveau,r300,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
|
VULKAN_DRIVERS: "swrast,intel_hasvk,imagination-experimental,microsoft-experimental"
|
|
EXTRA_OPTION: >
|
|
-D spirv-to-dxil=true
|
|
-D tools=all
|
|
-D mesa-clc=enabled
|
|
-D precomp-compiler=enabled
|
|
-D intel-rt=enabled
|
|
-D imagination-srv=true
|
|
BUILDTYPE: "release"
|
|
S3_ARTIFACT_NAME: "mesa-x86_64-default-${BUILDTYPE}"
|
|
script:
|
|
- *meson-build
|
|
- 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi'
|
|
|
|
alpine-build-testing:
|
|
extends:
|
|
- .meson-build-only
|
|
- .use-alpine/x86_64_build
|
|
variables:
|
|
BUILDTYPE: "release"
|
|
C_ARGS: >
|
|
-Wno-error=cpp
|
|
-Wno-error=array-bounds
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-overread
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D glvnd=disabled
|
|
-D platforms=wayland
|
|
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,lima,nouveau,panfrost,r300,r600,radeonsi,svga,llvmpipe,softpipe,tegra,v3d,vc4,virgl,zink"
|
|
GALLIUM_ST: >
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=true
|
|
-D gallium-rusticl=false
|
|
-D gles1=disabled
|
|
-D gles2=enabled
|
|
-D llvm=enabled
|
|
-D llvm-orcjit=true
|
|
-D microsoft-clc=disabled
|
|
-D shared-llvm=enabled
|
|
UNWIND: "disabled"
|
|
VULKAN_DRIVERS: "amd,broadcom,freedreno,intel,imagination-experimental"
|
|
|
|
fedora-release:
|
|
extends:
|
|
- .meson-build-only
|
|
- .use-fedora/x86_64_build
|
|
- .build-run-long
|
|
# LTO builds can be really very slow, and we have no way to specify different
|
|
# timeouts for pre-merge and nightly jobs
|
|
timeout: 1h
|
|
variables:
|
|
BUILDTYPE: "release"
|
|
# array-bounds are pure non-LTO gcc buggy warning
|
|
# maybe-uninitialized is misfiring in nir_lower_gs_intrinsics.c, and
|
|
# a "maybe" warning should never be an error anyway.
|
|
C_ARGS: >
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-overread
|
|
-Wno-error=array-bounds
|
|
-Wno-error=maybe-uninitialized
|
|
CPP_ARGS: >
|
|
-Wno-error=dangling-reference
|
|
-Wno-error=overloaded-virtual
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D glvnd=enabled
|
|
-D platforms=x11,wayland
|
|
EXTRA_OPTION: >
|
|
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost,imagination
|
|
-D vulkan-layers=device-select,overlay
|
|
-D intel-rt=enabled
|
|
-D imagination-srv=true
|
|
-D teflon=true
|
|
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,i915,iris,lima,nouveau,panfrost,r300,r600,radeonsi,svga,llvmpipe,softpipe,tegra,v3d,vc4,virgl,zink"
|
|
GALLIUM_ST: >
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=true
|
|
-D gles1=disabled
|
|
-D gles2=enabled
|
|
-D llvm=enabled
|
|
-D microsoft-clc=disabled
|
|
-D shared-llvm=enabled
|
|
UNWIND: "disabled"
|
|
VULKAN_DRIVERS: "amd,asahi,broadcom,freedreno,imagination-experimental,intel,intel_hasvk"
|
|
|
|
debian-android:
|
|
extends:
|
|
- .android-variables
|
|
- .meson-cross
|
|
- .use-debian/android_build
|
|
- .ci-deqp-artifacts
|
|
- .meson-build-for-tests
|
|
variables:
|
|
BUILDTYPE: debug
|
|
UNWIND: "disabled"
|
|
C_ARGS: >
|
|
-Wno-error=asm-operand-widths
|
|
-Wno-error=constant-conversion
|
|
-Wno-error=enum-conversion
|
|
-Wno-error=initializer-overrides
|
|
-Wno-error=sometimes-uninitialized
|
|
CPP_ARGS: >
|
|
-Wno-error=c99-designator
|
|
-Wno-error=unused-variable
|
|
-Wno-error=unused-but-set-variable
|
|
-Wno-error=self-assign
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D gbm=disabled
|
|
-D egl=enabled
|
|
-D glvnd=disabled
|
|
-D platforms=android
|
|
FORCE_FALLBACK_FOR: llvm
|
|
EXTRA_OPTION: >
|
|
-D android-stub=true
|
|
-D platform-sdk-version=${ANDROID_SDK_VERSION}
|
|
-D cpp_rtti=false
|
|
-D valgrind=disabled
|
|
-D android-libbacktrace=disabled
|
|
-D mesa-clc=system
|
|
-D precomp-compiler=system
|
|
GALLIUM_ST: >
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=false
|
|
PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files"
|
|
HOST_BUILD_OPTIONS: >
|
|
-D build-tests=false
|
|
-D enable-glcpp-tests=false
|
|
-D gallium-opencl=disabled
|
|
-D gallium-drivers=panfrost
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D mesa-clc=enabled
|
|
-D install-mesa-clc=true
|
|
-D precomp-compiler=enabled
|
|
-D install-precomp-compiler=true
|
|
S3_ARTIFACT_NAME: mesa-x86_64-android-${BUILDTYPE}
|
|
script:
|
|
# x86_64 build:
|
|
# Can't do AMD drivers because they require LLVM, which is currently
|
|
# problematic in our Android builds.
|
|
- export CROSS=x86_64-linux-android
|
|
- export GALLIUM_DRIVERS=iris,virgl,zink,softpipe
|
|
- export VULKAN_DRIVERS=intel,virtio,swrast
|
|
- .gitlab-ci/create-llvm-meson-wrap-file.sh
|
|
- *meson-build
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
# remove all the files created by the previous build before the next build
|
|
- git clean -dxf .
|
|
# aarch64 build:
|
|
# build-only, to catch compilation regressions
|
|
# without calling .gitlab-ci/prepare-artifacts.sh so that the
|
|
# artifacts are not shipped in mesa-x86_64-android-${BUILDTYPE}
|
|
- export CROSS=aarch64-linux-android
|
|
- export GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d
|
|
- export VULKAN_DRIVERS=freedreno,broadcom,virtio
|
|
- *meson-build
|
|
|
|
.meson-cross:
|
|
extends:
|
|
- .meson-build-only
|
|
- .use-debian/x86_64_build
|
|
variables:
|
|
UNWIND: "disabled"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
|
|
.meson-arm:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/arm64_build
|
|
variables:
|
|
VULKAN_DRIVERS: "asahi,broadcom,freedreno"
|
|
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,nouveau,panfrost,llvmpipe,softpipe,tegra,v3d,vc4,zink"
|
|
BUILDTYPE: "debugoptimized"
|
|
|
|
debian-arm32:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
- .meson-build-for-tests
|
|
variables:
|
|
CROSS: armhf
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
# remove asahi & llvmpipe from the .meson-arm list because here we have llvm=disabled
|
|
VULKAN_DRIVERS: "broadcom,freedreno"
|
|
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,nouveau,panfrost,softpipe,tegra,v3d,vc4,zink"
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D valgrind=disabled
|
|
-D gallium-rusticl=false
|
|
-D mesa-clc=system
|
|
-D precomp-compiler=system
|
|
HOST_BUILD_OPTIONS: >
|
|
-D build-tests=false
|
|
-D enable-glcpp-tests=false
|
|
-D gallium-opencl=disabled
|
|
-D gallium-drivers=panfrost
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D mesa-clc=enabled
|
|
-D install-mesa-clc=true
|
|
-D precomp-compiler=enabled
|
|
-D install-precomp-compiler=true
|
|
S3_ARTIFACT_NAME: mesa-arm32-default-${BUILDTYPE}
|
|
# The strip command segfaults, failing to strip the binary and leaving
|
|
# tempfiles in our artifacts.
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
|
|
debian-arm32-asan:
|
|
extends:
|
|
- debian-arm32
|
|
- .meson-build-for-tests
|
|
- .build-run-long
|
|
variables:
|
|
GALLIUM_DRIVERS: "etnaviv"
|
|
VULKAN_DRIVERS: ""
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D b_sanitize=address
|
|
-D valgrind=disabled
|
|
-D tools=dlclose-skip
|
|
-D gallium-rusticl=false
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
RUN_MESON_TESTS: "false" # just too slow
|
|
S3_ARTIFACT_NAME: mesa-arm32-asan-${BUILDTYPE}
|
|
|
|
debian-arm64:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
- .meson-build-for-tests
|
|
variables:
|
|
C_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-Wno-error=stringop-truncation
|
|
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,panfrost,v3d,vc4,zink"
|
|
VULKAN_DRIVERS: "broadcom,freedreno,panfrost"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D valgrind=disabled
|
|
-D imagination-srv=true
|
|
-D freedreno-kmds=msm,virtio
|
|
-D teflon=true
|
|
GALLIUM_ST:
|
|
-D gallium-rusticl=true
|
|
RUN_MESON_TESTS: "false" # run by debian-arm64-build-testing
|
|
S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE}
|
|
|
|
debian-arm64-asan:
|
|
extends:
|
|
- debian-arm64
|
|
- .meson-build-for-tests
|
|
- .build-run-long
|
|
variables:
|
|
VULKAN_DRIVERS: "broadcom,freedreno"
|
|
GALLIUM_DRIVERS: "freedreno,vc4,v3d"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D b_sanitize=address
|
|
-D valgrind=disabled
|
|
-D tools=dlclose-skip
|
|
-D gallium-rusticl=false
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
RUN_MESON_TESTS: "false" # just too slow
|
|
S3_ARTIFACT_NAME: mesa-arm64-asan-${BUILDTYPE}
|
|
|
|
debian-arm64-ubsan:
|
|
extends:
|
|
- debian-arm64
|
|
- .meson-build-for-tests
|
|
- .build-run-long
|
|
variables:
|
|
VULKAN_DRIVERS: "broadcom"
|
|
GALLIUM_DRIVERS: "v3d,vc4"
|
|
C_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-truncation
|
|
CPP_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-fno-var-tracking-assignments
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D b_sanitize=undefined
|
|
-D gallium-rusticl=false
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
RUN_MESON_TESTS: "false" # just too slow
|
|
S3_ARTIFACT_NAME: mesa-arm64-ubsan-${BUILDTYPE}
|
|
|
|
debian-arm64-build-test:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
- .meson-build-only
|
|
variables:
|
|
VULKAN_DRIVERS: "amd,asahi,imagination-experimental,nouveau"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D tools=panfrost,imagination
|
|
-D perfetto=true
|
|
|
|
debian-arm64-release:
|
|
extends:
|
|
- debian-arm64
|
|
- .meson-build-only
|
|
variables:
|
|
BUILDTYPE: release
|
|
S3_ARTIFACT_NAME: mesa-arm64-default-${BUILDTYPE}
|
|
C_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-Wno-error=stringop-truncation
|
|
-Wno-error=stringop-overread
|
|
script:
|
|
- *meson-build
|
|
- 'if [ -n "$MESA_CI_PERFORMANCE_ENABLED" ]; then .gitlab-ci/prepare-artifacts.sh; fi'
|
|
|
|
debian-no-libdrm:
|
|
extends:
|
|
- .meson-arm
|
|
- .meson-build-only
|
|
variables:
|
|
VULKAN_DRIVERS: freedreno
|
|
GALLIUM_DRIVERS: "zink,llvmpipe"
|
|
BUILDTYPE: release
|
|
C_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-Wno-error=stringop-truncation
|
|
-Wno-error=stringop-overread
|
|
EXTRA_OPTION: >
|
|
-D freedreno-kmds=kgsl
|
|
-D glx=disabled
|
|
-D gbm=disabled
|
|
-D egl=disabled
|
|
-D perfetto=true
|
|
|
|
debian-clang:
|
|
extends:
|
|
- .meson-build-only
|
|
- .use-debian/x86_64_build
|
|
variables:
|
|
BUILDTYPE: debug
|
|
UNWIND: "enabled"
|
|
C_ARGS: >
|
|
-Wno-error=constant-conversion
|
|
-Wno-error=enum-conversion
|
|
-Wno-error=initializer-overrides
|
|
-Wno-error=sometimes-uninitialized
|
|
-Werror=misleading-indentation
|
|
CPP_ARGS: >
|
|
-Wno-error=c99-designator
|
|
-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
|
|
-D egl=enabled
|
|
-D glvnd=enabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=true
|
|
-D gles1=enabled
|
|
-D gles2=enabled
|
|
-D llvm=enabled
|
|
-D microsoft-clc=disabled
|
|
-D shared-llvm=enabled
|
|
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi"
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio,swrast,panfrost,imagination-experimental,microsoft-experimental,nouveau
|
|
EXTRA_OPTION:
|
|
-D spirv-to-dxil=true
|
|
-D imagination-srv=true
|
|
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,intel-ui,nir,nouveau,lima,panfrost,asahi,imagination
|
|
-D vulkan-layers=device-select,overlay
|
|
-D build-radv-tests=true
|
|
-D build-aco-tests=true
|
|
-D mesa-clc=enabled
|
|
-D precomp-compiler=enabled
|
|
-D intel-rt=enabled
|
|
-D imagination-srv=true
|
|
-D teflon=true
|
|
CC: clang-${LLVM_VERSION}
|
|
CXX: clang++-${LLVM_VERSION}
|
|
|
|
debian-clang-release:
|
|
extends:
|
|
- debian-clang
|
|
- .meson-build-only
|
|
- .build-run-long
|
|
variables:
|
|
BUILDTYPE: "release"
|
|
DRI_LOADERS: >
|
|
-D glx=xlib
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-extra-hud=true
|
|
-D gallium-vdpau=enabled
|
|
-D gallium-va=enabled
|
|
-D gallium-xa=enabled
|
|
-D gallium-nine=true
|
|
-D gles1=disabled
|
|
-D gles2=disabled
|
|
-D llvm=enabled
|
|
-D microsoft-clc=disabled
|
|
-D shared-llvm=enabled
|
|
|
|
windows-msvc:
|
|
extends:
|
|
- .build-windows
|
|
- .use-windows_build_msvc
|
|
- .windows-build-rules
|
|
stage: build-for-tests
|
|
script:
|
|
- pwsh -ExecutionPolicy RemoteSigned .\.gitlab-ci\windows\mesa_build.ps1
|
|
artifacts:
|
|
paths:
|
|
- _build/meson-logs/*.txt
|
|
- _install/
|
|
|
|
debian-vulkan:
|
|
extends:
|
|
- .meson-build-only
|
|
- .use-debian/x86_64_build
|
|
variables:
|
|
BUILDTYPE: debug
|
|
UNWIND: "disabled"
|
|
DRI_LOADERS: >
|
|
-D glx=disabled
|
|
-D gbm=disabled
|
|
-D egl=disabled
|
|
-D opengl=false
|
|
-D gles1=disabled
|
|
-D gles2=disabled
|
|
-D glvnd=disabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=false
|
|
-D b_sanitize=undefined
|
|
-D c_args=-fno-sanitize-recover=all
|
|
-D cpp_args=-fno-sanitize-recover=all
|
|
UBSAN_OPTIONS: "print_stacktrace=1"
|
|
VULKAN_DRIVERS: amd,asahi,broadcom,freedreno,intel,intel_hasvk,panfrost,virtio,imagination-experimental,microsoft-experimental,nouveau
|
|
EXTRA_OPTION: >
|
|
-D vulkan-layers=device-select,overlay
|
|
-D build-radv-tests=true
|
|
-D build-aco-tests=true
|
|
-D intel-rt=disabled
|
|
-D imagination-srv=true
|
|
|
|
debian-x86_32:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/x86_32_build
|
|
- .meson-build-only
|
|
- .build-run-long # it's not clear why this runs long, but it also doesn't matter much
|
|
variables:
|
|
BUILDTYPE: debug
|
|
CROSS: i386
|
|
VULKAN_DRIVERS: intel,amd,swrast,virtio,panfrost
|
|
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,llvmpipe,softpipe,virgl,zink,crocus,d3d12,panfrost"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D vulkan-layers=device-select,overlay
|
|
-D mesa-clc=system
|
|
C_LINK_ARGS: >
|
|
-Wl,--no-warn-rwx-segments
|
|
CPP_LINK_ARGS: >
|
|
-Wl,--no-warn-rwx-segments
|
|
HOST_BUILD_OPTIONS: >
|
|
-D build-tests=false
|
|
-D enable-glcpp-tests=false
|
|
-D gallium-opencl=disabled
|
|
-D gallium-drivers=
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D mesa-clc=enabled
|
|
-D install-mesa-clc=true
|
|
|
|
# While s390 is dead, s390x is very much alive, and one of the last major
|
|
# big-endian platforms, so it provides useful coverage.
|
|
# In case of issues with this job, contact @ajax
|
|
debian-s390x:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/s390x_build
|
|
- .meson-build-only
|
|
tags:
|
|
- $FDO_RUNNER_JOB_PRIORITY_TAG_X86_64_KVM
|
|
variables:
|
|
BUILDTYPE: debug
|
|
CROSS: s390x
|
|
GALLIUM_DRIVERS: "llvmpipe,virgl,zink"
|
|
VULKAN_DRIVERS: "swrast,virtio"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
|
|
debian-ppc64el:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/ppc64el_build
|
|
- .meson-build-only
|
|
variables:
|
|
BUILDTYPE: debug
|
|
CROSS: ppc64el
|
|
GALLIUM_DRIVERS: "nouveau,llvmpipe,softpipe,virgl,zink"
|
|
VULKAN_DRIVERS: "swrast"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
|
|
# This job emits our scripts into artifacts so they can be reused for
|
|
# job submission to hardware devices.
|
|
python-artifacts:
|
|
stage: build-for-tests
|
|
extends:
|
|
- .use-debian/x86_64_pyutils
|
|
- .build-common
|
|
- .meson-build-for-tests
|
|
variables:
|
|
GIT_STRATEGY: fetch
|
|
S3_ARTIFACT_NAME: mesa-python-ci-artifacts
|
|
timeout: 10m
|
|
script:
|
|
- .gitlab-ci/prepare-artifacts-python.sh
|