Pixel Shader-källregistreringsmodifierare

Använd källregistreringsmodifierare för att ändra värdet som läse från ett register innan en instruktion körs. Innehållet i ett källregister lämnas oförändrat. Modifierare är användbara för att justera intervallet av registerdata inför instruktionen. En uppsättning modifierare som kallas väljare kopierar eller replikerar data från en enda kanal (r,g,b,a) till de andra kanalerna.

ps_1_1 - ps_1_4

Den här tabellen identifierar de versioner som stöder varje modifierare:

Källregistreringsmodifierare Syntax Version 1_1 Version 1_2 Version 1_3 Version 1_4
bias register_bias X X X X
invertera 1 – registrera dig X X X X
förneka -Registrera dig X X X X
skala med 2 register_x2 X
signerad skalning register_bx2 X X X X
texld- och texcrd-modifierare register_d* X X X X
källregister med register.xyzw X X X X

 

Källregistreringsmodifierare kan endast användas på aritmetiska instruktioner. De kan inte användas på texturadressinstruktioner. Undantaget är skala med 2 modifierare. För version 1_1 kan signerad skala användas på källargumentet för valfri texm*-instruktion. För version 1_2 eller 1_3 kan signerad skala användas på källargumentet för valfri texturadressinstruktion.

Vissa begränsningar för modifierare:

  • Negate kan kombineras med antingen bias, signerad skalning eller scalex2-modifierare. När det kombineras körs negate sist.
  • Invertera kan inte kombineras med någon annan modifierare.
  • Invertera, negat, bias, signerad skalning och scalex2 kan kombineras med någon av väljarna.
  • Källregistreringsmodifierare bör inte användas i konstanta register eftersom de orsakar odefinierade resultat. För version 1_4 tillåts inte modifierare på konstanter och verifieringen misslyckas.

ps_2_0 och senare

För version ps_2_0 och senare har antalet modifierare förenklats.

Förneka

Negera innehållet i källregistret.

Komponentmodifierare Beskrivning
- r Källförnekelse

 

Negatemodifieraren kan inte användas i det andra källregistret med följande instruktioner: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, och m4x4 - ps.

Pixelskuggningsversioner 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Belopp

Ta det absoluta värdet för registret.

Pixelskuggningsversioner 2_0 2_x 2_sw 3_0 3_sw
magmuskler x x

 

Om någon version 3-skuggning läser från ett eller flera konstanta flyttalregister (c#), måste något av följande vara sant.

  • Alla konstanta flyttalsregister måste använda abs-modifieraren.
  • Ingen av de konstanta flyttalsregister kan använda abs-modifieraren.

Pixel Shader Registrera modifierare