ci: rusticl with llvmpipe

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15439>
This commit is contained in:
Karol Herbst
2022-08-11 18:11:07 +02:00
committed by Marge Bot
parent 10c379bdd4
commit db34a7ca30
11 changed files with 233 additions and 22 deletions

View File

@@ -87,6 +87,7 @@ stages:
- git-archive
- build-x86_64
- build-misc
- lint
- amd
- intel
- nouveau

View File

@@ -123,7 +123,7 @@ debian-testing-msan:
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
VULKAN_DRIVERS: intel,amd,broadcom,virtio-experimental
debian-clover-testing:
.debian-cl-testing:
extends:
- .meson-build
- .ci-deqp-artifacts
@@ -133,9 +133,6 @@ debian-clover-testing:
-D glx=disabled
-D egl=disabled
-D gbm=disabled
GALLIUM_ST: >
-D gallium-opencl=icd
-D opencl-spirv=true
GALLIUM_DRIVERS: "swrast"
BUILDTYPE: "debugoptimized"
EXTRA_OPTION: >
@@ -144,6 +141,22 @@ debian-clover-testing:
- .gitlab-ci/meson/build.sh
- .gitlab-ci/prepare-artifacts.sh
debian-clover-testing:
extends:
- .debian-cl-testing
variables:
GALLIUM_ST: >
-D gallium-opencl=icd
-D opencl-spirv=true
debian-rusticl-testing:
extends:
- .debian-cl-testing
variables:
GALLIUM_ST: >
-D gallium-rusticl=true
-D opencl-spirv=true
debian-build-testing:
extends: .meson-build
variables:
@@ -163,6 +176,7 @@ debian-build-testing:
-D gallium-xa=enabled
-D gallium-nine=true
-D gallium-opencl=disabled
-D gallium-rusticl=false
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
VULKAN_DRIVERS: swrast
EXTRA_OPTION: >
@@ -195,6 +209,7 @@ debian-release:
-D gallium-xa=enabled
-D gallium-nine=false
-D gallium-opencl=disabled
-D gallium-rusticl=false
-D llvm=enabled
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
VULKAN_DRIVERS: "amd,imagination-experimental,microsoft-experimental"
@@ -244,6 +259,7 @@ fedora-release:
-D gallium-xa=enabled
-D gallium-nine=false
-D gallium-opencl=icd
-D gallium-rusticl=false
-D gles1=disabled
-D gles2=enabled
-D llvm=enabled
@@ -290,6 +306,7 @@ debian-android:
-D gallium-xa=disabled
-D gallium-nine=false
-D gallium-opencl=disabled
-D gallium-rusticl=false
LLVM_VERSION: ""
PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files"
script:
@@ -463,7 +480,7 @@ windows-vs2019:
- _build/meson-logs/*.txt
- _install/
debian-clover:
.debian-cl:
extends: .meson-build
variables:
UNWIND: "enabled"
@@ -471,6 +488,12 @@ debian-clover:
-D glx=disabled
-D egl=disabled
-D gbm=disabled
EXTRA_OPTION: >
-D valgrind=false
debian-clover:
extends: .debian-cl
variables:
GALLIUM_DRIVERS: "r600,radeonsi,swrast"
GALLIUM_ST: >
-D dri3=disabled
@@ -481,8 +504,22 @@ debian-clover:
-D gallium-xa=disabled
-D gallium-nine=false
-D gallium-opencl=icd
EXTRA_OPTION: >
-D valgrind=false
-D gallium-rusticl=false
debian-rusticl:
extends: .debian-cl
variables:
GALLIUM_DRIVERS: "iris,swrast"
GALLIUM_ST: >
-D dri3=disabled
-D gallium-vdpau=disabled
-D gallium-xvmc=disabled
-D gallium-omx=disabled
-D gallium-va=disabled
-D gallium-xa=disabled
-D gallium-nine=false
-D gallium-opencl=disabled
-D gallium-rusticl=true
debian-vulkan:
extends: .meson-build
@@ -503,6 +540,7 @@ debian-vulkan:
-D gallium-xa=disabled
-D gallium-nine=false
-D gallium-opencl=disabled
-D gallium-rusticl=false
-D b_sanitize=undefined
-D c_args=-fno-sanitize-recover=all
-D cpp_args=-fno-sanitize-recover=all
@@ -573,6 +611,7 @@ debian-mingw32-x86_64:
VULKAN_DRIVERS: "swrast,amd,microsoft-experimental"
GALLIUM_ST: >
-D gallium-opencl=icd
-D gallium-rusticl=false
-D opencl-spirv=true
-D microsoft-clc=enabled
-D static-libclc=all

View File

@@ -11,14 +11,21 @@ set -ex
mkdir -p "$HOME"/.cargo
ln -s /usr/local/bin "$HOME"/.cargo/bin
# Rusticl requires at least Rust 1.59.0
#
# Also, oick a specific snapshot from rustup so the compiler doesn't drift on
# us.
RUST_VERSION=1.59.0-2022-02-24
# For rust in Mesa, we use rustup to install. This lets us pick an arbitrary
# version of the compiler, rather than whatever the container's Debian comes
# with.
#
# Pick the rust compiler (1.48) available in Debian stable, and pick a specific
# snapshot from rustup so the compiler doesn't drift on us.
wget https://sh.rustup.rs -O - | \
sh -s -- -y --default-toolchain 1.49.0-2020-12-31
wget https://sh.rustup.rs -O - | sh -s -- \
--default-toolchain $RUST_VERSION \
--profile minimal \
-y
rustup component add rustfmt
# Set up a config script for cross compiling -- cargo needs your system cc for
# linking in cross builds, but doesn't know what you want to use for system cc.

View File

@@ -28,6 +28,7 @@ apt-get install -y --no-remove \
bison \
ccache \
dpkg-cross \
findutils \
flex \
g++ \
cmake \
@@ -78,6 +79,11 @@ apt-get install -y --no-remove \
# Needed for ci-fairy, this revision is able to upload files to MinIO
pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@34f4ade99434043f88e164933f570301fd18b125
# We need at least 0.61.4 for proper Rust
pip3 install meson==0.61.5
. .gitlab-ci/container/build-rust.sh
. .gitlab-ci/container/debian/x86_build-base-wine.sh
############### Uninstall ephemeral packages

View File

@@ -90,6 +90,12 @@ rm -rf DirectX-Headers
pip3 install git+https://git.lavasoftware.org/lava/lavacli@3db3ddc45e5358908bc6a17448059ea2340492b7
# install bindgen
RUSTFLAGS='-L native=/usr/local/lib' cargo install \
bindgen --version 0.59.2 \
-j ${FDO_CI_CONCURRENT:-4} \
--root /usr/local
############### Uninstall the build software
apt-get purge -y \

View File

@@ -1,9 +1,9 @@
variables:
DEBIAN_X86_BUILD_BASE_IMAGE: "debian/x86_build-base"
DEBIAN_BASE_TAG: "2022-09-07-ci-templates"
DEBIAN_BASE_TAG: "2022-09-11-rusticl"
DEBIAN_X86_BUILD_IMAGE_PATH: "debian/x86_build"
DEBIAN_BUILD_TAG: "2022-09-07-ci-templates"
DEBIAN_BUILD_TAG: "2022-09-11-rusticl"
DEBIAN_X86_BUILD_MINGW_IMAGE_PATH: "debian/x86_build-mingw"
DEBIAN_BUILD_MINGW_TAG: "2022-08-25-shellcheck"
@@ -11,8 +11,8 @@ variables:
DEBIAN_X86_TEST_BASE_IMAGE: "debian/x86_test-base"
DEBIAN_X86_TEST_IMAGE_PATH: "debian/x86_test-gl"
DEBIAN_X86_TEST_GL_TAG: "2022-09-07-ci-templates"
DEBIAN_X86_TEST_VK_TAG: "2022-09-07-ci-templates"
DEBIAN_X86_TEST_GL_TAG: "2022-09-11-rusticl"
DEBIAN_X86_TEST_VK_TAG: "2022-09-11-rusticl"
FEDORA_X86_BUILD_TAG: "2022-08-25-shellcheck"
KERNEL_ROOTFS_TAG: "2022-09-08-nouveau"

View File

@@ -114,7 +114,7 @@
stage: software-renderer
rules:
- !reference [.no_scheduled_pipelines-rules, rules]
- changes:
- changes: &llvmpipe_cl_files
- .gitlab-ci.yml
- .gitlab-ci/**/*
- meson.build
@@ -130,10 +130,21 @@
- changes:
*llvmpipe_file_list
when: on_success
- changes: &clover_file_list
.llvmpipe-clover-rules:
rules:
- !reference [.llvmpipe-cl-rules, rules]
- changes:
- src/gallium/frontends/clover/**/*
when: on_success
.llvmpipe-rusticl-rules:
rules:
- !reference [.llvmpipe-cl-rules, rules]
- changes:
- src/gallium/frontends/rusticl/**/*
when: on_success
.collabora-farm-rules:
rules:
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
@@ -627,3 +638,12 @@
- changes:
*lavapipe_file_list
when: on_success
# Rules for linters
.lint-rustfmt-rules:
rules:
- !reference [.no_scheduled_pipelines-rules, rules]
- !reference [.core-rules, rules]
- changes:
- src/**/*.rs
when: on_success

