UE5.4 (and 5.4.1) shadows are broken in VR (VR Template, default settings)

UPDATE:

Ok so for those of you who haven’t done the dance yet. MetaXR Meta Link is giving me issues after the update so instead of reinstalling I just wanted to dive in. I’ll apologize in advance as this is going to read like a play by play so it’s very systemically detailed to carefully outline the steps taken. So for everyone’s notes here all of this was done in PCVR over steamlink using the steam openxr runtime in vanilla 5.5 preview with a default template where I simply cleared lightmaps and set all lights to movable.

Current State of UE5.5 preview:

Forward Rendering - CSM - Instanced stereo enabled - Mobile multi view enabled (No shadows in right eye and weird self shadow issues)

Forward Rendering - CSM - Instanced stereo enabled - Mobile Multi view disabled (Solid white screen! Rebuild ALL reflections and lights etc and STILL SOLID WHITE)
NOTE TO SHADER DEVELOPERS MOBILE MULTIVIEW FLAG SHOULD NOT NEED TO BE EVALUATED AT ALL FOR DESKTOP AS IT IS MOBILE ONLY!!!

Forward Rendering - CSM - instanced stereo disabled - Mobile Multi view disabled (Still Solid White)

NOTE: AT THIS POINT I’M STARTING TO THINK DISABLING MOBILE MULTIVIEW THE FIRST TIME CORRUPTED THE SHADER DDC
Swapping to Deferred kicks of a shader recompile…

Deferred Rendering - CSM - Instanced Stereo enabled - Mobile Multi view enabled (Still Solid White)
Deferred Rendering - CSM - Instanced Stereo enabled - Mobile Multi view disabled (Still Solid White)
Deferred Rendering - CSM - Instanced Stereo disabled - Mobile Multi view disabled (Still Solid White)

Keep in mind that by work It’s a blurry (TAA) or jaggy (NoAA) deferred rendering mess and performs horridly with TSR.
Deferred Rendering - VSM - Instanced Stereo enabled - Mobile Multi view enabled (Appears to work)
Deferred Rendering - VSM - Instanced Stereo enabled - Mobile Multi view disabled (Appears to work)
Deferred Rendering - VSM - Instanced Stereo disabled - Mobile Multi view disabled (Appears to work)

After swapping to VSM and kicking off the shader recompile I decided at this point to go back to CSM in deferred and test.
Deferred Rendering - CSM - Instanced Stereo enabled - Mobile Multi view enabled (Broken shadows the same as Forward CSM)
Deferred Rendering - CSM - Instanced Stereo enabled - Mobile Multi view disabled (Don’t even do this as it creates a dance to get away from the white screen)
Deferred Rendering - CSM - Instanced Stereo disabled - Mobile Multi view enabled (Works)

At this point I was really confused about the cause of the white blowout behavior as I went back and disabled mobile multi view in deferred and it was fine
Note: (there is a ddc on the bottom right with a zen dashboard then a option to delete data and restart zen server)

In Summary:
CSM shadows regardless of renderer works if in PCVR if you disable instanced stereo (and you don’t destroy your shader DDC cache by disabling mobile multiview) and VSM on deferred works with instanced stereo.

I’ve yet to test mobile but I’m pretty certain its a similar situation to the CSM forward issue only that its being branched by the Mobile Multiview flag

Update:
I was able to reinstall meta link app and get PCVR working in the MetaQuest OpenXR runtime with the vanilla 5.5 OpenXR plugin. The MetaOpenXR plugin however produces a huge amount of compiler errors so deployment testing updates for standalone will have to come later.

I also ran into the white screen again without messing with mobile multi view so I went through the process again and decided to compare UE5.4 with UE5.5 engine.ini … UE5.5 had raytracing=1, skin caching and bloom. I deleted these from the ini and it returned forward to working normally (after build → rebuild all) but keep in mind shadows in VR instanced stereo are still broken with CSM in both rendering paths.

As a sanity check I deleted the template project and recreated from scratch to see what the default VR Template Engine.ini state was… yay more shaders to compile! …
5.5

r.ReflectionMethod=1
r.AntiAliasingMethod=3
r.SkinCache.CompileShaders=True
r.RayTracing=True

5.4

r.DynamicGlobalIlluminationMethod=1
r.ReflectionMethod=1
r.Mobile.AntiAliasing=3
r.AntiAliasingMethod=3

Why skin cache and raytracing is in the ini for the VRTemplate in UE5.5??!
Don’t even get me guessing?!?

4 Likes