dcl_maxOutputVertexCount (sm4 - asm)

声明几何着色器可以输出的最大顶点数。

dcl_maxOutputVertexCount 计数
说明
计数
[in]介于 1 和 n(含 1)之间的 32 位无符号整数。

几何着色器最多可以输出 1024 个 32 位值。 此最大值包括输入数据的大小以及着色器创建的数据的大小。

下面是一些限制:

  • 如果在几何着色器完成执行之前达到顶点数,着色器将终止。
  • 几何着色器可以在输出任何顶点之前到达其程序的末尾;这是完全合法的。
  • 如果要调试几何着色器,可以通过计算生成的发出指令的数量来判断生成的顶点数。

此指令适用于以下着色器阶段:

顶点着色器 几何着色器 像素着色器
x

包含此指令以帮助调试程序集中的着色器;无法使用着色器模型 4 以汇编语言创作着色器。

示例

下面是一些示例。

假设输入数据由位置 (.xyzw) 和颜色 (.rgb) 组成。 每个组件使用一个字节;给定 7 个字节,着色器可以生成的最大顶点数为 1024 / (4 + 3) = 146。

dcl_maxOutputVertexCount 146

假设几何着色器创建 32 个 4 分量向量。 着色器可生成的最大顶点数为 1024 / (32 * 4) = 8。

dcl_maxOutputVertexCount 8

最小着色器模型

以下着色器模型中支持此函数。

着色器模型 支持
着色器模型 5
着色器模型 4.1
着色器模型 4
着色器模型 3 (DirectX HLSL)
着色器模型 2 (DirectX HLSL)
着色器模型 1 (DirectX HLSL)

着色器模型 4 程序集 (DirectX HLSL)