Nem a legjobb irányba tart a DirectX 12 leghasznosabb funkciója

A Microsoft aktívan reszeli a DirectX 12 specifikációját, amely jelen formájában még csak előzetes, tehát bátran lehet rajta módosítani. Ezt a cég ki is használta, és nemrég láthattuk, hogy a DirectX 12 bekötési modellje milyen változásokon ment keresztül. Utóbbi összességében egy jó módosítás volt, hiszen bizonyos grafikus vezérlők nagyobb bekötési szintre kerültek, amivel több lehetőségük lesz a fejlesztőknek.

Hirdetés

Ezúttal az aszinkron compute esetében történt némi változás, amely a legértékesebb funkciójának fogható fel. Az alapokról az alábbi hírben írtunk, és tulajdonképpen ez nem is változott meg. A különbség kimerül abban, hogy mostantól az aszinkron compute támogatásához nem elég, ha a grafikus vezérlő támogat több parancslistát, az is követelmény lett, hogy a compute feladatok futtatása ne igényeljen direkt hardverállapotot, vagy ha ez nem megoldható, akkor ugyanabban a hardverállapotban fussanak, mint a pixel shadert, illetve a ROP egységeket terhelő feladatok.

Ez már egy kellemetlen változás a piacra nézve, ugyanis számos architektúra képes több parancslista támogatására, ideértve az NVIDIA oldaláról a második generációs Keplert, illetve az első generációs Maxwellt, valamint az Intel Gen8 architektúrát. Ezek azonban egy külön hardverállapotban futtatják a compute feladatokat, vagyis a több parancslista megléte ellenére sem tudják majd támogatni a DirectX 12-ben az aszinkron compute-ot.

A változással az aszinkron compute-ot kezelő grafikus vezérlők köre leszűkült. Az NVIDIA esetében csak a második generációs Maxwellek jók, ideértve a GM200-as, GM204-es és GM206-os lapkákat, amelyek a compute feladatokat pont ugyanabban a hardverállapotban futtatják, amelyben a pixel shadert, illetve a ROP egységeket terhelő feladatokat.

Az AMD GCN architektúrára épülő Radeonok esetében nem kell számolni semmilyen hátránnyal, mivel ezek eleve igen speciális, úgynevezett stateless compute megoldások. Ez azt jelenti, hogy a compute feladatokhoz nem szükséges meghatározott hardverállapot, vagyis akármilyen más feladattal párhuzamosan is futtathatók, legyen az vertex shader, geometry shader, illetve tesszelláció. Ugyanez vonatkozik az Xbox One konzolra is.

A Microsoft valószínűleg azért döntött az apróbb szigorítás mellett, hogy a gyártókat az AMD GCN architektúrájához hasonló hardverek kifejlesztésére sarkallja, annak érdekében, hogy a fejlesztők egyre több grafikai és compute futószalagot futtathassanak párhuzamosan. Nem elhanyagolható módon a PC-s grafikus vezérlőknek is fontos lenne az Xbox One vagy a PlayStation 4 konzolhoz igazodni, mert a kutatások ezekre a gépekre zajlanak, és jó lenne, ha ezek eredményei jelentős módosítás nélkül átmenthetők lennének PC-re.

Úgy tudjuk, hogy a szabványalkotók hosszabb távon minden gyártónak stateless compute architektúrát javasolnak. Ilyennel persze nagyon nem egyszerű előállni egyik napról a másikra, de az Xbox One konzolban a stateless compute-ra tervezett GCN architektúra nagyon jól muzsikál az aszinkron compute tesztekben, tehát a felkínált előnyök abszolút megérik a befektetést.

Előzmények

Hirdetés