在前面的教程中,我们分析了VS-PS的shader管线组合执行过程,本章我们分析一下VS-GS-PS的管线执行过程,主要是GS阶段hardware何如调度。
参考资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-8/
从D3D10开始,D3D 管线中增加了GS 阶段,如下图所示:
从前面的教程中,我们知道在VS-PS的管线执行流程中,VS的输出传输到一个VS-Output buffer中,之后PA会从这个buffer中得到VS后的顶点信息,然后进行clipper等操作后,把体元传输到光栅化阶段。
VS-GS-PS的hardware管线执行流程大概如下:VS的输出会先传输到一个缓冲中,之后会和IA中体元信息通过Shader调度模块传输到GS阶段,开始GS的wave/warp执行,GS的输出,会把体元信息传输到PA,顶点信息传输到Shader output 缓冲中,最后再传送到PA,然后进行光栅化的操作。