Přeskočit na obsah
Tech-Blog Chatujme.cz Chatujme.cz
Hry

Verze 2.1 vrstvy D7VK zkrátila podle autora načítání některých starých her na polovinu

Překladová vrstva D7VK, která pouští staré hry pro Direct3D 7 přes Vulkan, vyšla ve verzi 2.1. Tentokrát se nezrychlilo vykreslování, ale start: autor ubral režii při vytváření a rušení objektů a u některých her podle vlastních slov zkrátil načítání na polovinu i méně. Vlastní měření k tomu ale nepřiložil.

· aktualizováno 1. 9. 2026 · 189 zhlédnutí

Zelená grafická karta Diamond Viper V770 pro sběrnici AGP s velkým pasivním chladičem a paměťovými čipy EtronTech
Grafická karta Diamond Viper V770 pro sběrnici AGP, tedy hardware z doby, kdy hry používaly Direct3D 7. Foto: Swaaye, Wikimedia Commons (CC BY-SA 3.0)

Překladová vrstva D7VK vyšla 14. srpna 2026 ve verzi 2.1. Poznámky k vydání otevírá věta, kterou by v seznamu změn čekal málokdo: doba zrychlování skončila a přišel čas optimalizovat načítání (přeloženo). Autor pod ní vypsal šestnáct změn, ve kterých ubývá režie na místech, kam se při měření snímkové frekvence nedívá skoro nikdo.

Prostředník mezi starým rozhraním a Vulkanem

D7VK je odbočka od DXVK a převádí volání Direct3D verzí 7, 6, 5 a 3 na Vulkan, aby staré hry běžely pod WineProtonem na Linuxu. Úplný ovladač to není: opírá se o backend DXVK pro Direct3D 9 a o implementaci DirectDraw z Wine a mezi obojím dělá prostředníka. Novější rozhraní pokrývají jiné projekty, popisuje Phoronix – Direct3D 8 až 11 samotné DXVK, Direct3D 12 pak VKD3D-Proton.

Číslování má díru, kterou autor vysvětluje hned v popisu projektu. Direct3D 1 nikdy neexistovalo, protože první vydání DirectX žádnou trojrozměrnou část nemělo. Direct3D 2 a 3 jsou prakticky totéž rozhraní a liší se jen historicky. A DirectX 4 Microsoft nikdy nevydal; rozpracované Direct3D 4 se přelilo do toho, čemu se pak začalo říkat Direct3D 5.

Co se v této verzi zkrátilo

Hlavní změna je ořezané sledování životního cyklu objektů. Vytváření a rušení objektů, mezipaměti a kopírovací cesty stály víc, než musely, a jejich zeštíhlení se podle autora projevilo na startu her napříč všemi podporovanými verzemi rozhraní. Jediné konkrétní číslo v poznámkách se týká hry Empire Earth: čas od spuštění do přehrání úvodního videa spadl ze tří až čtyř sekund zhruba na jednu, a to díky zrychlenému kopírování a ukládání struktury se schopnostmi zařízení.

Vedle toho přibyla nepovinná přímá cesta pro volání GetDC a ReleaseDC. Ve hře Arx Fatalis přidala během hraní pět až deset procent snímků, jenže při vykreslování hlavní nabídky výkon naopak znatelně klesl; autor proto sám píše, že se výsledek bude lišit hru od hry. Vertex buffery pro Direct3D 7 a 6 se nově zkoušejí připravit dopředu, což odstraní záseky při prvním sáhnutí na objekt – ale jen tam, kde to chování hry dovolí.

Opravy vázané na konkrétní tituly

Seznam změn je z velké části soupis jednotlivých her. Chyba typu use-after-free při uvolňování připojené hloubkové plochy shazovala Arx Fatalis hned po startu; projevila se jen u binárek přeložených překladači MSVC a clang a upozornil na ni přispěvatel vystupující jako NemesisElectron. Nová volba pro posun středu pixelu o půl texelu odstranila kazy na pozadí v krabicovém vydání hry Resident Evil 2 – dělá totéž co dávná volba v ovladačích ATI a Nvidie z časů Windows 9x a XP a mimo takové případy se zapínat nemá, protože sama vyrábí artefakty, nejvíc na vykresleném textu.

Dál přibylo obejití chybějících pozadí hlavní nabídky v MechWarrior 3, spravované vertex buffery pro Project I.G.I. a Sonic World DX a obejití nešikovných přístupů do bufferů v Empire Earth: The Art of Conquest, které pomáhá, když je na obrazovce hodně jednotek. Rychlejší přenosy ploch se mají projevit ve hrách Blade of Darkness, Knight Rider a Silent Hunter II ve chvíli, kdy se vykreslují takzvané god rays, tedy prosvítající sluneční paprsky.

Srovnání bez naměřených hodnot

Autor v poznámkách přiznává, že tentokrát nemá čím se pochlubit: kód je prý mnohem lépe udržovatelný, ale žádné okázalé skoky ve výkonu se konat nebudou. Zajímavější je, co v poznámkách chybí. Tvrzení o načítání zkráceném na polovinu i méně nedokládá žádné měření a stejně tak není podloženo srovnání, které autor uvádí jako pointu: notebook s čipem Core Ultra 7 256V, sdíleným rozpočtem 37 wattů pro procesor i grafiku a během na baterii prý dosáhl v 3DMarku 99 a 3DMarku 2000 podobného skóre jako verze 1.12 na kartě GeForce RTX 4070 se dvousetwattovým rozpočtem. „Čísla jsem nepřikládal, měli jsme jich dost u vydání 2.0,“ píše k tomu (přeloženo). Kdo si tedy chce ověřit, že se u jeho hry něco změnilo, musí si to změřit sám.

Zpátky do DXVK to nepůjde

Otázku, jestli se práce vrátí do hlavního projektu, má autor v popisu projektu vyřízenou jedním slovem: ne. Vývojáři DXVK podle něj dali najevo, že o cokoli staršího než Direct3D 8 nestojí, a D7VK navíc stojí na jiném principu – je to spíš obal DirectDraw nad Direct3D 9 než plnohodnotná implementace.

Praktické omezení je jinde: D7VK potřebuje grafickou kartu s podporou Vulkanu 1.4. Kdo takovou nemá, může sáhnout po projektu DXVK-Sarek, kam byla podpora Direct3D 7 až 3 přenesena a kde stačí Vulkan 1.1; chybí v něm ale průhlednost klíčovou barvou a přepínání vyhlazování hran za běhu. Retained mode, tedy starší způsob práce se scénou, D7VK nepodporuje vůbec a ani to neplánuje.

Repozitář projektu vznikl na GitHubu v březnu 2022, kód běží pod licencí zlib a k 16. srpnu 2026 měl 731 hvězd a 40 otevřených hlášení.

Zdroje

Hry

Linux Open source Wine Vulkan Direct3D

← zpět na výpis