reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

3DMark: testujeme výkon DirectX 12

8.6.2015, Pavel Šantrůček, recenze
3DMark: testujeme výkon DirectX 12
3DMark je jedním z prvních nástrojů pro testování režie 3D API a ačkoliv se objevilo hned několik více či méně povedených článků o měření DirectX 12 pomocí 3DMarku, my si dnes provedeme měření svá vlastní a samozřejmě nezůstane pouze u nich. Aktualizováno.

DirectX 12


Jsme zpět u DirectX a podíváme se, jak API Overhead řeší DirectX 12. Pro nikoho nebude asi velkým překvapením, že v něm mnoho rozdílu oproti Mantle nenajde. Nepředbíhejme ale a pojďme se podívat na jeho exekuční model.

DirectX profiling

Microsoft ve Windows 10 úplně přeorganizoval celé WDDM (Windows Display Driver Model) tak, aby práce API mohla být rozložena do všech vláken procesoru. Část, která je zodpovědná za vytváření a kompilaci Command Bufferů, tedy UMD (User Mode Driver), nyní může pracovat ve všech vláknech a každé vlákno tak může vytvářet Commant Buffery paralelně.

KMD (Kernel Mode Driver), který zabezpečuje komunikaci s grafickou kartou, z obrázku sice úplně vymizel, ale to ještě neznamená, že tam v nějaké odlehčené formě nezůstal.

Ačkoliv ještě nejsou známy veškeré specifikace DirectX 12, AMD prozradila, že stejně jako u Mantle budou i součástí DirectX 12 různé typy front, pomocí kterých jsou příkazy zasílány k exekuci na grafickou kartu.

DirectX 11 queue

DirectX 12 queue

U DirectX 12 jsou tedy zavedeny 3 druhy příkazových front, které se liší svým zaměřením na různé typy příkazů. Jedná se frontu Univerzální (grafickou), vstupně/výstupní (DMA) a výpočetní (Compute). Pomocí těchto na sobě nezávislých front lze různé typy příkazů zasílat paralelně a „krmit“ tak grafickou kartu příkazy a daty mnohem účinněji, než tomu bylo u verzí předcházejících.

Ale jak už to tak v životě bývá, nic není zadarmo a ani vývojáři se jen tak zdarma k vyššímu výkonu nedostanou. Díky nižší abstrakci DirectX 12 si budou muset osvojit nový styl programování a co je asi nejdůležitější, nebudou si už moci ve svých hrách dovolit tak velké množství chyb jako doposud. U DirectX 12, ostatně stejně jako u Mantle, totiž tíha odpovědnosti za validní kód leží především na bedrech programátorů, protože v DirectX 12 různé typy validací kódu a ošetření hazardů byly jednoduše vypuštěny.

Samozřejmě DirectX 12 přináší změn a novinek daleko více, než je popsáno v této kapitole. My jsme se zaměřili pouze na exekuční model, tedy na vytváření příkazů a jejich odesílání na zpracování grafickou kartou, protože to je právě to, co nás dnes při testování 3DMarku a jeho „API Overhead Feature Test“ bude zajímat nejvíce.

Takže konec všem teoriím a pojďme testovat.
reklama