Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

DirectX 12 byl vydán spolu s Windows 10 v roce 2015. Microsoft DirectX 12 svým vydáním zahájil novou éru pro hráče a vývojáře her. DirectX 12, který je schopen snížit režii CPU a zároveň zvýšit výkon GPU, si rychle vytvořil jméno.

Je však zvýšení výkonu skutečně tak jednoduché jako přechod z DirectX 11 na DirectX 12? Pojďme to zjistit tím, že se podíváme na rozdíly mezi DirectX 11 a 12.

Co je DirectX společnosti Microsoft?

Jak je vysvětleno v náš přehled Microsoft DirectXDirectX je sbírka rozhraní API používaných pro zpracování úloh souvisejících s multimédii. To zahrnuje programování her na platformách Microsoft, jako jsou Windows a Xbox. Abychom uvedli nějaký kontext, pojďme stručně mluvit o API.

Aplikační programovací rozhraní (API) umožňuje vzájemnou komunikaci dvou nebo více počítačových programů, o kterých diskutujeme náš přehled API

instagram viewer
. Představte si to jako telefon. Pokud vám vaše máma pošle textovou zprávu se seznamem potravin, váš telefon tato data přijme a zobrazí vám je. To je v podstatě API.

Jaké jsou rozdíly mezi DirectX 11 a DirectX 12?

Jaké jsou tedy rozdíly mezi DirectX 11 a DirectX 12? Jednoduše řečeno, DirectX 12 je nejnovější verze DirectX. Jedním z nejviditelnějších rozdílů mezi těmito dvěma je způsob interakce s vaším hardwarem. Většina her vyvinutých pomocí DirectX 11 využívá pouze dvě až čtyři CPU jádra. Jedno z těchto jader se obvykle věnuje tomu, aby říkalo GPU, co má dělat.

Hra pak používá zbývající jádra ke zpracování různých nastavení náročných na CPU, jako jsou částice hry nebo vzdálenost tahu. Na druhou stranu DirectX 12 rozděluje zátěž CPU mezi více jader a také umožňuje každému jádru komunikovat s GPU současně.

DirectX 12 také přichází s několika efektními zvonky a píšťalkami. To zahrnuje asynchronní výpočty a objekty stavu potrubí (PSO). Asynchronní výpočet zvyšuje využití GPU tím, že umožňuje paralelní práci více úloh. To v podstatě odemkne plný potenciál vašeho GPU.

Kromě grafického vykreslování je váš GPU zodpovědný za zpracování široké řady dalších úkolů, jako je spouštění algoritmů strojového učení. S DirectX 11 může GPU provádět pouze jeden z těchto úkolů najednou a v určitém pořadí. Když k tomu dojde, dojde k výpadku výkonu, protože nejsou využívány všechny vaše prostředky GPU.

Představte si to jako číšník v restauraci. Když číšník poprvé vezme vaši objednávku, zeptá se vás, co byste chtěli pít jako první. Jakmile dostanete své nápoje, zeptají se vás, co si dáte jako hlavní chod. Vaše objednávka probíhá v krocích. Číšník se vás nezeptá, co si dáte jako dezert, než si dáte hlavní jídlo. I když je to účinné, není to tak účinné, jak by mohlo být.

Ve výpočetní technice by každý úkol číšníka obsluhoval jiný zdroj GPU. Dokud nedostanete svůj nápoj, zdroje GPU potřebné k objednání hlavního chodu budou nečinné. S asynchronním výpočtem DirectX 12 by číšník mohl přijmout vaši objednávku najednou jako v řetězci rychlého občerstvení. To maximalizuje využití GPU a zlepšuje váš herní výkon.

DirectX 12 také představilo PSO. S DirectX 11, když je geometrie hry odeslána do GPU Při vykreslování je za interpretaci a vykreslování odpovědná řada hardwarových nastavení data. To se nazývá grafický kanál a je tok datových vstupů a výstupů, ke kterým dochází, když vaše GPU vykresluje snímky. Grafický kanál DirectX 11 však není dokonalý.

