Les vertex et les shaders de fragments s'exécutent simultanément, pas séquentiellement, et le GPU équilibre automatiquement la charge entre eux, il n'est donc pas possible d'affecter de manière significative des temporisations spécifiques telles que 7 ms pour l'une et 1 ms pour l'autre.
Cependant, vous pouvez faire une expérience simple pour mesurer où se trouve le goulot d'étranglement: définissez la matrice de vue-projection sur tous les zéros pour tous vos appels de tirage. Cela fait que tous les sommets sortent zéro pour leurs positions et fait dégénérer tous les triangles; il court-circuite donc toute la pixellisation et l'ombrage des fragments, tout en gardant tout le travail du vertex shader (le compilateur du shader ne peut rien optimiser, car il ne sait pas que la matrice sera mise à zéro à l'exécution).
Lorsque vous mesurez les performances avec les matrices mises à zéro, vous verrez le temps nécessaire pour exécuter uniquement les vertex shaders, sans rasterisation simultanée ni travail d'ombrage de fragment dans le GPU. Vous pouvez ensuite comparer cela au temps nécessaire au rendu ordinaire pour chaque passage. Si les deux temps sont similaires, la passe est probablement fortement liée au sommet; si le rendu de la matrice mise à zéro est nettement plus rapide, il est probablement lié aux pixels. Il est également possible d'obtenir un résultat intermédiaire, indiquant que le travail est réparti à peu près également entre les deux.