2019-11-18 08:23:18 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
set -o xtrace
|
|
|
|
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
2020-05-16 16:17:23 +01:00
|
|
|
# Ephemeral packages (installed for this script and removed again at the end)
|
|
|
|
STABLE_EPHEMERAL=" \
|
2020-03-06 21:23:20 +00:00
|
|
|
ccache \
|
2019-11-18 08:23:18 +00:00
|
|
|
cmake \
|
2020-05-30 23:09:18 +01:00
|
|
|
g++ \
|
2021-03-10 14:46:51 +00:00
|
|
|
g++-mingw-w64-i686-posix \
|
|
|
|
g++-mingw-w64-x86-64-posix \
|
2021-04-27 20:27:31 +01:00
|
|
|
glslang-tools \
|
2021-11-25 15:59:44 +00:00
|
|
|
libexpat1-dev \
|
2019-11-18 08:23:18 +00:00
|
|
|
libgbm-dev \
|
|
|
|
libgles2-mesa-dev \
|
2020-02-20 12:18:54 +00:00
|
|
|
liblz4-dev \
|
2021-02-17 16:23:30 +00:00
|
|
|
libpciaccess-dev \
|
2021-03-19 11:52:35 +00:00
|
|
|
libudev-dev \
|
2019-11-18 08:23:18 +00:00
|
|
|
libvulkan-dev \
|
2020-08-24 12:10:24 +01:00
|
|
|
libwaffle-dev \
|
2021-03-19 11:52:35 +00:00
|
|
|
libx11-xcb-dev \
|
2020-02-20 15:09:03 +00:00
|
|
|
libxcb-ewmh-dev \
|
2021-02-03 21:35:29 +00:00
|
|
|
libxcb-keysyms1-dev \
|
2019-11-18 08:23:18 +00:00
|
|
|
libxkbcommon-dev \
|
2020-02-20 15:09:03 +00:00
|
|
|
libxrandr-dev \
|
2019-11-18 08:23:18 +00:00
|
|
|
libxrender-dev \
|
2020-07-01 21:45:08 +01:00
|
|
|
libzstd-dev \
|
2020-06-02 09:53:07 +01:00
|
|
|
meson \
|
2021-03-10 14:46:51 +00:00
|
|
|
mingw-w64-i686-dev \
|
|
|
|
mingw-w64-tools \
|
|
|
|
mingw-w64-x86-64-dev \
|
2020-03-08 21:37:23 +00:00
|
|
|
p7zip \
|
2020-08-24 12:10:24 +01:00
|
|
|
patch \
|
2019-11-18 08:23:18 +00:00
|
|
|
pkg-config \
|
2019-11-18 08:26:00 +00:00
|
|
|
python3-distutils \
|
2020-03-08 21:37:23 +00:00
|
|
|
wget \
|
2022-06-09 12:37:33 +01:00
|
|
|
wine64-tools \
|
2021-02-17 16:23:30 +00:00
|
|
|
xz-utils \
|
2020-05-16 16:17:23 +01:00
|
|
|
"
|
|
|
|
|
|
|
|
apt-get install -y --no-remove \
|
2020-11-11 16:15:25 +00:00
|
|
|
$STABLE_EPHEMERAL \
|
2020-08-19 04:32:24 +01:00
|
|
|
libxcb-shm0 \
|
2020-08-24 12:10:24 +01:00
|
|
|
python3-lxml \
|
2021-04-22 23:51:56 +01:00
|
|
|
python3-simplejson \
|
|
|
|
xinit \
|
|
|
|
xserver-xorg-video-amdgpu \
|
|
|
|
xserver-xorg-video-ati
|
2020-05-16 16:17:23 +01:00
|
|
|
|
2020-05-30 23:09:18 +01:00
|
|
|
# We need multiarch for Wine
|
2020-03-08 21:37:23 +00:00
|
|
|
dpkg --add-architecture i386
|
|
|
|
|
|
|
|
apt-get update
|
|
|
|
|
|
|
|
apt-get install -y --no-remove \
|
|
|
|
wine \
|
|
|
|
wine32 \
|
|
|
|
wine64
|
|
|
|
|
2021-03-10 14:46:51 +00:00
|
|
|
function setup_wine() {
|
|
|
|
export WINEDEBUG="-all"
|
|
|
|
export WINEPREFIX="$1"
|
2020-04-27 11:42:58 +01:00
|
|
|
|
2021-03-10 14:46:51 +00:00
|
|
|
# We don't want crash dialogs
|
|
|
|
cat >crashdialog.reg <<EOF
|
2020-03-08 21:37:23 +00:00
|
|
|
Windows Registry Editor Version 5.00
|
|
|
|
|
|
|
|
[HKEY_CURRENT_USER\Software\Wine\WineDbg]
|
|
|
|
"ShowCrashDialog"=dword:00000000
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
2021-03-10 14:46:51 +00:00
|
|
|
# Set the wine prefix and disable the crash dialog
|
|
|
|
wine regedit crashdialog.reg
|
|
|
|
rm crashdialog.reg
|
|
|
|
|
|
|
|
# An immediate wine command may fail 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
|
|
|
|
# ...
|
|
|
|
while ! test -f "${WINEPREFIX}/system.reg"; do sleep 1; done
|
|
|
|
}
|
2020-03-08 21:37:23 +00:00
|
|
|
|
2021-03-10 14:46:51 +00:00
|
|
|
############### Install DXVK
|
|
|
|
|
|
|
|
DXVK_VERSION="1.8.1"
|
|
|
|
|
|
|
|
setup_wine "/dxvk-wine64"
|
2020-03-08 21:37:23 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2021-05-18 13:06:09 +01:00
|
|
|
APITRACE_VERSION="10.0"
|
|
|
|
APITRACE_VERSION_DATE=""
|
|
|
|
|
|
|
|
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"
|
2020-03-08 21:37:23 +00:00
|
|
|
|
|
|
|
# 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 ...
|
|
|
|
|
2020-03-06 21:23:20 +00:00
|
|
|
. .gitlab-ci/container/container_pre_build.sh
|
2019-11-18 08:23:18 +00:00
|
|
|
|
ci: Build libdrm earlier for x86_test-vk
VK-CTS v1.2.7.0 has buggy tests that only work if DRM support is
available for them (drm_files_exist). This isn't exposed in the Mesa
CI by other farms, because their infra installs libdrm-dev as part
of either rootfs generation for freedreno/broadcom or respective
container stages (for lava). In the case of radv, we directly use the
x86 Mesa testing containers, so we are the odd ones out here.
By moving the building of the custom libdrm above the building of
vk-gl-cts, it will compile in support required for this test to pass,
ensuring the x86_test-vk container has the right dependencies to match
the rest of the CI. Lava actually installs drm development files
twice, once from the Debian repos, which vk-gl-cts then compiles
against, and a second time from a tarball, which the tests will use at
runtime. Seemed a little cleaner to use the version of libdrm
specified in the Mesa CI, and hence used at both build time and
runtime.
A bug should be raised with the testsuite to avoid this in the future,
but we should probably have libdrm development files exposed for these
components anyway.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Martin Peres <martin.peres@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12777>
2021-08-11 09:17:46 +01:00
|
|
|
############### Build libdrm
|
|
|
|
|
|
|
|
. .gitlab-ci/container/build-libdrm.sh
|
|
|
|
|
2021-11-25 15:59:44 +00:00
|
|
|
############### Build Wayland
|
|
|
|
|
|
|
|
. .gitlab-ci/container/build-wayland.sh
|
|
|
|
|
2021-05-31 12:41:21 +01:00
|
|
|
############### Build parallel-deqp-runner's hang-detection tool
|
|
|
|
|
|
|
|
. .gitlab-ci/container/build-hang-detection.sh
|
|
|
|
|
2020-08-24 12:10:24 +01:00
|
|
|
############### Build piglit
|
|
|
|
|
2021-01-27 15:38:01 +00:00
|
|
|
PIGLIT_BUILD_TARGETS="piglit_replayer" . .gitlab-ci/container/build-piglit.sh
|
2020-08-24 12:10:24 +01:00
|
|
|
|
2020-02-26 08:32:41 +00:00
|
|
|
############### Build Fossilize
|
|
|
|
|
2021-01-27 15:38:01 +00:00
|
|
|
. .gitlab-ci/container/build-fossilize.sh
|
2020-02-26 08:32:41 +00:00
|
|
|
|
2019-11-18 08:26:00 +00:00
|
|
|
############### Build dEQP VK
|
2021-03-10 14:46:51 +00:00
|
|
|
|
2021-01-27 15:38:01 +00:00
|
|
|
. .gitlab-ci/container/build-deqp.sh
|
2019-11-18 08:26:00 +00:00
|
|
|
|
2020-02-20 12:18:54 +00:00
|
|
|
############### Build gfxreconstruct
|
|
|
|
|
2021-01-27 15:38:01 +00:00
|
|
|
. .gitlab-ci/container/build-gfxreconstruct.sh
|
2019-11-18 08:23:18 +00:00
|
|
|
|
2021-03-10 14:46:51 +00:00
|
|
|
############### Build VKD3D-Proton
|
|
|
|
|
|
|
|
setup_wine "/vkd3d-proton-wine64"
|
|
|
|
|
|
|
|
. .gitlab-ci/container/build-vkd3d-proton.sh
|
|
|
|
|
2019-11-18 08:23:18 +00:00
|
|
|
############### Uninstall the build software
|
|
|
|
|
2020-08-19 15:18:43 +01:00
|
|
|
ccache --show-stats
|
|
|
|
|
2019-11-18 08:23:18 +00:00
|
|
|
apt-get purge -y \
|
2020-05-30 23:09:18 +01:00
|
|
|
$STABLE_EPHEMERAL
|
2019-11-18 08:23:18 +00:00
|
|
|
|
2020-08-19 15:18:43 +01:00
|
|
|
apt-get autoremove -y --purge
|