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ě

Mantle: revoluce, nebo nezdárný pokus?

12.11.2013, Pavel Kovač, úvaha
Mantle: revoluce, nebo nezdárný pokus?
S příchodem nových konzolí se postupně začalo hodně mluvit o technologii Mantle. Tedy o novém rozhraní pro tvorbu grafiky ve hrách. Postupem času se víno lehce zkalilo a Mantle ustoupil do pozadí. Nyní se o něm ale opět horlivě mluví. Proč?
Kapitoly článku:
  1. Mantle: revoluce, nebo nezdárný pokus?
  2. Co si o něm myslí svět?

Mantle skrytý hluboko


Připomeňme si základní myšlenku celého Mantle. Být co nejblíže samotnému grafickému jádru. Oproti OpenGL a DirectX (u něj je to ještě výraznější) se hra, resp. grafický engine vyhne např. zdlouhavému portování z konzolí na osobní počítače. Díky tomu, že jazyk Mantle přistupuje k hardwaru prakticky přímo, se také snižuje vliv procesoru, který daný jazyk musí zpracovávat. Je možné také využívat ihned funkce nových grafik, aniž by bylo třeba čekat na nové DirectX. Zkrátka jen danou funkci naprogramujete a grafika ji zpracuje, když ji samozřejmě umí. Proto se dostal Mantle do kolonky low-level API. Zní to jednoduše, ale...





Již v dávných dobách, kdy se počítače teprve rozvíjely, se firma IBM rozhodla navrhnout programovací jazyk Fortran. Ten je dodneška pokládán za asi nejvíce "low-level" programovací jazyk. V dobách, kdy se hojně používal, se konkurenční jazyk C považoval za high-level. Dnes vám mnoho programátorů řekne, že C je low-level. Oproti takové Javě je zkrátka C úplně jiný a přistupuje k samotnému hardwaru výrazně příměji. Co tím chci říci? Hlavně to, že pojem low-level se časem hodně posouvá a teprve čas ukáže, jak je Mantle opravdu low-level.

Tím ale nechci Mantle nikterak hanit. Jde jen o opatrnost. Zatím o něm totiž není moc známo, a tak se těžko předpovídá, co všechno bude toto API pro vývojáře znamenat. Ví to zatím jen pár lidí, co programují pro konzole (zde sice Mantle není zcela dostupný, ale API mu je hodně podobné), popřípadě vývojáři z DICE a potažmo Frostbite enginu, který by měl v budoucnu přinést podporu pro Mantle.

Mantle tedy přinese značnou úlevu při portování her a hlavně by měl zvýšit výkon grafických karet. Je to dáno ze samotné podstaty low-level programování. Výhody jsou tedy zcela zřejmé. Proč to tedy nenapadlo někoho předtím?


Nějaká negativa?


Hlavní výhody jsou zřejmé. Co ovšem negativa? Ty vychází také ze samé podstaty low-level. Cokoli je obtížnější na programování a na odladění chyb. Obecně mají low-level jazyky větší náchylnost na chybovost. Celkově je programování o něco složitější. Nebudu zde ale zabíhat do podrobností, protože nejsem programátor a také protože bych jistě rozdmýchal nepěknou hádku mezi programátory. Znamená to také učit se něco zcela nového a postupně to vylepšovat. Za dlouhé doby DirectX si jistě programátoři osvojili různé kličky, zjednodušení a mají nachystáno spoustu předpřipraveného kódu, který doslova jen vkládají do enginu. Díky tomu je dnes přenesení z konzolí do PC relativně snadné, přesto ne zcela bezproblémové.





GNC (Graphic Core Next). To jsou tři slůvka, která možná celý Mantle pohřbí a ten zůstane výsadou jen konzolí, kde se usídlil v drobné obměně na bázi jakéhosi DirectX s přímějším přístupem k hardwaru. Mluvím samozřejmě o nových konzolích. Celé je to ovšem ještě trochu zamotanější. Původně měl být Mantle výhradně pro konzole. Postupem času to AMD muselo vyvrátit a přiznat, že jde o DirectX s onou přímější komunikací s hardwarem. Zní to tedy jako DirectX s nadstavbou Mantle. Představit si to asi moc nelze, ale bohužel o tom toho zatím moc nevíme.

