cut_stream (sm5 - asm)

The geometry shader instruction that completes the current primitive topology at the specified stream, if any vertices have been emitted to it, and starts a new topology of the type declared by the geometry shader at that stream.

cut_stream streamIndex




[in] The stream index.



When this instruction is executed, any previously emitted topology by the geometry shader invocation is completed. If there are not enough vertices emitted for the previous primitive topology, then they are discarded. Because the only available output topologies for the geometry shader are pointlist, linestrip and trianglestrip, there are never any leftover vertices.

streamIndex must be an immediate value [0..3] for a declared stream.

After the previous topology, if any, is completed, this instruction causes a new topology to begin, using the topology declared as the output for the geometry shader.


  • This instruction applies to the geometry shader only.
  • cut_stream can appear any number of times in the geometry shader, including within flow control.
  • If the geometry shader ends and vertices have been emitted, the topology they are building is completed, as if a cut_stream instruction was executed as the last instruction.
  • If streams have not been declared, you must use cut instead of cut_stream.

This instruction applies to the following shader stages:



Minimum Shader Model

This instruction is supported in the following shader models:

Shader ModelSupported
Shader Model 5 yes
Shader Model 4.1 no
Shader Model 4 no
Shader Model 3 (DirectX HLSL) no
Shader Model 2 (DirectX HLSL) no
Shader Model 1 (DirectX HLSL) no


Related topics

Shader Model 5 Assembly (DirectX HLSL)