Modificatori registro origine pixel shader

Usare i modificatori del registro di origine per modificare il valore letto da un registro prima dell'esecuzione di un'istruzione. Il contenuto di un registro di origine rimane invariato. I modificatori sono utili per regolare l'intervallo di dati del registro in preparazione dell'istruzione. Un set di modificatori denominati selettori copia o replica i dati da un singolo canale (r,g,b,a) negli altri canali.

ps_1_1 - ps_1_4

Questa tabella identifica le versioni che supportano ogni modificatore:

Modificatori del registro di origine Sintassi Versione 1_1 Versione 1_2 Versione 1_3 Versione 1_4
Pregiudizi register_bias X X X X
Invertire 1 - Registrazione X X X X
negate -Registro X X X X
scalare di 2 register_x2 X
ridimensionamento firmato register_bx2 X X X X
modificatori texld e texcrd register_d* X X X X
source register swizzling register.xyzw X X X X

 

I modificatori del registro di origine possono essere usati solo in istruzioni aritmetiche. Non possono essere usate nelle istruzioni relative all'indirizzo della trama. L'eccezione a questa è la scala di 2 modificatore. Per la versione 1_1, la scala con segno può essere usata nell'argomento di origine di qualsiasi istruzione texm*. Per la versione 1_2 o 1_3, la scala con segno può essere usata nell'argomento di origine di qualsiasi istruzione dell'indirizzo della trama.

Alcune restrizioni specifiche del modificatore:

  • La negazione può essere combinata con il modificatore bias, signed scaling o scalex2. Se combinata, la negazione viene eseguita per ultima.
  • Non è possibile combinare inverti con qualsiasi altro modificatore.
  • Inverti, nega, bias, ridimensionamento con segno e scalex2 può essere combinato con uno dei selettori.
  • I modificatori del registro di origine non devono essere usati nei registri costanti perché causeranno risultati non definiti. Per la versione 1_4, i modificatori sulle costanti non sono consentiti e avranno esito negativo.

ps_2_0 e versioni successive

Per le versioni ps_2_0 e successive, il numero di modificatori è stato semplificato.

Negate

Nega il contenuto del registro di origine.

Modificatore del componente Descrizione
-R Negazione dell'origine

 

Il modificatore negate non può essere usato nel secondo registro di origine di queste istruzioni: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps e m4x4 - ps.

Versioni del pixel shader 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Valore assoluto

Accettare il valore assoluto del registro.

Versioni del pixel shader 2_0 2_x 2_sw 3_0 3_sw
abs x x

 

Se una versione 3 dello shader legge da uno o più registri float costanti (c#), uno dei seguenti deve essere true.

  • Tutti i registri a virgola mobile costanti devono usare il modificatore abs.
  • Nessuno dei registri a virgola mobile costante può usare il modificatore abs.

Modificatori del registro pixel shader