ci: Make llvmpipe from Mesa 24.0.3 available in the CI image.

This commit is contained in:
Giovanni Mascellani 2024-03-28 13:52:59 +01:00 committed by Alexandre Julliard
parent e6c20361ea
commit b3ce73984d
Notes: Alexandre Julliard 2024-04-03 23:35:07 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/743
2 changed files with 31 additions and 1 deletions

View File

@ -8,7 +8,22 @@ 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
testing, and uploads it to the GitLab container registry. The Docker
script is in the file image.docker.
script is in the file image.docker. Most of the dependencies are
installed directly from the Debian repositories, with a few
exceptions:
* widl is compiled from Wine sources, because installing it from the
Debian repositories would carry all the rest of Wine and make the
Docker image quite larger;
* 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.
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

@ -23,6 +23,8 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get install -y build-essential pkg-config gcc-mingw-w64 crossbuild-essential-i386 \
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 \
@ -36,6 +38,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
libxcb-keysyms1-dev libxcb-keysyms1-dev:i386 && \
apt-get build-dep -y spirv-tools && \
apt-get build-dep -y -ai386 spirv-tools && \
git clone --depth 1 --branch wine-3.21 https://gitlab.winehq.org/wine/wine.git && \
cd wine && \
mkdir build && \
@ -45,6 +48,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
cp tools/widl/widl /usr/local/bin && \
cd ../.. && \
rm -rf wine && \
apt-get source spirv-tools && \
cd spirv-tools-* && \
sed -i -e 's|-DBUILD_SHARED_LIBS=OFF|-DBUILD_SHARED_LIBS=ON|g' debian/rules && \
@ -55,6 +59,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
rm -f spirv-tools-dbgsym_*.deb && \
dpkg -i spirv-tools_*.deb && \
rm -fr * && \
apt-get source spirv-tools && \
cd spirv-tools-* && \
sed -i -e 's|-DBUILD_SHARED_LIBS=OFF|-DBUILD_SHARED_LIBS=ON|g' debian/rules && \
@ -65,6 +70,16 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
rm -f spirv-tools-dbgsym_*.deb && \
dpkg -i spirv-tools_*.deb && \
rm -fr * && \
git clone --depth 1 --branch mesa-24.0.3 https://gitlab.freedesktop.org/mesa/mesa.git && \
cd mesa && \
mkdir build && \
cd build && \
meson setup -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.7.2308/linux_dxc_2023_08_14.x86_64.tar.gz | tar zx -C /usr/local ./lib/libdxcompiler.so ./lib/libdxil.so && \
groupadd host-render -g 800 && \