Hirdetés

Leteszteltük a DirectX 12-t és újításait!

A DirectX 12 és az Ashes of the Singularity

Az Ashes of the Singularity egy valós idejű stratégiai (RTS) játék, mely jelen pillanatban még csak béta formájában érhető el, és március 31-én jelenik meg. Egyike az első olyan címeknek, amelyik független fejlesztőstúdió munkája, és az explicit API-k közül képes a Microsoft DirectX 12-t kihasználni. Ezért ezt a játékot fogtuk be, hogy megvizsgáljuk a gyakorlatban is az új DirectX által ígért előrelépést. Beérik végre a Windows 10 ilyen irányú tudása is, hiszen jelenleg az egyetlen operációs rendszer, ahol a DirectX 12-t használhatjuk. A technikai fejlődés oda vezetett, hogy időszerű volt a DirectX 11 leváltása, ami sokkal finomabban, fokozatosabban megy végbe, mint az eddigi ilyen cserék.

Tesztünk több szempontból is rendhagyó. Soha nem volt még lehetőség például konkurens gyártók videokártyáit együtt dolgoztatni, és sosem kínált még egyetlen API ekkora teljesítménynövekedést. GeForce-ot és Radeont párosítottunk tehát, és ezt úgy is lemértük, amire még külföldi oldalakon sem nagyon akadt példa. Korábban egy alkalommal volt hasonló mérésünk a Mantle API és a DirectX 11 kapcsán, de akkor a kisebb teljesítménynövekedésen kívül mást nem kaptunk. Végül pedig ezúttal egy átfogóbb elemzést is be kellett iktatnunk, hogy a jelentős újításokat ismertethessük.

Hirdetés

A DirectX 12

A Microsoft DirectX 12 egy alacsonyszintű hardveres elérésű, úgynevezett explicit grafikus API, mely az előd DirectX 11-hez képest gyökeres változtatásokon ment keresztül. Sokkal közelebbi rokonságot mutat a Mantle és a Vulkan API-val, valamint a konzolok közvetlen hozzáférésű programozási módjával. A kulcsfontosságú kérdés az, hogyan hasznosítjuk az egyre több és több magot kínáló processzorokat? Az idők folyamán a CPU-k és a GPU-k újításai mögött lemaradt a grafikus API-k fejlődése, és egyre inkább problémát okozott a nagymértékű párhuzamosítás optimális kihasználása, amit az alábbi kép kiválóan szemléltet.


Hiába a sok párhuzamos erőforrás, ha nem használjuk ki [+]

Ugyan már az elődnek számító DirectX 11 is lehetővé tett némi többszálú feldolgozást, de a parancslistákat nehéz jól kezelni. A probléma ott kezdődik, hogy nem lehet meghatározni, hogy ezek mikor lesznek elküldve a grafikus vezérlőnek. A működés biztosításához azonban szükséges a megfelelő GPU-címek folyamatos beírása annak érdekében, hogy a parancsok betölthetők legyenek. A DirectX 11 alatt a vezérlést mindenképpen csak egy mag végzi, és ez vagy azonnali kontextust küld a grafikus vezérlőnek, vagy a késleltetett kontextusokhoz tölti fel a GPU-címeket. Emiatt a többszálú parancslisták alkalmazása egyszerre előny és hátrány.

Feltöltött GPU-címek mellett a munka jól skálázható, de amint új parancslisták jönnek, és új GPU-címek kellenek hozzájuk, rögtön jön a hátrány, vagyis a munkavégzés ideiglenes leállása a címek feltöltéséig. Emiatt az első pár percben a parancslisták többszálú kezelése előnyt biztosít, majd a GPU-címek feltöltésének szakaszában a feldolgozás lelassul, és gyakorlatilag ez a körforgás folytatódik a program futtatása alatt. Fentebb linkelt tudástár bejegyzésünk is kitér arra, hogy az NVIDIA ezt alkalmazza, míg az AMD nem engedélyezi. A DirectX 11-es teszteredményeket ennek fényében kell majd értelmezni, a 3 perc hosszú benchmark miatt a fentiek a zöld VGA-k számára kedvezőbbek.

Végezetül pedig nagyon fontos a vörösek és a zöldek most tesztelt hardverei közt fennálló különbségek közül kiemelni az eltérő bekötési modellt. A HBM-es Radeon, az R9 Fury a TIER_3-as, míg a GTX 980 Ti csak a TIER_2-es bekötési modellt tudja kezelni, ez utóbbi valamivel több CPU-időt emészt fel az UAV/SRV/CBV kreálás során, így a Radeon előnyhöz juthat. A DirectX 12 specifikációinak véglegesítéséről is született írásunk, ahol mindez alaposabban körüljárásra került.

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

Hirdetés

Azóta történt

Radikálisan új motorstruktúra kell az új API-khoz

Matthäus G. Chajdas, az AMD programozója szerint a legnagyobb gyorsulás eléréséhez nagyon bele kell nyúlni az aktuális kódokba.

Felesleges várni a Fermire a DirectX 12-t?

Egy ideje már nem ad életjelet az NVIDIA korábban beígért projektje.

Milyen vasat rakjak a Hitman (2016) alá?

Jó néhány VGA-val, megannyi beállítással és DirectX 11 vs. DirectX 12-ben teszteltük le a legújabb Hitmant.

Nyílt forráskódú lett az AMD CodeXL IDE

A vállalat továbbra is vezető szerepet vállal a fejlesztésben, de elveszik az AMD nevet a program elől.

Előzmények

Erős fejlesztési terv van a Nitrous videojáték-motor mögött

Az Oxide Games az első játék kiadása mellett a lehetséges gyorsításra fókuszál.

Működik az aszinkron compute a GeForce-okon is

A Microsoft DirectX 12-es N-body példaprogramjának AMD által módosított verziója láthatóvá teszi, hogy a rendszer alkalmas rá, de nem mindig.

Nitrous frissítése végre megmutatja mire képes a DirectX 12

Az Ashes of the Singularity új verziója, illetve ennek tesztprogramja átdolgozott leképezőt és érdekes működési módokat kapott.

A Microsoft leleplezte a DirectX 12-t

Az új API a Xbox One-tól a mobilon át a PC-ig mindenhol támogatott lesz.