답변:
정점 및 프래그먼트 셰이더는 순차적으로 실행되지 않고 동시에 실행되며 GPU는 자동으로 이들 사이에로드 밸런스를 수행하므로 하나의 경우 7ms, 다른 하나의 경우 1ms와 같은 특정 타이밍을 의미있게 할당 할 수 없습니다.
그러나 병목 현상이있는 위치를 측정하기위한 간단한 실험을 수행 할 수 있습니다. 모든 드로우 콜에 대해 뷰 프로젝션 매트릭스를 모두 0으로 설정하십시오. 이렇게하면 모든 정점이 출력 위치를 0으로 만들고 모든 삼각형이 축퇴합니다. 따라서 모든 버텍스 쉐이더 작업을 유지하면서 모든 래스터 화 및 프래그먼트 셰이딩을 단락시킵니다 (셰이더 컴파일러는 런타임에 매트릭스가 0으로 설정 될지 모르기 때문에 아무것도 최적화 할 수 없습니다).
행렬을 0으로하여 성능을 측정하면 GPU에서 동시 래스터 화 또는 조각 음영 작업없이 정점 셰이더 만 실행하는 데 필요한 시간이 표시됩니다. 그런 다음이를 각 패스의 일반 렌더링에 필요한 시간과 비교할 수 있습니다. 두 번 비슷한 경우 패스는 아마도 정점에 바인딩되어있을 것입니다. 제로 매트릭스 렌더링이 훨씬 빠르면 아마도 픽셀 바운드 일 것입니다. 중간 결과를 얻을 수도 있습니다. 작업이 둘 사이에 균등하게 나뉘어져 있음을 나타냅니다.