Os sombreadores de vértice e de fragmento são executados simultaneamente, não sequencialmente, e a GPU faz o balanceamento de carga automaticamente entre eles, portanto, não é possível atribuir significativamente intervalos específicos como 7 ms para um e 1 ms para o outro.
No entanto, você pode fazer um experimento simples para medir onde está o gargalo: defina a matriz de visão e projeção com todos os zeros para todas as suas chamadas de desenho. Isso faz com que todos os vértices produzam zero para suas posições e degeneram todos os triângulos; portanto, provoca um curto-circuito em toda a rasterização e sombreamento de fragmentos, mantendo todo o trabalho de sombreador de vértice (o compilador de sombreador não pode otimizar nada, pois não sabe que a matriz será zerada em tempo de execução).
Ao medir o desempenho com as matrizes zeradas, você verá a quantidade de tempo necessária para executar apenas os sombreadores de vértice, sem nenhum trabalho simultâneo de rasterização ou sombreamento de fragmentos na GPU. Em seguida, você pode comparar isso com a quantidade de tempo necessária para a renderização comum para cada passagem. Se os dois tempos são semelhantes, o passe provavelmente é altamente ligado ao vértice; se a renderização com matriz zerada for significativamente mais rápida, provavelmente será vinculada a pixels. Também é possível obter um resultado intermediário, indicando que o trabalho está dividido igualmente entre os dois.