Další úskalí je to, že nové API funguje zatím pouze na této architektuře. Nejen, že tedy na konzolích není zcela nasazen, ale také jej nelze globálně aplikovat např. na grafické karty NVIDIA. I přestože by Mantle měl být otevřený standard, je čistě na NVIDII a vlastně i na Intelu, zda jej přijmou. Pokud ne, je po něm. Pokud budou mít nové generace grafik od Intelu a NVIDIE podporu, je téměř jisté, že se usadí a docela slušně zavede.


Hrozba Microsoft


Říkáte si, proč by měl být Microsoft hrozbou? Microsoft si jistě nebude chtít nechat vzít exkluzivitu svého DirectX a bude tlačit na dlouhodobé spojence/partnery (říkejte si tomu, jak chcete) Intel a NVIDIA, aby podporu Mantle nezahrnovali. Nejde však jen o exkluzivitu samotného DirectX, jde také o to, že by tím DirectX prakticky přestalo existovat a časem by možná zcela ze systému Windows vymizel. Pojďme však ještě dále. Absence DirectX potažmo jeho nevyužití ve hrách a nasazení otevřeného standardu znamená konec exkluzivity Windows coby druhé herní platformy hned po konzolích. Najednou by bylo daleko jednodušší zkompilovat jakoukoli hru pro Linux, Android, či prakticky cokoli. A právě tyto drobné nitky, za které by mohl Microsoft tahat, se mohou postupem času změnit v lana a držet onu pomyslnou loď u břehu. Jakmile se to komukoli podaří a lana neprasknou alespoň dva, tři roky, tak je Mantle odsouzen k záhubě a zůstane na konzolích.





To je onen pesimistický scénář. Naopak optimistický a nutno podotknout, že v poslední době více než reálný, je ten, že Microsoft si Mantle oblíbí a svůj DirectX pošle do předčasného důchodu. Možná právě už nyní cítí, že vývoj tohoto rozhraní není to, co to bývalo, a je potřeba udělat nějakou změnu. V nedávné době proběhla zpráva, že se nechystá nástupce v podobě DirectX 12. Tu však stihl hned na to, avšak s již daleko menším zájmem médií, dementovat samotný Microsoft. Ten prohlásil následující:

"DirectX is the world’s leading low-level interface for gaming and graphics. Microsoft is actively investing in DirectX as the unified graphics foundation for all of our platforms,” ... “DirectX is evolving and will continue to evolve. We have absolutely no intention of stopping innovation with DirectX."

Volně přeloženo: Na DirectX pracujeme, považujeme jej za důležitý a investujeme do něj. Takže rozhodně jej jen tak nepozastavíme.





No a teď babo raď. Na jednu stranu by konec DirectX znamenal uvolnění trhu a možnost přejít plynule prakticky na jakoukoli platformu (tedy v oblasti her), snížení nákladů pro Microsoft za vývoj. Na stranu druhou se o tento podíl gigant asi nechce připravit. A kdo ví, třeba to je jen taková hra a stejně časem k odbourání DirectX dojde. Jen se třeba čeká na protihráče v podání Intelu a NVIDIE. Nepřijdou s nějakým svým API? Není náhodou již ve vývoji a jen se čeká na správnou příležitost? Ano, všechno to jsou jen spekulace, možná až příliš horlivé spekulace, ale není čas na nějakou tu "bombu" u osobních počítačů?

Třeba do hry vstoupí NVIDIA a Intel právě svým rozhraním. Možná stačí na zabití Mantle i prachobyčejné ego obou společností. Třeba se nechtějí smířit s tím, že by jim někdo tak malý jako AMD dokázal vypálit rybník. Sejdou se nad pivem a začnou vyvíjet něco alternativního. Mantle nenasadí a ve výsledku vyhrají. Rozhodování mají prakticky volné a hlavně mají daleko větší sílu než AMD. Ta odhalila karty pěkně otevřeně s tím, že se tváří jako: "My jsme ti, co chtějí všem pomoci a přinášíme vám nové otevřené low-level API." Bohužel ne vždy, co je otevřené, se ve výsledku prosadí. Myšlenka je to samozřejmě pěkná, ale tím to také může skončit. Stejně jako většina firem si chce držet své know-how pěkně pod pokličkou, si bude i MS, NVIDIA, Intel držet to své. Proč by se měli stát jejich grafiky jen dalšími z řady oněch "otevřených"?

