Herné technológie neustále napredujú a v súčasnosti sa stretávame nielen so stále výkonnejším hardvérom, ale aj s čoraz väčším zástupom rôznych formátov počítačov. Vývojári softvéru musia reagovať. Kam sa počítačová grafika bude uberať v najbližších rokoch?

Digitálny herný priemysel si dnes užíva najsilnejšiu pozíciu v doterajšej histórii a naďalej pokračuje v rozkvete a neustálom raste. V roku 2015 vygeneroval príjmy 34 miliárd dolárov (92 miliárd pri započítaní hardvéru) a očakáva sa, že do roku 2018 toto číslo narastie na 45 miliárd dolárov (113 miliárd vrátane hardvéru). Na svete sa občasnému hraniu na počítačoch rôzneho formátu neubráni až 1,8 miliardy ľudí.

V posledných rokoch raketovo stúpa najmä počet hráčov na mobilných zariadeniach, ktoré lákajú predovšetkým jednoduchšími žánrami v podobe zábavných logických hier alebo nejakej tej „skákačky“. Vrcholnými produktmi herného priemyslu sú pravdaže špičkové tituly s pokročilou grafikou, ktoré sú z dôvodu najvyššieho rozpočtu a tržieb označované skratkou AAA. Tie už vyžadujú hardvérovo výkonnejšie platformy, obvykle založené na architektúre x86. Ide teda predovšetkým o notebooky a desktopy s operačným systémom Windows a herné konzoly Xbox One a PlayStation 4. Na týchto platformách sú omnoho častejšie už aktívni hráči, čo sú osoby, ktoré sa hrám venujú pravidelne a hrajú nejakú hru každý mesiac, týždeň či deň. Na platforme Windows je takýchto aktívnych hráčov až 711 miliónov. Dodnes je pri tom rozšírený mýtus, že počítačové hry hrajú hlavne mladšie ročníky, čo má svoj pôvod niekde v 80. rokoch minulého storočia, keď sa počítačové hry začali rozširovať vo výraznej miere. Pravda je ale taká, že hráči, ktorí začali hrať hry v detstve, v hraní nikdy neprestali. Súčasné štatistiky hovoria jasnou rečou. Priemerný vek hráča je dnes 35 rokov, pričom toto číslo sa postupne zvyšuje už niekoľko desaťročí. Z pravidelných reportov svetovej hernej asociácie (ESA) takisto vieme, že hry vonkoncom nie sú len doménou mužov a až 48 % hráčov tvoria ženy.

Quantum Break

Quantum Break

Z hľadiska výkonu a schopnosti počítačov prevádzkovať čoraz náročnejšie herné tituly, sa pozornosť často upriamuje výhradne na nový hardvér, teda na nové grafické karty, procesory, operačné pamäte či herné konzoly. Hardvér je však len jedna časť skladačky a nemenej dôležitou časťou je softvér.

Nízkoúrovňové API ako jasná cesta vpred

Ak chceme o súčasnosti a takisto budúcnosti počítačovej grafiky v hrách vôbec nejako zmysluplne hovoriť, nevyhneme sa téme aplikačných programovacích rozhraní, skrátene API (Application Programming Interface). Ide o celkom esenciálnu tému, ktorá v poslednej dobe prechádza po dlhej dobe konečne veľkým prerodom a robí obrovský krok vpred. V rámci počítačov s operačným systémom Windows, pričom nejde len o notebooky a desktopy, ale aj o hernú konzolu Xbox, je prioritným a najpoužívanejším aplikačným programovacím rozhraním Direct3D. Ide o súčasť balíka rozhraní DirectX, pričom celkom bežne sa tieto dva termíny aj zamieňajú, pretože Direct3D je najdôležitejším a najpoužívanejším API v tejto kolekcii. Microsoft si DirectX vytvára sám a ide o celkom esenciálnu súčasť operačných systémov Windows.

Toto aplikačné rozhranie slúži ako základný medzičlánok medzi samotnou hrou (jej herným enginom) a grafickým jadrom, teda GPU. Medzi grafickými jadrami existuje množstvo odlišností, pričom na trhu je zástup modelov s odlišnými architektúrami nielen v rámci rôznych výrobcov, ale aj v podobe niekoľkých generácií toho istého výrobcu. Ľudia majú vo svojich počítačoch GPU od AMD (Radeon), Nvidie (GeForce) či Intelu a bolo by neudržateľné, ak by programátori museli robiť pre každý typ a verziu GPU hru zvlášť. Tu teda prichádza na pomoc API, ktoré zjednocuje štandardy a princípy a umožňuje programátorom vyvíjať hru bez takéhoto rozporu. Grafické API jasne definuje hranice, kam môžu herní vývojári pri tvorbe hier zájsť, pretože práve ono preberá od herného enginu dáta o virtuálnej scéne hry, spracováva ich a odosiela na výpočet grafickému jadru.

Tom Clancy's The Division

Tom Clancy’s The Division

Donedávna sa používali dve majoritné grafické API, ktorými sú už spomenutý DirectX (respektíve Direct3D) a OpenGL. Služobne starším z tejto dvojice je OpenGL, vyvíjaný kontinuálne už od začiatku 90. rokov minulého storočia. Sprvu niekdajším grafickým gigantom Silicon Graphics a od roku 2008 neziskovým združením Khronos. OpenGL je multiplatformné API pre Windows aj Linux, ktoré má veľké zastúpenie hlavne v profesionálnych grafických či strihových programoch (napríklad Adobe Photoshop, Adobe Premiere, 3D Studio Max, Blender a ďalšie). V prípade hier je však jeho pozícia minoritná. Môže za to DirectX, ktorý sa objavil v roku 1995 a s rozšírením Windows sa stal celkom dominantným grafickým API. Niektoré špičkové hry pravdaže OpenGL používali, pričom šlo napríklad o DOOM3, avšak DirectX vždy hral prvé husle s takmer 100 % podielom. OpenGL sa často volil až dodatočne pre porty hier pre Linux, ako napríklad Left 4 Dead, Portal 2 či Half-Life 2. Tie však na platforme Windows stále používali DirectX.

DirectX bol od svojho počiatku veľmi výkonným vysokoúrovňovým API. Microsoft ho neustále vyvíja už viac ako 20 rokov (verzia 1.0 sa objavila na Windows 95), pričom obvykle nové varianty cieli a pripravuje pre nové verzie svojho operačného systému Windows. Nanešťastie pre herných vývojárov, obvykle neumožňuje používanie novších verzií DirectX na starých systémoch. Hra síce funguje s použitím tej staršej verzie DirectX, avšak o výhody novšieho API, ktoré podporuje nové efekty a lepšie spracovanie grafických dát, príde. Napríklad Windows XP prišiel na trh v roku 2001 s novým DirectX 8.0 a vzhľadom na dlhú službu tohto systému sa s postupnými servisnými balíčkami dostal až na 9.0c. Tu však jeho cesta skončila. Ďalšia verzia DirectX už bola pripravená len výhradne pre systém Windows Vista, ktorý sa objavil na trhu v roku 2006. Nasledujúci Windows 7 priniesol DirectX 11.0 a jeho servisný balíček zas verziu 11.1. Mierne vylepšená verzia 11.2 sa takisto už objavila v roku 2013 len na Windows 8.1 a jeho dobových ekvivalentoch.

10_web2016_3_nowat

Herní vývojári mali kvôli tomuto javu dlhé roky trpkosť na jazyku. Výkon herného hardvéru neustále stúpal, ale za viac ako desaťročie sa DirectX vpred príliš neposunul. Okolo roku 2010 stále drvivá väčšina hráčov používala len DirectX 9.0c, pretože z dôvodu neobľúbenosti Windows Vista zostávali stále na Windows XP. Práca vývojárov s DirectX 10 preto vychádzala vnivoč. Situácia sa následne postupne zlepšovala s rozširovaním Windows 7, takže mnoho hráčov prešlo na DirectX 10, avšak onedlho sa situácia zopakovala s nepopulárnym Windows 8. Do celej situácia začalo vstupovať to, že hardvér z dôvodu čoraz problematickejšieho posunu na nižšie výrobné procesy nerobil už také výkonnostné skoky ako kedysi a optimalizácia a čo najlepšia práca API bola esenciálna.

