A GDC-n élesben is bemutatkozik az új OpenGL

A Khronos Group még az elmúlt évben megrendezett SIGGRAPH rendezvényen jelentette be, hogy a szoftvercégek és a gyártók kérésének eleget téve újraírják az OpenGL API-t. Az előzetes tervekre vonatkozóan a konzorciumot vezető Neil Trevett, a SIGGRAPH Asia rendezvényen tartott egy rövid tájékoztatást, míg nemrég a felhasználók véleménye is hangsúlyossá vált.

A legfrissebb bejelentés értelmében az újraírt OpenGL API kezdetleges verziója már működni fog a márciusban megrendezendő GDC alkalmával, ahol a többszálú parancsfeldolgozás került előtérbe. Ez azonban még nem jelenti azt, hogy az API kész, csupán egy előzetest kaphat belőle a világ, illetve részletesebben ismertetve lesz, hogy mik az aktuális tervek, amelyek esetleg a jövőben megváltozhatnak.

Információink szerint az új OpenGL kapcsán vannak olyan részek, amelyeknél nagy az egyetértés, így például a parancspufferek kreálása lényegében a többi alacsony szintű hardverelérést kínáló API-hoz hasonló modellel történik majd, illetve a shader fordítás is nagyrészt egységesítve lesz, vagyis a hardverekre nem a forráskódból, hanem egy egységes reprezentációs szintből fordítható majd le a kód. Ezzel az aktuális OpenGL legproblémásabb részei meg lesznek oldva.

Vannak azonban még kérdések. Úgy tudjuk, hogy az API véglegesítésére nagyjából másfél-két év múlva kerülhet sor, így felmerült a lehetőség a komolyabb fejlesztésre is, ha már a kompatibilitás a korábbi OpenGL verziókkal úgyis megszűnik. Többek között vita tárgya a bekötési modell, amiben például a DirectX 12, a Mantle és a Metal sem tekinthető egységesnek, bár a korábbi API-khoz képest mindegyik új opció lényeges előrelépést kínál.

Információink szerint az AMD és az NVIDIA a drasztikus előrelépés mellett kampányol, így explicit bindless modellt szeretnének látni az új OpenGL-ben. Ennél az opciónál az alkalmazás közvetlenül kontrollálja a textúrák tárolását, ami nem jár semmilyen többletterheléssel a processzor oldalán. Lényegében ezt a modellt használja a Mantle API is, ugyanakkor gondot jelent, hogy a hardverek szempontjából csak az AMD GCN, illetve az NVIDIA Kepler és Maxwell architektúra támogatja a koncepciót, míg a többi elterjedt GPU-architektúra csak emulálni tudná a működést. A legtöbb cég éppen ezért a DirectX 12 modelljét szorgalmazza, amely ugyan nem az abszolút csúcsteljesítményre koncentrál, de elég alacsony a többletterhelése ahhoz, hogy jó legyen a hatékonysága, és a funkcionalitása is megfelelő. Persze nyilván a Khronos Group gondolkodhat úgy, hogy mindenképp az explicit bindless modell a jövő, és ezt a gyártóknak is be kell látni, vagyis van esély rá, hogy 2017-re már nem csak az AMD és az NVIDIA újabb architektúrái támogathatnák ezt a funkciót.

Az erőforrás-kezelés egységesítése is vita tárgya. A mai OpenGL számtalan különböző pufferformátumot támogat, de valójában ezekre csak azért van szükség, mert régebben a hardverek másképp működtek. A mai modern GPU-kkal már elég lenne csupán pár pufferformátum, amelyeket szabadon lehetne írni és olvasni, akár párhuzamosan is, akármilyen adattípussal. Itt megint az a kérdés, hogy a Khronos Group egyszerűsítsen-e, vagy bizonyos, teljesítményt és funkcionalitást csak korlátozott mértékben befolyásoló részleteket mentsenek át az aktuális OpenGL-ből. Például a Microsoft a DirectX 12-vel ezt tette, mivel az elérhető GPU-architektúrák többségét nem készítették fel az egységes és korlát nélküli erőforrás-kezelésre, vagyis a DirectX 11 modelljét logikus volt részben átmenteni. Ugyanakkor az új generációs OpenGL megjelenése távolabb van, tehát 2017-re akár meg is oldható ez a probléma a hardverek szintjén, és úgy már logikusabb a Mantle erőforrás-kezelési modelljéhez hasonló koncepcióval előállni, hogy a fejlesztők dolga egyszerűbb legyen, és egyben jobb teljesítményű kódot írhassanak.

A Khronos Group egyébként nincs olyan rossz helyzetben az újraírt OpenGL kapcsán. Kétségtelen, hogy ez érkezik majd az új API-k közül a legkésőbb, de az extra idő esélyt ad arra, hogy a kialakításánál olyan irányokba menjenek el a tervezők, amelyeket a Microsoft a DirectX 12 kapcsán kényszerűen, az aktuális hardverek többségének korlátozott képességeit látva elvetett. Az új OpenGL-t viszont a jövőben érkező hardverekre érdemes tervezni, és ez ledönthet bizonyos sebességre és funkcionalitásra vonatkozó korlátokat, amelyek a DirectX 12-ben még élnek. Jó kivitelezés mellett az új generációs OpenGL akár domináns API-vá is válhat az AAA kategóriás PC-s játékok piacán, azoknál a fejlesztőknél, akik szabványos formában koncentrálnak az abszolút csúcsteljesítményre.

Azóta történt

Előzmények

Hirdetés