GameThread at 14ms on an empty C++ project on UE4.23 in VR. Is this normal?

As a test, I ran empty C++ projects with the same settings on 4.21, 4.22, 4.23 launching them in VR (Oculus Rift CV1)

4.21

World Tick Time:

  • CallCount 1
  • InclusiveAvg: <1ms

4.22

World Tick Time:

  • CallCount 1
  • InclusiveAvg: ~8ms

4.23

World Tick Time:

  • CallCount 1
  • InclusiveAvg: ~14ms

291084-ue423-launchwfocus.jpg

I also noticed that when the game window lost focus, the game thread would reduce to 8ms. You can see me clicking on and off the game window in the profiler.

When the game window was in focus, the game thread wildly varies from 6ms to 20ms.

Can anyone explain these results? Does anyone else see the same thing? Is this a bug?

Any help or insight would really help. I decided to just start my latest project on 4.21 for now so at this point I am mostly curious.

By any chance, is the monitor that is displaying the VR mirror window running at 70Hz? I’ve noticed in 4.23.1 that the frame rate on my Oculus Rift CV1 gets limited to the refresh rate of the monitor that’s showing the game.

For example, when I create a new project in 4.23.1 from the VR template, package it, and run it on a 60Hz monitor, the frame rate gets capped at 60fps. But if I drag the game window over to a secondary 90Hz monitor, the frame rate goes up to 90fps.

This is what the Epic QA team has told me today actually. Both my monitors are 60Hz

Workaround: You can get back to the old vsync behavior by defining r.D3D11.UseAllowTearing=0 in ConsoleVariables.ini. It cannot be disabled after startup, so it has to be in ConsoleVariables.ini.

After testing the fix, it does take care of some of the odder behavior and reduced the baseline of 14ms game thread to 8 ms. this still doesn’t seem right being that 4,21 gives < 1ms under the same conditions.