PC és konzol, avagy az új generációs játszma

A képességek bűvkörében

Valószínűleg nem írunk újat azzal, amikor kijelentjük, hogy a konzol hardvere az életciklusa alatt sosem módosul, így pedig az elérhető képességeket is ehhez a fix hardverhez igazíthatja az adott masina gyártója. Ez az Xbox One és a PlayStation 4 esetében sincs másképp, így nem csak a hardver elérése hatékonyabb, hanem a fejlesztők által kihasználható tudás is igencsak más ligát képvisel a PC-s szinthez képest.

Hirdetés

Rengetegszer olvasni, hogy mindkét új konzol csak egy PC, hiszen az egyedileg tervezett AMD APU-kban Jaguar magokból álló processzorrész és GCN architektúrára épülő IGP dolgozik, amelyekre a vállalat PC-s termékekben is épít. Logikus tehát azt gondolni, hogy a konzolok semmivel sem tudnak többet, mint egy GCN architektúrára alapozó Radeonnal felvértezett PC. Ez azonban igen nagy tévedés. Nagy különbség van ugyanis aközött, hogy elméletben mit tud a hardver, és hogy abból mit használ ki a legmodernebb PC-s grafikus API, jelen esetben a nemrég megvizsgált DirectX 11.1. Mielőtt ennek okait felvázolnánk, az alábbi táblázatban részletezzük, nagyjából milyen fontosabb eltérésekről van szó:

Platform Xbox One PlayStation 4 PC (DirectX 11.1)
Shader kódba beköthető egyedi textúrák száma nincs korlátozva 128
Támogatott UAV-k száma nincs korlátozva 64
Egyidejűleg írható és olvasható UAV formátumok bármelyik single uint32
Hardveres virtuális textúrázás van nincs

A grafikus API-val dolgozó PC esetében a korlátozások nagyon extrémek, főleg ahhoz képest, amit az új generációs konzolok nyújtanak. Persze senki se számítson arra, hogy minden fejlesztő végtelen mennyiségű UAV-t használna, vagy esetleg korlátlanul kötné be a kifogyhatatlan egyedi textúrákat a shader kódokba, hiszen könnyen kitalálható, hogy ilyen elv mellett soha sem futna le az adott kód. Az viszont biztos, hogy a DirectX 11.1 megszorításait már túl lehet lépni, és erre igény is lenne.

Nyilván nem kérdés, hogy az igényeket mindenki látja, még a Microsoft is, így nem azért tervezték ilyenre a DirectX 11.1-et, mert az Xbox One-nak szeretnének durva előnyt adni, hanem elsősorban azért léteznek ezek a korlátok, mert a PC-n nem egy, hanem igen sok GPU-t kell támogatni. A legmodernebb rendszerek esetében nem teheti meg az API, hogy csak a legjobb hardvert veszi figyelembe, így a cégek együttesen hozzák meg azokat a döntéseket, hogy az új DirectX verziókban mi lesz a követelmény.

Architektúra AMD GCN NVIDIA Kepler Intel Gen7.5
Shader kódba beköthető egyedi textúrák száma nincs korlátozva 1 048 576 128
Támogatott UAV-k száma nincs korlátozva 8 64
Egyidejűleg írható és olvasható UAV formátumok bármelyik single uint32 single uint32
Hardveres virtuális textúrázás van nincs nincs

A fenti táblázatban összegeztük az AMD, az NVIDIA és az Intel aktuális legjobb architektúráinak elvi képességeit, amivel látható, hogy miért tud a DirectX 11.1 annyit, amennyit. Gyakorlatilag az NVIDIA még ezt sem képes teljesen támogatni, hiszen a Kepler nem kezel megfelelő mennyiségű UAV-t, eközben a shader kódokba beköthető egyedi textúrák számát az Intel Gen7.5 korlátozza le 128-ra.

Természetesen a DirectX és lényegében bármelyik más grafikus API képességei javíthatók, így a korlátokat, ha nem is lehet eltörölni, mindenképp ki lehet terjeszteni. A fejlesztők már ezer beköthető egyedi textúrával is elégedettek lennének, továbbá úgy 100 UAV bőven megfelelne a teljes futószalagra nézve, illetve ha már az igényeknél tartunk, akkor nem ártana a hardveres virtuális textúrázás egységes támogatásának megoldása sem.

Kétségtelen, hogy a legnagyobb problémát az UAV-k számára vonatkozó korlátozás jelenti, ugyanis a fejlesztők a lehető legtöbb effektet szeretnék compute shaderrel megoldani. Ez nagymértékben gyorsítaná a számításokat, miközben a minőségre nem lenne hatással. Utóbbi akár javítható is, hiszen a nagyobb sebesség több számításra ad lehetőséget.

A 64 darab UAV ebből a szempontból annyira nem rossz kezdés a DirectX 11.1-től, de ha 15-20 effektet átír a fejlesztő compute shaderre, akkor ebből is ki lehet futni. Példaként gondolhatunk itt arra, hogy a mélységélesség (depth of field) a mai játékok egyik slágereffektje, és jó minőségben ezt igen sok számítás mellett lehet abszolválni, ráadásul több menetben, ami jelentős extra terhelés. Megoldás persze van, hiszen létezik egy menetben dolgozó, compute shaderes algoritmus, de ez meg egymaga hat UAV-t igényel. Itt igen rémisztő látni, hogy az aktuálisan legjobb mélységélesség-implementáció használatával a DirectX 11-ben gyakorlatilag két UAV marad a többi effektre.

Az Xbox One és a PlayStation 4 a korlátok elkerülésével rengeteget profitálhat, hiszen a fejlesztő nem azt fogja számolgatni, hogy a programja hogyan férhet bele az API korlátozásaiba, hanem konkrétan csak arra kell figyelnie, hogy az adott algoritmus a lehető leggyorsabban fusson le. Persze a PC esetében már jönnek a gondok, így az adott effekteket le kell cserélni, vagy rosszabb esetben el kell távolítani a PC-s portból. Utóbbit senki sem szeretné, így könnyen lehet, hogy a legfőbb megszorítások megszüntetésére igen gyorsan jön majd egy újabb DirectX frissítés.

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

Azóta történt

Előzmények

Hirdetés