registri ps_3_0
I pixel shader dipendono dai registri per ottenere i dati dei vertici, per restituire i dati dei pixel, per contenere i risultati temporanei durante i calcoli e per identificare le fasi di campionamento delle trame. Esistono diversi tipi di registri, ognuno con una funzionalità univoca. Questa sezione contiene informazioni di riferimento per i registri di input e output implementati dal pixel shader versione 3_0.
Nuovi registri
Registro di input
I registri di input (v#) sono ora completamente a virgola mobile e il registro delle coordinate della trama (t#) sono stati consolidati. Il dcl_semantics (sm3 - ps asm) nella parte superiore dello shader viene usato per descrivere ciò che è contenuto in un particolare Input_Register. Per questo modello viene introdotta una semantica per i tipi di pixel (analogamente al lato vertice). Non viene eseguito alcun blocco quando i registri di input vengono definiti come colori (ad esempio le coordinate della trama). La valutazione dei registri definiti come colore è diversa dalle coordinate della trama durante il multicampionamento.
Registro viso
Il registro dei visi (vFace) è una novità per questo modello. Si tratta di un registro scalare a virgola mobile che conterrà infine l'area primitiva. In ps_3_0, tuttavia, solo il segno di questo registro è valido. Di conseguenza, se il valore è minore di zero (il bit del segno è impostato negativo), la primitiva è la faccia posteriore (l'area è negativa, antiorario). Pertanto, in ps_3_0 ha senso confrontare questo registro solo con 0 (> 0 o < 0). All'interno del pixel shader, l'applicazione può prendere una decisione sulla tecnica di illuminazione da usare. L'illuminazione a due lati può essere ottenuta in questo modo. Questo registro richiede una dichiarazione, quindi l'utilizzo non dichiarato verrà contrassegnato come errore. Per le linee e le primitive punto, questo registro non è definito. Il registro viso può essere usato solo come condizione con le istruzioni seguenti: setp_comp - ps, if_comp - pso break_comp - ps.
Registro contatore cicli
La Registro contatori cicli ( aL) è una novità per questo modello. Viene incrementato automaticamente in ogni esecuzione del ciclo - ps/endloop - ps blocco. Può essere usato nel blocco per l'indirizzamento relativo, se necessario. Non è valido usare Loop Counter Register all'esterno del ciclo.
Registro posizioni
Il registro posizioni (vPos) è una novità per questo modello. Contiene i pixel correnti (x, y) nei canali corrispondenti. I canali (z, w) non sono definiti. Questo registro richiede una dichiarazione, quindi l'utilizzo non dichiarato verrà contrassegnato come errore. Se dichiarato, questo registro deve avere esattamente una delle maschere seguenti: .x, .y, .xy.
Tipi di registro di input
Registro | Nome | Contare | R/W | # Porte di lettura | # Reads/inst | Dimensione | RelAddr | Impostazioni predefinite | Richiede DCL |
---|---|---|---|---|---|---|---|---|---|
v# | registro di input | 10 | R | 1 | Illimitato | 4 | ale | Nessuno | Sì |
r# | registro temporaneo | 32 | R/W | 3 | Illimitato | 4 | No | Nessuno | No |
c# | registro float costante | 224 | R | 1 | Illimitato | 4 | No | 0000 | No |
io# | dei registri interi costanti | 16 | R | 1 | 1 | 4 | No | 0000 | No |
b# | di registro booleano costante | 16 | R | 1 | 1 | 1 | No | FALSO | No |
p0 | registro predicato | 1 | R | 1 | 1 | 1 | No | Nessuno | No |
s# | Sampler (Direct3D 9 asm-ps) | 16 | R | 1 | 1 | 4 | No | Vedere la nota 1 | Sì |
vFace | Face_Register | 1 | R | 1 | Illimitato | 1 | No | Nessuno | Sì |
VPos | Position_Register | 1 | R | 1 | Illimitato | 4 | No | Nessuno | Sì |
ale | Loop_Counter_Register | 1 | R | 1 | Illimitato | 1 | n/a | Nessuno | No |
Note:
- Esistono valori predefiniti per le ricerche del campionatore, ma i valori dipendono dal formato di trama.
Il numero di readport è il numero di registri diversi (per ogni tipo di registro) che possono essere letti in un'unica istruzione.
Tipi di registro di output
Registro | Nome | Contare | R/W | Dimensione | RelAddr | Impostazioni predefinite | Richiede DCL |
---|---|---|---|---|---|---|---|
Oc# | registro colori di output | Vedere trame a più elementi (Direct3D 9) | W | 4 | No | Nessuno | No |
oDepth | registrazione profondità output | 1 | W | 1 | No | Nessuno | No |
Argomenti correlati