Direct3D Tiled Resources

A Microsoft a DirectX 11.2 API részeként mutatta be a Windows 8.1 operációs rendszeren el is érhető Tiled Resources funkciót. Az alapokról már írtunk egy részletes cikket, mely az opcionálisan támogatható rendszer bevezetésének okait és működését elemzi.

A linkelt anyagból kiderült, hogy a Tiled Resources funkciónak az alapvető szoftveres mód mellett két hardveres szintje van: TIER_1 és TIER_2. Ezek különbségeit az alábbi táblázat foglalja össze:

Tiled Resources szintek eltérései
Szint TIER_1
TIER_2
Shader feedback támogatás nincs van
Packed Mips támogatás a textúratömbökhöz nincs van
Min/max textúra mintavétel támogatás
emulált van
Mintavétel támogatása nem leképzett mozaikokra nincs van
Kiterjesztett Texture2D.Sample támogatás
emulált van

Az adatok magukért beszélnek, de az alábbiakban kicsit részletesebben taglaljuk, hogy mi mire szolgál, kiegészítve ezeket további néhány fontos adattal.

Shader feedback támogatás: Lehetővé teszi a shaderek használatát a textúramozaikokhoz.

Packed Mips támogatás a textúratömbökhöz: Ennek segítségével több mipmapot lehet egyetlen mozaikba csomagolni.

Min/max textúra mintavétel támogatás: Textúra mintavételezési módok, melyek négy szomszédos texel minimum vagy maximum értékével térnek vissza. Ezt például arra lehet használni, hogy a rendszer megtudja a legnagyobb felbontású mipmap szintet, amit lehet használni az adott mozaikkal kapcsolatos mintavételhez. Ezt a funkciót a TIER_1 szint a Gather4 utasítással emulálja.

Mintavétel támogatása nem leképzett mozaikokra: A Tiled Resources működése szempontjából nem mindegyik mozaik található meg a VRAM-ba betöltött fizikai textúrában, így lehetnek leképzett és nem leképzett mozaikok (utóbbi nem része a fizikai textúrának). A TIER_1 szint csak a leképzett mozaikokról képes mintavételezni, vagyis a program oldaláról ügyelni kell arra, hogy az adat valamilyen módon meglegyen (erre számos technika létezik). A TIER_2 alapvetően képes kezelni a nem leképzett mozaikokból történő mintavételt.

Kiterjesztett Texture2D.Sample támogatás: A Tiled Resources funkció egy újabb Texture2D.Sample utasítást kapott, ami a mipmap szintet egy bizonyos értékhez köti. Ezzel többek között megoldható, hogy a mintavétel egy alacsonyabb mipmap szinten történjen, ha a magasabb felbontású mipmap nincs ott a memóriában. Ezt az utasítást a TIER_2 szint alapból támogatja, de a TIER_1 szint csak emulálja, méghozzá úgy, hogy a rendszer megpróbálja kikalkulálni, hogy milyen mipmap kellene használni a memóriában tárolt többi mipmap alapján.

Lényeges elem még a Tiled Resources funkció esetében, hogy a TIER_2 szint kapott még egy CheckAccessFullyMapped függvényt is, ami előre megmondja, hogy a mintavétel esetleg nem leképzett mozaikon fog megtörténni, vagy jobb esetben minden rendben lesz. Ez teljesen hiányzik a TIER_1 szintből.

A Tiled Resources funkció támogatása teljesen opcionális, így jelenleg csak az NVIDIA Kepler és Maxwell, illetve az AMD GCN architektúrája kezeli. A NVIDIA megoldása csak a TIER_1-es szintet, az AMD rendszere viszont a TIER_2 szint összes funkcióját kezeli.

Hirdetés