[meta] Add custom winetricks verb to set up DXVK

Sets up both 32-bit and 64-bit DXVK for a wine prefix at the same time.
Will be shipped with release binaries. Based on #569.
This commit is contained in:
Philip Rebohle 2018-08-17 11:30:32 +02:00
parent 11e9ebdf81
commit 48a2b63247
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 43 additions and 1 deletions

View File

@ -10,6 +10,11 @@ DXVK_SRC_DIR=`dirname $(readlink -f $0)`
DXVK_BUILD_DIR=$(realpath "$2")"/dxvk-$DXVK_VERSION"
DXVK_ARCHIVE_PATH=$(realpath "$2")"/dxvk-$DXVK_VERSION.tar.gz"
if [ -e "$DXVK_BUILD_DIR" ]; then
echo "Build directory $DXVK_BUILD_DIR already exists"
exit 1
fi
function build_arch {
export WINEARCH="win$1"
export WINEPREFIX="$DXVK_BUILD_DIR/wine.$1"
@ -33,7 +38,6 @@ function build_arch {
cp "$DXVK_BUILD_DIR/install.$1/bin/d3d10core.dll" "$DXVK_BUILD_DIR/x$1/d3d10core.dll"
cp "$DXVK_BUILD_DIR/install.$1/bin/d3d11.dll" "$DXVK_BUILD_DIR/x$1/d3d11.dll"
cp "$DXVK_BUILD_DIR/install.$1/bin/dxgi.dll" "$DXVK_BUILD_DIR/x$1/dxgi.dll"
cp "$DXVK_BUILD_DIR/install.$1/bin/setup_dxvk.sh" "$DXVK_BUILD_DIR/x$1/setup_dxvk.sh"
rm -R "$DXVK_BUILD_DIR/wine.$1"
rm -R "$DXVK_BUILD_DIR/build.$1"
@ -41,6 +45,7 @@ function build_arch {
}
function package {
cp "$DXVK_SRC_DIR/utils/setup_dxvk.verb" "$DXVK_BUILD_DIR/setup_dxvk.verb"
cd "$DXVK_BUILD_DIR/.."
tar -czf "$DXVK_ARCHIVE_PATH" "dxvk-$DXVK_VERSION"
rm -R "dxvk-$DXVK_VERSION"

37
utils/setup_dxvk.verb Normal file
View File

@ -0,0 +1,37 @@
w_metadata setup_dxvk dlls \
title="DXVK" \
publisher="Philip Rebohle" \
year="2018" \
media="manual_download" \
file1="dxgi.dll" \
file2="d3d11.dll" \
file3="d3d10.dll" \
file4="d3d10_1.dll" \
file5="d3d10core.dll" \
installed_file1="$W_SYSTEM32_DLLS_WIN/dxgi.dll" \
installed_file2="$W_SYSTEM32_DLLS_WIN/d3d11.dll" \
installed_file3="$W_SYSTEM32_DLLS_WIN/d3d10.dll" \
installed_file4="$W_SYSTEM32_DLLS_WIN/d3d10_1.dll" \
installed_file5="$W_SYSTEM32_DLLS_WIN/d3d10core.dll" \
homepage="https://github.com/doitsujin/dxvk"
load_setup_dxvk()
{
for f in "$file1" "$file2" "$file3" "$file4" "$file5"; do
w_try cp "x32/$f" "$W_SYSTEM32_DLLS/$f"
done
if [ "$W_ARCH" = "win64" ]; then
dxvk64_dir="/usr/lib64/wine/dxvk"
for f in "$file1" "$file2" "$file3" "$file4" "$file5"; do
w_try cp "x64/$f" "$W_SYSTEM64_DLLS/$f"
done
fi
w_override_dlls native \
dxgi \
d3d11 \
d3d10 \
d3d10_1 \
d3d10core
}