源寄存器重排 (HLSL VS 参考)

在指令运行之前,源寄存器中的数据将复制到临时寄存器。 重排是指将任何源注册组件复制到任何临时注册组件的功能。 重排不会影响源寄存器数据。

组件重排

如下表所示,重排可以应用于源寄存器数据的单个组件(其中是有效的顶点着色器输入之一 寄存器 - vs_1_1)。

组件修饰符 描述
r.[xyzw][xyzw][xyzw][xyzw] 源重排

 

  • 始终复制所有四个组件。 如果指定了少于四个组件,则最后一个组件重复(xy 表示 .xyyy)。 如果未指定任何组件,则重复 x (.xxxx)。
  • 组件可以按任意顺序显示。 v0.ywx 生成 v0.ywxx。
  • rgba 组件可以分别用于 xyzw(r for x、g for b 等)。
  • 这些说明实现源寄存器单组件重排:exp、expp、logp、pow、rcp、rsq。 这些说明的结果将复制到所有四个目标寄存器组件。

重排不能用于 m3x2 - vsm3x3 - vsm4x3 - vsm4x4 - vs 指令。

顶点着色器寄存器修饰符