This commit is contained in:
Andy 2018-12-23 13:29:05 +01:00
parent 83e14cef6e
commit e8731948ad
Signed by: arno
GPG Key ID: 9076D5E6B31AE99C

166
WIP.md Normal file
View File

@ -0,0 +1,166 @@
# WIP
## Test DXVK
DXVK is a set of replacement dll files that translate from DirectX 11 to Vulkan.
https://github.com/doitsujin/dxvk
## Get the mingw-w64 6.0 from Ubuntu Disco (19.04) repo:
```
# cat /etc/apt/apt.conf.d/01lock-release
APT::Default-Release "bionic";
# cat /etc/apt/preferences.d/01-disco-whitelist
# By default let's block everything from disco.
Package: *
Pin: release a=disco
Pin-Priority: -1
# Whitelist those packages which you want to take from disco.
Package: mingw-w64 mingw-w64-common mingw-w64-i686-dev mingw-w64-x86-64-dev
Pin: release a=disco
Pin-Priority: 990
# cat /etc/apt/sources.list.d/disco.list
deb http://archive.ubuntu.com/ubuntu/ disco universe
deb http://archive.ubuntu.com/ubuntu/ disco-updates universe
deb http://security.ubuntu.com/ubuntu/ disco-security universe
# apt-get update && apt-get upgrade
```
```
$ sudo apt install meson glslang-tools mingw-w64
```
Remember to select the "Posix" version when running this:
```
$ sudo update-alternatives --config x86_64-w64-mingw32-gcc
$ sudo update-alternatives --config x86_64-w64-mingw32-g++
$ sudo update-alternatives --config i686-w64-mingw32-gcc
$ sudo update-alternatives --config i686-w64-mingw32-g++
```
## Compile the DXVK with the tests
```
$ git clone https://github.com/doitsujin/dxvk
$ cd dxvk/
$ cat meson_options.txt
option('enable_tests', type : 'boolean', value : true)
$ TESTDIR="$(mktemp -d)"
$ meson --cross-file build-win64.txt --buildtype release --prefix $TESTDIR/dxvk-master build.w64
$ cd build.w64/
$ ninja
$ ninja install
$ ls -lah ${TESTDIR}/dxvk-master/bin/*exe
```
> For 32-bit builds, replace 64 with 32.
```
$ docker cp ${TESTDIR}/dxvk-master/bin steam_steam_1:/dxvk-bin
$ docker cp ${TESTDIR}/dxvk-master/bin wine:/dxvk-bin
```
```
$ wine /dxvk-bin/d3d11-triangle.exe
$ WINEPREFIX=~/.wine-test-dxvk winecfg
OK
$ WINEPREFIX=~/.wine-test-dxvk ./setup_dxvk.sh install
```
```
DXVK_HUD="version,devinfo,fps" wine Origin.exe
```
## Installing Origin and Battlefield 1
### Get Origin v9.13.0.62213
```
curl -o OriginThinSetup.exe -fsSL https://www.dm.origin.com/download/legacy
wine OriginThinSetup.exe
```
```
Install to: "C:\Origin"
User -> Application Settings -> "INSTALLS & SAVES"
Games location: "C:\OriginGames"
Legacy game installers: "C:\ProgramData\Origin\DownloadCache"
User -> Application Settings -> MORE -> ORIGIN IN-GAME ->
Untick [ ] Enable Origin In-Game.
```
```
# su -l user
$ cd ~/.wine/drive_c/Origin
$ wine Origin.exe
```
## Installing Battle.net and Call of Duty Black Ops 4
```
# su -l user
$ curl -o Battle.net-Setup.exe -fsSL "https://eu.battle.net/download/getInstaller?os=win&installer=Battle.net-Setup.exe&id=290573456.1505264452"
$ wine Battle.net-Setup.exe
```
```
Install Location: "C:/Battle.net"
Install CoD BO4 to "C:\Call of Duty Black Ops 4"
```
```
# su -l user
$ cd ~/.wine/drive_c/Battle.net/
$ wine Battle.net.exe
```
https://www.reddit.com/r/wine_gaming/comments/9r3t0v/call_of_duty_black_ops_4_wont_start/
# Extra
## Figuring DXVK version in use
```
$ find ~/git/wine/ -type f -name "d3d11.dll" -exec sh -c "strings '{}' | grep -A1 DXVK: |grep ^v0 && echo '{}'" \;
v0.94
/home/arno/git/wine/data/.wine/drive_c/windows/syswow64/d3d11.dll
v0.94
/home/arno/git/wine/data/.wine/drive_c/windows/system32/d3d11.dll
v0.94
/home/arno/git/wine/data/dxvk-0.94/x64/d3d11.dll
v0.94
/home/arno/git/wine/data/dxvk-0.94/x32/d3d11.dll
$ find ~/git/steam/ -type f -name "d3d11.dll" -exec sh -c "strings '{}' | grep -A1 DXVK: |grep ^v0 && echo '{}'" \;
v0.90-10-g60a03a2
/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.16/dist/lib64/wine/dxvk/d3d11.dll
v0.90-10-g60a03a2
/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.16/dist/lib/wine/dxvk/d3d11.dll
v0.80-19-gee8b469
/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib64/wine/dxvk/d3d11.dll
v0.80-19-gee8b469
/home/arno/git/steam/data/.local/share/Steam/steamapps/common/Proton 3.7/dist/lib/wine/dxvk/d3d11.dll
```
# Troubleshooting
## unimplemented function vulkan-1.dll
```
wine: Call from 0x7bc77769 to unimplemented function vulkan-1.dll.vkGetInstanceProcAddr, aborting
wine: Unimplemented function vulkan-1.dll.vkGetInstanceProcAddr called at address 0x7bc77769 (thread 0009), starting debugger...
```
Install ``libvulkan1:i386``