View File

@@ -17,6 +17,18 @@
paths:
- results/
rustfmt:
# Cancel job if a newer commit is pushed to the same branch
interruptible: true
stage: lint
extends:
- .use-debian/x86_build
- .lint-rustfmt-rules
variables:
GIT_STRATEGY: fetch
script:
- git ls-files */{lib,app}.rs | xargs rustfmt --check
.test-gl:
extends:
- .test
@@ -39,7 +51,6 @@
- .use-debian/x86_test-gl
needs:
- debian/x86_test-gl
- debian-clover-testing
.vkd3d-proton-test:
artifacts:

View File

@@ -7,22 +7,40 @@
FLAKES_CHANNEL: "#mesa-swrast-ci"
GPU_VERSION: llvmpipe
llvmpipe-piglit-cl:
.llvmpipe-piglit-cl:
extends:
- .test-cl
- .piglit-test
- .llvmpipe-test
- .llvmpipe-cl-rules
variables:
LP_CL: 1
LP_NUM_THREADS: 1
PIGLIT_PROFILES: cl
PIGLIT_RESULTS: "llvmpipe-cl"
PIGLIT_TESTS: >
-x bswap -x phatk -x clz-optimizations
script:
- install/piglit/run_cl.sh
llvmpipe-piglit-clover:
extends:
- .llvmpipe-piglit-cl
- .llvmpipe-clover-rules
needs:
- debian-clover-testing
- debian/x86_test-gl
variables:
PIGLIT_RESULTS: "llvmpipe-clover"
llvmpipe-piglit-rusticl:
extends:
- .llvmpipe-piglit-cl
- .llvmpipe-rusticl-rules
needs:
- debian-rusticl-testing
- debian/x86_test-gl
variables:
PIGLIT_RESULTS: "llvmpipe-rusticl"
llvmpipe-traces:
extends:
- .test-gl

