Condividi tramite


Registro temporaneo (riferimento per HLSL VS)

Un registro temporaneo vertex shader viene usato per contenere i risultati intermedi.

Prima di usarlo, è necessario inizializzare un registro temporaneo. Ogni registro temporaneo ha accesso a scrittura singola e a tre letture. Ciò significa che un'istruzione di shader singola può usare fino a tre registri temporanei come input.

I valori in un registro temporaneo che rimangono dalle chiamate precedenti del vertex shader non possono essere usati.

Un registro è costituito da proprietà che determinano il comportamento di ogni registro.

Proprietà Descrizione
Nome r[n]. n è un numero di registro facoltativo. Il valore predefinito è 0 ed è il valore utilizzato se non viene specificato alcun valore.
Conteggio Massimo 12 registri.
Autorizzazioni di I/O Proprietà di lettura/scrittura. Questo registro può essere letto o scritto dall'API o dal shader.
Porte di lettura Il numero di volte in cui un registro può essere letto all'interno di una singola istruzione è 3. Un registro temporaneo è l'unico registro che può essere letto e scritto più volte in una singola istruzione.

 

Ogni registro temporaneo ha accesso a scrittura singola e a tre letture. Pertanto, un'istruzione può avere un numero massimo di tre registri temporanei nel relativo set di operandi di origine di input.

Non è possibile usare valori in un registro temporaneo che rimane dalle chiamate precedenti del vertex shader. Vertex shader che legge un valore da un registro temporaneo prima di scriverlo non riuscirà la chiamata API Direct3D per creare il vertex shader.

Esempio

Ecco un esempio che usa un registro temporaneo:

def c4, 0,0,0,1
...
// Decompress position
mov r0.x, v0.x
mov r0.y, c4.w       // 1
mov r0.z, v0.y
mov r0.w, c4.w       // 1

// Compute theta from distance and time
mov r4.xz, r0        // xz
Versioni del vertex shader 1_1 2_0 2_sw 2_x 3_0 3_sw
Registro temporaneo x x x x x x

 

Registri di Vertex Shader