DXVK pakken inneholder DLL filer som konverterer Direct3D 8-11 kall til Vulkan. Som standard i Wine, Direct3D 8-11 kall konverteres til OpenGL kall på en dårlig måte, noe som fører til dårlig ytelse. Derfor installerer mange denne pakken.
Dette kan ta litt tid å bygge. Gjør gjerne noe annet mens dette bygges.
Denne pakken er avhengig av undermoduler, og flere av dem må lastes ned. Lag en liste over nødvendige tar filer som skal lastes ned:
cat > dxvk-2.7.1-list << "EOF"
doitsujin/dxvk/archive/v2.7.1/dxvk-2.7.1.tar.gz
doitsujin/libdisplay-info/archive/275e6459c7ab1ddd4b125f28d0440716e4888078.tar.gz
KhronosGroup/SPIRV-Headers/archive/8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz
KhronosGroup/Vulkan-Headers/archive/234c4b7370a8ea3239a214c9e871e4b17c89f4ab.tar.gz
EOF
Last ned tarballene ved å bruke Wget-1.25.0:
mkdir dxvk && cd dxvk && grep -v '^#' ../dxvk-2.7.1-list | wget -i- -c \ -B https://github.com/
Pakk ut alle tarballene:
for i in *.tar.?z*; do echo "Extracting $i..." tar -xf $i done
Nå som tarballene er pakket ut, må undermodulene flyttes på plass. Gjør det nå:
mv -T libdisplay-info-* \ dxvk-2.7.1/subprojects/libdisplay-info && mv -T SPIRV-Headers-* \ dxvk-2.7.1/include/spirv && mv -T Vulkan-Headers-* \ dxvk-2.7.1/include/vulkan
Gå inn i dxvk-2.7.1
mappen:
cd dxvk-2.7.1
Hvis du bruker multilib, anbefales det å installere 32-bit sammen med 64-bit DXVK siden det finnes mange 32-biters Direct3D applikasjoner.
Installer 64-bit DXVK ved å kjøre følgende kommandoer:
mkdir build-win64 && cd build-win64 && meson setup .. --cross-file=../build-win64.txt \ --buildtype=release \ --prefix=$PWD/DESTDIR && ninja
Nå som root
bruker:
ninja install && cd .. && mkdir -pv /usr/lib/dxvk/win64 && install -vDm755 build-win64/DESTDIR/bin/*.dll \ -t /usr/lib/dxvk/win64/
Installer 32-bit DXVK ved å kjøre følgende kommandoer:
mkdir build-win32 && cd build-win32 && meson setup .. --cross-file ../build-win32.txt \ --buildtype=release \ --prefix=$PWD/DESTDIR && ninja
Nå som root
bruker:
ninja install && cd .. && mkdir -pv /usr/lib/dxvk/win32 && install -vDm755 build-win32/DESTDIR/bin/*.dll \ -t /usr/lib/dxvk/win32/
Denne delen krever et kjørende grafisk miljø. Hvis du ikke er klar ennå, kan du hoppe over denne delen og gå tilbake når du er i et grafisk miljø.
Først, opprett Wine prefiks hvis det ikke allerede er opprettet:
WINEPREFIX=~/.wine wineboot -u
wineboot kan rapportere en feil i utdataene, men dette er normalt og hyppig. Vanligvis er disse feilene ikke fatale, og du trenger vanligvis ikke å bekymre deg for dem. Wine er veldig detaljert.
Selv om DXVK DLL filene er installert, er de ennå ikke i Wine prefiks. Lag symbolske lenker slik at de kan finnes av Wine, samtidig som det er mulig å oppdatere denne pakken uten å måtte kopiere alt på nytt. I tillegg til dette må registeret oppdateres for å bruke de nye DLL-ene. Gjør dette for hver arkitektur du har installert.
For 64-bit:
for DLL_FILE in /usr/lib/dxvk/win64/*.dll; do ln -sfv $DLL_FILE ~/.wine/drive_c/windows/system32/$(basename $DLL_FILE) && DLL_FILE=$(basename $DLL_FILE | sed s/.dll//g) && wine reg add \ 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' \ /v "$DLL_FILE" /d native /f done
For 32-bit:
for DLL_FILE in /usr/lib/dxvk/win32/*.dll; do if [ ! -d ~/.wine/drive_c/windows/syswow64 ]; then ln -sfv $DLL_FILE ~/.wine/drive_c/windows/system32/$(basename $DLL_FILE) else ln -sfv $DLL_FILE ~/.wine/drive_c/windows/syswow64/$(basename $DLL_FILE) fi DLL_FILE=$(basename $DLL_FILE | sed s/.dll//g) && wine reg add \ 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' \ /v "$DLL_FILE" /d native /f done
Undersøk meson_options.txt
eller
meson.options
for en fullstendig
liste over alternativer.
git checkout v2.7.1: Denne kommandoen bytter til en stabil utgivelse i commit historikken.
--cross-file=../build-win{32,64}.txt
:
Denne parameteren endrer hvilken Win arkitektur det skal bygges
for.
--buildtype=release
:
Spesifiser en byggetype som er egnet for stabile utgivelser av
pakken, da standardtypen kan produsere uoptimaliserte binærfiler.
WINEPREFIX=~/.wine wineboot -u: Denne kommandoen oppretter en Wine prefiks og kopierer eventuelle manglende filer til det. Det vil ikke tilbakestille et eksisterende prefiks.
wine reg add ...: Denne kommandoen overstyrer registeret slik at Wine vil bruke de nye DLL filene i stedet for de gamle.