Toto potrubí obsahuje kolekci různých stavů, včetně stavu rastrování, stavu prolnutí a stavu šablony hloubky, mimo jiné. V DirectX 11 existují závislosti mezi těmito různými stavy. Výsledkem je, že jeden stav nemůže být dokončen, dokud není definován předchozí stav. To snižuje využití GPU a zvyšuje režii CPU na úkor výkonu.

Aby se to obešlo, zavedlo DirectX 12 PSO, což jsou objekty, které popisují stav celého grafického potrubí. PSO jsou jako láhev, která obsahuje různé stavy a komponenty potřebné k vytvoření obrazu. To umožňuje GPU předběžně zpracovat každý závislý stav, místo aby musel neustále přepočítávat stavy na základě aktuálního grafického kanálu.

To výrazně snižuje zatížení procesoru v DirectX 11 a zlepšuje výkon. Jak tedy tento rozdíl vlastně vypadá? No, podle Microsoftu DirectX 12 snižuje režii CPU až o 50 procent a zlepšuje výkon GPU až o 20 procent. I když se jedná o podstatná vylepšení, neznamená to, že uvidíte stejné výsledky.

Proč přechod z DirextX 11 na DirectX 12 není jednoduchý

DirectX 11 byl poprvé vydán pro Windows Vista 27. října 2009. S DirectX 12 následovaným v roce 2015 je to tedy šestiletý rozdíl mezi DirectX 11 a DirectX 12. Během této doby byly pomocí DirectX 11 vyvinuty tisíce her. Bohužel přechod z DirectX 11 na DirectX 12 není snadný.

DirectX 11 je to, čemu se říká API na vysoké úrovni. Zjednodušeně řečeno, s API na vysoké úrovni se vývojářům lépe pracuje. Výsledkem jsou stabilní, leštěné a hratelné hry. Na druhou stranu, DirectX 12 je nízkoúrovňové API a ve srovnání s DirectX 11 je to jiná bestie. I když umožňuje vývojářům doladit optimalizaci na granulární úrovni, vyžaduje také rozsáhlé znalosti k použití.

Jak již bylo řečeno, hra vyvinutá v DirectX 12 by mohla skončit s horším výkonem v závislosti na znalostech vývojáře o API. DirectX 12 přináší vylepšení, ale opravdu záleží na tom, jak dobře je vývojář dokáže implementovat. Z tohoto důvodu se mnoho vývojářů rozhodlo držet se API na vysoké úrovni, jako je DirectX 11.

Měli byste si vybrat DirectX 11 nebo DirectX 12?

Odpověď závisí na několika věcech, například na tom, jakou hru se pokoušíte spustit. Například Guild Wars 2 běží na DirectX 11. I když váš operační systém a hardware používá DirectX 12, nebudete mít možnost vybrat DirectX 11 v Guild Wars 2, protože hra jej nepodporuje. Toto je zcela na rozhodnutí vývojáře, společnosti ArenaNet.

Kredit snímku: Martin Kerstein/Válka cechů 2

Věřte nebo ne, trvalo devět let, než ArenaNet provedla přechod z DirectX 9 na DirectX 11. Existují však hry, které podporují jak DirectX 11, tak DirectX 12. Fortnite (čtěte náš Fortnite cheat sheet), například. Prostřednictvím nastavení hry mohou uživatelé přepínat mezi oběma verzemi. Abych to shrnul, ne každá hra podporuje DirectX 11 i DirectX 12. Pro ty, kteří ano, přepínejte mezi těmito dvěma a sami určete, která z nich funguje na vašem počítači lépe.

Zda si můžete vybrat mezi DirectX 11 a DirectX 12, bude také záviset na vašem hardwaru. Téměř každý moderní GPU bude podporovat DirectX 12, ale totéž nelze říci o starších GPU, jako je Radeon HD 4870. Tento GPU, vydaný v roce 2008, podporuje pouze DirectX 10. To znamená, že by nebyl schopen spouštět většinu moderních her, které běží pomocí DirectX 11 a DirectX 12.

Je pro vás DirectX 12 tou správnou volbou?

Celkově vzato není přechod z DirectX 11 na DirectX 12 tak černobílý, jak se zdá. Záleží na řadě faktorů, jako je hardware, software, operační systém a zda hra vůbec podporuje obojí. To vše je třeba před rozhodnutím zvážit a pravděpodobně to bude platit i pro budoucí generace DirectX.