UE 5.2 Performance Overhead When using DX12 with VR

Hello! Our team wanted to take advantage of nanite in UE5.2 to so we disabled forward rendering and used DX12. However we noticed that even with nanite turned off and even set global illumination to none, it has a very poor performance when used in VR.

Steps to reproduce result:

  1. Create VR Template
  2. Set DX12 as default RHI
  3. Disable Forward Shading
  4. Test in VR

We tried lowering the screenpercentage and scalability settings and it doesn’t respond at all. The problem goes away when we either use DX11 or forward shading but both doesn’t support nanite. Is there’s a work around we can use? Is this a known bug?

Hey there @ProjectZ3RO! Welcome back to the community! For reproduction purposes, are you testing in OpenXR/SteamVR PIE or direct on native hardware, if so which hardware?

I’m testing using OPEN XR with Quest 2 as the device.

Hey there @ProjectZ3RO! Been doing a bit of testing with my Q2 and can see a solid drop in performance in the base level of the VR template outside of forward rendering. This isn’t quite as bad in 5.1 and that’s interesting! Haven’t been able to pin down the change that caused it however.

Thanks! For the feedback. I’m glad to know its not an isolated case. reducing screenpercentage and scalability settings doesn’t work either.

It does seem like it’s universal! May I get your specs? I’m consolidating information on the issue for a possible full report.

This has also been holding us back from switching to UE5 so I’d love to see if something can be done about this.

I understand! I was unaware (while I use VR, I always use forward rendering so it never crossed my mind) of how much of a performance hit it was. For PCVR the shift to locked in DX12/SM6 guaranteed a bit of extra heft, but it’s been felt across the board. The final report will be written up soon if I can’t find any workarounds besides dropping RHI/mobile tier lighting to maintain a proper 90 on standard hardware.

Thanks! I have 5900x, RTX3060Ti, and 64gbram. It really does get locked up and doesn’t respond to any visual adjustments at all. Hoping for some good news on this.

If I understand this correctly, I’m having the same issue in 5.2. 3080ti, 32gb DDR5 RAM. Quest 2. In VR preview there is horrible shake and stutter and it’s just almost unusable it seems. Using the OpenXR plugin with Air Link. It makes me want to stick with 4.27 but I feel like I’ll just get left behind.
From my understanding, as long as I’m developing PCVR and not standalone, nanite and lumen shouldn’t be a problem?

You’re not expected to hit good performance w. Nanite and Lumen, even on a 4090. It’s an area of ongoing work, but we don’t have a timeline as to when XR support for Nanite and Lumen will leave experimental.

2 Likes

Would you suggest turning them off and continuing wih 5.2? Or is 4.27 still the better way to go? Thank you for the reply btw!

You’re not required to use Nanite/Lumen only because you’re using UE5. Since we’re not actively supporting 4.27 outside of required SDK updates for 4.27 projects to ship on certain platforms, it’s recommended that you continue w. 5.X.

The VR Template in UE5 is using Forward Shading, and a stationary light w. baked lighting for reference.

1 Like

Maybe that’s my problem, I’ve been starting in Third Person (that’s the kind of game I’m looking to make). I’ll try starting in VR and adding 3rd person. I sure appreciate the insight.

You can add the Third Person template content to the VR Template by using this feature:

2 Likes

Got it, thank you. I’m out of town for a few days but I’ll try it when i get home and let you know!

Ok it still feels jittery. I played with enabling the (deprecated) Oculus plug-in instead of OpenXR and it looks a thousand times better. Any thoughts on that? I’m using AirLink with my Q2.

I think it was the anti aliasing, it’s starting to look better.

Hey Victor, I just wanted to chime in to say that the problem for me is that even without Nanite and Lumen DX12 performance seems worse in VR. This has always been the case for me, even in 4.27. However if I’d want to use something like Nanite in the future, just the DX12 overhead alone makes it less viable so I was wondering if there’s something going wrong with VR and DX12 in general?