# 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``