Scorrimento rapido del registro di origine (riferimento PS HLSL)
Swizzling si riferisce alla possibilità di copiare qualsiasi componente del registro di origine in qualsiasi componente registro temporaneo. Lo scorrimento rapido non influisce sui dati del registro di origine. Prima dell'esecuzione di un'istruzione, i dati in un registro di origine vengono copiati in un registro temporaneo.
Swizzling di origine
Lo swizzle di origine consente a singoli componenti di un registro di origine di assumere il valore di uno dei quattro componenti dello stesso registro di origine prima che il registro venga letto per il calcolo.
Ad esempio, lo swizzle con estensione zxxy significa:
- Il componente x assumerà il valore del componente .z
- Il componente .y assumerà il valore del componente x
- Il componente z assumerà il valore del componente x
- Il componente .w assumerà il valore del componente .y
I componenti possono essere visualizzati in qualsiasi ordine. Se vengono specificati meno di quattro componenti, l'ultimo componente viene ripetuto. Per esempio:
.xy = .xyyy
.wzx = .wzxx
.z = .zzzz
Se non viene specificato alcun componente, non viene applicato alcun controllo swizzling.
Alcune istruzioni prevedono restrizioni per lo swizzle di origine. Sono elencati nelle pagine di riferimento delle istruzioni rispettate.
Versioni del pixel shader | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
.x | x | x | x | x | x | x | |||
.y | x | x | x | x | x | x | |||
.z | x* | x* | x* | x | x | x | x | x | x |
.w | x | x | x | x | x | x | x | x | x |
.xyzw (impostazione predefinita) | x | x | x | x | x | x | x | x | x |
.yzxw | x | x | x | x | x | ||||
Zxyw | x | x | x | x | x | ||||
.wzyx | x | x | x | x | x | ||||
swizzle arbitrario | x | x | x | x |
* Disponibile solo se la maschera di scrittura di destinazione è .w (.a).
Swizzle arbitrario
Gli swizzles possono essere applicati ai registri di origine in un ordine arbitrario; ovvero qualsiasi registro di origine può accettare qualsiasi maschera del componente, in qualsiasi ordine.
Replica swizzle
Replica swizzle copia un componente in un altro. Questo è, esattamente uno dei componenti .x, .y, .z, .w swizzle (o .r, .g, .b, .a equivalenti) deve essere specificato.
Argomenti correlati