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.
MinGW-w64-GCC-15.2.0 (kompilert med POSIX trådstøtte), Vulkan-SDK-1.4.321.0, og Wine-10.13
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-list << "EOF"
doitsujin/dxvk/archive/v2.7/dxvk-2.7.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-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/subprojects/libdisplay-info && mv -T SPIRV-Headers-* \ dxvk-2.7/include/spirv && mv -T Vulkan-Headers-* \ dxvk-2.7/include/vulkan
Gå inn i dxvk-2.7
mappen:
cd dxvk-2.7
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 -vDm644 build-win64/DESTDIR/bin/*.dll \ /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 -vDm644 build-win32/DESTDIR/bin/*.dll \ /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: 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.