V souvislosti s tím často slýchám názory, jak DirectX 12 ublíží AMD, protože smaže konkurenční výhodu jeho Mantlu a přinese zvýšení výkonu i pro grafické akcelerátory jiných firem. Kdyby tomu tak bylo, zřejmě bychom v oficiálních i neoficiálních vyjádřeních AMD viděli důraznější vychvalování Mantlu a naopak bagatelizování přínosů konkurenčních API. To se však neděje, vyjádření k DirectX 12 mají pozitivní tón a na nedávno skončeném GDC 2014 přednášel zástupce AMD společně s lidmi z Nvidie a Intelu o optimalizaci v OpenGL.
Tento blogpost bych proto chtěl věnovat vysvětlení, proč AMD nevnímá DirectX 12 a optimalizované OpenGL jako hrozbu a naopak tyto soupeře Mantlu aktivně podporuje.
Mantle vs. DirectX 12
Mantle slibuje celkem srozumitelnou přidanou hodnotu: grafickým kartám AMD přidá nějaká procenta výkonu navíc a na sestavách se slabým procesorem učiní nehratelné hry hratelnými. Jestliže lze stejného efektu docílit s DirectX 12 nebo OpenGL a bude to fungovat na všech GPU bez rozdílu značky, odpadá tak jeden z důvodů, proč upřednostnit Radeon před GeForce. Tento argument je ovšem krátkozraký.
Mantle je fakticky proprietární technologie a i když bude časem vypuštěn jako open source, při současné existenci nízkoúrovňového DirectX asi nelze předpokládat, že by jej začaly podporovat Intel a Nvidia. Pro AMD tak bude úspěch, když pro Mantle vznikne zhruba dvacet až třicet her ročně, a to není zrovna pádný argument do nákupního rozhodování. Asi tak jako PhysX.
A teď uvažme situaci, že by se rozšířilo DirectX 12. DirectX je na rozdíl od Mantlu průmyslový standard, jediný problém je dokopat vývojáře k používání nejnovějších verzí. Snad by je mohlo přesvědčit, že nízkoúrovňové rozhraní budou alespoň částečně podporovat všechny Radeony série HD 7000 a GeForce údajně už od generace Fermi (tedy řady 400, která vyšla v roce 2010). Spousta her si tak rázem vystačí se slabším procesorem, čímž vzroste konkurenceschopnost čipů AMD. Alternativně hráči odloží upgrade staršího procesoru, tak či onak jim ale zbyde více peněz na výkonnější grafickou kartu. Z toho sice více vytěží Nvidia, která drží okolo 65 % trhu samostatných karet, AMD ale tratit nebude.
Proč by se AMD mělo bát?
Někteří komentátoři se odvolávají na Jevonsův paradox a věští, že procesorový výkon, který uvolní zredukovaná režie ovladačů, vývojáři obratem využijí pro užitečné výpočty (nabízí se detailnější scény, fyzika, umělá inteligence…), a trh se tak vrátí do původní rovnováhy, kdy k nějaké grafické kartě potřebujete nějak výkonný procesor. Zdali tento scénář nastane, nebo nikoliv, bez křišťálové koule nedokážeme uspokojivě posoudit. Pro hovoří osvědčené ekonomické zákonitosti, proti zase skutečnost, že hry využívající nízkoúrovňové API ale budou především konzolové porty a na konzolích není procesorového výkonu nazbyt.
V éteru se objevilo i tvrzení (viz citát od Francoise Piëdnoela z Intelu), že DirectX 12 paradoxně zvýší nároky na jednovláknový výkon procesoru. Tomu však nic z toho, co o nové verzi populárního API bylo zatím zveřejněno, nenasvědčuje; naopak by si DirectX 12 mělo lépe rozložit práci do více vláken, což je příslibem vyššího výkonu na vícejádrových procesorech.
Zpět však k tomu, z čeho v AMD nebudou mít radost. Jak už jsem naznačil v předchozí pasáži, u Nvidie bude platit, že podpora DirectX 11 rovná se automaticky podpora DirectX 12. U AMD sice totéž není vyloučeno, společnost ale zatím jednoznačně přislíbila podporu jen pro Radeony HD 7000 a novější. Kladné body za podporu starších karet tak posbírá Nvidia, která nevynechala příležitost kopnout si do svého rivala.
DirectX 12 budou podporovat všechny GeForce z generací Fermi, Kepler a Maxwell, zatímco z tábora AMD jen rodina GCN (a novější). To podle statistik Steamu odpovídá okolo 40 % instalované základny Radeonů.
…a proč se naopak bát nemusí
Ze všech grafických akcelerátorů s podporou DirectX 11 (GeForce i Radeonů) jich 79 % podporuje i DirectX 12, zatímco Mantle z té samé množiny pouze 14 %. Nvidia proto tvrdí, že DirectX 12 bude mít „při vydání“ čtyřikrát vyšší instalovanou základnu.
Jenže při jakém vydání? Microsoft by měl konečnou verzi zpřístupnit koncem roku 2015, tedy zhruba za rok a tři čtvrtě. Je dost možné, že tou dobou bude poměr instalované základny podobný, v absolutních číslech si ale Mantle může ještě o dost polepšit. Nvidia nám navíc zatajila další podstatnou věc. Řeč byla zatím jen o podpoře hardwarové, důležitá ale bude i ta softwarová. Microsoft se zatím jasně nevyjádřil, zdali DirectX 12 zprovozníme i na Windows 7.
Budeme-li se držet statistik Steamu, pak tuto verzi stále používá 66 % hráčů, následují Windows 8.1 s 13 % a Windows 8 s deseti procenty. Doposud platí, že pro Windows 7 je k mání jen DirectX 11.0, Windows 8 podporují DirectX 11.1 a funkce nejnovějšího DirectX 11.2 využijete pouze na Windows 8.1. Pokud bude Microsoft pokračovat ve stejných kolejích, rázem mohou být síly vyrovnané. Mantle si vystačí s jakoukoliv verzí Windows od Visty výš a možná je i podpora Linuxu. Do ní se AMD momentálně nehrne, v případě potřeby je to ale technicky proveditelné.
Závěrem lze říct, že DirectX 12 jakožto všeobecně přijímaný standard prospěje jak hráčům, tak výrobcům hardware, a mezi nimi není nikdo, kdo by jeho příchod neuvítal, nebo na něm dokonce tratil. Ani AMD tedy nemusí mít obavy, tím spíš, že během následujícího roku a půl až dvou let bude Mantle jediným dostupným nízkoúrovňovým API pro herní grafiku.
Zdroj (slajdy): LegitReviews