Condividi tramite


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.

modificatori di origine pixel shader

ps_1_1__ps_1_2__ps_1_3__ps_1_4 registri

ps_2_0 registri

ps_2_x registri

ps_3_0 registri