Frustráciu necítili len vývojári hier, ale aj vývojári grafických čipov. Tí totiž vedeli, že obrovský posun vpred je možné spraviť tým, že opustia vysokoúrovňové API a prejde sa k nízkoúrovňovým, ktoré dokážu grafický hardvér ovládať „až na kosť“. Takými sú napríklad API určené na GPGPU, teda riešenia na prevádzkovanie všeobecných výpočtov na grafických jadrách (General-purpose computing on graphics processing units). Kým AMD na svojich herných čipoch Radeon a profesionálnych FirePro používala na GPGPU sprvu svoje nízkoúrovňové API Close To Metal a následne dala prednosť otvorenému štandardu API OpenCL (od združenia Khronos), Nvidia dávala na svojich herných čipoch GeForce a profesionálnych kartách Quadro prednosť svojmu API CUDA. Takéto nízkoúrovňové API umožňujú vývojárom detailný prístup k hardvéru a jeho ovládačom, čím je možné výpočet výrazne optimalizovať, znížiť jeho nároky a dosiahnuť výrazne vyšší výkon. Je tak často možné odstrániť brzdu v podobe procesora, ktorý na rozdiel od GPU nie je uspôsobený na masívny paralelný výpočet. Ten je však pri počítaní grafických scén s obrovským počtom objektov veľmi potrebný a keďže pomocou nízkoúrovňových API je možné všetko naservírovať a nasmerovať do GPU, šlo v hernom priemysle o jasnú cestu vpred. Neexistovali však náznaky, že by sa týmto smerom mali vydať herné API v podobe DirectX a OpenGL.

Total War: Warhammer

Total War: Warhammer

Do boja s touto „nespravodlivosťou“ zasiahla v roku 2013 spoločnosť AMD, ktorá v spolupráci s herným štúdiom EA DICE predstavila svoje nízkoúrovňové API Mantle, ako novú konkurenciu zabehnutým vysokoúrovňovým herným API. Pri predstavení pri tom demonštrovala, ako veľmi sa prejaví nízkoúrovňové API napríklad pri renderovaní grafickej scény, pri ktorej sa volá veľké množstvo vykresľovacích funkcií (draw calls). Kým pri v tej dobe najrozšírenejšej verzii DirectX 11 boli schopní herní vývojári uskutočňovať štyri až päť tisíc volaní v jeden moment (v rámci vykreslenia jednej snímky), nízkoúrovňové API Mantle sa dostalo až na 100 000, teda viac ako desaťnásobok. Šlo teda skutočne o nový svieži vzduch vpustený do stagnujúceho vývoja. Na konferencii APU13, kde k predstaveniu došlo, sa odohrala aj ukážka vývojárov z Oxide Games, ktorí na počítači s grafickou kartou AMD Radeon R9 290X a procesorom AMD FX-8350 znížili frekvenciu CPU o polovicu (z 4 GHz na 2 GHz) bez toho, aby došlo k strate výkonu v hre. Následne zostavu postavili proti počítaču s omnoho výkonnejším procesorom Core i7-4770K a rovnakým GPU, ktoré však pracovalo s DirectX. Kým táto zostava zvládla spracovávať 1000 grafických objektov a 15 000 vykresľovacích požiadaviek na jednu snímku, zostava používajúca Mantle a menej výkonné CPU zvládla vďaka nízkoúrovňovému API až 2000 objektov a 30 000 vykresľovacích požiadaviek.

DirectX 12 na plné obrátky

