# 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 don't take more than 1-3 minutes. 5-8 min max on a fresh runner # without a populated ccache. # These jobs are never slow, either they finish within reasonable time or # something has gone wrong and the job will never terminate, so we should # instead timeout so that the retry mechanism can kick in. # A few exception are made, see overrides in the rest of this file. BUILD_JOB_TIMEOUT: 15m RUN_MESON_TESTS: "true" timeout: 1h # 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 # 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: extends: - .build-linux - .use-debian/x86_64_build stage: build-only script: - &meson-build timeout --verbose ${BUILD_JOB_TIMEOUT_OVERRIDE:-$BUILD_JOB_TIMEOUT} bash --login .gitlab-ci/meson/build.sh # Make sure this list stays the same as all the jobs with # `stage: build-for-tests`, except for the windows job as # explained below. .build-for-tests-jobs: - job: debian-testing optional: true - job: debian-testing-asan optional: true - job: debian-testing-ubsan optional: true - job: debian-build-testing optional: true - job: debian-arm32 optional: true - job: debian-arm32-asan optional: true - job: debian-arm64 optional: true - job: debian-arm64-asan optional: true - job: debian-android optional: true # Windows runners don't have more than one build right now, so there is # no need to wait on the "first one" to be done. # - job: windows-msvc # optional: true - job: python-artifacts optional: true debian-testing: extends: - .meson-build - .ci-deqp-artifacts stage: build-for-tests variables: BUILD_JOB_TIMEOUT: 30m 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 script: - *meson-build - .gitlab-ci/prepare-artifacts.sh artifacts: reports: junit: artifacts/ci_scripts_report.xml debian-testing-asan: extends: - debian-testing stage: build-for-tests variables: BUILD_JOB_TIMEOUT: 30m 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 # `needs:` inherited from debian-clang variables: BUILD_JOB_TIMEOUT: 30m # 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 stage: build-for-tests timeout: 40m variables: BUILD_JOB_TIMEOUT: 30m C_ARGS: > -Wno-error=stringop-overflow -Wno-error=stringop-truncation CPP_ARGS: > -Wno-error=array-bounds GALLIUM_DRIVERS: "swrast" 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 stage: build-for-tests variables: UNWIND: "enabled" 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=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 osmesa=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 script: - *meson-build - .gitlab-ci/prepare-artifacts.sh shader-db: stage: code-validation extends: - .use-debian/x86_64_build rules: - !reference [.never-post-merge-rules, rules] - !reference [.core-rules, rules] # Keep this list in sync with the drivers tested in run-shader-db.sh - !reference [.freedreno-common-rules, rules] - !reference [.intel-common-rules, rules] - !reference [.lima-rules, rules] - !reference [.v3d-rules, rules] - !reference [.vc4-rules, rules] - !reference [.nouveau-rules, rules] - !reference [.r300-rules, rules] # Also run if this job's own config or script changes - changes: - .gitlab-ci/build/gitlab-ci.yml - .gitlab-ci/run-shader-db.sh needs: - debian-build-testing variables: S3_ARTIFACT_NAME: debian-build-testing before_script: - !reference [.download_s3, before_script] script: | .gitlab-ci/run-shader-db.sh artifacts: paths: - shader-db timeout: 15m # Test a release build with -Werror so new warnings don't sneak in. debian-release: extends: .meson-build needs: - !reference [.meson-build, needs] - !reference [.build-for-tests-jobs] 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 osmesa=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 - .use-alpine/x86_64_build needs: - !reference [.use-alpine/x86_64_build, needs] - !reference [.build-for-tests-jobs] variables: BUILD_JOB_TIMEOUT: 30m 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,asahi,broadcom,freedreno,intel,imagination-experimental" fedora-release: extends: - .meson-build - .use-fedora/x86_64_build needs: - !reference [.use-fedora/x86_64_build, needs] - !reference [.build-for-tests-jobs] 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 osmesa=true -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 stage: build-for-tests needs: - !reference [.use-debian/android_build, needs] 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 ARTIFACTS_DEBUG_SYMBOLS: 1 S3_ARTIFACT_NAME: mesa-x86_64-android-${BUILDTYPE} script: - export CROSS=aarch64-linux-android - export GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d - export VULKAN_DRIVERS=freedreno,broadcom,virtio - *meson-build # 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,llvmpipe,swrast - export VULKAN_DRIVERS=intel,virtio,swrast - .gitlab-ci/create-llvm-meson-wrap-file.sh - *meson-build - .gitlab-ci/prepare-artifacts.sh .meson-cross: extends: - .meson-build variables: UNWIND: "disabled" DRI_LOADERS: > -D glx=dri -D gbm=enabled -D egl=enabled -D platforms=x11,wayland -D osmesa=false 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 needs: - debian/arm64_build variables: VULKAN_DRIVERS: "asahi,broadcom,freedreno" GALLIUM_DRIVERS: "etnaviv,freedreno,lima,nouveau,panfrost,llvmpipe,softpipe,tegra,v3d,vc4,zink" BUILDTYPE: "debugoptimized" tags: - aarch64 debian-arm32: extends: - .meson-arm - .ci-deqp-artifacts stage: 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 script: - *meson-build - .gitlab-ci/prepare-artifacts.sh debian-arm32-asan: extends: - debian-arm32 stage: build-for-tests variables: BUILD_JOB_TIMEOUT: 30m 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 stage: 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} script: - *meson-build - .gitlab-ci/prepare-artifacts.sh debian-arm64-asan: extends: - debian-arm64 stage: build-for-tests variables: BUILD_JOB_TIMEOUT: 30m 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 stage: build-for-tests variables: BUILD_JOB_TIMEOUT: 30m 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 needs: - !reference [.meson-arm, needs] - !reference [.build-for-tests-jobs] 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 stage: build-only needs: - !reference [debian-arm64, needs] - !reference [.build-for-tests-jobs] 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 stage: build-only needs: - !reference [.meson-arm, needs] - !reference [.build-for-tests-jobs] 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 debian-clang: extends: .meson-build needs: - !reference [.meson-build, needs] - !reference [.build-for-tests-jobs] 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 -D shared-glapi=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 osmesa=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-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 # `needs:` inherited from debian-clang variables: BUILD_JOB_TIMEOUT: 30m 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 -D shared-glapi=disabled 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 needs: - !reference [.meson-build, needs] - !reference [.build-for-tests-jobs] variables: BUILD_JOB_TIMEOUT: 30m 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 -D osmesa=false 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-aco-tests=true -D intel-rt=disabled -D imagination-srv=true debian-x86_32: extends: - .meson-cross - .use-debian/x86_32_build needs: - !reference [.use-debian/x86_32_build, needs] - !reference [.build-for-tests-jobs] 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 needs: - !reference [.use-debian/s390x_build, needs] - !reference [.build-for-tests-jobs] tags: - 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 needs: - !reference [.use-debian/ppc64el_build, needs] - !reference [.build-for-tests-jobs] 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 variables: GIT_STRATEGY: fetch S3_ARTIFACT_NAME: mesa-python-ci-artifacts timeout: 10m script: - .gitlab-ci/prepare-artifacts-python.sh tags: - placeholder-job