mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
624eccbab1
Unfortuantely different versions of DXC accept or fail differently in some cases. We don't care too much about validating the DXC behavior itself, but it's useful that all the CI jobs use the same version so that we don't have to complicate the shader runner language. The macOS version is currently bound to be pretty recent because otherwise libdxil.dylib is not provided. So I'm updating the Linux and Windows version as well. I don't expect it should be particularly hard for other maintainers to keep up with the DXC updates, since it just amounts to downloading a ZIP file and extracting two libraries.
89 lines
4.2 KiB
Docker
89 lines
4.2 KiB
Docker
# FROM line will be added dynamically
|
|
|
|
WORKDIR /tmp
|
|
|
|
# Package spirv-tools from Debian has two problems for us: first, it
|
|
# doesn't have shared libraries; second, it's not multiarch. So we
|
|
# have to rebuild it with some tweaks. In order to make it multiarch
|
|
# we also have to drop the executables, but we don't care about those
|
|
# anyway.
|
|
|
|
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 && \
|
|
echo 'path-exclude=/usr/share/man/*' >> /etc/dpkg/dpkg.cfg.d/99-exclude-cruft && \
|
|
echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf && \
|
|
echo '#!/bin/sh' > /usr/sbin/policy-rc.d && \
|
|
echo 'exit 101' >> /usr/sbin/policy-rc.d && \
|
|
chmod +x /usr/sbin/policy-rc.d && \
|
|
dpkg --add-architecture i386 && \
|
|
sed -i -e 's|Types: deb|Types: deb deb-src|g' /etc/apt/sources.list.d/* && \
|
|
apt-get update && \
|
|
apt-get dist-upgrade -y && \
|
|
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 \
|
|
libegl-dev libegl-dev:i386 \
|
|
libvulkan-dev libvulkan-dev:i386 \
|
|
libncurses-dev libncurses-dev:i386 \
|
|
libopengl-dev libopengl-dev:i386 \
|
|
libxcb1-dev libxcb1-dev:i386 \
|
|
libxcb-util-dev libxcb-util-dev:i386 \
|
|
libxcb-icccm4-dev libxcb-icccm4-dev:i386 \
|
|
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 && \
|
|
cd build && \
|
|
../configure --enable-win64 --without-x --without-freetype && \
|
|
make tools/widl/widl && \
|
|
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 && \
|
|
sed -i -e 's|dh_install$|dh_install \&\& rm debian/spirv-tools/usr/bin/*|g' debian/rules && \
|
|
sed -i '/Architecture: any/a Multi-Arch: same' debian/control && \
|
|
dpkg-buildpackage -uc -us && \
|
|
cd .. && \
|
|
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 && \
|
|
sed -i -e 's|dh_install$|dh_install \&\& rm debian/spirv-tools/usr/bin/*|g' debian/rules && \
|
|
sed -i '/Architecture: any/a Multi-Arch: same' debian/control && \
|
|
CONFIG_SITE=/etc/dpkg-cross/cross-config.amd64 DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -ai386 -Pcross,nocheck -uc -us && \
|
|
cd .. && \
|
|
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 --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.2407/linux_dxc_2024_07_31.x86_64.tar.gz | tar zx -C /usr/local ./lib/libdxcompiler.so ./lib/libdxil.so && \
|
|
groupadd host-render -g 800 && \
|
|
useradd -m gitlab -G host-render
|
|
|
|
USER gitlab
|