Hirdetés

Saját igényeihez igazítja az OpenGL-t az NVIDIA

Az NVIDIA hivatalosan is bejelentette a saját megoldását a manapság egyre kritikusabbá váló, alacsony számú rajzolási parancsok problémájára. Mint ismeretes a ma elterjedt grafikus API-k extrém többletterheléssel dolgoznak, ami teljesen megakadályozza a grafikus vezérlők optimális kihasználását rengeteg rajzolási parancs mellett. Maga a probléma igen komplex, de az NVIDIA is pont úgy értékeli a helyzetet ahogy a többi érintett, miszerint az OpenGL és a DirectX jelenleg elérhető verziója túlkoros és nem tartották a lépést a modern hardverekkel. Ennek megfelelően a ma megvásárolható hardverkonfigurációk nagyságrendekkel többre képesek, mint ami reálisan kihozható belőlük az OpenGL 4.5 vagy a DirectX 11 használatával.

Az NVIDIA ugyan egy ideig úgy kommunikálta a történéseket, hogy az új API-kra még nincs szükség, de valójában a teljes iparág más véleményen van, amit az is jelez, hogy egy év alatt négy alacsony szintű hardverelérést kínáló grafikus API került bejelentésre, ideértve az AMD Mantle-t, a Microsoft DirectX 12-t, az Apple Metalt, illetve augusztusban a Khronos Group is bejelentette, hogy újraírják OpenGL-t.

A zöldek számára elsődlegesen az új OpenGL lenne megoldás, de ennek az API-nak az elkészítése még legalább három-négy évet vesz majd igénybe, így az NVIDIA az elmúlt egy évben azon dolgozott, hogy az úgynevezett OpenGL AZDO irányt kiegészítsék a parancspufferek többszálú generálásának képességével. Ennek eredménye az érkező GL_NV_command_list kiterjesztés, amely tulajdonképpen az OpenGL 4.5-öt egészíti ki, de nem a megszokott, egészen pontosan nem szabványos formában.

A GL_NV_command_list beépítése drasztikus beavatkozás az OpenGL működésébe. Az NVIDIA szerint ez lényeges elem, mivel az OpenGL egy rendkívül korlátozott API, ha a többszálú végrehajtásról van szó, és utóbbi csak úgy valósítható meg, ha figyelmen kívül hagyják a Khronos Group specifikációit. Ennek következtében az új kiterjesztéssel írt programok nem számítanak majd valódi OpenGL alkalmazásoknak, mivel a GL_NV_command_list alapvetően megváltoztatja az OpenGL működését, így a szabványosság odavész. Ez tulajdonképpen azt jelenti, hogy az egyes programokban a már meglévő OpenGL leképzők mellé kell írni még egy olyan OpenGL leképzőt, amely az említett kiterjesztésre épül. Kvázi olyan ez, mintha egy másik API-t kellene támogatniuk a fejlesztőknek, így az OpenGL lényege már csak az elnevezés szintjén marad meg.

A GL_NV_command_list használható lesz a játékfejlesztőknek, illetve a professzionális alkalmazásoknál. Az NVIDIA kimondva is utóbbi rétegnek fejlesztette a kiterjesztést, mivel a vállalat úgy gondolja, hogy a játékfejlesztőknek továbbra is a Microsoft API-ja az ideális, de persze az előnyöket és hátrányokat mérlegelve mindenki szabadon eldöntheti mivel jár jól.

A professzionális alkalmazások helyzete viszont teljesen más megoldásokat követel, ugyanis a játékoknál relatíve kiszámítható a működés, tehát fel lehet építeni úgy egy programot, hogy a rajzolási parancsok száma minden jelenetben ideális legyen a felhasznált API képességeihez mérten. Egy professzionális alkalmazás esetében azonban borzalmasan nehéz a felhasználó saját tartalmát megfelelően kötegelni, vagyis az egész rendszer működése kiszámíthatatlanná válik. A zöldek szerint a professzionális alkalmazások esetében jellemző, hogy százezres nagyságrendű rajzolási parancs is kiadásra kerül, ami a nagyjából háromezer rajzolási parancsra tervezett OpenGL számára óriási kihívás, így az adott számítógép hardvere általánosan kihasználatlan lesz.

A GL_NV_command_list tehát egy alapvető reakció a professzionális piac változó igényeire. Azt tudni kell, hogy számos szoftvercég dolgozik a Mantle API beépítésén a rajzolási parancsokra érzékeny professzionális szoftverek kapcsán, vagyis az NVIDIA tulajdonképpen csak egy olyan megoldást kínál, amely számukra is előnyt jelent. Az sem igazán gond, hogy ehhez írni kell az adott alkalmazáshoz még egy leképzőt, ugyanis bizonyos piacokon ez is megéri.

A GL_NV_command_list kiterjesztés egyelőre csak a kiemelt partnereknek érhető el, így a megfelelő grafikus meghajtót egyénileg kell elkérni az NVIDIA-tól.

Azóta történt

Előzmények

Hirdetés