Minden, amit a DirectX 11.1-ről tudni kell

A DirectX 11.1 működése

Ahhoz, hogy az API a rengeteg hardverhez megfelelő minőségű opció legyen, a Microsoft különböző futtatási szinteket kreált. Ez nem mondható újdonságnak, hiszen az elv már a DirectX 11-ben is bemutatkozott, de az ultramobil grafikus vezérlők azért alaposan összekuszálták a dolgokat, így a DirectX 11.1 egy helyen változtatott a korábban kialakított szinteken. Tömören összefoglalva a lényeget: a Microsoft eltörölte a shader modell 3.0-t az eddig ismert formájában.

Ez nem jelenti azt, hogy a régi játékok, amelyek kihasználják ezt, nem fognak jól futni, ebből a szempontból nem lesz változás. Azonban ha valaki DirectX 11.1-re ír programot, akkor a shader modell 3.0 egyetlen futtatási szinten sem érhető el. Ennek elsősorban az az oka, hogy az ultramobil grafikus vezérlők közül kevés megoldás teljesíti a shader modell 3.0 követelményeit, viszont a DirectX 11-ben a D3D_FEATURE_LEVEL_9_3 szinthez van kötve a több render target (multiple render targets, azaz MRT) egyidejűleg történő leképzésének lehetősége, ami egy fontos funkció. Ahhoz, hogy több ultramobil IGP kerüljön be ebbe a kategóriába, a Microsoft a DirectX 11.1-nél visszavett a shader modellre vonatkozó követelményekből.

A döntésben egyébként nagyon-nagy szerepe volt annak is, hogy a Windows RT-vel ellentétben a Windows 8 operációs rendszer futtathatóságának minimális követelménye a D3D_FEATURE_LEVEL_9_3 szint elérhetősége, így az Intel Atom Z2760-as rendszerchipet mindenképp meg kellett feleltetni ennek az elvárásnak. Gyakorlatilag ezt a lépcsőt addig butították, amíg a tabletekbe szánt Atom IGP-je működőképessé nem vált.

A jobb átláthatóság érdekében a DirectX 11.1-ben elérhető futtatási szintek különbségeit az alábbi táblázatban foglaljuk össze:

Feature Level: 11_1 11_0 10_1 10_0 9_3 9_2 9_1
Shader modell 5.0 5.0 4.1 4.0 2.0+ 2.0 2.0
Geometry shader támogatás van van van van nincs nincs nincs
Stream out támogatás van van van van nincs nincs nincs
Compute shader támogatás van van részleges részleges nincs nincs nincs
Tesszelláció támogatás van van nincs nincs nincs nincs nincs
Gather4 támogatás van van van nincs nincs nincs nincs
BC4/BC5 támogatás van van van van nincs nincs nincs
BC6H/BC7 támogatás van van nincs nincs nincs nincs nincs
Occlusion query-k támogatása van van van van van van nincs
Alpha-to-coverage támogatás van van van van nincs nincs nincs
Logikai operációk támogatása van opcionális opcionális opcionális nincs nincs nincs
TIR funkció elérhetősége van nincs nincs nincs nincs nincs nincs
Támogatott UAV-k száma 64 8 1 1 - - -
UAV minden shader lépcsőn van nincs nincs nincs nincs nincs nincs
Támogatott MRT-k száma 8 8 8 8 4 1 1

Az adatok magukért beszélnek, de talán túl sok információ ez így egyszerre, így természetesen taglaljuk, hogy mi mire szolgál, kiegészítve néhány fontos adattal.

Hirdetés

Shader modell: A shader modell ismert fogalom, ami lényegében meghatározza, hogy az adott grafikus processzor milyen mértékben programozható. Minél nagyobb a szám, annál kevesebb a megkötés. Az 5.0-s, 4.1-es és 4.0-s szint gyakorlatilag igen kedvező ebből a szempontból, ahogy a 3.0-s is az volt, de erről fentebb leírtuk, hogy a DirectX 11.1-ben elveszett. A shader modell 2.0 esetében érdemes megjegyezni, hogy D3D_FEATURE_LEVEL_9_3 mellett kevesebb limitációval kell számolni, mint az alacsonyabb szinteken, így ezt a táblázatban jeleztük, de hivatalosan a Microsoft ezt is 2.0-s jelzővel illeti.

Geometry shader: Ez a shader lépcső a DirectX 10-ben mutatkozott be, és geometriai alakzatokkal, azaz több vertexszel képes egyszerre dolgozni. Az alkalmazott kódtól függően másolni, nagyítani, kicsinyíteni tudja őket. Emellett további primitíveket hozhat létre, illetve törölhet vertexeket.

Stream out: Ez a funkció a geometry shaderhez tartozik, és a fejlesztő a segítségével képes lementeni vertex és geometriai adatokat még a raszterizálás előtt.

