Kolem podpory DirectX12 vznikl pořádný zmatek. Jak na tom tedy jsou současné grafické karty?
Nejen uživatelé, ale i novináři jsou pořádně zmateni ohledně toho, jak to tedy s podporou nového DirectX12 je a není na současných grafických kartách. Zmatku výrazně přispěla NVIDIA, která do marketingových materiálů ke GTX 980 zakomponovala jen polopravdu (neřekla totiž řadu věcí) kolem podpory DX12, ale svůj podíl na tom má i AMD, které sice výrazně popravdě přiznalo mezery v podpoře DX12 ale nevysvětlilo to úplně ideálně, takže výsledkem je pořádný zmatek, který ještě umocnili novináři. A přiznám se, že i v našem nedávném článku jsme tak nevysvětlili úplně všechno, jak má být.
- Takže jak to tedy s podporou DirectX12 je?
Abychom tedy řekli pravdu, žádná v současnosti uvedená grafická karta AMD a NV nemá plnou podporu DirectX12! Žádná! Ani GTX 980Ti ... Všechny do současnosti uvedené grafiky mají podporu maximálně částečnou. Aby nějaká grafická karta podporovala plně nějakou verzi DirectX, v tomto případě tedy DirectX12, musí podporovat všechny jeho "Feature_level", tedy soubor technologií a to jak softwarově, tak hlavně hardwarově. Konkrétně u DirectX12 vznikl celý zmatek i proto, že tohle zcela nové API vzniklo nedávno, z iniciativy AMD a jeho API MANTLE z kterého si také Microsoft pro DirectX12 "vypůjčil" spoustu nápadů i technologií.
Jak postupně DirectX12 vznikalo do své finální verze, přidávaly se do něj další a další technologie a i tyto technologie se vyvíjely, takže existují třeba ve více verzích. U DirectX12 tak rozeznáváme kromě Feature_levelu, které jsou zde tři a to 11_1, 12_0 a 12_1 (neplést ovšem s DirectX 11.1/12.0/12.1), také systém tří Tierů (Tier 1, Tier 2 a Tier 3), tedy podpory jednotlivých technologií v rámci různých Feature_levelů. Aby tedy nějaká grafická karta plně podporovala DirectX12, musí mít plnou hardwarovou podporou Feature_level 12_1 a všechny technologie v plné Tier 3 verzi. Jenže to v současnosti nemá žádná NV GTX 900 ani AMD Radeon R9 200 grafická karta.
- Aby to nebylo jednoduché ...
Takže jak správně hádáte, současné "DirectX12" grafiky umí jen část DirectX12 a i v tom se od sebe dost liší. Přesto všechno ale k základní podpoře a využití DirectX12 toho není moc zapotřebí a stáčí jen velmi málo třeba jen v TIER 1 verzi, aby se grafická karta kvalifikovala na DirectX12 kompatibilní, ačkoliv řadu věcí prostě nebude umět a nebude z nich tedy moci těžit.
- Podpora u jednotlivých grafických karet
Předem se omlouvám některým technicky zdatnějším za velká zjednodušení a drobné nepřesnosti, ale je to záměrně a doufám, že to tak bude dávat smysl i těm nejméně se na poli API orientujícím uživatelům.
Nejjednodušší je to u NVIDIA. Starší GTX 600 řada (FERMI) nemá podporu DX12, umí jen Feature_level 11_0. Novější GTX 700 série (KEPLER), už ale Feature_level 11_1 splní a zlepšila se i její Tier podpora v některých ohledech. U nejnovější MAXWELL architektury je nutné oddělit od sebe starší čipy (ještě do série GTX 700) a novější pro GTX 900. Starší GTX 750Ti MAXWELL se už kvalifikuje na Feature_level 12_0, ale novější MAXWELL čipy (uváděné od konce loňské roku, kdy už vývoj DX12 značně pokročil), mají již podporu Feature_level 12_1, ovšem ne všechny technologie podporují plně, takže ne ve všech dosáhnout na nejvyšší TIER3 podporu a proto ani GTX 980Ti nemá plnou podporu DX12.
U AMD je to trochu složitější. Jak víte, její GCN architektura existuje ve více verzích. V základu rozeznáváme GCN 1.0 , GCN 1.1 a GCN 1.2. Aby to nebylo tak jednoduché, AMD ještě vydalo některé grafické karty se zdánlivě nezměněným jádrem ze starší série, což se týká hlavně HD 7800 série, kterou známe jako Radeon R9 270 sérii a brzy i R7 370. Vtip je v tom, že AMD tak úplně jen nepřejmenovává. To jádro pokud nese jiný název, tak bylo trochu změněno (a ano týká se to i nových Radeon R 300 grafik). Zatímco Radeon HD 7800 s první verzí GCN 1.0 umí DirectX12 ale podporuje jen feature_level 11_1, v případě Radeon R9 270 série už umí feature_level 12_0 a patří tedy do GCN 1.1! V současnosti jedinou grafikou AMD s GCN 1.2 je R9 285 a integrované grafiky v AMD APU Carrizo procesorech. Ta je s podporou DirectX12 u AMD nejdále, ale i tak ji to stačí jen na feature_level 12_0 . Jenže pozor, současně už podporuje mnoho technologií, které ji kvalifikují v několika oblastech na Tier3 a dokonce s + znaménkem, protože toho umí ještě více. Stejně na tom jsou i starší série grafik AMD včetně Radeon HD 7000. V tomto případě se tedy skutečně potvrzuje, že AMD má náskok před konkurencí.
- Kdo má lepší podporu DirectX12, AMD nebo NVIDIA? A co to bude znamenat?
Otázka za milion, kterou si kladou mnozí. Odpověď záleží na tom, jakou grafickou kartu máte. V případě starších grafik, tedy série Radeon HD 7000 vs GTX 600 a taktéž Radeon R9 vs GTX 700 je odpověď jasná. AMD je na tom mnohem lépe, ale to jsme vám říkali dlouhá léta že technologicky to tak je, takže žádné překvapení se prostě nekoná. Zejména u GCN verze 1.1, kterou používají s výjimkou R9 280 modelu všechny ostatní současné AMD grafiky (ano i R9 270 série) a to včetně těch integrovaných v APU procesorech AMD, je podpora DX12 přítomna (feature_level 12_0 a mnoho technologií i ve verzi Tier3+ podpory). GTX 600 a GTX 700 grafiky (s výjimkou GTX 750Ti což je ale už MAXWELL), tyto technologické vymoženosti nemají a jsou na tom v mnoha ohledech i hůř, než vůbec první GCN na Radeon HD 7000 sérii. U AMD tedy máte podporu DX12 s grafikou až 3 roky starou, u NV ale máte DX12 podporu až s grafikou z loňského roku.
Pokud jde o současné modely, tak NVIDIA s MAXWELL 2.0 na GTX 960/970/980/980Ti/TITAN X má podporu feature_level 12_1, ale v řadě věcí, zejména v úrovni technologických balíčků, má jen Tier2 podporu, tam kde AMD s GCN už tři roky má Tier3+ podporu, jenže v jiných ohledech už je na DX12 připraveno lépe, protože její nejstarší čip pro aktuální GTX 900 sérii bych vydán teprve nedávno, v závěru loňského roku, takže stihla některé věci lépe upravit a připravit. Plnou podporu DX12 však stále nemá. Jak to bude s podporou DirectX12 u nových Radeon FURY a R300 série, to se teprve uvidí. Podle všeho AMD sice použilo u některých modelů současná jádra, ale upravilo je. V případě úplně nového FIJI jádra na FURY X nemůžeme pak vyloučit, že jako první grafika bude plnou podporu (a ještě víc) DirectX12 skutečně obsahovat. To vše se ale dozvíme až za pár dní ...
Otázkou, kterou si ale mnozí kladou je, jak moc bude podpora /nepodpora DirectX12 u některých grafik klíčová?! Pokud má vaše grafická karta alespoň feature_level 11_1 a tedy úplný základ, měly byste těžit alespoň ze snížení zátěže na CPU, tedy že hra se sice spustí pod DX12 (pokud budete mít Windows 10), i když jej vaše grafika v podstatě neumí a bude těžit z toho, co zvládne. Pokud máte grafiku s alespoň feature_level 12_0 podporou, budete těžit i z výhod API DX12 pro grafiku jako takového. Vzhledem k tomu, že AMD má lepší podporu v tomto ohledu u starších modelů a má tato GCN GPU i v PS4/Xbox One, pro které jsou hry dnes dělány, může mít drobnou výhodu. Vývojáři her však pravděpodobně budou používat technologie DX12 tak, aby příliš nepenalizovali majitele starších GTX grafik, které tak dobře vybaveny nejsou, ačkoliv nové GTX 900 grafiky už jsou na tom v mnoha směrech lépe.
V tomto směru největší nebezpečí hrozí od NV a jejího marketingového nástroje GameWorks, kterým ničí a negativně ovlivňuje hry jak majitelům svých starších grafik (a nutí je do nákupu nových modelů), tak majitelům Radeon grafik. Je zde totiž více než reálné riziko, že NV se pokusí u některých nových her s DirectX12 použít některé extra technologie tak, aby z nich těžily GTX 900 grafiky, které by to díky HW podpoře měly zvládat (stejné efekty s nižší zátěží na HW nebo s lepším výkonem a v lepší kvalitě), zatímco starší GTX grafiky nebo i některé Radeon karty to stejně dobře zvládat nebudou. Pokud to tak udělá, tak samozřejmě to bude fajn, pokud to bude mít stejný či ještě lepší účinek i na případně podobně vybavené nové grafiky AMD. Pokud to ale zase uměle udělá tak, že to půjde všem blbě a na GTX 900 je o něco méně blbě, těžko se tomu dá říkat dobrá optimalizace a vývoj. Samotní vývojáři her se ale budou krotit a téměř určitě budou využívat věci tak, aby to ideálně běželo na GCN grafikách, které jsou v konzolích a nedělalo to problémy většině hráčů. Samozřejmě s nástupem nových generací grafik se možnosti a technologie využívané v DX12 hrách rozšíří. Pochopitelně bez Windows 10 vám DirectX12 nepojede.
První DX12 hry očekávejte již tento rok. První nativní DX12 (bez zpětné podpory, takže mimo Windows 10 nepojedou) hry pak příští rok, kdy jsou zde i vývojáři, kteří tlačí na to, aby bez zpětné podpory nižších DX byly hry co nejdříve (marketingová oddělení vývojářů však mohou mít jiný názor). Technicky to až takový problém nepředstavuje, protože právě GCN grafiky AMD v konzolích DX12 umí a v Xbox One se s DX12 počítá. Přínos optimalizací a nových technologií využití GPU i CPU jsou velká a není se co divit. API jako taková byla dlouhá léta zanedbávána a zanášena podporou starých a již nepoužívaných věcí, až přišlo API MANTLE od AMD, které dalo vzniknout DX12 a mnoha věcem co obsahuje a zároveň zabilo OpenGL a dalo vzniknout API VULKAN, což je fakticky otevřená verze vývojářského API MANTLE. Co to znamená pro nás? Inu dost. Představte si, že řadu let jsme platili za nová CPU a nová GPU, jejichž výkon a technologie nebyly prostě využívány, takže jsme v nich pálili tuny elektřiny, ale výkonově a technicky jsme jich využívali jen na půl (a možná ani to ne, zejména to platí u vícejádrových CPU). Nyní by se to mělo zlepšit. Pochopitelně největší zlepšení bude patrné u her a SW využívající DX12 nativně a plně, bez zpětné kompatibility se starším HW a SW, což asi bude ještě nějaký ten pátek trvat.
AUTOR: Jan "DD" Stach |
---|
Radši dělám věci pomaleji a pořádně, než rychle a špatně. |
|