Modern grafikus API-t kap az Android is
Akár évekre is szükség lehet, míg beérik a Google és a Khronos bejelentése, miszerint a modern grafikus API-k közül a Vulkan mögé áll be a Google. Az új API gyorsaságban és hatékonyságban is áttörést hozhat, nagy kérdés, hogy mikor.
Beáll a Vulkan grafikus API mögé az Android is - jelentette be a Google és a szabványt fejlesztő iparági konzorcium, a Khronos Group. Ezzel a grafikus hardverhez alacsony szintű hozzáférést biztosító Vulkan hatalmas lökést kapott, a milliárdnyi androidos eszköz támogatása egy csapásra az egyik legfontosabb grafikus API-vá emelte a Vulkant.
Vulkan a Metal és a DirectX12 ellen
Miről van szó dióhéjban? A hagyományos grafikus API-k (DirectX, OpenGL) mára a teljesítmény egyik legnagyobb akadályává váltak, különösen olyan környezetben, ahol szerény CPU-s sebességgel kell számolni vagy szempont a minél magasabb hatékonyság - az okostelefonoknál pedig mindkét tényező jelen van. Válaszként hány éve kirajzolódott az új trend: a konzoloktól kölcsönözni megközelítést. Ez azt jelenti, hogy alacsony szintű hozzáférést kap a fejlesztő a hardverhez, vagyis sokkal közvetlenebbül programozhatja a GPU-t, mint amit a nagy, "vastag" API-k elérhetővé tesznek.
A szabadságfok növelésével természetesen nő a grafikus alkalmazások komplexitása is - egész pontosan a komplexitás a grafikus meghajtóból a grafikus motorba költözik. Ezzel a jövőben a fejlesztőknek kell megbirkózni, a közvetlen memóriakezelés, manuális párhuzamosítás azonban olyan optimalizációt tesz lehetővé, amely bőven kárpótolni tud ezért. Az egyszeri fejlesztőnek pedig még ezzel a fejfájással sem kell számolnia, a licencelhető grafikus motorok, játékmotorok ezt egészében kezelni tudják, így érdemi változással ezen a szinten nem kell számolni.
Ilyen alacsony szintű grafikus API-ra immár minden nagyobb szereplő kínál. Az AMD a Mantle-lel igyekezett kamatoztatni a konzolos dominanciát (ez nagyon hasonló funkcionalitást kínál az Xbox One grafikus rétegéhez), a Microsoft a DirectX 12-vel hozza el ezt a megközelítést az Apple pedig iOS-en és OS X-en is elérhetővé tette a Metal API-t. A szabad szoftveres megoldásra sem kell már sokat várni, az OpenGL-ek mögött álló Khronos Group is megjelent a színen a Vulkan API-val. Elsőre azonban nem volt egyértelmű, hogy a Vulkan milyen támogatásban részesül az operációs rendszerek és a hardverek szintjén, miután a legfontosabb OpenGL-támogató Apple csinált saját megoldást. A Google belépésével ez a kérdés egy csapásra választ kapott - a Vulkan még akkor is releváns grafikus API lesz, ha az Android mellett soha senki más nem fogja támogatni.
PowerVR Rogue GPUs running Gnome Horde demo (Vulkan prototype)
Még több videóZongorázni lehet a különbséget.
A Gitlab mint DevSecOps platform (x) Gyere el Radovan Baćović (Gitlab, Data Engineer) előadására a november 7-i DevOps Natives meetupon.
A Vulkan igazi áttörés is lehet a mobilos grafikában (nem véletlen, hogy az Apple is sietett az OpenGL ES lecserélésével). A telefonos-tabletes processzorok ugyanis nem egyszálú CPU-teljesítményben erősek, a grafikus API többletterhelése azonban pontosan ilyen terhelést jelent. Ez roppant energiapazarló, az egy-két CPU-mag magas órajelen való pörgetése égeti az akkus töltöttséget.
Mobilos Vulkan - évek múlva számolhatunk vele
Vannak dolgok, amelyeket nem lehet elég korán elkezdeni. Ezek közé tartozik az alacsony szintű grafikus API-k operációs rendszer szintjén történő támogatása is. Ahhoz ugyanis, hogy a fejlesztőknek az új grafikus platform releváns legyen, szükséges a jelentős telepített bázis - olyan telefonok és tabletek, amelyek képesek is a Vulkan-kompatibilis játékokat futtatni. Erre azonban jelen állás szerint minimum néhány évet várni kell: az Android jelenlegi kiadásai egyáltalán nem támogatják a Vulkant, és több, mint valószínű, hogy a Google Play Services-en keresztül történő "visszaportolás" sem járható út.
A hardver pedig elvben rendelkezésre áll, a Vulkan minden olyan GPU-t támogat, amely legalább az OpenGL ES 3.1-et hardveresen támogatja. Ez a támogatás pedig rendelkezésre áll a Qualcomm Adreno 400-as sorozatú GPU-kban, a Bay Trail-alapú Atomok, Celeronok és Pentiumok, a Mali T6xx sorozat, a Tegra K1 és X1, a PowerVR 6 és 7 sorozat tagjaiban is - hogy a legfontosabbakat említsük. Ez azt jelenti, hogy jellemzően az idei csúcstelefonok és az elmúlt egy évben kiadott Atomos tabletek már támogatni fogják az új API-t.
Az operációs rendszer azonban nem áll készen, az Android 5.0 és 5.1 sem ismeri a Vulkant, és ha a Google illetve a Khronos mély hallgatásából következtethetünk, akkor az Android M sem fogja támogatni a szabványt. Mivel a Vulkan implementációja igen komoly fejlesztést igényel a rendszer szintjén is, várakozásaink szerint csak a következő, Android "N"-ben jöhet, 2016-ban. Ennek egyenes ágú következménye, hogy az Android elképesztően lassú frissítési ciklusát figyelembe véve 2017 vagy akár 2018 is lehet, mire a Vulkan-kompatibilis telefonok számottevő tényezővé válnak - a tavaly óta támogatott OpenGL ES 3.1 részesedése például még mindig csak 3,4 százalék az Android Developer Dashboard szerint, ráadásul még a legmodernebb Nexus 6 sem tartalmaz Vulkan-képes hardvert.