Kritika smerom k DirectX silnela. Známa bola napríklad výčitka Jurjena Katsmana zo spoločnosti Nixxes (firma v minulosti stála napríklad za portami hier Deus Ex, Hitman a Tomb Raider na Windows), ktorý označil DirectX za extrémne nepredvídateľné API a uviedol, že 50 % procesorového času sa spotrebuje na akúsi čudesnú réžiu. Obdobne sa vyjadril aj jeden z hlavných grafických vývojárov AMD Guennadi Riguer, ktorý kritizoval to, že v rámci DirectX neexistuje jednoduchá a priama cesta na preklad príkazov z API na príkazy pre GPU. Presadiť Mantle oproti stálici v podobe DirectX sa však nepodarilo. Herní vývojári sa k nemu stavali síce pozitívne avšak Nvidia o podporu tohto API nakoniec neprejavila záujem a negatívne sa k nemu postavil takisto aj Microsoft, ktorý oznámil, že konzola Xbox One ho podporovať nebude, a to aj napriek tomu, že je toho vďaka hardvéru od AMD schopná (Xbox One obsahuje podobne ako Playstation 4 procesor aj grafický čip od AMD) a bude dávať prednosť výhradne vlastnému DirectX vo verzii 11.2 s vylepšenou réžiou.

Dark Soul 3

Dark Soul 3

Vody sa však napokon v roku 2013 rozhýbali dobrým smerom. O rok neskôr totiž Microsoft svetu odhalil svoj vývoj nového nízkoúrovňového API, ktoré napokon v roku 2015 uviedol na trh spoločne s Windows 10. Ide o novučičký DirectX 12, ktorý sa môže pochváliť zrejme najväčšími zmenami vo svojom doterajšom vývoji. Primárnou zmenou sú pokročilé funkcie pre nízkoúrovňové programovanie, umožňujúce vývojárom implementovať svoju vlastnú súpravu príkazov a bufferov pre GPU, vďaka čomu je možné viac ťažiť z jeho veľkého paralelizmu. V predošlej verzii DirectX odosielal procesor do grafického jadra dáta rad za radom, takže ľahko mohlo dôjsť k tomu, že už viac posielať nestačil, i keď by GPU bez problémov zvládlo spracovať aj omnoho viac. DirectX 12 prišiel po vzore Mantle s odosielaním zoznamu príkazov v rámci jednej „dodávky“ či zoznamu, ktoré následne GPU spracováva samo a na procesor už nemusí čakať. Do grafických čipov je možné „pumpovať“ dáta vo veľkom počte vlákien a výrazne tým znižovať latencie pri renderovaní scény. Jednou z ďalších vlastností je aj natívne používanie viacerých GPU, bez nutnosti spoliehať sa na doplnkové riešenie výrobcov v podobe technológií SLI (Nvidia) a CrossFireX (AMD).

Z hľadiska hardvéru výrobcovia grafických čipov zabezpečujú podporu v rámci ovládačov aj pre staršie grafické karty. DirectX 12 si dnes môžu užiť všetci majitelia grafických kariet GeForce 400 a novších modelov a takisto majitelia Radeonov od verzie HD 7700, teda aj všetkých R5/R7/R9 sérií. Podpora teda siaha až na karty staré zhruba päť rokov. Integrované grafické čipy Intelu dostali podporu DirectX 12 spätne až do generácie Haswell. Nutnosť je pravdaže operačný systém Windows 10. V ideálnych prípadoch je možné s DirectX 12 dosiahnuť zlepšenie grafického výkonu o 50 % až 70 %, podobne ako v prípade Mantle. Ide pravdaže len o ideálne prípady, kde narážajú staršie API na svoj limit. Prvá hra ktorá DirectX 12 podporovala bola stratégia Ashes of the Singularity, ktorá bola vydaná v októbri 2015. Spätne sa podpora DirectX 12 objavila už aj na vydaných hrách Rise of the Tomb Raider a Just Cause 3 (prostredníctvom patchu). Najdôležitejšie sú však hry, ktoré sa už na tomto API od základu vyvíjajú, pričom v tomto roku sa tešíme predovšetkým na tituly Quantum Break a Dark Soul 3 (apríl 2016), Total War: Warhammer (máj 2016) či Deus Ex: Mankind Divided (august 2016). Peknú demonštráciu ich grafických schopností môžete vidieť aj na reklamnom videu, ktoré Microsoft vydal v marci na propagáciu DirectX 12.

