dcl_maxOutputVertexCount (sm4 - asm)
Declares the maximum number of vertices that can be output by a geometry shader.
[in] A 32-bit unsigned integer between 1 and n, inclusive.
A geometry shader can output a maximum of 1024 32-bit values. This maximum includes the size of the input data and the size of the data created by the shader.
Here are a few limitations:
- If the number of vertices is reached before the geometry shader finishes executing, the shader terminates.
- A geometry-shader can reach the end of its program before outputting any vertices; this is perfectly legal.
- If you are debugging a geometry shader, you can tell the number of vertices generated by counting the number of emit instructions generated.
This instruction applies to the following shader stages:
|Vertex Shader||Geometry Shader||Pixel Shader|
This instruction is included to aid in debugging a shader in assembly; you cannot author a shader in assembly language using Shader Model 4.
Here are some examples.
Assume input data made up of position (.xyzw) and color (.rgb). Each component consumes one byte; given 7 bytes, the maximum number of vertices the shader can generate would be 1024 / (4 + 3) = 146.
Assume your geometry shader creates 32 4-component vectors. The maximum number of vertices the shader can generate would be 1024 / (32 * 4) = 8.
This function is supported in the following shader models.
|Shader Model 5||yes|
|Shader Model 4.1||yes|
|Shader Model 4||yes|
|Shader Model 3 (DirectX HLSL)||no|
|Shader Model 2 (DirectX HLSL)||no|
|Shader Model 1 (DirectX HLSL)||no|