mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-22 04:28:10 +02:00
Out of 5 run during busy hours, all the jobs that once took 5+ min are: build-for-tests / debian-arm64-asan 6 min build-only / debian-s390x 6 min build-only / debian-android 7 min build-only / debian-clang 8 min build-for-tests / debian-arm32-asan 8 min build-only / debian-vulkan 11 min build-for-tests / debian-testing 12 min build-only / debian-testing-msan 12 min build-only / debian-clang-release 13 min build-only / alpine-build-testing 14 min build-for-tests / debian-testing-asan 21 min The jobs at 10+ min are considered to take long enough that they might risk crossing the 15 min mark, so let's keep these ones at 30 min and lower the timeout for everyone else to 15 min. It's worth pointing out that debian-testing-asan is a build-for-tests job and as such it blocks build-only jobs from running until it's finished, which can be a problem for a job that has been seen taking 20+ minutes. We should do something about that, but that's not the topic of this MR. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31846>
827 lines
23 KiB
YAML
827 lines
23 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 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
|
|
timeout: 1h
|
|
# We don't want to download any previous job's artifacts
|
|
dependencies: []
|
|
artifacts:
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
when: always
|
|
paths:
|
|
- _build/meson-logs/*.txt
|
|
- _build/meson-logs/strace
|
|
- 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
|
|
variables:
|
|
LLVM_VERSION: 15
|
|
script:
|
|
- &meson-build timeout --verbose ${BUILD_JOB_TIMEOUT_OVERRIDE:-$BUILD_JOB_TIMEOUT} .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-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
|
|
# 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-test
|
|
optional: true
|
|
|
|
|
|
debian-testing:
|
|
extends:
|
|
- .meson-build
|
|
- .ci-deqp-artifacts
|
|
stage: build-for-tests
|
|
variables:
|
|
BUILD_JOB_TIMEOUT: 30m
|
|
UNWIND: "enabled"
|
|
DRI_LOADERS: >
|
|
-D glx=dri
|
|
-D gbm=enabled
|
|
-D egl=enabled
|
|
-D glvnd=disabled
|
|
-D platforms=x11,wayland
|
|
GALLIUM_ST: >
|
|
-D gallium-nine=true
|
|
-D gallium-va=enabled
|
|
-D gallium-rusticl=true
|
|
GALLIUM_DRIVERS: "llvmpipe,softpipe,virgl,radeonsi,zink,crocus,iris,i915,r300,svga"
|
|
VULKAN_DRIVERS: "swrast,amd,intel,intel_hasvk,virtio,nouveau"
|
|
BUILDTYPE: "debugoptimized"
|
|
EXTRA_OPTION: >
|
|
-D spirv-to-dxil=true
|
|
-D valgrind=disabled
|
|
-D perfetto=true
|
|
-D tools=drm-shim
|
|
S3_ARTIFACT_NAME: mesa-x86_64-default-${BUILDTYPE}
|
|
LLVM_VERSION: 15
|
|
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
|
|
C_ARGS: >
|
|
-Wno-error=stringop-truncation
|
|
EXTRA_OPTION: >
|
|
-D b_sanitize=address
|
|
-D valgrind=disabled
|
|
-D tools=dlclose-skip
|
|
-D intel-clc=system
|
|
S3_ARTIFACT_NAME: ""
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
# Do a host build for intel-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-drivers=
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D intel-clc=enabled
|
|
-D install-intel-clc=true
|
|
|
|
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 intel-clc=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
|
|
# Do a host build for intel-clc (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=
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D intel-clc=enabled
|
|
-D install-intel-clc=true
|
|
|
|
debian-build-testing:
|
|
extends: .meson-build
|
|
stage: build-for-tests
|
|
variables:
|
|
BUILDTYPE: debug
|
|
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=false
|
|
-D gallium-rusticl=false
|
|
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,freedreno,llvmpipe,softpipe,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
|
VULKAN_DRIVERS: swrast
|
|
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
|
|
LLVM_VERSION: 15
|
|
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:
|
|
LLVM_VERSION: 15
|
|
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,freedreno,r300,svga,llvmpipe,softpipe,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
|
VULKAN_DRIVERS: "amd,imagination-experimental,microsoft-experimental"
|
|
EXTRA_OPTION: >
|
|
-D spirv-to-dxil=true
|
|
-D osmesa=true
|
|
-D tools=all
|
|
-D intel-clc=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, verify after bump to F39
|
|
C_ARGS: >
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-overread
|
|
-Wno-error=array-bounds
|
|
CPP_ARGS: >
|
|
-Wno-error=dangling-reference
|
|
-Wno-error=overloaded-virtual
|
|
C_LINK_ARGS: >
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-overread
|
|
CPP_LINK_ARGS: >
|
|
-Wno-error=stringop-overflow
|
|
-Wno-error=stringop-overread
|
|
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
|
|
LLVM_VERSION: ""
|
|
UNWIND: "disabled"
|
|
VULKAN_DRIVERS: "amd,asahi,broadcom,freedreno,imagination-experimental,intel,intel_hasvk"
|
|
|
|
debian-android:
|
|
extends:
|
|
- .meson-cross
|
|
- .use-debian/android_build
|
|
- .ci-deqp-artifacts
|
|
needs:
|
|
- !reference [.use-debian/android_build, needs]
|
|
- !reference [.build-for-tests-jobs]
|
|
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
|
|
EXTRA_OPTION: >
|
|
-D android-stub=true
|
|
-D llvm=disabled
|
|
-D platform-sdk-version=33
|
|
-D valgrind=disabled
|
|
-D android-libbacktrace=disabled
|
|
-D intel-clc=system
|
|
GALLIUM_ST: >
|
|
-D gallium-vdpau=disabled
|
|
-D gallium-va=disabled
|
|
-D gallium-xa=disabled
|
|
-D gallium-nine=false
|
|
-D gallium-rusticl=false
|
|
LLVM_VERSION: "15"
|
|
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=
|
|
-D vulkan-drivers=
|
|
-D video-codecs=
|
|
-D glx=disabled
|
|
-D platforms=
|
|
-D intel-clc=enabled
|
|
-D install-intel-clc=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 Intel because gen_decoder.c currently requires libexpat, which
|
|
# is not a dependency that AOSP wants to accept. Can't do Radeon Gallium
|
|
# drivers because they requires LLVM, which we don't have an Android build
|
|
# of.
|
|
- export CROSS=x86_64-linux-android
|
|
- export GALLIUM_DRIVERS=iris,virgl
|
|
- export VULKAN_DRIVERS=amd,intel
|
|
- *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,freedreno,broadcom
|
|
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: freedreno,broadcom
|
|
GALLIUM_DRIVERS: "etnaviv,freedreno,lima,nouveau,panfrost,softpipe,tegra,v3d,vc4,zink"
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D valgrind=disabled
|
|
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:
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D llvm=disabled
|
|
-D b_sanitize=address
|
|
-D valgrind=disabled
|
|
-D tools=dlclose-skip
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
S3_ARTIFACT_NAME: mesa-arm32-asan-${BUILDTYPE}
|
|
MESON_TEST_ARGS: "--no-suite mesa:compiler --no-suite mesa:util"
|
|
|
|
debian-arm64:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
stage: build-for-tests
|
|
variables:
|
|
C_ARGS: >
|
|
-Wno-error=array-bounds
|
|
-Wno-error=stringop-truncation
|
|
VULKAN_DRIVERS: "asahi,freedreno,broadcom,panfrost,imagination-experimental"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D valgrind=disabled
|
|
-D imagination-srv=true
|
|
-D perfetto=true
|
|
-D freedreno-kmds=msm,virtio
|
|
-D teflon=true
|
|
GALLIUM_ST:
|
|
-D gallium-rusticl=true
|
|
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:
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D b_sanitize=address
|
|
-D valgrind=disabled
|
|
-D tools=dlclose-skip
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
S3_ARTIFACT_NAME: mesa-arm64-asan-${BUILDTYPE}
|
|
MESON_TEST_ARGS: "--no-suite mesa:compiler"
|
|
|
|
debian-arm64-build-test:
|
|
extends:
|
|
- .meson-arm
|
|
- .ci-deqp-artifacts
|
|
needs:
|
|
- !reference [.meson-arm, needs]
|
|
- !reference [.build-for-tests-jobs]
|
|
variables:
|
|
VULKAN_DRIVERS: "amd,nouveau"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-Dtools=panfrost,imagination
|
|
|
|
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
|
|
LLVM_VERSION: 15
|
|
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
|
|
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 opencl-spirv=true
|
|
-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 intel-clc=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 opencl-spirv=true
|
|
-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
|
|
LLVM_VERSION: 15
|
|
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
|
|
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,llvmpipe,softpipe,virgl,zink,crocus,d3d12"
|
|
LLVM_VERSION: 15
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
EXTRA_OPTION: >
|
|
-D vulkan-layers=device-select,overlay
|
|
-D intel-clc=system
|
|
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 intel-clc=enabled
|
|
-D install-intel-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"
|
|
LLVM_VERSION: 15
|
|
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,radeonsi,llvmpipe,softpipe,virgl,zink"
|
|
VULKAN_DRIVERS: "amd,swrast"
|
|
DRI_LOADERS:
|
|
-D glvnd=disabled
|
|
|
|
# This job tests our Python scripts, and also emits our scripts into
|
|
# artifacts, so they can be reused for job submission to hardware devices.
|
|
python-test:
|
|
stage: build-for-tests
|
|
extends:
|
|
- .use-debian/x86_64_pyutils
|
|
- .build-common
|
|
variables:
|
|
GIT_STRATEGY: fetch
|
|
S3_ARTIFACT_NAME: mesa-python-test
|
|
timeout: 10m
|
|
script:
|
|
- .gitlab-ci/run-pytest.sh
|
|
- .gitlab-ci/prepare-artifacts-python.sh
|