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.

  1. Látogassa meg a DXVK-t hivatalos GitHub oldal és kattintson a Legújabb verzió linkje az oldal jobb oldalán, alatta Kiadások.
  2. 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.
  3. 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.

  1. 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.
  2. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.