Hirdetés

Megkapta első komoly frissítését a DirectStorage API

Az 1.4-es verzió a Zstd bevezetésére fókuszál, amely előzetes formában már ki is próbálható.

Még a 2022-es év végén futott be a DirectStorage API, ami rögtön az 1.1-es verzióval kezdett, majd kisebb frissítésként 2023-ban és 2025-ben megjelent az 1.2-es és 1.3-as kiadás is. A technológiát mára több tucat cím támogatja, vagyis a fejlesztői érdeklődés mostanra kellemesnek mondható.

Hirdetés

A Microsoft az idei GDC alkalmával prezentálta az első nagyobb továbbfejlesztést, ami a DirectStorage 1.4 jelzést viseli, és ez az eddigi képességek mellé bevezeti a Zstd direkt támogatását, ami egy ismert, nyílt, rendkívül gyors és egyben nagyon jó tömörítési arányt biztosító algoritmus.

A fentieknek hála a következő generációs PC-s címek az aktuálisnál jobb lehetőségeket kapnak a szállított tartalmak tömörítésére, ráadásul a Zstd támogatja a CPU- és GPU-alapú kitömörítést is, akár egymással párhuzamosan használva. Ez azt jelenti, hogy a fejlesztők tetszőlegesen eldönthetik, hogy az adott tartalmat melyik hardverelem kódolja ki, vagyis teljesen a program igényeihez lehet szabni a működést.

A GPU-s kitömörítéshez a Microsoft nyílt forráskódúvá tette a saját Zstd compute shaderét. Ez minden olyan GPU-n működik, amely képes compute shadert futtatni, de egyelőre korai implementációról van szó, így még fejlesztés alatt áll. Emiatt a jelenlegi formában 256 KB vagy kisebb darabokra bontott tartalomra van optimalizálva, de a redmondiak szerint a következő hónapokban bővítik még a lehetőségeket.

A Zstd-n túl a Microsoft még jobb tömörítési arányra fókuszált, így kifejlesztették a GACL-t, vagyis a Game Asset Conditioning Library-t. Ez veszteségmentes és veszteséges úgynevezett conditioning technikákat tartalmaz, és technikailag ugyan nem a DirectStorage API része, de egymás melletti működésre lettek tervezve. Az újítások kombinált használatával a fejlesztők 50%-kal jobb Zstd tömörítési arányt érhetnek el, miközben a kitömörítés hatékonyan oldható meg.

A DirectStorage 1.4 számottevő újítása még a globális D3D12 CreatorID támogatása az API-n belül. Ez azért fontos, mert maga az API főleg az adatok másolásáért felelős parancsmotort túráztatja, és ebből a szempontból igen nagy az eltérés az egyes gyártók hardverdizájnjai között. Bizonyos GPU-kon gondot jelenthet az, hogy a képszámítás során megtörténő másolási feladatok végrehajtásakor, addig nem tud eljutni egyetlen grafikai vagy compute parancs sem CPU oldaláról a GPU-hoz, amíg nem kerülnek végrehajtásra a másolási feladatok.

A friss lehetőséggel a fejlesztők kvázi felcímkézhetik a DirectStorage-hez tartozó parancsokat, és ezáltal az eszközillesztő jobban átlátja majd a teljes parancsfeldolgozást, így fel tudja ismerni, hogy mikor fordulhat elő olyan helyzet, amikor a hardver kiszolgáltatottá válhat a másolási parancsoknak. Ha pedig ezt látja, akkor már segíthet a GPU-nak az ütemezését úgy megszervezni, hogy javuljon a befutó parancsok kezelése, amivel stabilabb lehet majd a teljes képszámítás. Emiatt a jövőben a játékok többször alkalmazhatnak GPU-alapú kitömörítést, mivel korábban ezt leginkább azért kerülték, mert nem lehetett elég jól kontrollálni azokat a szituációkat, amikor a GPU másolási parancsai által telítetté vált a PCI Express busz.

Előzmények