mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
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:
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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 && \
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user