Még a 2024-es év tavaszán írtunk arról, hogy publikusan is kihasználható a Work Graphs, amelynek hála teljesen GPU-vezérelt leképezési technikák kreálhatók, kvázi a CPU igénybevétele nélkül. Ezzel a Microsoft hatékonyan igyekezett kezelni a PC-t kifejezetten sújtó többletterhelés jelenségét, és ez nagyon is működött, mert az AMD egy tesztprogramban 39%-os gyorsulást mért egy Radeon RX 7900 XTX VGA-n az elterjedt ExecuteIndirect módszerhez viszonyítva.
A fenti sebességelőnyt nagyon felértékeli, hogy a DirectX 12 megjelenése óta az AMD rendelkezik messze a leggyorsabb ExecuteIndirect implementációval a gyártók közül, tehát a Work Graphs mód extra teljesítménye az iparágon belül elérhető legalacsonyabb többletterheléshez van mérve, vagyis ennél a különbségnél a jövőben csak többre lehet számítani. Pontosabban csak lehetett volna, ugyanis a Microsoft úgy döntött, hogy a shader modell 6.10-ben letiltják a Work Graphs kódok futtatásának lehetőségét.
Hirdetés
A vállalat a döntését azzal magyarázta, hogy a driverek és a hardverek még mindig nem eléggé gyorsak és memóriahatékonyak, illetve a felhasználóknál sem elterjedtek a Work Graphs implementációt támogató eszközök. Ebben egyébként van igazság, mert a Work Graphs API-t jelenleg az AMD Radeon RX 7000 és 9000, illetve az NVIDIA GeForce RTX 30, 40 és 50 sorozat támogatja. Minimum ezekkel a hardverekkel kell rendelkezni, ha a Work Graphs kódokat egyáltalán futtatni szeretnék a játékosok. Ez már önmagában kizár rengeteg felhasználót, viszont az sem mindegy, hogy miképpen használják a fejlesztők a Work Graphs lehetőségeit, ugyanis az igazán hasznos 1.1-es specifikációnak már olyan követelményei is vannak, amelyet a kötött ütemezési modellel rendelkező GPU-k nem igazán kedvelnek. Ezt úgy kell érteni, hogy a kódot lefuttatják, de egyáltalán nem hatékonyan.
A Microsoft által fejlesztett Project Helix, vagyis a következő generációs Xbox azért is alkalmaz teljesen újragondolt ütemezést a GPU-n, hogy a Work Graphs nagyon hatékonyan fusson vele. Ez a fejlesztés ugyanis az egész konzol alapja, és ez önmagában a szóban forgó gépre levetítve jó, mert olyan lehetőségeket biztosít, amik ExecuteIndirecttel meg sem valósíthatók, de ez PC-s szinten még nem oldja meg azt a gondot, hogy az ügyfelek nem váltanak elég gyorsan olyan grafikus vezérlőkre, amelyekkel a Work Graphs jól működhet. És itt ezalatt nem feltétlenül a mostani hardvereket kell érteni, mert a modernebb GPU-k ugyan támogatják ezt a lehetőséget, de egyáltalán nem véletlen, hogy a Project Helix a fő parancsmotor mellett lokális parancsmotorokat is épít a multiprocesszorokba. Ennek az oka, hogy ez a fajta hardveres felépítés az, ami fekszik a Work Graphs működési modelljének.
Tehát PC-s szinten ugyan van előnye a Work Graphs API-nak, de igazán hasznos majd csak az érkező új hardverekkel lenne. Ezek terjedése ugyanakkor biztosan limitált lesz, tehát még sokáig kellene karbantartani egy olyan irányt, amit a PC-s portok nem igazán hasznosítanának. A Project Helix, azaz az új Xbox persze más lapra tartozik, oda lehet készíteni egyedi grafikus API-t, a játékok is nyugodtan kihasználhatják a hardver képességeit, ez mondhatni konzol szintjén megszokottnak mondható. Pláne úgy, hogy a következő generációs PlayStationbe is az AMD tervezi a grafikus vezérlőt, tehát annak a felépítése is hasonló lehet az új Xboxhoz, így a multiplatform konzolcímek nyugodtan használhatnak majd finomabb szemcsézettségű ütemezést, illetve munkafolyamatokat is generálhat magának a GPU a CPU igénybevétele nélkül.
A Microsoft tehát ezzel a döntéssel a saját érkező konzolcsaládját nem kockáztatja, kizárólag a PC-piac az, ami ezzel pórul jár. Készül azonban egy Work List nevű modell, annak érdekében, hogy azért a PC-k is fejlődhessenek valamennyit. Erről annyit tudni, hogy az ExecuteIndirect egy új funkciójának számít, és alapvetően ott egészíti ki a meglévő rendszert, hogy valamivel rugalmasabbá teszi a grafikus futószalag-állapotok kezelését. Ez azért fontos, mert a grafikai munkafolyamatok komplexitásának növekedése elég nagy fejfájást okoz ExecuteIndirecttel. Bár itt is igaz, hogy a GPU maga állíthatja elő, hogy mit kell kirajzolni, de a grafikai futószalag-állapotokat nagyon nehéz módosítani. Ha például állapotváltásra van szükség, akkor azt lényegében csak a kötegelés megtörésével lehet megoldani, vagyis az állapotváltáshoz szükség van a CPU beavatkozására, ami többletterhelést jelent. Minél több állapotváltás történik, annál nagyobb lesz a többletterhelés, és ez az, amit nem akarunk.
A Work List funkció erre reagál közvetlenül úgy, hogy nemcsak az ExecuteIndirecttel megszokott rajzolási paraméterek, hanem az egyes grafikai futószalag-állapotok is meg lennének adva, így talán el lehet kerülni a kötegelés megtörését, ezzel pedig a CPU-ra hárított munkákat. Na most ez így önmagában jól hangzik, de minél több futószalag-állapot kezelését bízzuk a GPU-ra, annál nehezebb ezt az egészet hatékonyan megvalósítani. És ezt a Microsoft is tudja, emiatt csak pár állapot van még tervben, és több esetben is jelzik, hogy nehéz lehet majd megvalósítani, tehát nem kizárt, hogy a végleges specifikáció majd nem fogja tartalmazni.
Ez a változás tehát nem pótolja majd azt a dinamikus generálási és ütemezési modellt, amit a Work Graphs kínált, vagyis igen sokat veszít a PC, viszont a Work List így is oda vezet majd, hogy az ExecuteIndirecthez viszonyítva kevesebbszer kell a CPU-t terhelni.
A Work List tehát egy amolyan tűzoltó megoldás a közeljövő számára. Ha már annyi nehézséget okoz a gyártóknak a modern opciót támogatni, akkor legalább ne legyenek a PC-k teljesen reménytelen helyzetben a Work Graphs-szerű modellt alkalmazó konzolokkal szemben. Annyi biztos, hogy ugyanazt a munkafolyamatot egy új generációs konzol sokkal hatékonyabban tudja majd előállítani, ami abban nyilvánul majd meg, hogy a jóval modernebb feldolgozási modell miatt kevesebb memóriára és processzoridőre van szüksége. Viszont PC-s szinten ez így is jó, mert a felhasználóknak lehetőségük lesz a konzolba épített hardvernél erősebbet vásárolni. Akár kétszer több rendszermemóriát, kétszer több processzormagot, esetleg erősebb GPU-t is, bár utóbbi a fenti kérdéskör szempontjából kevésbé lényeges.
Emellett a Microsoft egyáltalán nem zárta ki, hogy a Work Graphs koncepciója később visszatér. Itt fontos megérteni, hogy nem a modellel van gond: az tökéletesen működik, ha nem így lenne, nem tervezne rá a cég egy teljes konzolgenerációt. A probléma az, hogy a PC-n a hardveres háttér túl lassan épül ki, és a Work Graphs annyira masszív változás, hogy a szoftveres támogatása nem megoldható a PC-piac számára jellemzően optimális lépcsőzetes formában.
