vs_3_0
Programovatelný shader vrcholů se skládá ze sady instrukcí, které pracují s daty vrcholů. Registruje přenos dat do a z ALU. Další ovládací prvek lze použít k úpravě instrukce, výsledků nebo toho, jaká data se zapíšou.
Verze vrcholového shaderu vs_3_0 rozšiřuje sadu funkcí podporovanou vs_2_x. Každá z funkcí v vs_2_X, které vyžadují nastavení limitu, je k dispozici v vs_3_0 bez vyžadování limitu.
- Pokyny – vs_3_0 obsahuje seznam dostupných pokynů.
- Registry – vs_3_0 uvádí různé typy registrů používaných vrcholovým shaderem ALU.
- modifikátory registru vrcholů shaderu slouží k úpravě způsobu fungování instrukce.
- modifikátory zdrojového registru vrcholů shaderu změnit data zdrojového registru před spuštěním instrukce.
- zdrojového registru poskytuje další kontrolu nad tím, které součásti registru se čtou, kopírují nebo zapisují.
- maskování cílového registru určuje, které součásti cílového registru se zapíšou.
Nové funkce
Nové funkce verze vrcholového shaderu vs_3_0 jsou uvedeny v následujících částech.
Indexování registrů
V dřívějších modelech shaderu lze indexovat pouze konstantní banku registru. V tomto modelu je možné indexovat následující banky registrů pomocí registru čítačů smyčky (aL):
- Vstupní registr (v#)
- Výstupní registr (o#)
Textury vrcholů
Tento model shaderu podporuje vyhledávání textur v shaderu vrcholů pomocí texldl. Modul vrcholů má čtyři fáze vzorkování textury (odlišné od vzorkovníku mapy posunutí a vzorkovače textury v pixelovém modulu), které lze použít k vzorkování textur nastavených v těchto fázích. Viz textury vrcholů v vs_3_0 (DirectX HLSL).
Frekvence datových proudů vrcholů
Tato funkce umožňuje inicializovat podmnožinu vstupních registrů rychlostí odlišnou od jednoho vrcholu. Viz výkresu neindexované geometrie.
Výstup shaderu
Podobně jako u vs_2_0 se výstup shaderu může u statického řízení toku lišit. Při dynamickém větvení buďte opatrní, protože to může způsobit, že se výstupy shaderu budou lišit podle vrcholu. Výsledkem budou nepředvídatelné výsledky na jiném hardwaru.
Dynamické řízení toku
Podporují se všechny pokyny pro řízení dynamického toku. Maximální povolená hodnota hloubky vnoření je 24. (Podrobnosti najdete v tématu omezení vnoření toku.)
Dočasné registry
Podporuje se celkem 32 dočasných registrů (r#).
Řízení statického toku
Maximální hloubka vnoření pro smyčku – vs./rep – vs. je 4. Maximální hloubka vnoření pro volání – vs. logická hodnota volání/– vs./pred callnz – vs. je 4. Pro , pokud je logická hodnota – vs., maximální povolená hodnota hloubky vnoření je 24. (Podrobnosti najdete v tématu omezení vnoření toku.)
Tvrzení
Predikace instrukcí je podporovaná. Použijte setp_comp – vs. k nastavení predikátu.
Počet instrukcí
Každý vrchol shader je povolen kdekoli od 512 až do počtu slotů v MaxVertexShader30InstructionSlots v D3DCAPS9. Počet spuštění instrukcí může být mnohem vyšší kvůli podpoře smyčky nebo opakování; To je však omezeno MaxVShaderInstructionsExecuted v D3DCAPS9, které by mělo být alespoň 0xFFFF.
Caps zařízení
Pokud je podporován vrchol shader 3_0, jsou v hardwaru podporovány následující limity (minimálně):
Čepice | Schopnost |
---|---|
Caps shaderu |
|
GuardBandLeft, GuardBandTop, GuardBandRight, GuardBandBottom | 8K |
VertexShaderVersion | 3_0 |
MaxVertexShaderConst | 256 |
MaxVertexShader30InstructionSlots | 512 |
Podpora mlhy | D3DPRASTERCAPS_FOGVERTEX |
VertexTextureFilterCaps | |
D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET | Prvky vrcholu v deklaraci vrcholu můžou sdílet stejný posun datového proudu. |
Formáty vrcholů |
|
Související témata