DXVK, původně vytvořený pro Linux, vám také může pomoci „opravit“ staré hry ve Windows a zvýšit jejich výkon. Tady je proč a jak.

Direct3D je součástí hraní ve Windows po celá desetiletí a sjednocuje segmentovaný počítačový hardware pod jeden deštník s podporou 3D. Aplikace vytvořená primárně pro Linux, DXVK, je však někdy mnohem lepší volbou, i když používáte Windows.

Chtěli byste lepší kompatibilitu, a co je důležitější, výkon pro vaše aplikace a hry? Pak musíte vyzkoušet DXVK.

Problém s DirectX ve Windows

Microsoft vytvořil DirectX jako „jednotné řešení“, které pomáhalo programátorům využívat hardwarové možnosti jakéhokoli PC. Namísto psaní různého kódu pro každou hardwarovou část mohli vývojáři softwaru „zacílit“ na DirectDraw (2D grafika), Direct3D (hardwarově akcelerované 3D) a DirectSound (audio) knihovny DirectX. Poté nechte řešení Microsoftu „přeložit“ jejich kód do „nativního jazyka“ každé hardwarové části.

DirectX se stal nenahraditelnou základní technologií ve Windows a od té doby se vyvíjí. Direct3D má však malý háček: není 100% zpětně kompatibilní.

Microsoft a tvůrci GPU, které podporují Direct3D API (jako v „Nvidia, AMD a Intel“), mají občas upustila od podpory funkcí zavedených v minulých verzích Direct3D, které se však nikdy nezískaly trakce. Některé starší hry tedy nemusí správně fungovat na moderním GPU s nejnovějšími verzemi Direct3D.

Co je Vulkan?

OpenGL, pravděpodobně „otevřenější“ odpověď na uzavřený zdroj Direct3D společnosti Microsoft, byla mutovaná verze 3D grafických knihoven používaných v grafických pracovních stanicích Silicon Graphics.

OpenGL však vždy zaostávalo, pokud jde o funkce, ve srovnání s Direct3D společnosti Microsoft. Nakonec se zdálo racionálnější pokus restartovat. Proto vznikl Vulkan, známý také jako „OpenGL Next“, nabízející lepší výkon a zvýšenou kontrolu nad hardwarem.

Stejně jako OpenGL a na rozdíl od Direct3D vázaného na Windows od Microsoftu je Vulkan „otevřený“ a multiplatformní. Vulkan můžete používat na Windows, Linux a dokonce i na chytrých telefonech. Ačkoli není nativně podporován na počítačích Mac, je tam použitelný prostřednictvím MoltenVK.

To byla krátká verze. Chcete-li se dozvědět více o Vulkanu, podívejte se na náš článek na jaké jsou běhové knihovny Vulkan ve Windows.

Co je DXVK?

DXVK je obal, „překládající“ Direct3D do Vulkanu. V lidském světě může být překladatel prostředníkem mezi anglickým a japonským mluvčím a umožňuje jim vzájemně si porozumět. Podobně „obaly“ nebo „překladové vrstvy“ mohou „vzít“ kód napsaný pro konkrétní kus hardwaru, platformy nebo rozhraní API a přeložit jej, aby běžel na jiném.

DXVK byl původně vyvinut pro Linux s podporou od Valve, které jej také používá na SteamOS a Steam Deck. Více se o tom můžete dozvědět v našem článku, kde jsme viděli co je Steam Proton a jak spouští hry pro Windows na Steam Deck.

Proč byste měli používat DXVK ve Windows?

Pokud hra na vašem hardwaru již běží dobře, není důvod používat DXVK. Některé hry napsané pro starší verze DirectX ale neběží „správně“ (pokud vůbec) na novějších verzích DirectX a moderním hardwaru.

„Překladem“ starého a zabugovaného kódu Direct3D do modernějšího API Vulkan je minimální daň na výkonu (pokud vůbec). Problémové hry s rozbitou grafikou nebo chybějícími funkcemi se zároveň mohou stát znovu plně hratelnými.

Protože Vulkan je na stejné úrovni jako Direct3D 12 a obě jsou mnohem lepší (a rychlejší) než starší verze Direct3D (jak jsme viděli, když porovnali jsme DirectX 11 VS DirectX 12), „překlad“ starých Direct3D her do Vulkanu může někdy zlepšit výkon hry.

Práce Intelu na jejich Arc GPU je toho důkazem. Intel by se mohl pokusit přidat podporu pro každý jeden starší titul v ovladačích GPU Arc. Místo toho se Intel rozhodl pracovat na dalším vylepšení DXVK. Počáteční výsledky „experimentu“ Intelu vedly k dvojnásobnému zvýšení výkonu u starších titulů s desítkami vykreslených hratelných „přes“ DXVK.

Jak používat DXVK ve Windows

Použití DXVK ve Windows je snadné, protože není co upravovat nebo konfigurovat. Stačí si ji stáhnout, rozbalit do správné složky hry a je připravena k použití.

Musíte však použít správnou verzi DXVK, která odpovídá verzi Direct3D používané vaší hrou.

Pravděpodobně bude snazší, když projdeme celým procesem společně, abychom viděli, jak si můžete stáhnout nejnovější verzi DXVK, identifikovat „technu“ vaší hry a nainstalovat správné knihovny DLL do správné složky.

Jak stáhnout DXVK

