A napokban érdekes fejlemény látott napvilágot, hála az Oxide Games illetékeseinek, akikre az Nvidia a jelek szerint nyomást gyakorolt annak érdekében, hogy távolítsák el az Ashes of the Singularity című DirectX 12-es tesztprogram egyes szolgáltatásait, mert azok negatívan befolyásolják a Maxwell alapú GPU-k teljesítményét.
Hogy pontosan miről is van szó? Az Oxide Games fejlesztői rájöttek, hogy az Nvidia Maxwell architektúrája köré épülő grafikus processzorai nem támogatják megfelelően a Direct3D 12 három nagy újítása közül az egyiket, nevezetesen az Async Compute funkciót. A dolog azért érdekes, mert a GeForce driver alapján az említett funkció támogatása látszólag rendelkezésre áll a Maxwell alapú grafikus processzoroknál, ám ez a valóságban mégsem használható. Maga az Async Compute egyébként azért fontos, mert segít a GPU számítási teljesítményének hatékonyabb kiaknázásában, méghozzá úgy, hogy egyszerre több részfeladatot is csináltat a GPU-val, hogy ne legyenek kihasználatlan részei (konzolos fejlesztők 30%-os gyorsulást is emlegettek már).
Az Ashes of the Singularity tesztprogramot az Oxide Games fejlesztői eredetileg Async Compute támogatással készítették el, hisz abban a hitben voltak, hogy az AMD GCN alapú GPU-ihoz hasonlóan az Nvidia Maxwell alapú GPU-i is támogatják az újítást. A fejlesztés és tesztelés során az Async Compute Maxwell GPU alatt történő használatát valóságos katasztrófaként jellemezték a fejlesztők mind teljesítmény, mind pedig megfelelőség tekintetében, így kapcsolatba léptek az Nvidia szakembereivel annak érdekében, hogy a hibára megnyugtató javítás születhessen. A levelezés során a fejlesztőknek az az érzésük támadt, hogy a Maxwell alapú Nvidia grafikus processzorok hardver szintjén nem rendelkeznek Async Compute támogatással, így a GeForce driver valótlanul mutatja a különböző alkalmazások felé, hogy a grafikus vezérlő képes rá.
Az Oxide Games fejlesztői szerint, miután kiderült a dolog, az Nvidia marketingesei nyomást gyakoroltak rájuk annak érdekében, hogy távolítsák el a tesztprogramból azokat a kódrészleteket, amelyek az Async Compute-ra támaszkodnak. Ennek a nyomásnak végül engedtek is a szakemberek, meg nem is. A tesztprogram indulás előtt a Vendor ID alapján dönti el, milyen termékkel van dolga, így az Nvidia Maxwell alapú videokártyák esetében alternatív, Async Compute nélküli renderelési metódust alkalmaz, míg a GCN-es Radeonokon az Async Compute-os kód fut, más különbség nincs.
Az Nvidia ezen felül csak egy hátránnyal rendelkezik DX12-ben. Míg az Nvidia Maxwell alapú megoldásai Tier 2-es, addig az AMD GCN alapú megoldásai Tier 3-as bekötési szintet használnak – előbbi kevésbé előnyös a magasabb CPU overhead miatt, de a fejlesztők szerint teljesítmény tekintetében ez a különbség nem igazán okoz látványos eltéréseket. Noha videokártyák szintjén nem érhető tetten komolyabb teljesítménykülönbség Tier 2 és Tier 3 szint között, az alacsonyabb CPU overhead jelentheti azt, hogy az adott videokártya érezhetően gyengébb processzorral is kihajtható Tier 3 esetén, mint Tier 2 alatt. Ezt érdemes lesz majd kitesztelni, ha megjelennek az első DX12-es játékok, de nem valószínű, hogy valaki ettől még 100 ezres VGA-kat pakolgatna Celeronok mellé.
Visszatérve az eredeti problémára, a fentiek alapján kérdés, hogy miért jelzi a GeForce driver elérhetőnek az Async Compute támogatást, ha egyszer az mégsem használható – erre egyelőre nem adott választ az Nvidia, sőt, erre az egész ügyre nem is reagáltak.
A kérdésre szerintünk háromféle válasz adható, de egyik sem több puszta feltételezésnél – csak hangosan gondolkodunk.
1. A GeForce driver jelenleg csak mutatja, hogy támogatja az Async Compute funkciót, de még nem lett implementálva rendesen a kódba.
2. A Maxwell alapú grafikus processzorok ugyan nem rendelkeznek hardveres támogatással az Async Compute mód használatához, de az Nvidia szoftveresen mégis biztosítani fogja ezt a támogatást a GeForce driveren keresztül, egyfajta "emulációval". Ez kompabitilitás szempontjából jó lehet, de teljesítmény szempontjából hátrányt jelenthet.
3. A Maxwell alapú GPU-k nem rendelkeznek hardveres támogatással az Async Compute kezeléséhez, és driver szintjén sem érkezik majd megfelelő támogatás – akár még szoftveresen, emuláció szintjén sem –, vagyis csak a blöff marad. Ez utóbbi természetesen még találgatásnak is meredek, így nem gondoljuk, hogy ez a valóság.
Az ügyben természetesen megkerestük az Nvidia illetékeseit is, ahogy érkezik válasz, annak megfelelően frissítjük a hírt.