mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
ci: Make llvmpipe from Mesa 24.0.3 available in the CI image.
This commit is contained in:
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
@ -8,7 +8,22 @@ the vkd3d tests on each merge request.
|
|||||||
The CI target image-linux, in the file image.yml, builds a Docker
|
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 bookworm with all the packages required for
|
||||||
testing, and uploads it to the GitLab container registry. The Docker
|
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
|
The file build.yml contains the actual testing targets. Currently
|
||||||
vkd3d is tested on Linux, on x86-64 and i386, each architecture with
|
vkd3d is tested on Linux, on x86-64 and i386, each architecture with
|
||||||
|
@ -23,6 +23,8 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
|
|||||||
apt-get install -y build-essential pkg-config gcc-mingw-w64 crossbuild-essential-i386 \
|
apt-get install -y build-essential pkg-config gcc-mingw-w64 crossbuild-essential-i386 \
|
||||||
autoconf automake libtool flex bison curl \
|
autoconf automake libtool flex bison curl \
|
||||||
git ca-certificates rsync \
|
git ca-certificates rsync \
|
||||||
|
llvm-15-dev meson ninja-build python3-mako \
|
||||||
|
zlib1g-dev libexpat-dev libdrm-dev libglvnd-dev \
|
||||||
doxygen doxygen-latex graphviz \
|
doxygen doxygen-latex graphviz \
|
||||||
mesa-vulkan-drivers mesa-vulkan-drivers:i386 \
|
mesa-vulkan-drivers mesa-vulkan-drivers:i386 \
|
||||||
vulkan-tools spirv-headers \
|
vulkan-tools spirv-headers \
|
||||||
@ -36,6 +38,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
|
|||||||
libxcb-keysyms1-dev libxcb-keysyms1-dev:i386 && \
|
libxcb-keysyms1-dev libxcb-keysyms1-dev:i386 && \
|
||||||
apt-get build-dep -y spirv-tools && \
|
apt-get build-dep -y spirv-tools && \
|
||||||
apt-get build-dep -y -ai386 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 && \
|
git clone --depth 1 --branch wine-3.21 https://gitlab.winehq.org/wine/wine.git && \
|
||||||
cd wine && \
|
cd wine && \
|
||||||
mkdir build && \
|
mkdir build && \
|
||||||
@ -45,6 +48,7 @@ RUN export DEBIAN_FRONTEND=noninteractive; \
|
|||||||
cp tools/widl/widl /usr/local/bin && \
|
cp tools/widl/widl /usr/local/bin && \
|
||||||
cd ../.. && \
|
cd ../.. && \
|
||||||
rm -rf wine && \
|
rm -rf wine && \
|
||||||
|
|
||||||
apt-get source spirv-tools && \
|
apt-get source spirv-tools && \
|
||||||
cd spirv-tools-* && \
|
cd spirv-tools-* && \
|
||||||
sed -i -e 's|-DBUILD_SHARED_LIBS=OFF|-DBUILD_SHARED_LIBS=ON|g' debian/rules && \
|
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 && \
|
rm -f spirv-tools-dbgsym_*.deb && \
|
||||||
dpkg -i spirv-tools_*.deb && \
|
dpkg -i spirv-tools_*.deb && \
|
||||||
rm -fr * && \
|
rm -fr * && \
|
||||||
|
|
||||||
apt-get source spirv-tools && \
|
apt-get source spirv-tools && \
|
||||||
cd spirv-tools-* && \
|
cd spirv-tools-* && \
|
||||||
sed -i -e 's|-DBUILD_SHARED_LIBS=OFF|-DBUILD_SHARED_LIBS=ON|g' debian/rules && \
|
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 && \
|
rm -f spirv-tools-dbgsym_*.deb && \
|
||||||
dpkg -i spirv-tools_*.deb && \
|
dpkg -i spirv-tools_*.deb && \
|
||||||
rm -fr * && \
|
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 && \
|
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 && \
|
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 && \
|
groupadd host-render -g 800 && \
|
||||||
|
Loading…
Reference in New Issue
Block a user