Vertex- und Fragment-Shader werden nicht sequentiell, sondern gleichzeitig ausgeführt, und die GPU gleicht sie automatisch aus, sodass es nicht möglich ist, bestimmte Timings wie 7 ms für die eine und 1 ms für die andere sinnvoll zuzuweisen.
Sie können jedoch ein einfaches Experiment durchführen, um zu messen, wo der Engpass liegt: Setzen Sie die Ansichtsprojektionsmatrix für alle Ihre Draw-Aufrufe auf alle Nullen. Dadurch werden alle Scheitelpunkte für ihre Positionen auf Null ausgegeben und alle Dreiecke entartet. Daher werden alle Raster- und Fragmentschattierungen kurzgeschlossen, während die gesamte Vertex-Shader-Arbeit erhalten bleibt (der Shader-Compiler kann nichts optimieren, da er nicht weiß, dass die Matrix zur Laufzeit auf Null gesetzt wird).
Wenn Sie die Leistung mit den auf Null gesetzten Matrizen messen, sehen Sie, wie viel Zeit erforderlich ist, um nur die Vertex-Shader auszuführen, ohne dass gleichzeitig Raster- oder Fragment-Shading-Arbeiten in der GPU ausgeführt werden müssen. Sie können dies dann mit der Zeit vergleichen, die für das normale Rendern für jeden Durchgang benötigt wird. Wenn die beiden Zeiten ähnlich sind, ist der Durchgang wahrscheinlich stark vertexgebunden. Wenn das Null-Matrix-Rendering erheblich schneller ist, ist es wahrscheinlich pixelgebunden. Es ist auch möglich, ein Zwischenergebnis zu erhalten, das anzeigt, dass die Arbeit ungefähr gleichmäßig zwischen den beiden aufgeteilt ist.