DXVK je software s otevřeným zdrojovým kódem a je zdarma k použití. Jeho nejnovější verzi najdete na GitHubu.

  1. Navštivte DXVK's oficiální stránka GitHub a klikněte na Nejnovější odkaz na verzi v pravé části stránky pod Vydání.
  2. Přejděte dolů na stránce vydání a najděte Aktiva sekce nejnovější verze. Kliknutím na nejnovější archiv DXVK tar.gz jej stáhnete. V době psaní tohoto článku to byla verze 2.2.
  3. Uložte stažený archiv někde, protože budete muset extrahovat jeho obsah do složky každé hry, kterou chcete spustit s DXVK namísto Direct3D.

Jak vybrat správnou verzi DXVK

Pokud potřebujete vědět, jakou verzi Direct3D vaše hra používá, může vám pomoci web PC Gaming Wiki.

  1. Návštěva Wiki hry na PC pomocí prohlížeče a pomocí vyhledávacího pole vpravo nahoře vyhledejte hru, do které chcete přidat DXVK.
  2. Když najdete svou hru, navštivte její stránku a přejděte dolů, abyste dosáhli Jiná informace sekce. Obraťte svou pozornost na tabulky API. Tam, na Technické specifikace a Podporováno ve sloupcích uvidíte verzi Direct3D, kterou vaše hra používá. Pod Spustitelný, 32bitový, a 64bitový sloupce vám „řeknou“, jakou architekturu byste si měli vybrat.

Jak přidat DXVK do vašich her

Nyní, když víte, kterou verzi Direct3D a architekturu CPU vaše hra používá, můžete do její složky přidat správnou verzi DXVK.

  1. Otevřete archiv DXVK pomocí svého oblíbeného správce archivů (pro tento článek používáme WinRAR) a zadejte jedinou složku DXVK, kterou tam uvidíte.
  2. Uvnitř najdete dvě podsložky, jednu pro každou architekturu počítače. Zadejte ten správný pro vaši hru. I když je váš operační systém 64bitový, jako většina dnešních verzí Windows, pokud je vaše hra 32bitová, měli byste zvolit 32bitovou složku.
  3. Vybrat DXGI.DLL plus správnou DLL pro verzi Direct3D vaše hra používá. Jak uvidíte, existují tři další knihovny DLL, jedna pro každou z předchozích verzí Direct3D: 9, 10 a 11.
  4. Najděte místní složku, kde je vaše hra nainstalována, a vyhledejte podsložku s jejím spustitelným souborem („soubor, ze kterého se hra spouští“). Extrahujte knihovny DLL z předchozího kroku do této složky.

Jak otestovat a porovnat svou vylepšenou hru

Pokud nyní svou hru spustíte, měla by místo Direct3D používat Vulkan a doufejme, že bude fungovat lépe.

I když nevidíte žádné dramatické změny ve snímkové frekvenci, někdy lze vylepšení „cítit“ i jinak. Vyzkoušeli jsme například DXVK s klasickým Batman: Arkham City na PC vybaveném Ryzen 5900x, 64 GB RAM a GPU Nvidia RTX 3070. Náš hardware již překonal špičkové specifikace této staré hry a dosahoval velmi vysokých snímkových frekvencí. I kdyby se s Vulkanem dostali výš, rozdíl by nebyl snadno postřehnutelný.

Herní akce však působila plynuleji. Přechody mezi obrazovkami, úrovně načítání a stisknutí Alt + Tab byly s DXVK téměř okamžité.

Kdy byste neměli používat DXVK

DXVK má mnoho výhod a může přinést výkon starších her do moderní doby. Navzdory tomu to není stříbrná kulka pro lepší výkon a někdy se to prostě nevyplatí používat.

1. DXVK nezlepšuje výkon hry

Pokud jste do hry přidali DXVK DLL, ale poté jste neviděli žádný rozdíl, můžete je znovu odebrat, pokud chcete. Chcete-li to provést, můžete odstranit knihovny DLL, které jste přidali do složky hry.

2. DXVK způsobuje horší výkon nebo zavádí nové závady

Někdy může mít přidání DXVK do hry opačný efekt. Bohužel pro koncového uživatele neexistuje způsob, jak takové problémy vyřešit.

Objevily se po přidání DXVK výkonnostní tank nebo vizuální závady hry? Ukončete hru a odstraňte knihovny DLL DXVK z jejího adresáře.

3. Chcete hrát svou hru online

DXVK je vrstva kompatibility a ovlivňuje pouze grafický výstup hry. Některé společnosti jsou přesto proti jakýmkoli úpravám svých her, aby zajistily spravedlivé prostředí pro všechny.

DXVK nemusí být „podvádění“, ale stále je to „úprava hry“ a může být jako taková označena.

4. Hra již má vestavěnou podporu Vulkan

Pokud hra již používá Vulkan API, jako je Doom Eternal, není důvod nastavovat její výstup na Direct3D a následně jej překládat do Vulkanu.

5. Hra využívá Direct3D 12

Vzhledem k tomu, že Direct3D 12 je téměř plně na stejné úrovni jako Vulkan, není možné nic získat překladem jednoho ultramoderního grafického API do jiného.

Vylepšete své staré hry pomocí "Přeložené" 3D ve Windows

To, co začalo jako způsob, jak hrát více her pro Windows na Linuxu, se nakonec stalo užitečným řešením kompatibility a zvýšením výkonu. Mějte tedy po ruce nejnovější archiv knihoven DLL DXVK. Přidejte je do jakékoli hry, kde byste chtěli odstranit závady, zlepšit její výkon, získat plynulejší akci ve hře a zlepšit její odezvu.

I když to nakonec nepomůže, vyzkoušení zabere jen pár sekund a častěji než ne, budete možná překvapeni výsledky.