软件着色器

实现软件着色器以允许在没有基础硬件支持的情况下开发着色器。 它们支持完整的功能集。 因为它们是在软件中实现的,所以它们不会产生最佳性能。

版本 功能集 要求
vs_2_sw vs_2_x 的所有功能 仅受软件顶点处理和参考设备支持。
vs_3_sw vs_3_0 的所有功能 仅受软件顶点处理和参考设备支持。
ps_2_sw ps_2_x 的所有功能 仅受参考设备支持。
ps_3_sw ps_3_0 的所有功能 仅受参考设备支持。

 

对于软件着色器,某些验证是宽松的。 这对于调试和原型制作非常有用。 以下验证是宽松的: (所有其他验证保持不变)

验证类型 放松
指令计数: 对于vs_2_sw、vs_3_sw和ps_2_sw ps_3_sw来说,这很轻松。 允许无限制的指令。
浮点常量计数: 对于vs_2_sw、vs_3_sw和ps_2_sw ps_3_sw来说,这很轻松。 最多允许 8192 个常量。
整数常量计数: 对于vs_2_sw、vs_3_sw和ps_2_sw ps_3_sw来说,这很轻松。 最多允许 2048 个常量。
布尔常量计数: 对于vs_2_sw、vs_3_sw和ps_2_sw ps_3_sw来说,这很轻松。 最多允许 2048 个常量。
依赖读取深度: 对于ps_2_sw来说,这很轻松。 与vs_3_0和ps_3_0一样,允许无限的从属读取。
流控制指令和标签的数目: 对于vs_2_sw来说,这很轻松。 允许无限流量控制指令和最多 2048 个标签。
循环计数/开始/步骤: 这些vs_2_sw、vs_3_sw、ps_2_sw和ps_3_sw都比较宽松。 代表和循环指令的迭代开始和交互步骤大小是 32 位有符号的交错器。 插接计数最多可以为 MAX_INT/64。
读取端口限制: vs_2_sw、vs_3_sw、ps_2_sw和ps_3_sw没有读取端口限制。
内插器数: vs_3_sw 中有 16 个 寄存器 - vs_3_0 (o#) ,ps_3_sw 有 10 个 ps_3_0 寄存器 (v#) 。

 

Asm 着色器参考