Performance problem with packaged build

Performance problem with packaged build

I’m close to finishing my VR experience for the Oculus Rift, but I now cannot release it because of a strange performance problem. In the editor everything works fine, but when I run a packaged build the problem occurs. The oculus performance HUD shows application frames being dropped constantly, and there is stuttering. The performance headroom is fine though, so I don’t think there is a problem with the GPU not being able to render fast enough. The problem seems to be in the game thread.

I’ll just sum up the details:

  • Changing vr.PixelDensity to 0.1 does not fix the problem
  • Turning everything (static meshes, particles, landscape, etc) off with showflag commands does not fix the problem
  • Using “stat engine” I see a big entry for “Redraw viewports” (only in the packaged build), and the profiler confirms that a lot of time is spent in this entry. From the profiler it looks as if this entry is the one tipping the game thread time to >11ms.
  • By diving into the source of the engine and adding more cycle counters I’ve narrowed this down to the ovrp_WaitToBeginFrame call in FOculusHMD::StartRenderFrame_GameThread(). Why would this call take 8, 9 ms and why only in packaged builds? Is this a significant finding? Or is this more like missing a frame, and then blaming vsync for waiting?
  • In emulate stereo mode with vsync off there is no problem and all threads run at <5ms per frame
  • The stuttering is not visible on the mirrored screen. I’ve even captured 60fps footage for the trailer while this problem was occuring in the HMD.
  • The problem comes and goes. Today I might have the problem, but in 2 weeks the exact same builds might work fine for a short while.
  • When the problem is occuring the Oculus validator fails at the TestFrameRate test. When the problem is (temporarily) gone it succeeds at TestFrameRate.
  • I’m using 4.19, but the problem also occurs when I upgrade to 4.20 or 4.21.

I don’t know what to try anymore, but I also don’t feel like simply discarding the project. I’ve worked on it for many months.

Any ideas?

just a noob guess - does it also happen if you disable showing the game at the monitor while playing in the HMD? I think when using VR preview in the editor it only shows whats in the HMD in a small window. After packaging it is full screen. Never checked if this has any influence on performance…

Yes, the size of the window on the monitor does not influence things.

I think it is solved now. In the end I noticed it was still happening in a completely empty level, and also in a fresh VR template project. That made me decide to update the video card driver. And now the problem seems to be gone.