Answers:
顶点和片段着色器同时运行,而不是顺序运行,并且GPU自动在它们之间进行负载平衡,因此不可能有意义地分配特定的时间,例如一个为7 ms,另一个为1 ms。
但是,您可以做一个简单的实验来衡量瓶颈所在:将所有绘制调用的视图投影矩阵设置为全零。这将使所有顶点的位置输出为零,并使所有三角形退化。因此,它会缩短所有光栅化和片段着色的时间,同时保持所有顶点着色器的工作(着色器编译器无法优化任何内容,因为它不知道矩阵在运行时将设置为零)。
在将矩阵清零的情况下衡量性能时,您将看到仅运行顶点着色器而无需在GPU中进行任何并发光栅化或片段着色的时间。然后,您可以将其与每次通过普通渲染所需的时间进行比较。如果两次相似,则传递可能与顶点高度相关;如果零矩阵渲染的速度明显更快,则可能是像素绑定的。也有可能获得中间结果,表明工作在两者之间平均分配。