mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 20:18:12 +02:00
ci/test-vk: Install DXVK 2.7.1 to our wine installation.
This pulls the old script that used to be used for DXVK into build-wine.sh, since it will be uploaded as part of wine. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40959>
This commit is contained in:
parent
735a9e9fac
commit
b22b0dcdee
2 changed files with 60 additions and 27 deletions
|
|
@ -63,6 +63,66 @@ rm "apitrace-${APITRACE_VERSION}${APITRACE_VERSION_DATE}-win64${APITRACE_ARCH}.7
|
|||
|
||||
section_end wine-apitrace
|
||||
|
||||
section_start DXVK "Installing DXVK"
|
||||
|
||||
set -uex
|
||||
|
||||
overrideDll() {
|
||||
if ! wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$1" /d native /f; then
|
||||
echo -e "Failed to add override for $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
dxvk_install_release() {
|
||||
local DXVK_VERSION=${1:?}
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
|
||||
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
|
||||
cp "dxvk-${DXVK_VERSION}"/x64/*.dll "$WINEPREFIX/drive_c/windows/system32/"
|
||||
rm -rf "dxvk-${DXVK_VERSION}"
|
||||
rm dxvk-"${DXVK_VERSION}".tar.gz
|
||||
}
|
||||
|
||||
# DXVK upstream only builds for x64/x32, so we snag arm64 binaries out of
|
||||
# another project that packages it as arm64 and arm64ec.
|
||||
dxvk_install_hangover() {
|
||||
local DXVK_VERSION=${1:?}
|
||||
local HANGOVER_VERSION=${2:?}
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-o hangover_dlls.tar \
|
||||
-O "https://github.com/AndreRH/hangover/releases/download/hangover-${HANGOVER_VERSION}/hangover_${HANGOVER_VERSION}_dlls.tar"
|
||||
tar xpf hangover_dlls.tar
|
||||
rm hangover_dlls.tar
|
||||
|
||||
tar xpf "dxvk-v${DXVK_VERSION}.tar.gz"
|
||||
rm "dxvk-v${DXVK_VERSION}.tar.gz"
|
||||
|
||||
cp "dxvk-v${DXVK_VERSION}"/aarch64/*.dll "$WINEPREFIX/drive_c/windows/system32/"
|
||||
rm -rf "dxvk-v${DXVK_VERSION}"
|
||||
}
|
||||
|
||||
if [ "$DEBIAN_ARCH" != arm64 ]; then
|
||||
# x32 and x64 binaries
|
||||
dxvk_install_release "2.7.1"
|
||||
else
|
||||
# Use another packager's tarball for ARM binaries, since upstream DXVK doesn't
|
||||
# generate them.
|
||||
dxvk_install_hangover "2.7.1" "11.4"
|
||||
fi
|
||||
|
||||
overrideDll d3d8
|
||||
overrideDll d3d9
|
||||
overrideDll d3d10core
|
||||
overrideDll d3d11
|
||||
overrideDll dxgi
|
||||
|
||||
# make sure the registry keys are flushed.
|
||||
wineserver -k
|
||||
|
||||
section_end DXVK
|
||||
|
||||
# Archive and upload wine for use as a LAVA overlay, if the archive doesn't exist yet
|
||||
WINE_S3_ARTIFACT="wine.tar.zst"
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -ue
|
||||
|
||||
overrideDll() {
|
||||
if ! wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v "$1" /d native /f; then
|
||||
echo -e "Failed to add override for $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
dxvk_install_release() {
|
||||
local DXVK_VERSION=${1:?}
|
||||
|
||||
curl -L --retry 4 -f --retry-all-errors --retry-delay 60 \
|
||||
-O "https://github.com/doitsujin/dxvk/releases/download/v${DXVK_VERSION}/dxvk-${DXVK_VERSION}.tar.gz"
|
||||
tar xzpf dxvk-"${DXVK_VERSION}".tar.gz
|
||||
cp "dxvk-${DXVK_VERSION}"/x64/*.dll "$WINEPREFIX/drive_c/windows/system32/"
|
||||
overrideDll d3d9
|
||||
overrideDll d3d10core
|
||||
overrideDll d3d11
|
||||
overrideDll dxgi
|
||||
rm -rf "dxvk-${DXVK_VERSION}"
|
||||
rm dxvk-"${DXVK_VERSION}".tar.gz
|
||||
}
|
||||
|
||||
dxvk_install_release "2.1"
|
||||
Loading…
Add table
Reference in a new issue