Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Instrukční token informuje ovladač o konkrétní operaci, která se má provést, a skládá se z následujících bitů:
Bity
[15:00] Bity 0 až 15 označují kód operace. D3DSIO_* je příkladem operačního kódu, kde * představuje instrukce. Například následující fragment kódu ukazuje instrukci ADD:
// D3DSIO_ADD d, s1, s2
[23:16] Bity 16 až 23 označují specifické ovládací prvky související s provozním kódem.
[27:24] Pro verze shaderu pixelů a vrcholů starší než 2_0 jsou bity 24 až 27 vyhrazeny a nastaveny na 0x0.
Pro pixelové a vertexové shadery verze 2.0 a novější určují bity 24 až 27 velikost v DWORDech instrukce kromě samotného tokenu instrukce (to znamená počet tokenů, které tvoří instrukci kromě tokenu instrukce).
[28] U verzí shaderu pixelů a vrcholů starších než 2_0 je bit 28 rezervovaný a nastavený na 0x0.
Pro pixelové a vrcholové shadery verze 2_0 a novější bit 28 označuje, jestli je instrukce podmíněná, to znamená, že obsahuje extra predikátový zdrojový výraz token na konci kódu shaderu. Pokud je tento bit nastavený na 0x1, instrukce je podmíněná.
[29] Vyhrazeno. Tato hodnota je nastavená na 0x0.
[30] U verzí pixelových shaderů starších než 2_0 je bit 30 spoluvydávací. Pokud je nastavena na hodnotu 1, spusťte tuto instrukce s předchozími pokyny; v opačném případě spusťte samostatně.
Pro pixel shader verze 2_0 a novější a všechny verze vertex shaderu je bit 30 vyhrazený a nastavený na hodnotu 0x0.
[31] Bit 31 je nula (0x0).
komentáře k
Další informace o operacích, které je možné zadat v bitech 0 až 15 instrukčních tokenů, najdete v referenci Pixel Shader a Vertex Shader v nejnovější dokumentaci k sadě DirectX SDK.
Jakmile modul runtime DirectX3D obdrží kód shaderu z aplikace, modul runtime před předáním kódu ovladači ověří kód. Modul runtime obvykle přidává předponu "D3DSIO_" k instrukcím assembleru, aby vytvořil kód operace. Například následující pokyny assembleru odpovídají operacím režimu jádra:
| Instrukce assembleru | Operace režimu jádra |
|---|---|
přidat |
D3DSIO_ADD |
mov |
D3DSIO_MOV |
dílčí |
D3DSIO_SUB |
Tex |
D3DSIO_TEX |
texcoord |
D3DSIO_TEXCOORD |
Všimněte si, že ve všech verzích vrcholového stínovače se instrukce sub implementuje jako operace D3DSIO_ADD se zdrojovým modifikátorem (bity 27:24) druhého zdroje nastaveného na negaci (0x1).
Pokyny pro tex a texcoord platí pro pixel shader verze 1_0 až 1_3; každá instrukce má přidružený jeden cílový parametr .
Pokyny pro texld a texcrd jsou nové pro pixel shader verze 1_4 a novější; každá instrukce má přidružené cílové i zdrojové parametry .
Modul runtime převede instrukce assembleru tex a texld na operaci D3DSIO_TEX režimu jádra. Běhové prostředí převede instrukce assembleru texcoord a texcrd na operaci D3DSIO_TEXCOORD v režimu jádra. Ovladače nejprve ověřují verzi pixelového shaderu a poté odpovídajícím způsobem zpracovávají instrukce. Pokud například ovladač ověří, že obdržel kód shaderu verze 1_4 pixelů s operací D3DSIO_TEX, ovladač určí, že cíl a zdrojové parametry se řídí instrukčním tokenem.
Požadavky
K dispozici v systémech Windows Vista a novějších verzích operačních systémů Windows.