Шейдери вершин та фрагментів працюють одночасно, а не послідовно, і GPU автоматично завантажує баланси між ними, тому неможливо осмислено призначити конкретні таймінги, такі як 7 мс для одного та 1 мс для іншого.
Однак ви можете зробити простий експеримент, щоб виміряти, де лежить вузьке місце: встановіть матрицю перегляду-проекції на всі нулі для всіх ваших викликів притягнення. Це змушує всі вершини виводити нуль для своїх позицій і змушує всі трикутники вироджуватися; отже, це коротке замикання всієї растерізації та затінення фрагментів, зберігаючи при цьому всі вершинні шейдери (компілятор шейдерів не може нічого оптимізувати, оскільки не знає, що матриця буде встановлена на нуль під час виконання).
Коли ви вимірюєте продуктивність за допомогою нульових матриць, ви побачите кількість часу, необхідного для запуску лише вершинних шейдерів, без одночасних робіт з растеризації та затінення фрагментів у графічному процесорі. Потім ви можете порівняти це з кількістю часу, необхідного для звичайної візуалізації для кожного проходу. Якщо два рази схожі, пропуск, ймовірно, дуже обмежений вершиною; якщо візуалізація з нульовою матрицею значно швидша, вона, ймовірно, пов'язана з пікселями. Можна також отримати проміжний результат, що вказує на те, що робота розподілена приблизно рівномірно між ними.