Mi kell a DirectX 12 támogatásához?

A DirectX 12 alapfeltételei

A Microsoft az elmúlt héten mutatta be a DirectX 12-t, melynek eddig ismert képességeiről cikkben számoltunk be, de a hardverek támogatására vonatkozóan nem volt túl sok adat akkor még. A korábbi információ továbbra is áll abból a szempontból, hogy amelyik grafikus vezérlő támogatta a DirectX 11-et, képes támogatni a DirectX 12-t is. A friss adatok azonban ezt egy kicsit felforgatják, mivel megtudtuk, hogy az új API csak akkor működik hatékonyan, ha MMU (memória menedzsment egység) is található az adott grafikus vezérlőben. Maga a rendszer azonban kínál egy alternatív megközelítést, így az API-ban van egy úgynevezett soft MMU elérés, ami tulajdonképpen emulál egy MMU-t a régebbi grafikus vezérlők számára.

Információink szerint a Microsoft a gyártókra bízta a végső döntést, hogy mely hardvereket támogatják a DirectX 12-höz készült meghajtókkal. Elvi szinten úgy van kialakítva az API, hogy az MMU-val rendelkező hardverek és az emulált MMU-s működés funkcionálisan ne különbözzön, tehát a program oldali kompatibilitás garantált, de az MMU emulálása sebességvesztéssel fog járni, esetenként nem is kevéssel. Jelen helyzetben tehát a DirectX 12-t hivatalos bejelentéssel támogató hardverek tekintetében az Intel Gen7.5, illetve az NVIDIA Fermi architektúrája korlátozott sebesség mellett fog működni, míg az MMU-val rendelkező NVIDIA Kepler és Maxwell, valamint AMD GCN architektúra, illetve a Qualcomm Adreno 400-as GPU IP családja a hardveres támogatásnak is megfelel, ami nagyobb tempót jelent majd.

A támogatással kapcsolatban az AMD a TeraScale 2 architektúrára vonatkozóan valószínűleg úgy gondolja, hogy az MMU emulálása túl nagy sebességvesztéssel jár, ez pedig nem érné meg a beleölt pénzt. Az Intel a Gen7 és Gen7+ IGP-kre szintén megoldhatná az új API kezelését, hiszen a soft MMU elérést támogató eszközillesztő a Gen7.5-re elkészül, de a következő év végére valószínűleg már az úgynevezett legacy szinten is befejezik az Ivy Bridge és a Bay Trail processzorgeneráció terméktámogatását.

A DirectX 12-vel kapcsolatban egyetlen lényeges információ hiányzik még. Azt tudni lehet, hogy a D3D_FEATURE_LEVEL_11_0 és D3D_FEATURE_LEVEL_11_1 szint megmarad, de a készülő új szintről nincs adat, illetve az érkező extra funkciókról sem lehet sokat tudni. Annyit az elmúlt héten kiderítettünk, hogy a D3D_FEATURE_LEVEL_11_0 szint pár funkcióval kiegészül, amit persze minden hardver képes majd támogatni, így tulajdonképpen ez a változás nem okoz majd problémát.

A D3D_FEATURE_LEVEL_11_1 szint extrái változatlanok maradnak, de érkezik egy új opcionális funkció, ami előzetesen a BAS (buffer access serialization) kódnevet viseli. Jelen információink szerint ezt az Intel Gen7.5-ös architektúrája esélyes, hogy támogatja, hiszen elvi szinten a PixelSync szabványosításáról van szó. A pufferek megfelelő sorrendben és időben történő elérése azonban mutex-alapú zárolási sémával is lehetséges, ami lényegében azt biztosítja, hogy több versengő folyamat közül csak az egyik férhessen hozzá az adott erőforráshoz. Ez már a DirectX 11 esetében is használható, de nem stabil és nem is biztonságos funkció, a DirectX 12-ben viszont erre vonatkozóan tovább lehet fejleszteni a rendszert. Nem mellesleg ezzel a módszerrel az Xbox One is támogathatja az újítást.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés