Hirdetés

DirectX 12-ben is újít egy picit az NVIDIA Volta architektúra

A konzervatív raszterizáció elérte a jelenlegi legmagasabb szintet, ami fontos változás.

Az NVIDIA egy hete mutatta be a Titan V VGA-t, amit bevallottan nem játékra szánnak, így erre vonatkozóan nem is igazán közöltek teszteket. Ettől függetlenül lehet játszani is a terméken, bár az eddigi tesztek alapján leginkább az átlagteljesítményben brillírozik a hardver, a minimum értékek tekintetében lehetnek problémák, így ebből a szempontból számos olcsóbb VGA bizonyulhat jobb választásnak az új jövevénynél. Nyilván ennek több oka lehet, részben maga a meghajtó is, illetve az explicit API-t használó programoknál a memóriamenedzsment, elvégre amikor az érintett játékok megjelentek, akkor a Voltának még híre sem volt.

A fentiek miatt a teljesítményt nehéz jelenleg elemezni, elvégre a minimum értékekre vonatkozó problémákat javítani kell, részben a meghajtó oldalán, részben pedig az érintett programokhoz kiadott potenciális frissítésekkel. Addig amíg mindez nem történik meg, az NVIDIA is kerülni fogja a játékokra vonatkozó adatok közlését a Volta architektúrára vonatkozóan, főleg úgy, hogy a Titan V tényleg nem a játékosokat célozza.

A Titan V azonban jó arra, hogy a Volta architektúra tudását felmérhessük, így elemezve, hogy mennyit változott a Pascal architektúrához képest például a DirectX 12 API-ban. Ebből szempontból nem biztos, hogy mindenki örül majd, ugyanis egyedül a konzervatív raszterizációhoz nyúlt hozzá az NVIDIA, így a Volta már támogatja ennek a legmagasabb TIER_3-as szintjét. Persze ez egy nagyon fontos fejlesztés, de reálisan szemlélve a dolgokat, a három támogatható konzervatív raszterizációs szint közül csak ez ér valamit, mivel csak itt érhető el a belső bemeneti lefedettség a HLSL nyelvben. A két kisebb szint bár a maguk módján működik, de a használhatóságuk rendkívül korlátozott. Ez a legfőbb oka annak, amiért az Intel és az AMD ki is hagyta az első két szintet, és rögtön a harmadikra ugrottak a legelső, konzervatív raszterizációt támogató architektúrájukkal. Az NVIDIA oldalán a Maxwell és a Pascal nem tudja támogatni a harmadik szintet, vagyis ezek a konzervatív raszterizáció szempontjából félkarú óriások, de a Volta az új képességével már nem az.

A bekötés szempontjából a Volta ugyanúgy működik, ahogy a Maxwell vagy a Pascal. A hardver nem tekinthető pure bindless dizájnnak, viszont az NVIDIA a nyár közepe óta emulálja ezt a módot a meghajtóban egy speciális CPU oldali API-val. Ezzel gyakorlatilag emulált formában elérhető a bekötési modell TIER_3-as szintje, ezen belül is megvan a minimum igényelt, egymilliónál több erőforrás kezelése. Az erőforráshalmaz viszont a hardveres változások hiánya miatt maradt TIER_1-es szintű, vagyis a hardver csak olyan halmazokat hozhat létre, ahol a flagek csak egy kategóriába sorolt típust engednek használni. Ez limitáció alapvetően egyszerűen kezelhető a programok oldalán, de mégis az a kedvező, ha az adott rendszer már olyan halmazok is létrehozhat, ahol használható az összes típus, ugyanis enélkül a feldolgozás hatásfoka bizonyos esetekben romlik. Főleg ez az oka, ami miatt az Intel és az AMD már alapból az erőforráshalmaz TIER_2-es szintjét támogatta. Persze ezt egyszerű leírni, azért a TIER_2-es szintnek komoly hardveres követelményei is vannak, aminek már jóval nehezebb megfelelni.

