Sdílet prostřednictvím


Glosář Direct3D 12

Tyto termíny jsou specifické pro Direct3D 12.

vazby

Proces připojení paměti k grafickému kanálu. Vazba prostředků například zahrnuje vazbu prostředku, jako je textura, na kanál pro použití při vykreslování objektu.

vyrovnávací paměti

Typ prostředku D3D, který je synonymem s souvislým přidělením paměti.

sady

Příkazový buffer, který může grafický procesor (GPU) spustit pouze přímo prostřednictvím přímého seznamu příkazů. Sada dědí veškerý stav GPU (s výjimkou aktuálně nastaveného objektu stavu kanálu a primitivní topologie).

alokátor příkazů

Základní přidělení paměti, ve kterých jsou uložené příkazy GPU. Objekt alokátoru příkazu platí pro přímé seznamy příkazů a také pro svazky.

seznam příkazů

Seznam příkazů odpovídá sadě příkazů, které GPU spouští. Patří mezi ně příkazy, jako je nastavení stavu, kreslení, vymazání a kopírování. Rozhraní seznamu příkazů D3D12 se výrazně liší od rozhraní seznamu příkazů D3D11. Rozhraní seznamu příkazů D3D12 obsahuje rozhraní API podobná těm pro vykreslování kontextu zařízení D3D11.

Seznam příkazů D3D12 nemapuje ani neodmapuje prostředky, nemění mapování dlaždic, nezmění velikost fondů dlaždic, nezískává data dotazů ani nikdy implicitně neodesílá příkazy do GPU ke spuštění.

Na rozdíl od odložených kontextů D3D11 podporují seznamy příkazů D3D12 pouze dvě úrovně nepřímého přesměrování. přímo zadaný seznam příkazů odpovídá vyrovnávací paměti příkazů, kterou může GPU vykonat. Sadu lze spustit pouze přímo prostřednictvím přímého seznamu příkazů.

Přímý seznam příkazů nedědí žádný stav GPU. Sada dědí veškerý stav GPU (s výjimkou aktuálně nastaveného objektu stavu pipeline a primitivní topologie).

Paměť pro seznam příkazů je nastavena příkazovým alokátorem . Účelem seznamů příkazů je, že je možné je odeslat do GPU jako jeden požadavek na vykreslování.

fronta příkazů

Fronta příkazů obsahuje seznam, které GPU provádí po sobě. Aplikace musí explicitně odesílat seznamy příkazů do fronty příkazů ke spuštění. Obvykle existují tři fronty příkazů: 3D grafika, výpočty a kopírování, které odpovídají 3D grafickému kanálu, výpočetnímu modulu a jednomu nebo více modulům kopírování v GPU.

konzervativní rasterizace

Konzervativní rasterizace je režim činnosti pro rastrovou fázi grafického zobrazovacího řešení Direct3D. Zakáže standardní rasterizaci založenou na vzorcích a místo toho rastruje pixel, který je pokryt jakýmkoli množstvím primitiva. Jedním z důležitých rozdílů je, že zatímco jakékoli pokrytí vůbec vytváří rastrový pixel, nemůže být pokrytí charakterizováno hardwarem, takže pokrytí vždy vypadá jako binární pro pixel shader: buď plně pokrytý, nebo není pokryt. Úkolem kódu pixelového shaderu je analyticky určit skutečné pokrytí.

Konzervativní rasterizace může pomoci s takovými problémy, jako je kolize a detekce hitů, binning a okluze, kde je barva pixelu konkrétnější a hraniční případy lze odstranit. Viz konzervativní rasterizace.

zobrazení konstantní vyrovnávací paměti (CBV)

Konstantní vyrovnávací paměti obsahují konstantní data shaderu, jako je pohled kamery, projekční matice a řídící matice. Zobrazení konstantního vyrovnávacího bloku je zobrazení vyrovnávací paměti specifické pro formát, jak je vidět v grafickém rozhraní.

výchozí halda

Halda v uživatelském režimu, která se zaměřuje na podporu trvalých typů prostředků GPU, včetně prostředků napsaných GPU.

deskriptor

Popisovače jsou základní jednotkou vazby pro jeden prostředek v D3D12. Popisovač je relativně malý blok dat, který plně popisuje objekt gpu v konkrétním formátu GPU. Existuje mnoho různých typů popisovačů: zobrazení prostředků shaderu (SRV), neuspořádaná zobrazení přístupu (UAV), zobrazení vyrovnávací paměti konstant (CBV) a vzorkovníky jsou několik příkladů.

popisovač haldy