06_web2016_3_nowat

Už aj tu je vidieť zaujímavú zmenu prístupu. V minulosti nové verzie DirectX Microsoft pre používateľov prakticky nepropagoval a rozdiely medzi staršou a novšou verziou obvykle predvádzali len výrobcovia grafických kariet. Čo môže za takúto zmenu prístupu? DirectX totiž nebude jediným nízkoúrovňovým API v rámci hráčskych platforiem. Do boja s ním vstúpil Vulkan, ktorý nemožno brať na ľahkú váhu.

Vulkan ako okno do nezviazanej budúcnosti

Nízkoúrovňové API sú v móde, a to je dobre. Touto cestou, ktorú pred troma rokmi naznačilo Mantle od AMD, sa vydal Microsoft na Windows so svojím DirectX12 a takisto aj Apple na svojom systéme OS X (nízkoúrovňové API nazvané Metal). Operačné systémy Apple však v rámci špicových herných AAA titulov žiadnu rolu nehrajú. V prípade mobilnej sféry však je takýto prístup Apple veľmi dôležitý, pretože tam nie je procesorový výkon na rozdávanie a každé percento výkonu, ktoré je možné priniesť vďaka GPU, sa cení. Vo výsledku teda na platforme Windows 10, určenej pre notebooky, desktopy, a takisto hernú konzolu Xbox One nastupuje nízkoúrovňové API DirectX 12 a na mobilnej platforme iOS a desktopovom OS X zas API Metal.

Logo Vulkanu v spoločnosti štandardných testovacích 3D modelov: Stanfordský zajac, drak, pásavec a čajník z Utahu.

Logo Vulkanu v spoločnosti štandardných testovacích 3D modelov: Stanfordský zajac, drak, pásavec a čajník z Utahu.

Toto by bolo dosť veľkým problémom pre iné platformy, pretože na Linuxe a takisto z neho odvodenom mobilnom systéme Android by vývojári zostali odkázaní len na vysokoúrovňové API OpenGL. Toto API vo veľkej miere používala aj Sony na svojich starších konzolách PlayStation, avšak pri konzolách je vždy tento problém o niečo menší vďaka tomu, že ide o unifikovaný a nemenný hardvér. API teda neplní funkciu sprostredkovateľa pre zástup rozličných GPU a CPU. Konzoly PlayStation 4 používajú unixový operačný systém Orbis, založený na FreeBSD. Sony pri tom má na konzolách dve grafické API. Hlavné je vysokoúrovňové GNMX, ktoré pomocou wrapperov komunikuje s nízkoúrovňovým GNM, zabezpečujúcim podrobnejšie ovládanie grafického hardvéru. Vysokoúrovňové API pre PlayStation používa mnohé funkcie totožné s DirectX 11, aby vývojári mohli hry vyvíjané pre rôzne platformy (počítače s Windows a konzoly Xbox One) ľahšie importovať na túto konzolovú platformu. Prítomnosť nízkoúrovňového GNM im následne poskytuje lepšiu kontrolu nad hardvérom. Spoločne ide v kombinácii GNMX a GNM teda o viac-menej rovnocennú alternatívu k DirectX 12, i keď prirovnanie nie je také jednoduché.

