4.5.1: Capped at 37.5 fps in VR

With UE 4.5.1 (from launcher) and Oculus Runtime 0.4.3 I am suddenly capped at 37.5 fps (looking at a wall in Mobile Temple with screen percentage of 100 and reduced quality settings).

Looks like there has something gone horribly wrong :frowning:

Unit graph:

Profiler:

The strange thing: Neither CPU or GPU seem to be under heavy load:

With 4.5.0 and Oculus Runtime 0.4.2 I got stable 75 fps with everything else at the same settings at every place in the level. If I run a packaged version from UE 4.4 it still delivers the same performance even with Runtime 0.4.3 as before (stable 75 fps).

So who is to blame here? UE 4.5.1 or Oculus SDK 0.4.3?

[DXDiag.txt][4]

Hi ,

I attempted to reproduce what you are seeing in-house but I could get your results. I maintained 60 to 70 fps while walking around the mobile temple.

Could you try creating a new project from the Mobile Temple in your Vault and see if you get the same low FPS?

I have V-Sync engaged so I am not able to reach 60-70 fps with a DK2, only the half of it. But it’s the same project which runs well with 4.5.0 / 0.4.2 which is making problems now. There seem to be some hidden performance hit somewhere…

I can confirm this problem as well.

Using Oculus Runtime 0.4.2 I was able to play SunTemple with screen percentage of 135 at solid 75 fps (vsync on) in Direct mode. With Runtime 0.4.3 even if I reduce the screen percentage to 120 I get capped at 37.5 fps in many places of the level. Makes what used to be a great experience almost unusable.

I have a Radeon R9-290. Tested both with the Official 4.5.1 release and with the latest Oculus branch from GitHub 10-28-2014. This doesn’t seem to make any in difference apart from being able to disable the annoying Health and Safety Warning.

Hi ,

so you can confirm the performance problem with 4.5.1 even with SDK 0.4.2? So the only difference in your configuration was indeed the change from 4.5.0 to 4.5.1?

UE4s VR-performance wasn’t really good until now but at the current state it’s just not usable for me anymore. I mean, the optimized-as-hell Mobile (!) Temple with

  • hmd sp 100
  • r.postProcessQuality 0
  • r.shadowQuality 2
  • r.effectsQuality 2
  • r.PostProcessAAQuality 2
  • r.SSR.Quality 0
  • No dynamic lights

isn’t able to run at the desired framerate on a GeForce 760? What else should I do? Especially postprocessing and reflections are real performance killers ATM, maybe I should disable them completely to get this even running…

Hi , i did notice a bit of a drop going from UE 4.5.0 to 4.5.1, but the main problem for me has been going from Oculus Runtime 0.4.2 to 0.4.3 in Direct mode.

So, if I got you right, the problem is not the integration of SDK 0.4.3 in UE 4.5.1 but only the new Oculus Runtime?

Ok, I will test this and report back.

Well I think both things are tied really.

4.5.1 did not officially support the new oculus runtime (was not out yet) even though it kind of worked, but the latest github from Oculus did/should.

I expected the combination of these 2 latest versions (UE oculus branch + 0.4.3 runtime) to have similar performance than standard 4.5.1 with 0.4.2 runtime, not much worse, as several people have noticed.

I’ve been experiencing similar issues using an i5 and HD6950 2gb. In my own map, when not in the rift I’m sitting tight at ~120-130 FPS, in emulatestereo mode I sit around 100fps, but when in the Rift I get around 50.

I experience similar FPS issues on couch knights and the VR template. I’m on the 0.4.3 runtime, but have not tried the 0.4.3 Oculus SDK branch. Stat unit also shows me pegged on the GPU, and profilegpu shows most time spent on only 2 lights that exist in my level.

I too have found that using the settings you described isn’t enough anymore for me to hit the desired framerate. My biggest FPS improvement comes when I use “r.SimpleDynamicLighting 1”, which isn’t very acceptable. Output of profilegpu: http://i.imgur.com/GSXjfpI.png

I really don’t get it:

  • Reinstalled 0.4.2: 75 fps
  • Back to 0.4.3: 75 fps as well, everything else unchanged. WTF.

Seems that the Oculus display driver made some problems… So I recommend a clean reinstall, at least for testing.

The strange thing: If I run “hmd sp 130” (no freeze this time, hooray!) the framerate instantly drops to 37.5 fps. This wouldn’t be too surprising, but the profiler gives me a rendering time of 12.73 ms which is smaller than the 13.33 ms we would need for 75 fps.

Doesn’t the profiler count in the processing from the SDK?

Oculus is here. We are looking at the issue, however we have yet to reproduce it.
Could you try it in Extend mode, does it cause frame rate to be lower than it was in 4.5.0 + 0.4.2?
Can you try a vanilla 4.5.1 + 0.4.2 (and 0.4.2 Runtime)? Then, install 0.4.3 runtime and try the same executable from the previous step, does it work worse now?

Hi there, great you are investigating this :slight_smile:
After I reinstalled Runtime 0.4.2, then 0.4.3 again, I got very different results (see post above). Looks like a relatively minor hit now.

Before I reinstalled the runtime, I had nearly the double frame time as today (see screenshot in original post).

Currently, my results are as follows:

UE 4.5.1, OVR 0.4.2:

UE 4.5.1, OVR 0.4.3

