From 39d80d114cfbd84085870ee96fbdff8187552b32 Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Thu, 12 Jul 2018 09:25:38 -0500 Subject: [PATCH] copy openvr_api.dll into place for DXVK DXVK needs to make some calls to openvr_api, but the game may not ship it in a predictable location. So we provide a fallback called openvr_api_dxvk.dll, which DXVK knows to load. --- README.md | 2 +- build_proton.sh | 3 +++ proton | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c6bb19df..723126a1 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ obtain the various submodules that go into building Proton: cd proton #for linux: - git submodule update --init wine dxvk ffmpeg openal-soft + git submodule update --init wine dxvk ffmpeg openal-soft openvr #for macos: git submodule update --init diff --git a/build_proton.sh b/build_proton.sh index 1771732e..9c054b21 100755 --- a/build_proton.sh +++ b/build_proton.sh @@ -610,6 +610,9 @@ if [ "$PACKAGE" = true ]; then WINEPREFIX="$TOP"/build/dist/share/default_pfx/ $RUNTIME_RUNSH ./build/dist/bin/wine64 wineboot WINEPREFIX="$TOP"/build/dist/share/default_pfx/ $RUNTIME_RUNSH ./build/dist/bin/wineserver -w + cp -a openvr/bin/win32/openvr_api.dll "$TOP"/build/dist/lib/wine/dxvk/openvr_api_dxvk.dll + cp -a openvr/bin/win64/openvr_api.dll "$TOP"/build/dist/lib64/wine/dxvk/openvr_api_dxvk.dll + #the difference between -1 and -9 is about 20 MB, so prioritize quick startup over file size tar -C build/dist -c . | gzip -c -1 > dist/proton_dist.tar.gz diff --git a/proton b/proton index d03c9f9c..31966f29 100755 --- a/proton +++ b/proton @@ -176,6 +176,9 @@ with prefix_lock: shutil.copy(basedir + "/dist/lib/wine/fakedlls/vrclient.dll", dst) shutil.copy(basedir + "/dist/lib64/wine/fakedlls/vrclient_x64.dll", dst) + shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/syswow64/") + shutil.copy(basedir + "/dist/lib64/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/system32/") + #parse linux openvr config and present it in win32 format to the app. #logic from openvr's CVRPathRegistry_Public::GetPaths