Teljesítményoptimalizáció érkezik Geforce FX/6/7 kártyákhoz

Nvidia logo

Bár már 2022-van, és az NVidia-nak is csak egy régi rossz emlék a Geforce FX széria, a Mesa 22.1 fejlesztői ágába mégis érkezett egy nagyobb javításcsomag, mely a Geforce FX/6/7 sorozatú, NV30 és NV40 kódnéven futó GPU-k teljesítményét javítja.

Ez a javítás a Gallium3D illesztőprogramhoz érkezett és immár alapértelmezetten használja a NIR -> TGSI útvonalat.

Pontosan mit is jelent ez nekünk?

Ehhez meg kell értenünk, hogy mi is az a TGSI. A TGSI aka Tungsten Graphics Shader Infrastructure egyféle köztes nyelv, amit a Tungsten Graphics (most VMware) nevű cég fejlesztett ki és tette szabad szoftverré 2008-ban. Amikor az alkalmazásfejlesztő megírja a kódját OpenGL-ben, akkor az abban definiált utasításokat nem kapja meg egyből a videokártya. Helyette egy köztes nyelvre fordul, ami a régebbi videokártya illesztőprogramok esetében a TGSI. Ebben a köztes állapotban lehetőség van különböző optimalizációkat végrehajtani, hogy a grafikus kód optimálisan fusson a hardveren. Az optimalizációk után ez a kód újrafordításra kerül, de már olyan kódra, amit a videokártya megért.

Mi az a NIR? Ahogy a TGSI is, úgy a NIR aka New Internal Representation (~új belső ábrázolás) is egy köztes nyelv. Célja, hogy túllépjen a TGSI limitációin és egy jobb, modernebb köztes nyelvet adjon. A legtöbb modern VGA illesztőprogram erre épít már. Ennek megfelelően ez a köztes nyelv nem csak folyamatos karbantartást kap, de a működését folyamatosan optimalizálják, így gyorsabb kódot állít elő.

Tehát a régi illesztőprogramok a régi TGSI-vel tudnak dolgozni, de teljesítmény szempontjából a NIR a megfelelő. Így adja magát a helyzet, hogy az OpenGL alkalmazásunk grafikus utasításait először kódoljuk NIR-be, ahol megtörténik az összes optimalizáció, majd fordítsuk át TGSI-be, amit megért a régi illesztőprogram is.

Ezzel a változással olyan 12-13%-kal csökken a szükséges grafikus utasítások száma, és ezen alkalmazások kb. 25%-kal kevesebb ún. GPR-t (General Purpose Register -> Általános célú regiszter) használnak a NIR -> TGSI útvonalon mintha csak TGSI-t használnának. Azaz ugyanazért a grafikus megjelenítésért ennyivel kevesebbet kell dolgozniuk. Ez persze nem feltétlen jelenti egyből azt, hogy 25%-kal gyorsabbak is lesznek az alkalmazások, de nagyon szép előrelépés. Ez bizonyos esetekben a felhasználói élmény drasztikus javulását is eredményezheti.