Profiler: Enabling GPU profiling leads to spikes once a second

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?

If it helps, I also get that kind of spike when profiling, there is an overhead when using the profiler, so its not 100% correct. What you can try, to see if it helps, is to build a game version that you can profile to see if the same spikes occur.

What do you mean by “build a game version that you can profile”? Try to reduce elements in the game until it doesn’t occur anymore?

No i mean make an executable and profile that, not profile the game while running it in the editor, If you already did this, then just ignore my comment

1 Like

OK, thanks!