ci: Run Linux tests on Debian trixie.

So we have a more recent version of SPIRV-Tools and also don't
have to recompile Mesa to test llvmpipe. This fixes a few failing
tests, but also breaks a couple.
This commit is contained in:
Giovanni Mascellani
2025-09-23 11:58:19 +02:00
committed by Henri Verbeet
parent 3f1de27283
commit 3c8b4ce731
Notes: Henri Verbeet 2025-10-03 00:55:50 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1764
15 changed files with 119 additions and 61 deletions

View File

@@ -6,7 +6,7 @@ These scripts are used by the GitLab CI feature to automatically run
the vkd3d tests on each merge request.
The CI target image-linux, in the file image.yml, builds a Docker
image based on Debian bookworm with all the packages required for
image based on Debian trixie with all the packages required for
testing, and uploads it to the GitLab container registry. The Docker
script is in the file image.docker. Most of the dependencies are
installed directly from the Debian repositories, with a few
@@ -19,11 +19,7 @@ exceptions:
* SPIRV-Tools are recompiled from sources, because the packages in
Debian do not ship shared objects and are not multiarch-compatible;
in order to make the packages multiarch-compatible, the utilities
are dropped (they're not used by the CI anyway);
* llvmpipe from Mesa 24.0.1 is compiled (in addition to version
22.3.6 available in Debian bookworm), because some Vulkan features
required by vkd3d are not available in Mesa 22.3.6.
are dropped (they're not used by the CI anyway).
The file build.yml contains the actual testing targets. Currently
vkd3d is tested on Linux, on x86-64 and i386, each architecture with

View File

@@ -2,7 +2,7 @@
stage: build
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
image: $CI_REGISTRY/wine/vkd3d:debian-trixie
interruptible: true
needs:
- job: image-linux
@@ -36,9 +36,6 @@ build-radv-64:
build-llvmpipe-64:
extends: .build-linux
allow_failure:
exit_codes:
- 2
variables:
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
VKD3D_SHADER_CONFIG: 'force_validation'
@@ -56,29 +53,17 @@ build-radv-32:
build-llvmpipe-32:
extends: .build-linux
allow_failure:
exit_codes:
- 2
variables:
VK_LOADER_DRIVERS_SELECT: 'lvp_*'
CC: 'i686-linux-gnu-gcc'
VKD3D_SHADER_CONFIG: 'force_validation'
VKD3D_TEST_DEBUG: '1'
build-llvmpipe-64-mesa24:
extends: .build-linux
variables:
VK_DRIVER_FILES: '/opt/mesa24/share/vulkan/icd.d/lvp_icd.x86_64.json'
LD_LIBRARY_PATH: '/opt/mesa24/lib/x86_64-linux-gnu'
__EGL_VENDOR_LIBRARY_FILENAMES: '/opt/mesa24/share/glvnd/egl_vendor.d/50_mesa.json'
VKD3D_SHADER_CONFIG: 'force_validation'
VKD3D_TEST_DEBUG: '1'
build-crosstest:
stage: build
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
image: $CI_REGISTRY/wine/vkd3d:debian-trixie
interruptible: true
needs:
- job: image-linux
@@ -104,7 +89,7 @@ build-crosstest:
stage: build
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
image: $CI_REGISTRY/wine/vkd3d:debian-bookworm
image: $CI_REGISTRY/wine/vkd3d:debian-trixie
interruptible: true
needs:
- job: image-linux

View File

@@ -8,12 +8,6 @@ WORKDIR /tmp
# we also have to drop the executables, but we don't care about those
# anyway.
# Mesa requires Meson >= 1.1.0, which is not available on Debian bookworm.
# Fortunately that can be worked around by removing some features from
# meson.build, which are not needed for llvmpipe. Notice that we use
# "git show | patch -R" instead of "git revert" so we don't have to configure
# a valid email and user name for git.
RUN export DEBIAN_FRONTEND=noninteractive; \
echo 'path-exclude=/usr/share/doc/*' > /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \
echo 'path-exclude=/usr/share/locale/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \
@@ -29,8 +23,6 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get install -y build-essential pkg-config gcc-mingw-w64 crossbuild-essential-i386 \
mingw-w64-tools autoconf automake libtool flex bison curl \
git ca-certificates rsync \
llvm-15-dev meson ninja-build python3-mako \
zlib1g-dev libexpat-dev libdrm-dev libglvnd-dev \
doxygen doxygen-latex graphviz \
mesa-vulkan-drivers mesa-vulkan-drivers:i386 \
vulkan-tools spirv-headers \
@@ -77,17 +69,6 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
dpkg -i spirv-tools_*.deb && \
rm -fr * && \
git clone --branch mesa-24.2.4 https://gitlab.freedesktop.org/mesa/mesa.git && \
cd mesa && \
git show 876db9135048 | patch -p1 -R && \
sed -i -e '981,991d' meson.build && \
mkdir build && \
cd build && \
meson setup --buildtype release -Dprefix=/opt/mesa24 -Dplatforms= -Dvideo-codecs= -Dvulkan-drivers=swrast -Dgallium-drivers=swrast -Dopengl=true -Degl=enabled -Dglvnd=true -Dshared-glapi=enabled -Dglx=disabled -Dgles1=disabled -Dgles2=disabled .. && \
meson install && \
cd ../.. && \
rm -fr mesa && \
apt-get clean && \
curl -L -s https://github.com/microsoft/DirectXShaderCompiler/releases/download/v1.8.2502/linux_dxc_2025_02_20.x86_64.tar.gz | tar zx -C /usr/local ./lib/libdxcompiler.so ./lib/libdxil.so && \
groupadd host-render -g 800 && \

View File

@@ -10,8 +10,8 @@ image-linux:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
variables:
IMAGE_SOURCE: "$CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX/debian:bookworm"
IMAGE_LOCAL: "$CI_REGISTRY_IMAGE:debian-bookworm"
IMAGE_SOURCE: "$CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX/debian:trixie"
IMAGE_LOCAL: "$CI_REGISTRY_IMAGE:debian-trixie"
DOCKER_FILE: "$CI_PROJECT_DIR/gitlab/image.docker"
script:
- mkdir -p /kaniko/.docker