| # 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-testing-ubsan: | |
| extends: | |
| - debian-testing | |
| stage: build-for-tests | |
| timeout: 40m | |
| variables: | |
| C_ARGS: > | |
| -Wno-error=stringop-overflow | |
| -Wno-error=stringop-truncation | |
| CPP_ARGS: > | |
| -Wno-error=array-bounds | |
| EXTRA_OPTION: > | |
| -D b_sanitize=undefined | |
| -D intel-clc=system | |
| S3_ARTIFACT_NAME: "" | |
| ARTIFACTS_DEBUG_SYMBOLS: 1 | |
| 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 | |
| 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-ubsan: | |
| extends: | |
| - debian-arm64 | |
| stage: build-for-tests | |
| variables: | |
| 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 | |
| ARTIFACTS_DEBUG_SYMBOLS: 1 | |
| S3_ARTIFACT_NAME: mesa-arm64-ubsan-${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,panfrost | |
| GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,llvmpipe,softpipe,virgl,zink,crocus,d3d12,panfrost" | |
| 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 |