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) | 否 |