vs_2_x
可编程顶点着色器由一组对顶点数据进行作的指令组成。 注册传入和传出 ALU 中的数据。 可以应用其他控件来修改指令、结果或写入的数据。
顶点着色器版本vs_2_x扩展vs_2_0支持的功能集。 每个附加功能都由 D3DVS20CAPS内 D3DCAPS9 结构中的相应上限表示。 若要使用这些上限表示的任何增强功能,必须将顶点着色器版本指定为vs_2_x。
- 说明 - vs_2_x包含可用说明的列表。
- 寄存器 - vs_2_x列出了顶点着色器 ALU 使用的不同类型的寄存器。
- 顶点着色器寄存器修饰符 用于修改指令的工作方式。
- 顶点着色器源寄存器修饰符 在指令运行前更改源寄存器数据。
- 源寄存器重排 提供对哪些寄存器组件进行读取、复制或写入的其他控制。
- 目标寄存器掩码 确定要写入的目标寄存器的哪些组件。
新功能
新功能如下所示:
动态流控制
如果 D3DVS20CAPS> 0,则支持以下动态流控制指令:
如果还设置了 D3DVS20CAPS,则支持以下其他流控制指令:
动态流控制深度的值范围是 0 到 24,等于动态流控制指令的嵌套深度(有关详细信息,请参阅 流控制嵌套限制)。 如果此上限为零,则设备不支持动态流控制指令。
临时寄存器数
D3DVS20CAPS 表示设备支持的 临时注册数数。 此上限的值范围为 12 到 32。
静态流控制嵌套深度
D3DVS20CAPS 表示两种类型的静态流控制指令的嵌套深度:循环 - vs/rep - vs 和 调用 - vs/callnz bool - vs/(如果 bool - vs)。loop - vs/rep - 与指令可以嵌套到D3DVS20CAPS深度。 独立调用 - vs/callnz bool - 与指令可以嵌套到深D3DVS20CAPS。 如果还设置了D3DVS20CAPS,则 callnz pred - vs 计入调用的嵌套深度 - vs/callnz bool - vs/if bool - vs(请参阅 流控制嵌套限制 了解详细信息)。
预测
如果设置了 D3DVS20CAPS,则设备支持 setp_comp - 与 和指令谓词。 如果D3DVS20CAPS也大于 0,则支持以下其他动态流控制指令:
指令计数
每个顶点着色器最多可以存储 256 条指令。 运行指令的数量可能要高得多(因为循环/代表支持),并受 D3DCAPS9限制,这至少应0xFFFF。
相关主题