Compute shader: Ez a shader lépcső a DirectX 11-ben debütált, és alapvetően független eleme a DirectX futószalagnak, de használatával a grafikus processzorok általános számítási teljesítményét sokkal hatékonyabban lehet kihasználni, mint ha az adott effekt specializált shader lépcsőn futna.

Tesszelláció: Ezt a funkciót a DirectX 11-ben sikerült bevetni. Segítségével részletesebb felületek kreálhatók, hiszen az eredeti modell geometriáját több kisebb háromszögre lehet bontani, majd a keletkezett vertexek pozicionálhatók. Működéséről részletesen írtunk az alábbi oldalon.

Gather4 utasítás: Hihetetlenül hasznos funkció, ami a DirectX 10.1-től vált elérhetővé. Használatával egy textúrázó csatorna négy mintával térhet vissza egyetlen mintavételi ciklus alatt. Segítségével a fejlesztők 15-25%-kal is képesek gyorsítani a teljes leképzés sebességét. Érdemes megjegyezni, hogy a Microsoft még ma is csak az utasítás támogatását követeli meg hardveres szinten. Ennek eddig nem sok jelentősége volt, mivel a gyártók értették a funkció lényegét, így a grafikus processzorok textúrázó csatornánként négy mintavételezőt tartalmaztak. Az Intel viszont a HD Graphics 2000, 2500, 3000 és 4000 jelzésű IGP-ken úgy támogatja az utasítást, hogy csatornánként csak egy mintavételezőt építettek be a mérnökök. Az API specifikációja elfogadja ezt az elvet is, de ilyenkor semekkora teljesítménynövekedést nem lehet várni a Gather4 utasítás bevetésétől, mivel a rendszer négy mintával nem egy, hanem négy mintavételi ciklus alatt tér vissza.

BC4/BC5 és BC6H/BC7: Különböző textúratömörítési eljárások.

Occlusion query: Ez az eljárás jelzi, hogy melyik objektum van más objektum által takarásban a feldolgozandó képen. Amennyiben az eltakart objektum nem látszik, felesleges erőforrást pazarolni rá, így azt a rendszer kivágja még a leképzés megkezdése előtt. A DirectX 9-ben egy butább rendszer dolgozott ezen, ahol a központi és a grafikus processzor közösen munkálkodott a feladaton, de az újabb DirectX API-kon már csak a grafikus processzorra terhelődik a munka. Az eljárás egyébként úgy működik, hogy a rajzolás előtt a komplex objektumok helyett először tégla alakú dobozok lesznek elhelyezve, amelyek az objektum adatait hordozzák. A mélységtesztek lefuttatása után azok az objektumok nem lesznek megrajzolva, amelyek nem fognak látszani a végső képkockán.

Alpha-to-coverage: A technika segítségével az átlátszó textúrákon lehetségessé válik az élsimítás. A DirectX 10-ben mutatkozott be, de a DirectX 10.1-ben továbbfejlődött, így gyorsabb és hatékonyabban dolgozó élsimítást készíthettek a fejlesztők az adott problémára.

Logikai operációk: Nevének megfelelően logikai operációkat (és, vagy, kizáró vagy) tesz lehetővé a render targeteken. Némi megkötés, hogy ezeket nem lehet mixelni a blendinggel.

TIR (target independent rasterization): A Direct2D felületre van hatása. Lehetővé teszi, hogy a processzor gyorsabban tesszelláljon, aminek köszönhetően a teljes feldolgozás sebessége nő, hiszen a grafikus processzor is gyorsabban kapja meg a rajzolási instrukciókat.

UAV (unordered access view): A DirectX 11 vezetett be a futószalag pixel, valamint compute shader részére. Segítségével az általános és strukturált adatpuffereket lehet kezelni, ezen belül is gather operációval olvasható, vagy scatter operációval írható a tartalmuk, akár párhuzamosan. A DirectX 11.1 újítása erre vonatkozóan, hogy több UAV-t lehet kreálni, továbbá most már a futószalag összes programozható lépcsője olvashatja a tárolt adatokat. Egyidejűleg írni és olvasni csak egyetlen formátumot lehet (single uint32).

RT (render target): Képkockára vonatkozó adatpufferek, melyek a leképzéshez szükséges adatokat tartalmazzák.

Mit támogat a PC-m?


[+]

A DirectX 11.1-es API esetében az adott számítógép által támogatott futtatási szintek nagyon egyszerűen ellenőrizhetők. A Windows 8 és RT operációs rendszeren a keresésénél be kell írni a „dxdiag” parancsot, és a megjelenő ikonra kell kattintani. A felugró ablakon a „display” fület kiválasztva megjelennek a grafikus adapter paraméterei. A „Feature Level” pontnál látható, hogy az adott termék mely szinteket kezeli. Erről mi is készítettünk egy képet.

A cikk még nem ért véget, kérlek, lapozz!

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

Azóta történt

Előzmények