Vydání DXVK 3.0

Po šesti měsících vývoje byla vydána nová verze DXVK (Direct3D to Vulkan Translation Layer). Tato open-source knihovna převádí volání API Direct3D 8, 9, 10 a 11 na příkazy Vulkan. Umožňuje spouštět 3D aplikace a hry vyvinuté pro... Windows, na systémech, kde chybí nativní podpora Direct3D, a zároveň využívá efektivnější grafické API Vulkan.

Hlavní změny
Nová verze přešla na používání specifikací a rozšíření Vulkan 1.4, což bude odpovídajícím způsobem vyžadovat kompatibilní ovladač.

DXVK nyní používá dxbc-spirv kompilovat shadery pro všechny podporované modely shaderů. To řeší řadu problémů, které dříve nebylo možné vyřešit:
Problémy s vykreslováním ve hrách, způsobené buď hrami spoléhajícími se na nedefinované chování, nebo FXC generujícím neplatný kód v některých případech, například v Postal: Brain Damage a Snowrunner.
Vygenerovaný kód je kompaktnější než jednoduše převedený kód SPIR-V, což výrazně snižuje paměťovou náročnost DXVK. Ve hrách jako Overwatch nebo God of War se tím ušetří přibližně 1 GiB systémové paměti.
Kompilace shaderů byla nyní kompletně přesunuta do worker vláken, což může zkrátit dobu spouštění her jako Days Gone a Final Fantasy XIV nebo v některých případech snížit zasekávání. Dříve DXVK prováděl překlad SPIR-V v aplikačním vlákně a v worker procesech kompiloval pouze skutečné Vulkan pipeline.
Mezilehlá reprezentace kompilovaných shaderů DXVK je nyní uložena v mezipaměti na disku v adresáři AppData/Local aktuálního prefixu Wine. To je nutné, protože doba kompilace se ve srovnání se starým kompilátorem prodloužila. Cestu k mezipaměti lze změnit pomocí proměnné prostředí DXVK_SHADER_CACHE_PATH.

Nové rozšíření Vulkan VK_EXT_descriptor_heap se nyní standardně používá v ovladačích, které ho podporují.
Ve srovnání se starou implementací modelu vazby založeného na VK_EXT_descriptor_buffer se očekává, že tento nový model poskytne zhruba stejnou úroveň výkonu vázaného na CPU a zároveň se vyhne snížení výkonu na grafických procesorech Nvidia (vyžaduje nvidia-drivers-595.84 a novější).
Změny D3D9
Aby DXVK emuloval starší fixed-function pipeline, který umožňuje vykreslování her pro D3D8 a D3D9 bez shaderů, dříve generoval vlastní shaderový kód za chodu na základě stavu pipeline. V některých hrách, jako například Unreal Tournament 2004, to mohlo vést k znatelnému zasekávání i po delší době hraní.

Aby se to vyřešilo, DXVK nyní implementuje pipeline s pevnou funkcí jako dvojici ubershaderů, pro které se na pozadí kompilují optimalizované varianty.
Optimalizace načítání vyrovnávací paměti
Aby se chování lépe přizpůsobilo Windows, různé typy vyrovnávacích pamětí, které byly dříve umístěny přímo do VRAM, jsou nyní načítány na vyžádání a byla implementována strategie omezení RAM, která opravuje pády související s adresním prostorem v řadě 32bitových her D3D9.
Tyto změny mohou také zlepšit výkon na systémech bez měnitelných BARů ve hrách jako GTA IV.

Na systémech, které dostatečně podporují VK_EXT_sample_locations a VK_EXT_extended_dynamic_state3, nyní správně funguje renderovací stav D3DRS_MULTISAMPLEANTIALIAS, což umožňuje aplikacím používat rastrování s jedním vzorkem při renderování do vícevzorkových renderovacích cílů. Tím se řeší problémy s renderováním uživatelského rozhraní v Anno 1701, Men of War Assault Squad a podobné problémy v jiných hrách s povoleným MSAA.

Sdílené zdroje nyní fungují s původní implementací Wine a již nevyžadují záplaty specifické pro Proton.

Za zmínku také stojí spousta oprav různých her, které nyní poběží lépe.

Zdroj: linux.org.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster