Hirdetés

Nitrous frissítése végre megmutatja mire képes a DirectX 12

A DirectX 12-re éles teszt már az előző év nyara óta létezik, ugyanis a Stardock és az Oxide Games még augusztusban adta ki az Ashes of the Singularity című játék tesztprogrammal ellátott előzetesét. Ez azonban akkor még nagyon kezdetleges kódot használt, így számos funkció szimplán nem, vagy rosszul működött benne, illetve az egyes hardverek alternatív kódutat használtak bizonyos funkciók eléréshez, vagy éppen megkerüléséhez. Ez akkor persze elég volt, hogy felkeltse az érdeklődést, de a Nitrous videojáték-motoron dolgozó fejlesztők is mondták, hogy ez később sokkal jobb lesz, így jön például a több GPU-s támogatás, ráadásul nem is akármilyen, hiszen általa párosíthatóvá válnak a konkurens cégek grafikus vezérlői. Utóbbit még az előző év októberében bemutatták, de akkor még ez is kezdetleges formában működött.

Máig kellett várni, hogy az elmúlt fél év fejlesztéseit aktiválják, így a Nitrous videojáték-motoron gyakorlatilag közel végleges formájában is megtekinthető, és végeredményben egy megújult leképezőt kapott, amitől a grafika is javult. Az kiderült, hogy ez egyáltalán nem volt egyszerű folyamat, mivel viszonylag sok kódot kellett átírni a több GPU-ért szolgáló multiadapter funkció beépítése miatt. Az volt a legfőbb probléma, hogy az AMD és az NVIDIA grafikus vezérlői eltérő kódutat használtak, így az eredeti leképezővel nem működtek volna együtt, mivel más optimalizációt kellett alkalmazni az eltérő architektúrákra. Egészen pontosan arról volt szó, hogy az Oxide eredeti aszinkron compute implementációja az NVIDIA hardverein rendkívül lassan futott, így végül a Kepler és Maxwell architektúrára épülő GeForce-ok kaptak egy alternatív kódutat, hogy ne lassuljanak be az alapértelmezett kódúttól, amelyeket a Radeonok képesek voltak haszálni.

Az új frissítésben az eredeti aszinkron compute implementációt jelentősen átdolgozták, így a fejlesztők megkeresték azt a konstrukciót, amivel nem kell külön kódút az eltérő gyártók számára, és eközben az aszinkron compute aktiválásától egyik gyártó hardverén sem fog összeomlani a teljesítmény. Ez az új alap utat nyitott a multiadapter implementálásához is, amelyen belül ténylegesen párosíthatóvá váltak eltérő teljesítményű, illetve konkurens gyártótól származó grafikus vezérlők.

Az új aszinkron compute implementáció szempontjából megtudtuk, hogy a rendszer az eredeti, hosszú ideig futó shaderek párhuzamosítása helyett rövid ideig futó shadereket párhuzamosít nagy batch-ekre. Ennek a módszernek az előnye, hogy az NVIDIA hardvereivel relatíve kompatibilis, így az aktiválásával nem omlik össze a teljesítmény, sőt, az eredmény nagyjából hibahatáron belül marad az inaktív állapothoz képest. Mindemellett az AMD hardverei is elvannak vele, így valamennyire kihasználható a Radeonok felépítése.

A fejlesztők számokat nem említettek, de a fentieket az AMD hivatalosan kiadott mérései igazolják, mivel egy NVIDIA GeForce GTX 980 Ti az aszinkron compute bekapcsolásától alig 3%-ot lassul, vagyis hibahatáron belüli a változás, míg az AMD Radeon R9 Fury X a compute feladatok párhuzamosításától 13%-ot gyorsul. Úgy tudjuk, hogy az NVIDIA a jövőben hozhat olyan meghajtókat, amelyek javítják a feladatok párhuzamos végrehajtását, illetve az AMD is dolgozik még bizonyos optimalizálásokon, illetve a DirectFlip funkció beépítésén, ami javíthat egy picit a sebességen.

Az aszinkron compute alapértelmezetten aktív lesz, de opcionálisan ki is kapcsolható, mivel a Nitrous kapott egy alternatív, úgynevezett single engine kódutat. Végeredményben a multiadapter így jobban működhet, márpedig az új motorverziónak ez az igazi újítása.

A Nitrous motor az Ashes of the Singularity című játékban egyfajta speciális SFR módot használ AFR-rel kiegészítve. Ezen belül a képkockát mozaikokra osztja a rendszer és számításokat kiadja az egyes grafikus vezérlőknek, majd ezek váltakoznak az egyes képkockák során. A mozaikokon belül ráadásul a geometriát is külön számolják a hardverek, továbbá a GPU-khoz tartozó fedélzeti tárak sem duplikálják egymás tartalmát, tehát ezek külön lesznek vezérelve. Bár a Nitrous támogat más módokat is, a szóban forgó játékhoz ezt a megoldást tartották ideálisnak a fejlesztők.

Az Oxide javaslata szerint házon belül érdemes olyan párosításokban gondolkodni, ahol a grafikus vezérlők között nincs 10-15%-nál nagyobb különbség. A rendszer persze gyakorlatilag bármit lekezel, viszont a gyorsulás nagyon eltérő teljesítményű VGA-k párosításával kevés lehet.

Gyártók mixelése mellett is érdemes betartani a teljesítményeltérésre vonatkozó ajánlásokat, de van egy másik tényező is, amit figyelembe kell venni. Nem mindegy ugyanis, hogy melyik VGA melyik PCI Express csatolóba kerül, illetve melyikre csatlakozik a kijelző. Jelen esetben mindig azt a VGA-t kell használni elsődlegesként, amelyiknek a parancsmotorja jobb képességű, azaz nagyobb terhelést visel el. Ez azért fontos, mert a Nitrous motor multiadapter módban extra terhelést ró a kijelzőt vezérlő, lehetőleg az első PCI Express csatolóba helyezett VGA-ra, és ha ennek a parancsmotorja nem elég erős, akkor az negatívan hat majd az elérhető gyorsulásra. A mixelés melletti párosításról sajnos nehéz teljesen általánosan írni, hiszen a mixelés lehetősége miatt igen eltérő konfigurációk születhetnek.

Hamarosan házon belül is megnézzük, hogy mit tud ez a DirectX 12 ennél a tényleg kiadáshoz közelítő játék esetében, ahol a leképező már elég jól optimalizált állapotban van, és persze meglesünk az egzotikusnak tűnő, gyártók mixelését is, ha már van ilyen lehetőség.

Azóta történt

Előzmények

Hirdetés