Condividi tramite


Istruzioni - vs_2_x

Questa sezione contiene informazioni di riferimento per la versione del vertex shader 2_x istruzioni.

Esistono diversi tipi di istruzioni per vertex shader, come illustrato nella tabella. Le colonne a destra indicano quanto segue:

  • Slot di istruzioni: numero di slot di istruzioni usati da ogni istruzione.
  • Installazione: istruzioni non aritmetiche. Ogni shader deve avere un'istruzione di versione e deve essere la prima istruzione.
  • Aritmetica: queste istruzioni forniscono le operazioni matematiche in uno shader.
  • Controllo del flusso: queste istruzioni aggiungono funzionalità di controllo del flusso, ad esempio loop - vs... endloop - vs, se bool - vs... else... chiamate endif e subroutine.
  • Novità: queste istruzioni sono nuove per questa versione.

Set di istruzioni

Nome Descrizione Slot di istruzioni Installazione Aritmetico Controllo di flusso Nuovo
abs - vs Valore assoluto 1 x
add - vs Aggiungere due vettori 1 x
break - vs Interruzione di un ciclo - vs... endloop - vs o rep... blocco endrep 1 x x
break_comp - vs Interruzione condizionale di un ciclo - vs... endloop - vs o rep... blocco endrep , con un confronto 3 x x
breakp - vs Interruzione di un ciclo - vs... endloop - vs o rep... blocco endrep , basato su un predicato 3 x x
call - vs Chiamare una subroutine 2 x
callnz bool - vs Chiamare una subroutine se un registro booleano non è zero 3 x
callnz pred - vs Chiamare una subroutine se un registro predicato non è zero 3 x x
crs - vs Prodotto incrociato 2 x
dcl_usage input (sm1, sm2, sm3 - vs asm) Dichiarare registri dei vertici di input (vedere Registri - vs_2_x) 0 x
def - vs Definire costanti 0 x
defb - vs Definire una costante booleana 0 x
defi - vs Definire una costante integer 0 x
dp3 - vs Prodotto punto a tre componenti 1 x
dp4 - vs Prodotto punto a quattro componenti 1 x
dst - vs Calcolare il vettore di distanza 1 x
else - vs Iniziare un altro - vs block 1 x
endif - vs Terminare un valore se bool - vs... else - vs block 1 x
endloop - vs Fine di un ciclo - vs block 2 x
endrep - vs Fine di un blocco di ripetizione 2 x
exp - vs Precisione completa 2x 1 x
expp - vs Precisione parziale 2x 1 x
frc - vs Componente frazionaria 1 x
if bool - vs Iniziare un valore bool - vs block (usando una condizione booleana) 3 x
if_comp - vs Iniziare un valore bool if - vs block, con un confronto 3 x x
se pred - vs Avviare un valore bool if - vs block con una condizione di predicato 3 x x
etichetta - vs Etichetta 0 x
lit - vs Calcolo parziale dell'illuminazione 3 x
log - vs Log₂ di precisione completa(x) 1 x
logp - vs Log₂ di precisione parziale(x) 1 x
ciclo - vs Ciclo 3 x
lrp - vs Interpolazione lineare 2 x
m3x2 - vs Moltiplicare 3x2 2 x
m3x3 - vs Moltiplicare 3x3 3 x
m3x4 - vs Moltiplicare 3x4 4 x
m4x3 - vs Moltiplicare 4x3 3 x
m4x4 - vs Moltiplicare 4x4 4 x
pazzo - vs Moltiplicare e aggiungere 1 x
max - vs Massimo 1 x
min - vs Minima 1 x
mov - vs Spostamento 1 x
mova - vs Spostare i dati da un registro a virgola mobile al registro indirizzi (a0) 1 x
mul - vs Moltiplicazione 1 x
nop - vs Nessuna operazione 1 x
nrm - vs Normalizzare un vettore 4D 3 x
pow - vs xy 3 x
rcp - vs Reciproco 1 x
rep - vs Repeat 3 x
ret - vs Fine di una subroutine o principale 1 x
rsq - vs Radice quadrata reciproca 1 x
setp_comp - vs Impostare il registro predicato 1 x x
sge - vs Confronto maggiore o uguale 1 x
sgn - vs Sign 3 x
sincos - vs Sine e cosine 8 x
slt - vs Minore di confronto 1 x
sub - vs Sottrazione 1 x
vs Versione 0 x

 

Istruzioni di Vertex Shader