Can you also make the same measurements for Extend mode?

For me it seems to be related to framerate.
as soon as the framerate drops below 75FPS it is instantly halved to 37.5.
turning off vsync shows me the correct sub 75 framerate(62 in my instance).
then tweeking setting so that ive got 75+ and turning vsync back on and everything is fine.

Im not sure if this is a bug or a feature! lol

Thanks a lot for having a look at this issue!!

To answer your questions first:

  • In extended mode i seem to have exactly the same performance between 0.4.2 and 0.4.3.

  • I tried vanilla 4.5.1 with 0.4.2 Runtime, and i get better performance again (locked at 75 fps).

  • I did a clean 0.4.3 install and tried the same executable as before (SunTemple Demo with sp 135), locked at 37 fps again.

So after a bit more testing i found out that in my case is not really a massive drop in performance, but a couple of smaller things that combined can make some levels unplayable.

  • 1st i noticed by turning off vsync that in 0.4.3 i get between 5 and 10 LESS fps than in the same map/location using 0.4.2 (on average). So places where i get 76 fps on 0.4.2, i get 71 fps on 0.4.3 for instance.

  • 2nd i noticed that in 0.4.2 i get capped at 75 fps as long as i am slightly above that (76 fps for instance). However in 0.4.3 as soon as i go below 83 fps i get capped at 37.5, is this normal? This seems to be related to what mentioned above, about being capped to 37.5 fps with a rendering time of 12.73 ms.

So it’s both 5 fps harder to reach the threshold for good 75 fps vsync and this threshold is now 8 fps higher; this makes about 13 fps difference comparing 0.4.2 to 0.4.3.

Comparison of same map/locations between 0.4.2 and 0.4.3:

Location 1:

0.4.2 - 76 fps → capped at 75 OK

0.4.3 - 71 fps → capped at 37 NOK

Location 2:

0.4.2 - 87 fps → capped at 75 OK

0.4.3 - 82 fps → capped at 37 NOK!

I’ve also tried disabling timewarp / updateonrt from the console, but this doesn’t seem to make any difference in performance.

I understand that depending on your map and machine all this could be fairly subtle, so it could explain why not many people have reported it… Still 13 fps may not seem like much, but when you are already pushing your hardware and struggling to get a good experience i think it’s fairly significant.

I hope that with all this info you can manage to reproduce these issues. Thanks again!

Some extra info here:

i7-2600k / AMD R9 290 / 16GB RAM

Windows 7 64-bit / SunTemple Demo / vsync on


Oculus 0.4.2 + UE 4.5.1 VANILLA

  • Direct Mode + Aero OFF:

hmd mirror off / sp 135 → 75 fps (75 to 90 with vsync off)

hmd mirror on / sp 135 → 50 to 60 fps on almost whole level

hmd mirror on / sp 125 → 55 to 70 fps on almost whole level

  • Direct Mode + Aero ON:

hmd mirror off / sp 135 → 75 fps (75 to 85 with vsync off)

hmd mirror on / sp 135 → 55 to 65 fps on almost whole level

hmd mirror on / sp 125 → 60 to 75 fps on almost whole level

  • Extended Mode:

sp 135 → 70 fps on last corridor statues, first big statue, ceiling

sp 125 → 75 fps


Oculus 0.4.3 + UE 4.5.1 VANILLA
(same performance with OCULUS GITHUB version)

  • Direct Mode + Aero OFF:

hmd mirror off / sp 135 → 0 fps

hmd mirror on / sp 135 → 37.5 fps on almost whole level

hmd mirror on / sp 125 → 37.5 fps on last corridor statues, first big statue, ceiling

  • Direct Mode + Aero ON:

hmd mirror off / sp 135 → 37.5 fps on almost whole level (70 to 80 with vsync off)

hmd mirror on / sp 135 → 37.5 fps on almost whole level (70 to 80 with vsync off)

hmd mirror on / sp 125 → 37.5 fps on last corridor statues, first big statue, ceiling

  • Extended Mode:

sp 135 → 70 fps on last corridor statues, first big statue, ceiling

sp 125 → 75 fps


NOTE:
When i say “on almost whole level”, i mean that fps can be a bit higher if looking straight to a simple wall or looking at the floor for instance.

I’m also observing strange 37.5 cap on 4.5.1 every time fps drops even a little from 75, tried many things(settings for target hardware mainly) but nothing helped. What is more strange is that this 37.5 fps are really stable, I made a very GPU heavy location but it was still 37.5 like it is some kind of target for graphic scalability.

Here is what we found. Seems like this is an issue with SpeedStep technology: CPU just goes into energy saving mode. Multiple tests showed that if the SpeedStep feature is disabled in BIOS then the performance is back to pre-0.4.3 level. Please, try it too and let me know. You should be able to find that BIOS option under CPU Power Config section.
We are looking for ways to fix it properly, but this should be a good enough workaround for now.

Ok, here are my results.

  • UE 4.5.1 (launcher version)
  • Oculus Runtime 0.4.3
  • Lightroom demo (default settings)
  • fullscreen
  • hmd vsync off
  • See DXDiag for system details.

SpeedStep enabled:



SpeedStep disabled:



It seems to fix the small hickups, but overall performance is still very bad (especially the SSR seem to be extremely costy in VR).

PS: Image upload didn’t work