Az eredetileg Linuxra készült DXVK segíthet a régi játékok "javításában" Windowson, és növelheti a teljesítményüket. Íme, miért és hogyan.
A Direct3D évtizedek óta része a Windows-játékoknak, egyetlen 3D-képes ernyő alatt egyesíti a szegmentált PC-hardverkörnyezetet. Azonban egy elsősorban Linuxra készült alkalmazás, a DXVK, néha sokkal jobb választás, még akkor is, ha Windows rendszert használ.
Jobb kompatibilitást és – ami még fontosabb – teljesítményt szeretne alkalmazásaihoz és játékaihoz? Akkor ki kell próbálnod a DXVK-t.
A probléma a DirectX-szel Windows rendszeren
A Microsoft a DirectX-et "egységes megoldásként" hozta létre, amely segített a programozóknak bármilyen számítógép hardverképességének használatában. Ahelyett, hogy az egyes hardverrészekhez más-más kódot írnának, a szoftverfejlesztők "célozhatják" a DirectX DirectDraw (2D grafika), Direct3D (hardvergyorsított 3D) és DirectSound (audio) könyvtárait. Ezután hagyja, hogy a Microsoft megoldása „lefordítsa” a kódjukat az egyes hardverrészek „anyanyelvére”.
A DirectX a Windows pótolhatatlan alaptechnológiájává vált, és azóta folyamatosan fejlődik. A Direct3D-vel azonban van egy kis bökkenő: nem 100%-ban visszafelé kompatibilis.
A Microsoft és a Direct3D API-t támogató GPU-k alkotói (mint az "Nvidia, AMD és Intel" esetében) időnként megszüntette a Direct3D korábbi verzióiban bevezetett funkciók támogatását, amelyek azonban soha nem növekedtek vontatás. Emiatt előfordulhat, hogy egyes régebbi játékok nem futnak megfelelően modern GPU-n a Direct3D legújabb verzióival.
Mi az a Vulkan?
Állítólag „nyitottabb” válasz a Microsoft zárt forráskódú Direct3D-jére, az OpenGL a Silicon Graphics grafikus munkaállomásain használt 3D grafikus könyvtárak mutált változata volt.
Az OpenGL azonban mindig lemaradt, a Microsoft Direct3D-jéhez képest. Végül ésszerűbbnek tűnt újraindítani az erőfeszítést. Ezért jött létre a Vulkan, más néven "OpenGL Next", amely jobb teljesítményt és nagyobb vezérlést kínál a hardver felett.
Az OpenGL-hez hasonlóan, és a Microsoft Windowshoz kötött Direct3D-jével ellentétben a Vulkan „nyitott” és többplatformos. Használhatja a Vulkan-t Windowson, Linuxon és még okostelefonokon is. Bár natívan nem támogatott Mac-eken, ott a MoltenVK-n keresztül használható.
Ez volt a rövid verzió. Ha többet szeretne megtudni a Vulkanról, olvassa el a következő cikkünket milyen Vulkan futásidejű könyvtárak vannak a Windowsban.
Mi az a DXVK?
A DXVK egy wrapper, amely a Direct3D-t "lefordítja" Vulkan nyelvre. Az emberi világban a fordító közvetítő lehet egy angol és japán beszélő között, lehetővé téve számukra, hogy megértsék egymást. Hasonlóképpen, a "burkolók" vagy "fordítási rétegek" "elvehetik" egy adott hardver, platform vagy API számára írt kódot, és lefordíthatják azt, hogy egy másikon fussanak.
A DXVK-t eredetileg Linuxra fejlesztették a Valve támogatásával, amely a SteamOS-en és a Steam Decken is használja. Erről többet megtudhat cikkünkben, ahol láttuk mi az a Steam Proton és hogyan futtatja a Windows játékokat a Steam Decken.
Miért érdemes DXVK-t használni Windows rendszeren?
Ha egy játék már jól fut a hardveren, nincs ok a DXVK használatára. De néhány, a DirectX régebbi verziójára írt játék nem fut "helyesen" (ha egyáltalán fut) a DirectX újabb verzióin és a modern hardvereken.
A régi és hibás Direct3D kód „lefordítása” a modernebb Vulkan API-ba minimális teljesítménycsökkenést jelent (ha van ilyen). Ugyanakkor a problémás, hibás grafikával vagy hiányzó funkciókkal rendelkező játékok újra teljesen játszhatóvá válhatnak.
Mivel a Vulkan egyenrangú a Direct3D 12-vel, és mindkettő sokkal jobb (és gyorsabb), mint a Direct3D régebbi verziói (amint láttuk, amikor összehasonlítottuk a DirectX 11-et a DirectX 12-vel), a régi Direct3D játékok Vulkan nyelvre "lefordítása" néha javíthatja a játék teljesítményét.
Az Intel Arc GPU-ikon végzett munkája ezt bizonyítja. Az Intel megpróbálhat minden egyes régebbi címet támogatni az Arc GPU-illesztőprogramokban. Ehelyett az Intel úgy döntött, hogy továbbfejleszti a DXVK-t. Az Intel „kísérletének” kezdeti eredményei akár kétszeres teljesítménynövekedéshez vezetnek a régebbi címek esetében, mivel több tucatnyi játék játszható le a DXVK-n keresztül.
A DXVK használata Windows rendszeren
A DXVK használata Windows rendszeren egyszerű, mivel nincs mit módosítani vagy konfigurálni. Csak le kell töltenie, ki kell bontania a játék megfelelő mappájába, és már indulhat is.
Azonban a megfelelő DXVK verziót kell használnia, amely megegyezik a játék által használt Direct3D verzióval.
Valószínűleg egyszerűbb, ha együtt megyünk végig az egész folyamaton, hogy megnézzük, hogyan töltheti le a DXVK legújabb verzióját, hogyan tudja azonosítani a játék „technológiáját”, és telepíteni a megfelelő DLL-eket a megfelelő mappába.
Hogyan lehet letölteni a DXVK-t
A DXVK nyílt forráskódú szoftver, és ingyenesen használható. A legújabb verziót a GitHubon találja meg.
- Látogassa meg a DXVK-t hivatalos GitHub oldal és kattintson a Legújabb verzió linkje az oldal jobb oldalán, alatta Kiadások.
- Görgessen le a kiadási oldalon, és keresse meg a Eszközök szakasz a legújabb verzióban. Kattintson a legújabb DXVK tar.gz archívumra a letöltéshez. A cikk írásakor a 2.2-es verzió volt.
- Tárolja valahol a letöltött archívumot, mert a tartalmát minden olyan játék mappájába kell kicsomagolnia, amelyet a Direct3D helyett DXVK-val szeretne futtatni.
Hogyan válasszuk ki a megfelelő DXVK verziót
Ha tudnia kell, hogy a játéka a Direct3D melyik verzióját használja, a PC Gaming Wiki webhely segíthet.
- Látogatás PC Gaming Wiki böngészőjével, és a jobb felső sarokban található keresőmezővel keresse meg azt a játékot, amelyhez hozzá szeretné adni a DXVK-t.
- Amikor megtalálta a játékot, látogasson el annak oldalára, és görgessen lefelé, hogy elérje a Egyéb információk szakasz. Fordítsa a figyelmét az API-táblákra. Ott, a Műszaki adatok és Támogatott oszlopokban látni fogja a játék által használt Direct3D verziót. Alatta a Végrehajtható, 32 bites, és 64 bites oszlopok „megmondják”, hogy melyik architektúrát érdemes választani.
DXVK hozzáadása a játékokhoz
Most, hogy tudja, melyik Direct3D verziót és CPU architektúrát használja a játék, hozzáadhatja a DXVK megfelelő verzióját a mappájához.
- Nyissa meg a DXVK archívumot kedvenc archívumkezelőjével (ebben a cikkben WinRAR-t használunk), és írja be az ott látható egyetlen DXVK mappát.
- Belül két almappát talál, mindegyik számítógép-architektúrához egyet. Adja meg a játéknak megfelelőt. Még ha az operációs rendszere 64 bites, mint a legtöbb mai Windows verzió, ha a játék 32 bites, akkor a 32 bites mappát kell választania.
- Válaszd ki a DXGI.DLL verziójának megfelelő DLL-t Direct3D a játékod használja. Amint látni fogja, van még három DLL, egy-egy a Direct3D korábbi verzióihoz: 9, 10 és 11.
- Keresse meg a helyi mappát, ahová a játék telepítve van, és keresse meg az almappát a végrehajtható fájllal ("a játék futásának fájlja"). Bontsa ki az előző lépésből származó DLL-eket ebbe a mappába.
Hogyan tesztelheti és összehasonlíthatja továbbfejlesztett játékát
Ha most futtatja a játékot, a Direct3D helyett a Vulkan-t kell használnia, és remélhetőleg jobban teljesít.
Még ha nem is látsz drámai változást a képkockasebességben, a javulás néha más módon is „érződik”. Kipróbáltuk például a DXVK-t a klasszikus Batman: Arkham City-vel egy Ryzen 5900x-es, 64 GB RAM-mal és Nvidia RTX 3070 GPU-val felszerelt PC-n. Hardverünk már túl volt a régi játék legjobb specifikációin, és nagyon magas képkockasebességet ért el. Még ha feljebb is jutnának a Vulkannal, a különbség nem lenne könnyen érzékelhető.
A játék akciója azonban simábbnak tűnt. A képernyők közötti átmenet, a betöltési szintek és az Alt + Tab lenyomása szinte azonnali volt a DXVK-val.
Mikor nem szabad DXVK-t használni
A DXVK számos előnnyel rendelkezik, és a régebbi játékok teljesítményét a modern korba hozhatja. Ennek ellenére ez nem egy ezüstgolyó a jobb teljesítményért, és néha egyszerűen nem érdemes használni.
1. A DXVK nem javítja a játék teljesítményét
Ha hozzáadta a DXVK DLL-eket a játékhoz, de utána nem tapasztalt különbséget, akkor újra eltávolíthatja őket, ha akarja. Ehhez törölheti a játék mappájához hozzáadott DLL-eket.
2. A DXVK rosszabb teljesítményt okoz, vagy új hibákat vezet be
Néha a DXVK hozzáadása egy játékhoz az ellenkező hatást eredményezheti. Sajnos a végfelhasználó nem tudja megoldani az ilyen problémákat.
Egy játék teljesítménytartálya vagy vizuális hibák jelentkeztek a DXVK hozzáadása után? Lépjen ki a játékból, és törölje a DXVK DLL-eit a könyvtárából.
3. Online szeretné játszani a játékát
A DXVK egy kompatibilitási réteg, és csak a játék grafikus kimenetére van hatással. Ennek ellenére egyes vállalatok ellenzik játékaik bármilyen módosítását, hogy mindenki számára tisztességes környezetet biztosítsanak.
Lehet, hogy a DXVK nem "csalás", de mégiscsak "játékmódosítás", és ilyenként megjelölhető.
4. A játék már rendelkezik beépített Vulkan támogatással
Ha egy játék már használja a Vulkan API-t, mint például a Doom Eternal, akkor nincs ok arra, hogy a kimenetét Direct3D-re állítsa, majd lefordítsa Vulkanra.
5. A játék Direct3D 12-t használ
Mivel a Direct3D 12 szinte teljesen egyenrangú a Vulkannal, semmit sem nyerhetünk, ha az egyik ultramodern grafikus API-t egy másikra fordítjuk.
Javítsa régi játékait a "lefordított" 3D-vel a Windows rendszeren
Ami abból indult ki, hogy több Windowshoz kötött játékot lehetett játszani Linuxon, végül hasznos kompatibilitási megoldássá és teljesítménynövelővé vált. Ezért tartsa kéznél a DXVK DLL-einek legújabb archívumát. Adja hozzá őket minden olyan játékhoz, ahol ki szeretné küszöbölni a hibákat, javítani szeretné a teljesítményét, simább játékon belüli műveleteket szeretne elérni, és javítani szeretné a reakciókészségét.
Még ha végül nem is segít, a kipróbálása csak másodpercekig tart, és leggyakrabban meglepődhet az eredményeken.