apt-get update
-# Use newer packages from backports by default
-cat >/etc/apt/preferences <<EOF
-Package: *
-Pin: release a=buster-backports
-Pin-Priority: 500
-EOF
-
apt-get dist-upgrade -y
apt-get install -y --no-remove \
+ ccache \
cmake \
g++ \
+ gcc \
git \
git-lfs \
- gcc \
libexpat1 \
libgbm-dev \
libgles2-mesa-dev \
+ libllvm9 \
liblz4-1 \
liblz4-dev \
- libpng16-16 \
libpng-dev \
- libvulkan1 \
+ libpng16-16 \
libvulkan-dev \
+ libvulkan1 \
libwayland-client0 \
libwayland-server0 \
- libxcb-ewmh2 \
libxcb-ewmh-dev \
+ libxcb-ewmh2 \
libxcb-keysyms1 \
libxcb-keysyms1-dev \
libxcb-randr0 \
libxcb-xfixes0 \
- libxkbcommon0 \
libxkbcommon-dev \
- libxrandr2 \
+ libxkbcommon0 \
libxrandr-dev \
- libxrender1 \
+ libxrandr2 \
libxrender-dev \
- libllvm9 \
+ libxrender1 \
meson \
- patch \
+ p7zip \
pkg-config \
+ python \
python3-distutils \
python3-pil \
+ python3-requests \
python3-yaml \
- python \
+ wget \
xauth \
xvfb
+# We need multiarch for Wine
+dpkg --add-architecture i386
+
+apt-get update
+
+apt-get install -y --no-remove \
+ wine \
+ wine32 \
+ wine64
+
+############### Set up Wine env variables
+
+export WINEDEBUG="-all"
+export WINEPREFIX="/dxvk-wine64"
+
+############### Install DXVK
+
+DXVK_VERSION="1.6"
+
+# We don't want crash dialogs
+cat >crashdialog.reg <<EOF
+Windows Registry Editor Version 5.00
+
+[HKEY_CURRENT_USER\Software\Wine\WineDbg]
+"ShowCrashDialog"=dword:00000000
+
+EOF
+
+# Set the wine prefix and disable the crash dialog
+wine regedit crashdialog.reg
+rm crashdialog.reg
+
+# DXVK's setup often fails with:
+# "${WINEPREFIX}: Not a valid wine prefix."
+# and that is just spit because of checking the existance of the
+# system.reg file, which fails.
+# Just giving it a bit more of time for it to be created solves the
+# problem ...
+test -f "${WINEPREFIX}/system.reg" || sleep 2
+
+wget "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
+tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
+dxvk-"${DXVK_VERSION}"/setup_dxvk.sh install
+rm -rf dxvk-"${DXVK_VERSION}"
+rm dxvk-"${DXVK_VERSION}".tar.gz
+
+############### Install Windows' apitrace binaries
+
+APITRACE_VERSION="9.0"
+APITRACE_VERSION_DATE="20191126"
+
+wget "https://github.com/apitrace/apitrace/releases/download/${APITRACE_VERSION}/apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z"
+7zr x "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z" \
+ "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/apitrace.exe" \
+ "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64/bin/d3dretrace.exe"
+mv "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64" /apitrace-msvc-win64
+rm "apitrace-${APITRACE_VERSION}.${APITRACE_VERSION_DATE}-win64.7z"
+
+# Add the apitrace path to the registry
+wine \
+ reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment" \
+ /v Path \
+ /t REG_EXPAND_SZ \
+ /d "C:\windows\system32;C:\windows;C:\windows\system32\wbem;Z:\apitrace-msvc-win64\bin" \
+ /f
+
+############### Building ...
+
+. .gitlab-ci/container/container_pre_build.sh
############### Build dEQP runner
############### Uninstall the build software
+ccache --show-stats
+
apt-get purge -y \
+ ccache \
cmake \
g++ \
gcc \
libxrandr-dev \
libxrender-dev \
meson \
- patch \
- pkg-config
+ p7zip \
+ pkg-config \
+ wget
apt-get autoremove -y --purge