mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 05:10:11 +01:00
In order to build the mesa llvmpipe driver for Android, llvm libraries for Android are needed; force meson to use a fallback for llvm and provide prebuilt libraries making them available to meson thanks to a wrap file. Enable other software drivers for the x86_64-linux-android build, but also disable the amd and intel hardware drivers for now which don't build correctly on Android. Download the prebuilt LLVM libraries for Android in the container job rather than in the build job, to avoid downloading some big artifacts for every mesa version built for Android. Reviewed-by: Eric Engestrom <None> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30895>
831 lines
23 KiB
YAML
831 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-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 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
|
|
# 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
|
|
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
|
|
FORCE_FALLBACK_FOR: llvm
|
|
EXTRA_OPTION: >
|
|
-D android-stub=true
|
|
-D platform-sdk-version=33
|
|
-D cpp_rtti=false
|
|
-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,zink,softpipe,llvmpipe,swrast
|
|
- export VULKAN_DRIVERS=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,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 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 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 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
|