vs_2_x

可编程顶点着色器由一组对顶点数据进行操作的指令组成。 注册传入和传出 ALU 的数据。 可以应用其他控件来修改指令、结果或写出的数据。

顶点着色器版本vs_2_x扩展vs_2_0支持的功能集。 每个附加功能都由 D3DVS20CAPS 中的 D3DCAPS9 结构中的相应上限表示。 若要使用这些大写表示的任何增强功能,必须将顶点着色器版本指定为vs_2_x。

新功能

新功能如下所示:

动态流控制

如果 D3DVS20CAPS> 0,则支持以下动态流控制指令:

如果还设置了 D3DVS20CAPS ,则支持以下其他流控制指令:

动态流控制深度的值范围为 0 到 24,等于动态流控制指令的嵌套深度, (请参阅 流控制嵌套限制 了解详细信息) 。 如果此上限为零,则设备不支持动态流控制指令。

临时寄存器数

D3DVS20CAPS 表示设备支持的 临时寄存器数。 此上限的值范围为 12 到 32。

静态流控制嵌套深度

D3DVS20CAPS 表示两种类型的静态流控制指令的嵌套深度: loop - vs/rep - vs and call - vs/callnz bool - vs/if bool - vs. loop - vs/rep - vs 指令可以嵌套到 D3DVS20CAPS 深度。 单独调用 - vs/callnz bool - vs 指令可以嵌套到 D3DVS20CAPS 深度。 如果还设置了 D3DVS20CAPS,则将 callnz pred - vs 计入调用的嵌套深度 - vs/callnz bool - vs/if bool - vs (有关详细信息,请参阅 流控制嵌套限制) 。

预测

如果设置了 D3DVS20CAPS ,则设备支持 setp_comp - vs 和指令预测。 如果 D3DVS20CAPS 也大于 0,则支持以下其他动态流控制指令:

指令计数

每个顶点着色器最多可以存储 256 条指令。 由于循环/代表支持) , (运行指令的数量可能要高得多,并且受 D3DCAPS9 的上限,至少应0xFFFF。

顶点着色器