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.
Hirdetés
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:
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.