I am profiling a Vive VR application on Windows. I want to find out the reason for short-time FPS drops below 60 which occur randomly once in a while (which creates visible “snapping” of the view, very annoying). Upon trying to find out what caused this, I noticed that the CPU spends all its time in VR.WaitForGPU. I took this to mean that the GPU takes too long and I should reduce GPU time (is this correct?).
So, to check where the GPU spends its time, I enabled the GPU profiler. However, I now get one spike per second and visible lags in-game as long as the GPU profiling is active. This renders the GPU profiler effectively useless. The picture looks like this, but only with GPU profiling enabled:
Is this an expected overhead of GPU profiling, that is I can’t do anything about it? Or is there some way around this? What else can I do to figure out where the GPU spends its time?