View File

@@ -0,0 +1,103 @@
api/clbuildprogram: fail
api/clcompileprogram: fail
api/clcreateprogramwithbinary: fail
api/clenqueuefillimage: crash
api/clenqueuemigratememobjects: fail
api/clgetcommandqueueinfo: fail
api/clgetdeviceinfo: fail
api/clgetextensionfunctionaddressforplatform: fail
api/clgetkernelarginfo: fail
api/cllinkprogram: fail
interop/egl_khr_cl_event2: skip
program/build/fail/invalid-version-declaration: fail
program/build/include-directories: fail
program/execute/amdgcn-callee-saved-registers: skip
program/execute/amdgcn-f16-inline-immediates: skip
program/execute/amdgcn-f32-inline-immediates/add integer 64: fail
program/execute/amdgcn-f64-inline-immediates: skip
program/execute/amdgcn-i16-inline-immediates: skip
program/execute/atomic_int64_add-global: skip
program/execute/atomic_int64_add-global-return: skip
program/execute/atomic_int64_add-local: skip
program/execute/atomic_int64_and-global: skip
program/execute/atomic_int64_and-global-return: skip
program/execute/atomic_int64_and-local: skip
program/execute/atomic_int64_cmpxchg-global: skip
program/execute/atomic_int64_cmpxchg-global-return: skip
program/execute/atomic_int64_cmpxchg-local: skip
program/execute/atomic_int64_dec-global: skip
program/execute/atomic_int64_dec-global-return: skip
program/execute/atomic_int64_dec-local: skip
program/execute/atomic_int64_inc-global: skip
program/execute/atomic_int64_inc-global-return: skip
program/execute/atomic_int64_inc-local: skip
program/execute/atomic_int64_max-global: skip
program/execute/atomic_int64_max-global-return: skip
program/execute/atomic_int64_max-local: skip
program/execute/atomic_int64_min-global: skip
program/execute/atomic_int64_min-global-return: skip
program/execute/atomic_int64_min-local: skip
program/execute/atomic_int64_or-global: skip
program/execute/atomic_int64_or-global-return: skip
program/execute/atomic_int64_or-local: skip
program/execute/atomic_int64_sub-global: skip
program/execute/atomic_int64_sub-global-return: skip
program/execute/atomic_int64_sub-local: skip
program/execute/atomic_int64_xchg-global: skip
program/execute/atomic_int64_xchg-global-return: skip
program/execute/atomic_int64_xchg-local: skip
program/execute/atomic_int64_xor-global: skip
program/execute/atomic_int64_xor-global-return: skip
program/execute/atomic_int64_xor-local: skip
program/execute/builtin/builtin-float-nextafter-1.0.generated/nextafter float1: fail
program/execute/builtin/builtin-float-nextafter-1.0.generated/nextafter float16: fail
program/execute/builtin/builtin-float-nextafter-1.0.generated/nextafter float2: fail
program/execute/builtin/builtin-float-nextafter-1.0.generated/nextafter float4: fail
program/execute/builtin/builtin-float-nextafter-1.0.generated/nextafter float8: fail
program/execute/builtin/builtin-float-sincos-1.0.generated: timeout
program/execute/builtin/builtin-shuffle-double-ulong: skip
program/execute/builtin/builtin-shuffle-half-ushort: skip
program/execute/builtin/builtin-shuffle2-double-ulong: skip
program/execute/builtin/builtin-shuffle2-half-ushort: skip
program/execute/call-clobbers-amdgcn: skip
program/execute/calls-large-struct/byval struct: fail
program/execute/calls-struct/regs struct: fail
program/execute/calls-struct/small struct in regs: fail
program/execute/fdiv-modifiers-f64: skip
program/execute/global-offset/3d, input dependent: fail
program/execute/load-hi16-generic: skip
program/execute/load-lo16-generic: skip
program/execute/mad-mix: skip
program/execute/program-tester-check-local-size-test-should-skip/this test should skip: skip
program/execute/scalar-arithmetic-double: skip
program/execute/store-hi16-generic: skip
program/execute/store/store-double-global: skip
program/execute/store/store-double-local: skip
program/execute/store/store-double16-global: skip
program/execute/store/store-double16-local: skip
program/execute/store/store-double2-global: skip
program/execute/store/store-double2-local: skip
program/execute/store/store-double4-global: skip
program/execute/store/store-double4-local: skip
program/execute/store/store-double8-global: skip
program/execute/store/store-double8-local: skip
program/execute/vload/vload-double-constant: skip
program/execute/vload/vload-double-global: skip
program/execute/vload/vload-double-local: skip
program/execute/vload/vload-double-private: skip
program/execute/vload/vload-half-constant: skip
program/execute/vload/vload-half-global: skip
program/execute/vload/vload-half-local: skip
program/execute/vload/vload-half-private: skip
program/execute/vstore/vstore-double-global: skip
program/execute/vstore/vstore-double-local: skip
program/execute/vstore/vstore-double-private: skip
program/execute/vstore/vstore-half-global: skip
program/execute/vstore/vstore-half-local: skip
program/execute/vstore/vstore-half-private: skip
program/execute/vstore/vstore_half-double-global: skip
program/execute/vstore/vstore_half-double-local: skip
program/execute/vstore/vstore_half-double-private: skip
program/execute/vstore/vstorea_half-double-global: skip
program/execute/vstore/vstorea_half-double-local: skip
program/execute/vstore/vstorea_half-double-private: skip