Herné počítače s Linuxom, do ktorých vkladá v rámci svojej platformy SteamOS veľké nádeje hlavne Valve (spoločnosť stojaca za distribučným systémom Steam), by však zostali v jasnej nevýhode. Podobne by dopadli aj mobilné platformy v podobe systémov Android od Googlu alebo Tizen od Samsungu, Intelu a ďalších firiem. Práve Valve výrazne upozorňovalo na dôležitosť nízkoúrovňového API a tlačilo vývojára OpenGL, ktorým je združenie Khronos, k jeho vývoju. Výsledkom tejto snahy bolo v lete roku 2014 oznámenie Khronosu o začiatku práce na „Novej generácii GL“. Takýto dátum však bol poriadne neskorý a bolo jasné, že nové API sa len tak skoro k vývojárom nedostane. Všetko sa však zmenilo v priebehu nasledujúceho roka. AMD totiž neziskovému združeniu Khronos kompletne darovalo svoje nízkoúrovňové API Mantle. Toto API sa tak stalo základom pre nové API Vulkan, ktoré Khronos oznámil v roku 2015.

04_web2016_3_nowat

Vývoj Vulkanu sa okamžite dostal do pokročilého štádia, pretože sa prakticky odstránila potreba premýšľania nad tým, ako má byť nízkoúrovňové API vlastne koncipované. API tak bolo už viac menej hotové a vykonali sa len potrebné úpravy a ladenie detailov. Len jeden a pol roka po úvodnom ohlásení vývoja, konkrétne vo februári 2016, sme sa stali svedkami vypustenia jeho prvej verzie pod označením Vulkan 1.0. Spolu so špecifikáciou bola uvoľnená aj všetka dokumentácia, vývojové nástroje, ovládače a vývojárska podpora. Vulkan je okamžite dostupný pre platformy Windows, desktopový Linux a takisto mobilný Android.

Spolu s tým sa objavila aj prvá hra, ktorá toto API používa. Ide o dva roky starú, ale stále veľmi populárnu hru Talos Principle od vývojárov Croteam, ktorí stoja napríklad aj za sériou Serious Sam. Keď sa vo februári objavili jej prvé testy s novým API, mnohých to sklamalo. Pri spustení hry na API Vulkan sa síce dosiahol omnoho väčší výkon než s OpenGL, avšak nie až taký dobrý, ako s DirectX 11. Je ale treba myslieť na to, že ide o dodatočnú implementáciu, a to navyše do hry, ktorá s nízkoúrovňovým API ani nerátala. Ide teda skôr o akúsi alfa verziu, ktorá má len demonštrovať, že toto API funguje, a nie ukazovať to, čoho je schopné. Každopádne, omnoho vyšší výkon oproti OpenGL potešil hráčov na Linuxe, pretože tam DirectX dostupný nie je.

Nové API Vulkan je v rámci pozície na rôznych platformách vnímané ako nízkoúrovňový nástupca OpenGL. Nijak z neho ale nevychádza a nie je s ním nijako spätne kompatibilné. Prakticky teda ide o hrubú čiaru za celou viac ako 20-ročnou históriou tohto API. Vulkan vďaka svojej koncepcii môže zájsť ďaleko za hranice toho, čoho je schopné vysokoúrovňové API. Ako sme už spomenuli, Vulkan je z drvivej väčšiny založený na API Mantle, avšak nejde o jeho kompletnú kópiu, pretože mnohé jeho prvky boli kompletne prepracované s prispením iných vývojárov.

01_web2016_3_nowat

Jeho hlavným konkurentom v rámci pokročilých herných strojov je DirectX 12. V prípade jednoduchších hier je však miernym konkurentom aj Metal od Apple pre iOS. Vulkan má zjavnú výhodu v tom, že je plne multiplatformný. Funguje teda na mnohých generáciách Windows (Windows XP a novšie), rôznych linuxových distribúciách a takisto systémoch Android (Android 6.0 Marshmallow a novšie). Multiplatformnosť pravdaže nie je všetko a vieme, že v minulosti OpenGL API z hľadiska implementácie v hrách zbieralo po DirectX len omrvinky. Doba sa však posúva a dnešné počítače už nie sú len Windows svetom. Do popredia sa vďaka SteamOS od Valve derie stále viac aj Linux a čoraz výkonnejší je aj hardvér mobilnej platformy, kde dominuje Android.

