A Microsoft még a DirectX 12 megjelenésekor szembesült azzal a problémával, hogy a partnerek grafikus vezérlői sok szempontból eltérnek, és ennek a kezelését nehezebb megoldani egy explicit API-n belül. Számos módszert dolgoztak ki a különbségek elfedésére és menedzselésére, amire egy API esetében nyilván szükség is van, de az egyes erőforrások elhelyezése a memóriában kifejezetten nagy kihívást jelentett.
Hirdetés
Sajnos előfordulhatnak olyan kis memóriaigényű erőforrások is, amelyek elhelyezése nem optimális a jelenlegi módszerekkel, így vagy az elérhető memóriából kell áldozni, vagy az erőforrás nyomon követésének lehetőségéből. A fejlesztők szabadon megválaszthatják, hogy mit tartanak elfogadható kompromisszumnak az adott szituációban, de gondot jelent az, hogy valamilyen szempontból mindenképpen hátrányos döntést kell hozni.
A redmondi óriáscég ugyanakkor a DirectX 12 bevezetésekor eldöntötte, hogy idővel felülvizsgálják a korábban meghozott korlátozásokat, amelyeket egyébként az API megjelenésekor elérhető hardvereket figyelembe véve hoztak meg. Az újabb grafikus vezérlők viszont jóval potensebbek, elvégre azóta 10 évnél is több idő telt el, vagyis a piacon jelenleg versenyző cégek már több éve kínálnak olyan hardvereket, amelyekhez kedvezőbb módszer is kidolgozható. Ezt a Microsoft meg is tette, és most bemutatták a Tight Alignment funkciót.
Az újítás lényegében a korábbi korlátok kiütéséről szól. A Tight Alignment Tier 1 specifikáció drasztikusan szigorítja a puffererőforrások igazításának követelményeit, így az eszközillesztőtől, valamint az erőforrás leírásától függően az úgynevezett placed bufferek mostantól akár 8-256 bájtos igazítással is rendelkezhetnek, míg a committed bufferek esetében az igazítási követelmények 4 kB-ra csökkentek. Az egészet egy új erőforrásjelzővel lehet aktiválni az adott erőforrás létrehozásakor, és ha ezt támogatja az adott rendszer, akkor a friss specifikációknak megfelelően történik majd meg a menedzsment.
A Tight Alignment előnyei jelentősek, különösen akkor, ha sok apró erőforrást hoznak létre a fejlesztők, és az új lehetőségek által drasztikusan csökkenthető a memóriahasználat. Az előrelépés legrosszabb esetben is 20-25% körüli, legjobb esetben pedig nagyságrendekben mérhető.
A Microsoft az újítást egyelőre tesztelési céllal kínálja fel az Agility SDK 1.716.0-preview csomagban, de később alapvető része lesz a szabványnak. A gyártók már jelezték, hogy támogatni fogják a Tight Alignment funkciót, és hamarosan elérhetők lesznek a szükséges grafikus meghajtók. A hardveres háttér sem lehet igazán probléma, az elmúlt években megjelent GPU-k megfelelnek a friss specifikáció követelményinek, tehát az aktívan támogatott grafikus vezérlőkre jöhet a kompatibilis eszközillesztő.