Hirdetés

Közeledik a lezáráshoz a Vulkan API specifikációja

Mint ismeretes a Khronos Group márciusban jelentette be a Vulkan API-t, amelyről egy interjúban is beszélt Neil Trevett, a konzorcium elnöke, és az API specifikációjának lezárása is egyre közelebb van, így erről is egyre több információ derül ki.

Hirdetés

A DirectX 12-höz mindenképp hasonlít majd abban a rendszer, hogy itt is lesznek kötelezően támogatandó és opcionális funkciók. Az API alapját adó parancslisták többszálú kreálását természetesen kötelező lesz támogatni, de ez nagyrészt szoftveres funkció, így ebből gond nem lehet. A Vulkan bekötési modellje azonban sokban különbözik a DirectX 12-től. Többek között a Khronos Group által életre hívott API nem tartalmaz túl sok erőforrástípust, ezekre ugyanis a modern hardverek esetében nincs igazán szükség. A bekötés a Vulkan API-ban is több szintre van osztva, így a legjobb szint úgynevezett teljesen bindless architektúrát követel, ahol a bekötés a multiprocesszorba történik meg. A teljesen bindless modellt nem támogató architektúrákon a különböző funkciók emulációjával lesz megoldva a működés, ami nyilván nagyobb többletterheléssel fog járni a processzor oldalán.

Az aszinkron DMA és aszinkron compute opcionális funkció, ahogy az egységes memória is. A SPIR-V-t azonban kötelező támogatni, ahogy a shaderek programozásra vonatkozó nyelvek közül a GLSL-t is. Fontos követelmény, hogy a Vulkan meghajtó mellett kötelező egy legalább OpenCL 1.2-es meghajtó is, illetve ezzel kötelező támogatni az OpenCL C nyelvet. Opcionálisan persze használható egy OpenCL 2.0-s vagy 2.1-es meghajtó a fejlettebb OpenCL C és OpenCL C++ nyelvek támogatásával. Ez a Vulkan és a DirectX 12 közötti a legfőbb funkcionális különbség. Amíg a DirectX 12 csak a HLSL nyelv legújabb verzióját támogatja, addig a Vulkan felkínálja a fejlesztőknek a lehetőséget, hogy a ne csak a ma már eléggé korlátozónak tekinthető GLSL-ben írjanak shader programokat. Ugyanakkor a modernebb OpenCL C és C++ nyelvek használatához szükséges a hardver oldali támogatás.

A Vulkan API a program indításakor ellenőrizni fogja, hogy az adott rendszerre milyen OpenCL meghajtó van telepítve, így a nem támogatott nyelvekben írt shaderek futtatását automatikusan letiltja, így a program akkor is futni fog, ha az adott konfiguráció például képtelen az OpenCL C++ nyelven írt shaderek futtatására.

A nyelvekre vonatkozó opcionális funkciók támogatása egyébként nagyrészt szoftveres fejlesztést igényelnek, tehát akármelyik modernebb GPU-architektúra képes lesz ezeket támogatni, csak egy OpenCL 2.0-s, vagy jobb esetben 2.1-es meghajtóra lesz szükség. Ez egyébként a Khronos Group nézőpontjából ígéretes stratégiának tűnik, ugyanis így az OpenCL implementációk fejlesztését a gyártók bizonyosan fel fogják gyorsítani, hiszen ez komoly teljesítményelőnyt is jelenthet bizonyos játékokban, nem beszélve az extra effektekről.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

Azóta történt

Előzmények