Celá situace je tedy více než zamotaná a v poslední době se spíše zdá, že AMD se jen snaží přesvědčit veřejnost, že Mantle je budoucnost. Vydává dost rozporuplné zprávy o tom, kde vlastně je API nasazeno. Sem tam se objeví seznam her, které toto nové rozhraní budou podporovat a horlivě k tomu dodají, že bude na jejich grafikách výrazně vyšší výkon. Marketing je to však trochu křečovitý a je z něho tak trochu cítit hořkost, že se nepovedlo prosadit kompletně celý Mantle alespoň do jedné z konzolí. U Xbox One to asi AMD ani nepředpokládalo, ale to, že se to nepovedlo ani u PlayStation 4, je docela zklamání. Nyní, kdy jsou obě konzole nošeny takřka v 9. měsíci u obou firem a čekají na porod, se snaží AMD Mantle prosadit do PC. Už ví, že dále mlžit resp. prosazovat jejich architekturu GCN v konzolích nemá moc smysl. Stal se totiž opravdu "jen" dodavatelem hardwaru. Ambice AMD byly nejspíš poněkud vyšší a nyní se to snaží napravit. Kdo ví, možná to vidím jen moc černě, ale celá kampaň vysílá tak nesourodé znaky, že se tomu dojmu prostě nelze ubránit.


Když se to povede


Ale zanechme zbytečného diskutování nad nesmrtelností brouka resp. Mantle a podívejme se na případ, kdy se to celé podaří a nové low-level API se prosadí. Hry se začnou tvořit pouze pro toto rozhraní, všichni výrobci grafických karet jej budou podporovat a hry se jedním skokem lehce urychlí. Bude možné hned na začátku přidat některé efekty, zvýšit komplexnost shaderů a celkově se obraz opět posune k realističnosti. Jakmile vyjde nová grafická karta, nebude problém přidat do hry nějaký ten nový efekt, aniž by se čekalo na nové ovladače atd. Prostě se uvolní update a tím to skončí. Na nových grafikách se hra promění opět k lepšímu. Toto zpětné vylepšování her samozřejmě nevydrží věčně a je spíše otázkou, zda k němu vůbec dojde. Budou mít na takové chování vývojáři vůbec náladu? A proč by vlastně chtěli vylepšovat hru, která se již zaplatila, vydělala a postupně její potenciál klesá? Ano, může se objevit titul stylu WOW, který je potřeba stále vylepšovat. Ale bude jich málo. Ve výsledku tedy Mantle bude stejný jako DirectX, kdy se počká na jednu nebo dvě nové generace grafik a novinky se teprve poté implementují.





Je to trochu schyzofrení. Na jednu stranu Mantle hlásá otevřenost pro všechny a možnost využití jejich API. Na stranu druhou asi žádný výrobce her nechce, aby hra vypadala na každé grafické kartě trochu jinak. Proč by měla být hra na o půl generaci novější grafice jiná? Znamenalo by to další ladění hratelnosti, další náklady na vývoj. Co když onen efekt zrovna zneviditelní důležitý předmět? Je potřeba vždy ke hře přistupovat tak, aby vypadala na určitém nastavení stejně. Pokud ne, je to problém. Ve výsledku může být ona velká otevřenost a svoboda spíše na škodu.


Když se to nepovede


Zde je situace daleko prostější. Zůstane zachován status quo a nic moc se nezmění. Tedy pouze v případě, že se nepustíme do spikleneckých teorií, že MS, Intel a NVIDIA plodí svůj vlastní Mantle. Přesto to může znamenat takové drobné nakopnutí pro vývojáře z Microsoftu, že jistý přímější přístup k hardwaru by nebyl na škodu. A kdo ví, třeba příští generace DirectX bude právě taková a tím celý Mantle zcela pozbyde smyslu a celý tento pokus se ocitne v propadlišti dějin.



Ostatně pokud si vzpomeneme na historii, tak takový Glide, což bylo v základu velmi obdobné API jako Mantle, se také časem zcela přestal používat. Ano, Glide měl tu nevýhodu, že nebyl otevřený, ale stále to byl produkt jedné firmy vyrábějící grafické karty. Nakonec prostě zvítězilo API třetí strany, která do hardwaru prakticky nefušovala. Tedy rozhodně ne do toho grafického.
reklama