Source Register Swizzling (référence VS HLSL)

Avant l’exécution d’une instruction, les données d’un registre source sont copiées dans un registre temporaire. Swizzling fait référence à la possibilité de copier n’importe quel composant de registre source vers n’importe quel composant de registre temporaire. Swizzling n’affecte pas les données du registre source.

Swizzling du composant

Comme indiqué dans le tableau suivant, la swizzling peut être appliquée aux composants individuels des données du registre source (où est l’un des registres d’entrée de nuanceur de vertex valides - vs_1_1).

Modificateur de composant Description
r.[xyzw][xyzw][xyzw][xyzw] Source swizzle

 

  • Les quatre composants sont toujours copiés. Si moins de quatre composants sont spécifiés, le dernier composant est répété (xy signifie .xyyy). Si aucun composant n’est spécifié, x est répété (.xxxx).
  • Les composants peuvent apparaître dans n’importe quel ordre. v0.ywx génère v0.ywxx.
  • Les composants rgba peuvent être utilisés respectivement pour xyzw (r pour x, g pour b, etc.).
  • Ces instructions implémentent des swizzles à composant unique source-register : exp, expp, log, logp, pow, rcp, rsq. Le résultat de ces instructions est copié dans les quatre composants du registre de destination.

Swizzling ne peut pas être utilisé sur les instructions m3x2 - vs, m3x3 - vs, m4x3 - vs et m4x4 - vs .

Modificateurs de registre du nuanceur de vertex