4.27 template poor performance on Quest 1

Success importing 4.27 template level into a blank project and getting it to run!

Frame rates are good like you said, not sure about the physics thing, seems they are looking into it. Also not sure about the tone mapper thing.

I did my first build to quest 1 with the VRtemplate map. with statfps I get 29fps average? is that normal? it goes to 40ish if i turn off 4x msaa

having same issue

disabling all OpenXR plugins - works for me !

what a shame…

I’m on the oculus branch 4.27.1, but it all runs perfectly smooth for me. I also have ASW working correctly and that makes even greater jumps in performance

little build you can play with

what about the colors when it runs on the headset? Are they the same as you see in the editor?

the colors on 4.27 are closer to the lit mode. A teensy bit lighter. Personally I’m using all unlit materials. I’m attempting to toggle off the tonemapper subpass and see if that corrects my colors being too dark.

let us know if you figure out how to do that

what is this? Oculus maintains their own branch?

yes,

Oculus-VR/UnrealEngine: Unreal Engine source code with latest Oculus integration (github.com)

There are additional features and fixes available here that are not in default unreal repository

1 Like

nice, thank you, did not know of that.

33000 commits ahead? ugh! Any idea if it touches any non-Oculus stuff? Or does this stuff almost always get merged back into main?

There are changes to non-Oculus stuff that we don’t take into main, so don’t expect to be able to jump back and forth between them.

If you have plans to ship on other platforms we suggest you stay on main as we can’t provide support outside of it. The team won’t look at your report if you can’t reproduce it on main, which could put you in a difficult spot if you don’t have engineering resources available. Maintaining two branches or porting from one to the other can after months/years of development be difficult. Make sure you consider your options!

1 Like

Thanks for the reply. I’ll keep a watch on that repo, but definitely we want to stay with main trunk where possible. With our changes, it took a couple of weeks to merge up to the current main release, def don’t want to make it any weirder, especially not on other platforms.

1 Like

Hi @VictorLerp ,
I’d very much prefer to stay on the main branch, and I’d also like to replace the Oculus-specific APIs with OpenXR.
However, all versions after 4.24.3 show some serious quality and performance regressions for our project. It runs perfectly smooth (stable 72fps on a Quest 1) and with good quality on 4.24.3, but after migration to 4.27.2 it has gone down to ~50fps and some severe visual losses (look like FFV is all over the place suddenly, edges are very pixely)

The same thing already happened with 4.25 and 4.26, so it seems we’re stuck with 4.24 then?
BTW, also the new VRTemplate does not really seem to run very smooth, if I may say so. Is this a known issue?

Also, is there a canonical page anywhere that describes all the changes in the project settings that are neede for Mobile VR and the best performance settings? There is a video here and a video there, but I cannot seem to find anything whre all is in one place. It would also be great if we could have a “one-click” solution for setting this up - why do we have to change many things in multiple places instead of just hitting a “Set me up for Mobile VR” - Button?

When you’re running the VRTemplate on the Quest1 / Quest2 in MobileVR, what framerates do you get? Something stable over at least 72 FPS?

Thanks for your work on this,

/hauke

Just to proof my problem: this is what I get when I fire up 4.27.2, create a fresh Virtual Reality Example, and run it (in this case, on a Quest 1). Note the fps shown in the OVR metrics tool: 24 fps.

The two main reasons why you won’t see 72hz on Quest 1 by default in the VR Template:

  • Dynamic lighting doesn’t perform well enough on Quest 1. Set all lighting to static and you’ll see a jump.
  • We don’t have Fixed Foveated Rendering on Quest with OpenXR - this is something Oculus is working on for their vendor extension plugin(s)

Quest 2 runs at 72hz by default even without FFR, but Quest 1 require some changes. We’re looking at providing better scalability settings for VR, similar to how device profiles work. Currently you have to do some manual checks and load different lighting scenarios/levels, etc, to be able to have one scene/project at its highest quality across a wide range of hardware (Quest 1 → eg. PCVR on a 3090).

2 Likes

I found out why the 4.27 VR template lag on Quest 1. It’s because of the Mesh Auto-Instancing on Mobile (Mesh Auto-Instancing on Mobile | Unreal Engine Documentation)
Open the DefaultEngine.ini in your Config folder and change r.Mobile.SupportGPUScene to 0. This setting is not exposed in the editor so that’s why when we migrate the template to another project it works smoothly.

6 Likes

great find; I’ve tried this myself and confirmed it. Also deleting the complicated Skydome and setting lights to *static helped.

1 Like

Great find! I just logged it and I’m going to look into why it defaults to on in the Template but not in editor and update it.

disabling tone mapper and such also helps

1 Like