VKD3D-Proton-2.14.1

Introduksjon til VKD3D-Proton

VKD3D-Proton pakken inneholder DLL filer som konverterer Direct3D 12-kall til Vulkan. Som standard i Wine, Direct3D 12 kall konverteres også til Vulkan; denne pakken gjør imidlertid mer aggressive optimaliseringer rettet mot spilling og erstatter standardimplementeringen som tilbys av Wine, VKD3D.

VKD3D-Proton Avhengigheter

Påkrevd

DXVK-2.7 (for dxgi og konfigurasjonsdelen), MinGW-w64-GCC-15.2.0 (kompilert med POSIX trådstøtte), Vulkan-SDK-1.4.321.0, og Wine-10.13

Laste ned DXVK

Denne pakken er avhengig av undermoduler, og flere av dem må lastes ned. Lag en liste over nødvendige tarballene som skal lastes ned.:

cat > vkd3d-proton-2.14.1-list << "EOF"
HansKristian-Work/vkd3d-proton/archive/v2.14.1/vkd3d-proton-2.14.1.tar.gz
KhronosGroup/SPIRV-Headers/archive/2b2e05e088841c63c0b6fd4c9fb380d8688738d3.tar.gz
KhronosGroup/Vulkan-Headers/archive/75ad707a587e1469fb53a901b9b68fe9f6fbc11f.tar.gz
HansKristian-Work/dxil-spirv/archive/47f8b0d6bba72431e89e896ac6c902309e0cf09b.tar.gz
KhronosGroup/SPIRV-Cross/archive/68300dc07ac3dc592dbbdb87e02d5180f984ad12.tar.gz
KhronosGroup/SPIRV-Headers/archive/3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b.tar.gz
KhronosGroup/SPIRV-Tools/archive/4d2f0b40bfe290dea6c6904dafdf7fd8328ba346.tar.gz
EOF

Last ned tarballene ved bruk av Wget-1.25.0:

mkdir vkd3d-proton &&
cd    vkd3d-proton &&
grep -v '^#' ../vkd3d-proton-2.14.1-list | wget -i- -c \
    -B https://github.com/

Installasjon av VKD3D-Proton

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 SPIRV-Headers-2b2e05e088841c63c0b6fd4c9fb380d8688738d3                \
      vkd3d-proton-2.14.1/khronos/SPIRV-Headers                            &&
mv -T Vulkan-Headers-*                                                      \
      vkd3d-proton-2.14.1/khronos/Vulkan-Headers                           &&
mv -T dxil-spirv-*                                                          \
      vkd3d-proton-2.14.1/subprojects/dxil-spirv                           &&
mv -T SPIRV-Cross-*                                                         \
      vkd3d-proton-2.14.1/subprojects/dxil-spirv/third_party/SPIRV-Cross   &&
mv -T SPIRV-Headers-3f17b2af6784bfa2c5aa5dbb8e0e74a607dd8b3b                \
      vkd3d-proton-2.14.1/subprojects/dxil-spirv/third_party/spirv-headers &&
mv -T SPIRV-Tools-*                                                         \
      vkd3d-proton-2.14.1/subprojects/dxil-spirv/third_party/SPIRV-Tools

Gå inn i vkd3d-proton-2.14.1 mappen:

cd vkd3d-proton-2.14.1

Rett generering av en ødelagt versjon som oppretter en ødelagt deklarasjonsfil under kompilering:

sed "165s/.*/  command : \['echo', '0'\],/" \
  -i meson.build
[Notat]

Notat

Hvis du bruker multilib, er det opp til deg om du vil installere 32-biters DLL filer fra denne pakken. Direct3D 12 ble utgitt i midten av 2015, så det er færre 32-biters D3D12 applikasjoner enn 64-biters. Hvis du ønsker å være på den sikre siden, vil det være lurt å installere 32-biters DLL filer også.

64-bit Installasjon

Installer 64-bit VKD3D-Proton 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/vkd3d-proton/win64 &&
install -vDm644 build-win64/DESTDIR/bin/*.dll \
                /usr/lib/vkd3d-proton/win64

32-bit Installasjon

Installer 32-bit VKD3D-Proton 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/vkd3d-proton/win32 &&
install -vDm644 build-win32/DESTDIR/bin/*.dll \
                /usr/lib/vkd3d-proton/win32

Sette opp VKD3D-Proton

Selv om VKD3D-Proton DLL filene er installert, er de ennå ikke i Wine prefikset. 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.

64-bit Oppsett

For 64-bit:

for DLL_FILE in /usr/lib/vkd3d-proton/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

32-bit Oppsett

For 32-bit:

for DLL_FILE in /usr/lib/vkd3d-proton/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

Parameterforklaringer

[Notat]

Notat

Undersøk meson_options.txt eller meson.options for en fullstendig liste over alternativer.

git checkout v2.14.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.

wine reg add ...: Denne kommandoen overstyrer registeret slik at Wine vil bruke de nye DLL filene i stedet for de gamle.

Innhold

Installerte Programmer: Ingen
Installerte Biblioteker: d3d12core og d3d12 (alle DLL-ere)
Installerte Mapper: /usr/lib/vkd3d-proton/{win32,win64}

Korte Beskrivelser

d3d12core

inneholder kjernefunksjonene i Direct3D 12 API

d3d12

konverterer Direct3D 12 kall til Vulkan