Halda deskriptorů je kolekce souvislých alokací deskriptorů, jedna alokace pro každý deskriptor. Hlavním účelem haldy descriptorů je obsáhnout velkou část paměti potřebnou k uložení specifikací deskriptorů typů objektů, na které shadery odkazují pro co největší možné okno vykreslování (ideálně celý snímek vykreslování nebo více).

tabulky popisovače

Tabulka popisovače je logicky pole popisovačů. Každá tabulka popisovače uchovává popisovače jednoho nebo více typů, včetně SRV, UAVe, CBV a Samplers. Tabulka deskriptoru není přidělením paměti, je to jednoduše offset a délka v haldě deskriptorů.

přímý seznam příkazů

Příkazová vyrovnávací paměť, kterou může GPU spustit. Přímý seznam příkazů nedědí žádný stav GPU.

plot

Mechanismus synchronizace GPU a procesoru. Gpu i procesor lze instruovat, aby čekali na plotu a čekali, až se druhý procesor dohoní. Viz synchronizaci více engine .

nebezpečí, sledování rizik

K riziku dochází, když se prostředek používá pro jeden účel a aplikace ji hodlá znovu použít pro jiný účel. Aby bylo možné prostředek znovu použít, bude nutné zprostředkující mezipaměti vyprázdnit nebo zneplatnit, požadavky na kompresi musí být stejné jako při druhém použití a prostředek by měl být v požadovaném stavu, aby se zabránilo čtení prostředku poté, co byl zapsán a zneplatněn k zamýšlenému účelu.

Proces údržby prostředků a zabránění těmto problémům se synchronizací se označuje jako sledování rizik. Pokud řidič nezasleduje žádné nebezpečí, je za to zodpovědná aplikace. Ve většině starších verzí rozhraní DirectX sledování nebezpečí zpracovával ovladač. Pro zlepšení výkonu jsou metody bez sledování rizik dostupné v DirectX 12.

High-Level jazyk shaderu (HLSL)

Počítačový jazyk, podobný, ale odlišný mnoha způsoby od jazyka C, který se používá k psaní kódu shaderu. Vrcholy, pixely, geometrie, výpočty, doména a trupové shadery jsou napsány pomocí HLSL. Kompilátor převede zdroj HLSL do binárního formátu, který gpu bude využívat.

vícemotorový

Různé instance a typy motorů v jednom GPU. Mezi typy motorů patří grafické, výpočetní a kopírovací.

MultiGPU

Konfigurace hardwaru, kde je více než jeden grafický adaptér. Samostatné adaptéry se někdy označují jako uzly. Díky více grafickým procesorům může být úloha jejich synchronizace s procesorem a navzájem výrazně složitější než s jedním GPU.

objekt stavu kanálu (PSO)

Významná část stavu GPU. Tento stav zahrnuje všechny aktuálně nastavené shadery a určité objekty stavu s pevnou funkcí. Jediným způsobem, jak změnit stavy obsažené v objektu kanálu, je změnit aktuálně vázaný objekt kanálu.

predikát

Predikace je funkce, která gpu namísto procesoru umožňuje určit, že nebude kreslit, kopírovat nebo odesílat objekt. Pokud je například ohraničující rámeček objektu zcela zakryt jiným objektem nebo perspektiva zmenšila objekt na menší velikost než je pixel, nemusí mít vůbec smysl pokoušet se o vykreslení skrytého objektu. Viz predikace.

zobrazení pořadí rasterizátorů (ROV)

Standardní grafické kanály můžou mít problémy se správnou kompilací více textur, které obsahují průhlednost. Objekty, jako jsou drátěné ploty, kouř, oheň, rostliny a barevné sklo, používají průhlednost k dosažení požadovaného efektu. K problémům dochází v případě, že je více textur, které obsahují průhlednost, vzájemně v souladu (například kouř před plotem před skleněným objektem obsahujícím rostlinstvo). Rastrová seřazená zobrazení (ROV) umožňují základním algoritmům nezávislé transparentnosti pořadí (OIT) využívat funkce hardwaru pro správné vyřešení pořadí průhlednosti. Průhlednost je zpracována shaderem pixelů.

Rastrová uspořádaná zobrazení (ROV) umožňují kódu shaderu pixelů označit neuspořádaný přístupový pohled (UAV) deklarací, která mění běžné požadavky na pořadí výsledků grafického rozhraní pro UAV.

paměťová halda zpětného čtení

Halda uživatelského režimu, která se zaměřuje na přenos dat z GPU zpět do procesoru.

prostředek

