Unreal VR Build is running only at 60 fps why? But Runs at 80+FPS in editor(engine)

I’m developing a VR game using the Unreal Engine. My target device is Oculus Rift and Rift S. According to the Oculus documentation, the VR application should run at 80-90FPS. But my application(build) is running at only 60fps. But the same project in the unreal editor (engine) is running at 80+ FPS. One thing I found is that when I removed my monitor connection, the Frame rate hits 80+ (Build). Why is this happening? I thought this might be due to some bad polycount mesh, heavy postprocessing or complex material. So this time I exported/packed the sample VR Templated by Unreal Engine instead of testing my game. OMG! This build is also running at 59.1 FPS (a very basic unreal’s default VR Template). I think there is something in the Unreal Engine side that caps the fps for the builds.

System Spec:

  • Geforce GTX 1060 3GB | 16 GB RAM DDR3 | i7 9th gen 3.7Ghz Processor
  • Oculus Rift Headset Unreal Engine 4.23 Oculus Lost Frame tool and VRCValidator were used to test the FPS. I also tried with some other 3rd party fps measuring tools.

Thanks in Advance!

Hello,

Could it be that Framerate Smoothing is on by default in your packaged build?

Does it appear on in project settings?

Have you looked in the log file? If you see many examples similar to “reallocating render target pool”,  (this seems to happen in build but not in editor) then you need to put this command in the engine.ini or ensure that this command is executed at some point during startup:

r.SceneRenderTargetResizeMethod 2

No, That didn’t work. I disabled the Smooth Frame Rate and also tried setting the Min desired frame rate to 75.

Hmm. Can you confirm that you do not have a power-saving mode running for your GPU, and that testing the standalone apps isn’t taking place on a laptop with the cord unplugged?

This is my Level Blueprint begin play node setup. I’ve tested the build with this, still it is running only at 60fps. No Success! :confused: Am I doing anything wrong?

I’m using P, not laptop. Also I’ve tested in different Machines. Still the fps is hitting the mark.

Is your anti aliasing method Temporal? MSAA is recommended for VR, which requires Forward Shading.

I think you’re getting close! One more experiment…

Remove usages of “Requested Frequency” and “r.ScreenPercentage 75” and “t.maxFPS 500”

And instead add, “vr.PixelDensity 0.75” (newer standardized way of controlling render resolution)

Hope it helps.

In the level blueprint’s begin play event, I’ve added a few second/microsecond delay and executed the following commands one by one. I also added a few more commands in addition to what you suggested!

  • First I added a very small delay node first (0.1 to 1 second is enough), then
  • t.maxFPS 200 (you can give any value greater than 100 here)
  • r.ScreenPercentage 75 (lower the value better the performance and lower the quality too)
  • r.SceneRenderTargetResizeMethod 2 (for builds we need to set the render resize method)
    and most importantly goto project settings-> under frame rate settings → uncheck smooth frame rate then set minimum desired frame rate to 80+

I’ve added r.SceneRenderTargetResizeMethod 2 and also a few other commands and changed some settings. Now it’s working! :slight_smile:

Adding this link as it is relevant.