Az extrák és a támogatás
Az előző oldal igen tömören vázolta fel a DirectX 12-t, illetve az API-nak az összes képessége sem ismert még, de például az előadáson előkerült, hogy a Microsoft nem módosít az aktuális, úgynevezett feature levelekre épülő koncepcióján. Olyannyira nem, hogy a D3D_FEATURE_LEVEL_11_0 és a D3D_FEATURE_LEVEL_11_1 változatlan formában része az új API-nak. Persze a strukturális működés nem ugyanaz, de funkcionális szempontból egyszerűbbnek látta a vállalat, ha ezekhez nem nyúl hozzá. A fentebb nem említett, gyengébb szintek szimplán kikerültek, de ez nem akkora gond.
A jó hír az, hogy a DirectX 12-t mindegyik, legalább DirectX 11-et támogató hardver képes támogatni. Ehhez nyilván szükségesek új driverek, de a hardverek megfelelők. A legtöbb rendszer persze a D3D_FEATURE_LEVEL_11_0 szintet kapja meg, míg az AMD GCN, illetve az Intel Gen7.5 architektúrája a D3D_FEATURE_LEVEL_11_1 szintre nevez be. A többi ismert extra egyelőre opcionális, de az már kiderült, hogy az Xbox One ezeket támogatja, így tekintve, hogy ebben AMD GCN architektúra dolgozik, kitalálható, hogy a támogatás az újabb Radeonokhoz megoldható lesz PC-n is (kivételt képeznek a Swizzle Copy motorokhoz tartozó funkciók).
Hirdetés
A jelölés szempontjából még nincs minden tisztázva, de a Microsoft nézőpontja szerint a DirectX 12-t az alapvető követelmények teljesítése esetén fel lehet tüntetni a termék dobozán. Ez persze nem biztos, hogy jó ötlet, mivel előfordulhat majd az is, hogy a rengeteg opcionálisan támogatható funkció közül egyes hardverek nem támogatják pont azt, ami valamely játék valamely effektjéhez kell, így ilyenkor az ominózus grafikai beállítás be sem kapcsolható, hiába díszeleg a dobozon a DirectX 12 felirat.
A Microsoft vélhetőleg a gyártók nyomása alá került, hiszen a fejlesztők egyrészt követelik az újításokat, miközben a felületet támogató cégek igen eltérő irányba fejlesztik a hardvereket, és nem mindenkinek jó az, hogy az API tudása extrém szintre emelkedjen. Egyszerűen képtelenség mindenkit tökéletesen kiszolgálni, így a redmondi óriáscég engedékeny volt. A fejlesztői igényeket kiszolgálják, a gyártóknak pedig engedik a DirectX 12 matrica felhelyezését akkor is, ha nem támogatja a hardver az API összes funkcióját. A tudatos vásárló úgyis utánanéz a hardverek képességeinek, az átlagos felhasználót pedig ez igazából nem is érdekli.
A fejlesztés szempontjából egyébként tervben van egy D3D_FEATURE_LEVEL_12_0 szint, ami információink szerint az Xbox One képességeihez lesz igazítva, de az említett konzol extrái amúgy is elérhetők a specifikus DirectX 11.x API-val. Bár ma még nehéz az egyes API-k összehasonlítása, azért a könnyebb átláthatóság érdekében egy táblázatot összeraktunk a DirectX 12, a DirectX 11.2 és a Mantle képességeiről:
Platform | DirectX 11.2 | DirectX 12 | Mantle |
---|---|---|---|
Shader kódba beköthető egyedi textúrák száma | 128 | 128 | nincs korlátozva |
Támogatott UAV-k száma | 64 | 64 | nincs korlátozva |
Egyidejűleg írható és olvasható UAV formátumok | single uint32 | single uint32 | bármelyik |
Hardveres virtuális textúrázás | opcionális | opcionális | van |
Hardveres Tile Pool támogatás | nincs | nincs | van |
Leképzőparancsok újrahasznosítása | Instancing 2.0 | csomagok | nincs |
VRAM elérése | közvetett | optimalizált | közvetlen |
Aszinkron compute | nincs | opcionális | van |
Valós idejű shader újrafordítás | van | nincs | nincs |
Driver szerver szálak jellemző mennyisége | sok | kevés | nincs |
Processzorhasználat bekötéskor | van | optimalizált | nincs |
Monolitikus futószalag | nincs | nincs | van |
Többszálú leképzés támogatása | limitált | van | van |
Fejlett folyamatirányítás | nincs | nincs | van |
Fontos megjegyezni, hogy a DirectX 12 esetében még messze a megjelenés, így például csak a D3D_FEATURE_LEVEL_11_1 szintet elemeztük, mivel az ennél jobb elérésről még nincs konkrét információ, illetve a nem ismert részeket egyszerűen kihagytuk az összehasonlításból. Itt többek között gondolunk a több GPU-s támogatásra, amiről a Microsoft csak annyit mondott, hogy a fejlesztők az API-n belül megkapják a kontrollt az elérhető hardverek kihasználására, de a hogyan egyelőre még ismeretlen. Vélhetőleg a Mantle API-hoz hasonló működésre van kilátás, teljesen explicit hardvereléréssel, ezt azonban biztosan nem tudhatjuk.
3DMark DirectX 11-gyel és DirectX 12-vel. Látható a jóval kedvezőbb processzorhasználat. [+]
A DirectX 12 egyébként működik. A 3DMark egy nem publikus verziója már futott a rendszeren, ráadásul ugyanaz a teszt nagyjából 50%-kal gyorsabb volt, mint DirectX 11-ben ugyanazon a hardveren. A Forza Motorsport 5 PC-s verziója is feltűnt, ami azt hivatott bizonyítani, hogy a DirectX 12-vel működhet a játék PC-n is. Ez sajnos egyelőre csak demonstráció, mivel a Microsoft nem tervezi a program kiadását erre a platformra.
A megjelenés szempontjából sok adat még nincs. Az biztos, hogy az API már elérhető egy előzetes konstrukcióban, így a Microsoft várja a fejlesztők jelentkezését. A tervek között szerepel egy 2014 végére tervezett előzetes kiadás, amit bárki elérhet, így a rendszer kipróbálható élesben, ám ekkor még nem garantálják a hibátlan működést, de ez természetes. A megjelenés 2015 végére van ütemezve vélhetőleg a Windows 9-cel párhuzamosan, illetve a Microsoft kijelentette, hogy a startra mindenképp szeretnének DirectX 12-t használó játékot prezentálni. A fejlesztőkön ez valószínűleg nem fog múlni, hiszen ezzel az API-val egyetlen leképzővel támadhatják az Xbox One konzolt, a Windows PC-ket, illetve a Windows telefonokat és tableteket, ami a kiadások szempontjából nagyon kedvező konstrukció.
Abu85