Khronos svoje nové API cieli tak, aby kompletne prehltlo rozdiely medzi mobilným, konzolovým a desktopovým hardvérom. Bude teda existovať len jeden Vulkan pre všetkých a nie Vulkan pre desktop a oklieštený Vulkan pre mobilný svet. Má byť pri tom zabezpečená konzistencia na všetkých platformách. Treba ale pripomenúť, že nie úplne univerzálna, pretože schopnosti hardvéru na rôznych platformách sú predsa len značne odlišné. Khronos ponúkol, že majitelia jednotlivých platforiem si súhrn funkcií vyberú sami, ale napokon to dopadlo tak, že pre Windows a Linux ho určí Khronos (pre obe platformy budú rovnaké) a pre Android si zvolí podporované funkcie sám Google.

Khronos potvrdil, že v úvode vývoja sa o Vulkan zaujímal aj Apple, ale postupom času vycúval a dnes nie je známe, či podporu plánuje. Zdá, sa, že sa sústreďuje hlavne na svoje API Metal. To je z hľadiska vývojárov aj používateľov veľká škoda, pretože zatiaľ čo dvere Windows-Linux-Android budú otvorené, dvere Android-iOS a Windows-OS X zostanú stále zavreté. Nemenej dôležitá je pravdaže podpora na strane ovládačov GPU. Pre systém Android má hotové ovládače Nvidia (pre svoje čipy Tegra) a takisto Qualcomm (grafické jadrá Adreno). K podpore sa zaviazal aj ARM so svojimi GPU Mali a Imagination so svojimi GPU PowerVR. V prípade Linuxu je hotovo zo strany Intelu, Nvidie aj AMD. Pre Windows už sú k dispozícii takisto ovládače pre od AMD aj Nvidie (v oboch prípadoch je Vulkan súčasťou nových ovládačov grafických kariet).

Vulkan ako súčasť inštalácie grafického ovládača kariet AMD Radeon

Vulkan ako súčasť inštalácie grafického ovládača kariet AMD Radeon

Všetkých pravdaže zaujíma, ako to bude so staršími architektúrami už vydaných GPU grafických kariet a kto teda hernú podporu dostane a kto už bude označený za prílišného deduška a podpora sa mu vyhne. Nvidia ohlásila, že podporu API Vulkan dostanú grafické jadrá Kepler a novšie, čo znamená, že ide o karty od roku 2012 až po súčasnosť, teda GeForce rady 600, 700 a 900. AMD oznámila, že podporu dostanú všetky GPU v jej živej fáze (nepatriace do oblasti Legacy), alebo inak povedané, všetky GPU s architektúrou GCN 1.0 a novšou, počnúc jadrami Tahity z roku 2011. V reči modelov grafických kariet ide o Radeony HD 7000 a vyššie, nasledované modelmi R7/R9 200, R7/R9 300 a Fury. Z hľadiska grafických jadier integrovaných CPU ide o Kaveri, Godavari, Carrizo, Kabini, Temash, Beema a Mullins. Intel podporu Vulkanu zahrnie do integrovaných GPU procesorov Broadwell a Skylake. Je ale možné, že neskôr sa objaví aj na starších Ivy Bridge a Haswell, potvrdené to však nebolo. Z hľadiska Androidu sa prvým smartfónom podporujúcim Vulkan stal Samsung Galaxy S7.

Aj keď Vulkan bude v budúcnosti preferovaný na úkor OpenGL v hrách (vrátane grafiky pre virtuálnu realitu), OpenGL aspoň najbližšiu dobu nezmizne. Spoločnosť Khronos poznamenala, že na nízkoúrovňových API je vývoj softvéru o niečo náročnejší, čo je však problém aj DirectX 12. Napríklad Dan Ginsburg z Valve odporučil všetkým vývojárom, ktorí pokročilé funkcie zabezpečené nízkou úrovňou prístupu na priame ovládanie hardvéru nepotrebujú, aby zostali verní OpenGL, ktorý bude stále k dispozícii. Vulkan je vhodný ako alternatíva k DirectX, pričom má obrovskú výhodu v tom, že vyrieši podporu nielen v rámci odlišných systémov v podobe Windows a Linuxu, ale aj starších verzií Windows, ktoré DirectX 12 nikdy nedostanú.

03_web2016_3_nowat

Vulkan je každopádne vzkriesením pre hry na Linuxe. Valve má vďaka nemu konečne v rukách plnohodnotnú hernú platformu, ktorá môže Windows vyzvať na súboj. Valve to s Linuxom skutočne myslí vážne a na distribučnej platforme Steam sa objavuje čoraz viac hier portovaných pre tieto operačné systémy (dnes 4000 titulov zo 17 000 ponuky). OpenGL bol v porovnaní s DirectX vždy slabinou, čo sa po nástupe DirectX 12 ešte viac prehĺbilo. Vulkan však situáciu vyrovnal. Valve pritom už v minulosti otvorene kritizovalo Microsoft za uzavretosť DirectX 12 a jeho dostupnosť iba pre Windows 10 a vyzýval vývojárov, aby počkali na Vulkan.

Bude zaujímavé sledovať, či sa stane toto API pre DirectX skutočnou hrozbou. Na rozdiel od Mantle, ktoré bolo prakticky záležitosťou len AMD, bude podporovať Vulkan obrovské množstvo hardvérových vývojárov, vrátane Intelu, AMD a Nvidie, ale takisto aj softvérových vývojárov hier, ktorým Vulkan otvára dvere na Windows, Linux aj Android. Podporu oznámili herné štúdiá EA/DICE (so svojím enginom Frostbite), Epic (Unreal Engine), Croteam (Serious engine), Unity (Unity engine) a takisto Valve (Source 2 engine). Aspoň v náznakoch podporu vyjadrili aj štúdia Eidos (Dawn Engine), Crytek (CryENGINE) a Blizzard. Dean Sekulic, jeden z vývojárov hry Talos Principle, popísal Vulkan jednou vetou ako „Nekonečný boj medzi dobrým výkonom a portabilitou je konečne za nami“.

Späť ani krok

Nízkoúrovňové API v podaní DirectX 12 a Vulkan sú výborným počinom, ktorý má potenciál posunúť grafické podanie hier o poriadny kus vpred. Vďaka nim sa herný priemysel a takisto herné platformy dostávajú na celkom novú úroveň, ktorá otvára nové dvere do budúcnosti. To, ktoré API bude nakoniec úspešnejšie ukáže až čas, avšak podobne ako v minulosti v prípade starších vysokoúrovňových API OpenGL a DirectX 11, aj tentoraz majú obe API svoje miesto na trhu a ponúkajú vývojárom možnosť voľby.

05_web2016_3_nowat

Vpred sa posúva takisto grafický hardvér, čo je nevyhnutné aj z dôvodu nástupu 4K rozlíšenia. V tomto roku budú muziku tvrdiť nové 16/14 nm generácie GPU, ktoré budú konečne sviežou vodou oproti 28 nm procesom, na ktorých sme zaseknutí už niekoľko rokov (pre veľké GPU k dispozícii skrátka nič lepšie nebolo). Pozitívne vnímame takisto veľký pokrok z hľadiska nových grafických pamätí HBM (podrobne sme sa im venovali v článku Kam kráča vývoj RAM v augustovom vydaní TOUCHIT), ktoré v tohtoročných generáciách preniknú na trh ešte viac. Zostáva teda len dúfať, že nás herní vývojári nesklamú a naservírujú nám tento aj tie budúce roky poriadnu dávku špičkových titulov.

Tento článok vyšiel aj v tlačenom aprílovom vydaní TOUCHIT č. 3/2016, preto sa niektoré skutočnosti uvedené v článku, môžu odlišovať oproti aktuálnemu dátumu publikovania.

Značky:

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.