Entita, která poskytuje data do datového kanálu a definuje, co se vykresluje během vaší scény. Prostředky je možné načíst z herního média nebo dynamicky vytvářet během běhu hry. Prostředky obvykle zahrnují data textury, data vertexů a data shaderů. Většina aplikací Direct3D vytváří a zničí prostředky po celou dobu jejich životnosti.

bariéra zdrojů

Bariéra prostředků upozorňuje ovladač, že může být vyžadována synchronizace více přístupů k jednomu prostředku, například při čtení a zápisu do stejné textury.

vazby prostředků

Vazba prostředků je proces propojení prostředků (textury, vyrovnávací paměti vrcholů, vyrovnávací paměti indexu atd.) s grafickým kanálem, což umožňuje shadery kanálu zpracovat správný prostředek.

haldy prostředků

Haldy prostředků jsou obecným termínem pro haldy, které jsou vyrovnávací paměti, které jsou vyhrazeny pro uchovávání prostředků při jejich přenosu do a z GPU. Přenos do GPU vyžaduje haldu pro nahrání, od GPU do procesoru vyžaduje haldu zpětného čtení a trvalou haldu pro GPU, která má udržovat více snímků vykreslování, se nazývá výchozí halda.

kořenový podpis

Kořenové podpisy definují všechny prostředky, které mají být svázány s grafickými nebo výpočetními kanály. Kořenový podpis je nakonfigurován aplikací a propojí seznamy příkazů s prostředky, které shadery vyžadují, obvykle existuje jedna grafika a jeden výpočetní kořenový podpis na aplikaci.

sampleru

Sampler je kód, který čte z textury.

zobrazení zdroje shaderu (SRV)

Formátově specifický způsob zobrazení dat v prostředku shaderu, jako je textura.

statická hromada

Halda v uživatelském režimu, která je zaměřená na více prostředků GPU pouze pro čtení, které se obvykle používají současně a často nejsou měněny.

Řetězec prohození

Swap řetězce řídí otáčení zadní vyrovnávací paměti, které tvoří základ pro grafickou animaci. Řetězce swapu zpracovává nízkoúrovňové API DXGI (viz Přehled DXGI).

swizzle

Technika vyhledání multidimenzionálních dat v paměti tak, aby data blízkých dimenzí měla tendenci mít blízké adresy. Konkrétně se všechna data pro jeden řádek nenachází souvisle před daty pro další řádek. Parametrizovaný Swizzle popisuje standardizovaný způsob, jak popsat vzory swizzle.

textury

Typ prostředku D3D, který je multidimenzionální a má rozložení paměti optimalizované pro multidimenzionální přístup z GPU. Textury často obsahují nezpracovaný obrázek potřebný k vykreslení na povrch před zahájením osvětlení a prolnutí, ale mohou obsahovat jiné formy dat, jako jsou barevné přechody a referenční barvy. Direct3D 12 podporuje jednu, dvě a tři dimenzionální textury.

dlaždice

Stránka paměti videa podobná stránce procesoru nebo systému paměti. Zápis dlaždice pomáhá odlišit subsystém virtuální paměti GPU od subsystému virtuální paměti procesoru. Gpu poskytují podobné možnosti virtuální paměti jako systémová virtuální paměť. Některé gpu mají sdílené možnosti virtuální paměti, které umožňují sdílení některých stránek subsystému virtuální paměti s procesorem i GPU.

dlaždicových prostředků

Prostředky s dlaždicemi jsou potřeba, aby se šetřila paměť GPU a neuchovávaly se oblasti povrchů, o kterých aplikace ví, že k nim nebude přistupovat, a hardware dokázal filtrovat mezi sousedními dlaždicemi. Dlaždicové prostředky jsou velké logické prostředky, které však vyžadují malé množství fyzické paměti.

neuspořádané zobrazení přístupu (UAV)

Neuspořádané zobrazení přístupu k prostředku (zahrnující vyrovnávací paměti, textury a pole textur – bez vícenásobného vzorkování) umožňuje neuspořádaný přístup pro čtení a zápis z více vláken. To znamená, že tento typ prostředku lze současně číst a zapisovat více vlákny bez generování konfliktů v paměti.

nahrání zásobníku

Halda uživatelského režimu, která se zaměřuje na přenos dat z procesoru do GPU.

haldy v uživatelském režimu

Kolekce rozsáhlých souvislých přidělení paměti, které jsou recyklovány bez povědomí jakékoli komponenty jádra: metody přidělování a uvolňování paměti nevyvolávají metody jádra pro přidělování a uvolňování během stabilního stavu. Upload, Readback a Default haldy jsou typy hald v uživatelském režimu.

svazek dlaždicových prostředků

Trojrozměrné dlaždicové zdroje.