Alacsony szintű hardverelérést biztosító grafikus API

Hirdetés

Egy korábbi tudástár anyagban már írtunk a grafikus API-król (Application Programming Interface), de ezeknek is van egy viszonylag speciális irányuk, mégpedig az alacsony szintű programozhatóságot biztosító grafikus API-k. Ide tartozik az Apple Metal, az AMD Mantle, a Microsoft DirectX 12 és a Khronos Group által bemutatott Vulkan is.

DirectX 12, Metal, Mantle
DirectX 12, Metal, Mantle

Céljukat tekintve az alacsony szintű programozhatóságot biztosító grafikus API-k nem különböznek hagyományosabb társaiktól, így ezek is a programok kompatibilitását célozzák a különböző hardverekkel, de ezt a vastagabb absztrakciót megvalósító megoldásokkal szemben máshogy érik el. Az alacsony szintű programozhatóság ebből a szempontból csalóka, mivel szó sincs arról, hogy ezeket esetleg a gépi kódhoz közeli assembly nyelvvel kell használni, csupán arról van szó, hogy ne az API, illetve a hozzá tartozó grafikus eszközillesztő feleljen a hardver működtetéséért, hanem maga a program, illetve ezen belül is a videojáték-motor.

A fentiek lényegében azt jelentik, hogy egy alacsony szintű programozhatóságot biztosító grafikus API csak egy olyan vékony absztrakciós réteg, amely csupán a shader programok adott hardveren történő futtatásáért felel, míg azok a jellemző funkciók, amelyek eddig a magasabb szintű elérésre tervezett grafikus API-k, a hozzájuk tervezett driver modellek, illetve a konkrét eszközillesztők részei voltak egyszerűen átkerülnek a programba, és csakis ott futnak. Ide sorolhatók többet között az állapotokra vonatkozó szűrések, a számítandó képkockákra vonatkozó parancsok összegyűjtése, a grafikus vezérlő memóriájának vezérlése, illetve az egyes létrehozott erőforrások menedzselése.

A fentiek következtében a program oldalán többet kell dolgozni az adott videojáték-motor leképzőjén, hiszen azok a feladatok, amelyek eddig az API-ban, illetve egészen pontosan az API-hoz írt grafikus eszközillesztőben voltak benne, mostantól szimplán nincsenek ott, így a programba kell beírni a szükséges implementációt. Ennek viszont van egy olyan előnye, hogy az egész működés profilozhatóvá válik, vagyis az egyes hibák megkereshetők és javíthatók. Utóbbi nagy fegyvertény, hiszen a vastagabb absztrakciót használó API-kon erre nincs igazán lehetőség, ami szinte lehetetlenné teszi az optimalizálást.

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.