Máris megváltozott a DirectX 12 specifikációja

A Microsoft a GDC-n leplezte le a DirectX 12 bekötési modellje, amelyről az alábbi hírben be is számoltunk. A vállalat azonban már akkor mondta, hogy ez még csak előzetes specifikáció, így fenntartják a jogot, hogy megváltoztassák. Ezt olyannyira komolyan gondolták, hogy máris módosult a bekötési modell, mivel több gyártónak nem volt jó a korábbi tervezet.

A visszavont modellre vonatkozó táblázatot beszúrjuk ide, hogy könnyebb legyen értelmezni a változásokat:

A DirectX 12 régi bekötési modellje - VISSZAVONVA!
Szint TIER_1 TIER_2 TIER_3
Leíróhalmaz mérete 65 536 1 048 576 nincs limitálva
Leírótáblák száma 5 5 nincs limitálva
UAV-k száma az összes shader lépcsőn 8 64 teljes leíróhalmaz
CBV-k száma shader lépcsőnként 14 14 teljes leíróhalmaz
SRV-k száma shader lépcsőnként 128 teljes leíróhalmaz teljes leíróhalmaz
Mintavételezők száma shader lépcsőnként 16 teljes leíróhalmaz
teljes leíróhalmaz

Az új bekötési modell a gyártókkal való egyeztetés eredménye, amit az alábbi táblázat foglal össze:

A DirectX 12 új bekötési modellje
Szint TIER_1 TIER_2 TIER_3
Leíróhalmaz mérete 55 296 1 048 576 több mint 1 048 576
Leírótáblák száma 5 nincs limitálva nincs limitálva
UAV-k maximális száma az összes shader lépcsőn 64 teljes leíróhalmaz teljes leíróhalmaz
CBV-k maximális száma shader lépcsőnként 14 14 teljes leíróhalmaz
SRV-k maximális száma shader lépcsőnként 128 teljes leíróhalmaz teljes leíróhalmaz
Mintavételezők maximális száma shader lépcsőnként 16 teljes leíróhalmaz
teljes leíróhalmaz

A változások a két táblázat alapján jól láthatók. Persze megjegyzendő, hogy az új bekötési modell is csak előzetes, de annyit tudni lehet, hogy a Microsoft ezt a módosítást már hamarabb eldöntötte, mivel az új Windows 10-es kiadásba már az új modell került és a legfrissebb grafikus meghajtók is ezt a bekötési modellt támogatják. A redmondi óriáscég továbbra is fenntartja a jogot a módosításra, de egyelőre a gyártók az új rendszerrel elégedettek.

A módosítások szempontjából a leíróhalmaz mérete a TIER_1 szinten 55 290-re csökkent, mivel utólag kiderült, hogy az Intel Haswell lapkák IGP-je képtelenek a korábban meghatározott TIER_1 szintet támogatni. A probléma hardveresen bizonyosan javítható lett volna, de túl nagy költség lenne kicserélni az összes eladott Haswell processzort, így a Microsoft inkább csökkentette a limitet, amivel az aktuálisan elérhető és eladott lapkák is jók.

A leíróhalmaz mérete a TIER_3 szinten is módosult. Ezt eredetileg nem limitálta volna a Microsoft, de mostantól csak annyit kérnek, hogy nagyobb legyen, mint a TIER_2 szinten. Itt valószínűleg arról van szó, hogy az Intel és az NVIDIA is tervezi a legjobb szint a támogatását a jövőben, de az új generációs architektúráikat sem tervezik limitációktól mentesre, így meg kellett kötni ezt a kompromisszumot.

A leírótáblák száma is változott a TIER_2 szinten. Mostantól ez nincs limitálva, ami jó hír, mert igazából a modernebb GPU-architektúrákon a korábbi terveknek eleve nem volt értelme. Gyakorlatilag az Intel Gen7.5 az egyetlen DirectX 12-höz is használható architektúra, amely ténylegesen csak 5 leírótáblával képes megbirkózni.

Végül lényeges változás az UAV-k kezelése az összes shader lépcsőn. Egyrészt a bekötési modell mostantól nem szab meg minimum értéket, hanem egy maximumként kezeli ezt a paramétert. Másrészt definiálásra került a virtuális UAV. Ez annyit jelent, hogy ha az adott GPU-architektúra nem képes annyi UAV-t kezelni, amennyit az alkalmazás igényel, akkor valós helyett virtuális erőforrásokat is létre lehet hozni. Utóbbi nagyságrendekkel lassabb, de működik.

Megjegyzendő, hogy TIER_1 és TIER_2 szint ugyan elfogadja a virtuális UAV-t, de TIER_3 szinten kötelező a valós, a legjobb módban ugyanis radikális kompromisszumot nem szeretne kötni a Microsoft, mivel a virtuális UAV például nem cache-elhető, ami drámaian ronthatja a teljesítményt.

A hardverek szempontjából az új bekötési modell alapján némileg megváltozik a támogatás típusa. A GCN architektúrára épülő Radeonok továbbra is a legjobb TIER_3 szintet támogatják, ami nyilvánvaló, hiszen ez csak formailag változott. Az Intel Broadwell és Haswell lapkáiban található Gen8 és Gen7.5 architektúrára alapozó IGP-k esetében is megmarad a TIER_1 szint 64 valós UAV-vel, illetve ide sorolható még az NVIDIA Fermi architektúrája is, de shader lépcsőnként csak 8 valós UAV támogatásával.

A lényeges változás az NVIDIA Kepler és Maxwell architektúrájában következik be. A Kepler architektúrára épülő GeForce-ok átkerülnek a TIER_2 szintre shader lépcsőnként 8 valós UAV kezelésének lehetőségével, illetve az NVIDIA GM107-es lapkája is ilyen körülmények között fog működni. A GM200, GM204 és GM206 lapkák esetében marad a TIER_2 szint 64 valós UAV támogatásával.

A Microsoft egyébként több változást is kilátásba helyezett, ezek miatt elképzelhető, hogy az API megjelenése csúszhat, de valószínűleg az élvez prioritást, hogy a végleges specifikációval mindenki legyen elégedett.

Azóta történt

Előzmények

Hirdetés