Az NVIDIA a stencil referenciaérték a pixel shaderből történő kezelését továbbra sem támogatja. Enélkül lehet élni, de mégis hasznos funkció, ugyanis itt arról van szó, hogy az API által specifikált referenciaértéket cserélhetik le a fejlesztők pixel shaderből, ami természetesen sokkal nagyobb szabadságot ad számukra a stencil operációk felett, gyakorlatilag elérhetővé válik ezek pixelek vagy minták szintjén történő kontrollálhatósága. A Titan V nem támogatja még a standard swizzle textúraelrendezést sem, ami leegyszerűsítené a fejlesztők számára az adatok megosztását a CPU és a GPU, illetve több adapter között. Mivel azonban az új VGA-t a zöldek úgy sem ilyen körülményre tervezték, így sokat ennek hiányával nem lehet bukni. Ugyanakkor nagy kérdés, hogy a standard swizzle szimplán csak szoftveres oldalon nincs engedélyezve, vagy maga a Volta architektúra nem kezeli még, elvégre a Kepler, a Maxwell és a Pascal sem tudta. Hasonlóan hiányzik a baricentrikus koordináták direkt kiolvasása, de itt megjegyeznénk, hogy elméletben a mai hardverek mindegyike alkalmas rá, csupán egy szoftver oldali implementációra van szükség. Ezt az NVIDIA még nem írta meg, lehet, hogy sosem fogják, de a lehetőség mindenképpen adott. Főleg a Volta multiprocesszorainak nagy L1 gyorsítótárával, amiből simán le lehet csippenteni 20-30 kB-nyit erre a célra.

A Titan V egyik furcsasága, hogy a DirectX 12 API-val nem támogatja a felezett pontosságot. Ez meglepőnek tűnhet, elvégre a hardver biztosan alkalmas rá, és nincs is szoftveresen lefojtva, ahogy például a Pascal architektúra. Ugyanakkor itt arról lehet szó, hogy az NVIDIA még nem látta értelmét engedélyezni ezt a képességet. Hiába érhető el ugyanis például a Time Spy Extreme program, aminek az első grafikai tesztje erősen épít a kevert precizitásra, ez csak és kizárólag a megfelelő AMD GCN architektúrákkal üzemképes. Ennek az oka, hogy a programok megfelelő működéséhez ma sajnos szükség van egy speciális headerre, ugyanis a HLSL nyelvben a 16 bites half adattípus valójában 32 bites alignálást használ. Emellett a DirectX mára elavult, de még mindig alkalmazott FXC fordítója sincs a helyzet magaslatán az újabb hardverek packed math képességeire vonatkozóan, így különböző manuális trükköket kell bevetni a programkódban, hogy maga az újítás egyáltalán működjön. Ezek igazából nem jelentenek nagy nehézséget a programozók számára, de mindenképpen gyártóspecifikus kódot eredményeznek. Ergo hiába is támogatná a Titan V meghajtója a felezett pontosságot, az úgy sem működne például a Time Spy Extreme-ben, előbb szükségük van egy saját headerre, amit be is kell építtetni az adott alkalmazásba. Ez a probléma egyébként a shader modell 6.2-től kezdve megszűnik, ugyanis a Microsoft direkten kezelni fogja a kialakult szituációt. Bőven elképzelhető, hogy az NVIDIA inkább megvárja ezt, és nem foglalkoznak a kerülőutakkal. Ennek azért is van realitása, mert az új shader modell akár tavasszal is itt lehet, addig pedig lényegében csak a Far Cry 5 lesz az egyetlen olyan DirectX API-t használó játék, ami bevallottan épít a packed math funkcióra.

Végeredményben tehát az NVIDIA Volta architektúra fejlődésnek tekinthető a DirectX 12 API alatt. Az egyetlen lényeges hiányossága az erőforráshalmaz korlátozott szintű támogatása, míg a többi vagy nem olyan fontos, vagy szimplán később beépíthető a meghajtó fejlesztésével.

Azóta történt

Előzmények

Hirdetés