Registrazione di origine a scorrimento a scorrimento (riferimento PS HLSL)

Swizzling fa riferimento alla possibilità di copiare qualsiasi componente del registro di origine in qualsiasi componente di registro temporaneo. Swizzling 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. Ad esempio:

.xy  = .xyyy
.wzx = .wzxx
.z   = .zzzz

Se non viene specificato alcun componente, non viene applicato alcun tipo di scorrimento.

Alcune istruzioni hanno restrizioni per lo swizzle di origine. Sono elencati nelle pagine di riferimento alle istruzioni rispettate.

Versioni di 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 componente, in qualsiasi ordine.

Replica swizzle

Replicare swizzle copia un componente in un altro. È necessario specificare esattamente uno dei componenti .x, .y, .z, .w swizzle (o .r, .g, .b, .a equivalenti).

Modificatori registro origine pixel shader

registri ps_1_1__ps_1_2__ps_1_3__ps_1_4

registri ps_2_0

registri ps_2_x

registri ps_3_0