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

I’ve attached a repo video above as well as screenshots to show how to see it even without looking into the hmd in the spectator preview

You do know that Steamlink is simply a streaming app directly from the Quest that uses SteamVR as the OpenXR runtime right??? Its no different than testing SteamVR as the OpenXR runtime via a vive pro, valve index or quest link cable running with Steamvr as the default runtime…

In regards to your question… I had already went back and updated that I also tested with native Meta OpenXR and SteamVR native without SteamLink. I’m not sure what you mean by you can’t reproduce it? Can’t reproduce what? That 5.5 preview puts raytracing and skincache into the forward rendering VRTemplate? Or that stereo instancing is broken? I left very detailed steps on the order of operations I followed but it’s very simple to repo. Open the VRTemplate and set all lights to movable and clear the lightmap data by rebuilding or deleting the umap build data file then test in “any runtime” Steamlink, openxr, meta quest link… Or just hit play without changing anything and close your left eye and then your right eye while watching the shadows cast from your hands. This isn’t a runtime issue its a shader .ush issue with how the shadow projection is handled which I have patched here for every hotfix since 5.4.0 released… additionally people have been using if they want to move past 5.3 (with forward rendering) and have replied here with thank you. You can also see that I’ve been in contact with the original commit owner and also provided a link to the pointlight fix here as a discussion on the original CL committed to UE5 main. As far as CSM vs VSM deferred and forward I outline everything very detailed above so that there isn’t confusion. There are 2 different rendering paths, 2 different shadow methods, and considerations for each have to take into account instanced stereo and VSM and CSM (if your in deferred). The above video outlines the simplest repo which is literally a default template with zero changes other than adding the spectator view enum to show both eyes. I took the time to show shadow casting with default template settings (Broken) and then with instanced stereo disabled (works).

In the most respectful way possible I simply ask after all of these votes and after all the work I’ve done to document commit to the engine, create a git repo with code changes, record several videos… Why is the burden of proof still on us after a 2 line response that “We can’t reproduce it” Can you clarify if you can’t reproduce it in UE5.5 main on source or 5.5 preview (launcher)? Can I kindly ask that you take the time to show a video of it actually working? I find that only fair if your claiming it is something 30+ of us on this forum and 100+ on other forums are doing wrong? Especially when I’ve written code to correct the issue and you can simply see numerous post stating this isn’t an issue in 5.3. This is a massive convo in VRE discord, Oculus Start, and Unreal Engine Source which I myself have pinged you in there on each update to this forum. Please accept my apologies if this feels like its directed personally toward you as its not. I know your extremely busy. I met you in new orleans and we geeked out for like an hour back when UE5 released. I’m simply trying to get visibility on this issue and help our fellow developers and patching 4 hotfixes with 5.5 coming and still seeming to have this issue is a tad exhausting. It’s a plea for help from the inside at this point :frowning:

As far as repoducing the ini issue you don’t even have to open the project… just make a VRTemplate from UE5.4 and another one from 5.5 and go look at the difference between the two defaultengine.ini render settings.

Also quoted in this forum and riddle through many others are plenty of reproduction reports.

6 Likes

Can confirm that even in 5.5 it’s still a problem. Please look into this!

1 Like

My appreciation to @Uno1982 for researching and documenting this so meticulously. @VictorLerp this is by far the most pressing issue for our company, please please do whatever you can to get the right eyes on this.

2 Likes

can confirm repro steps produce the same issues for me.

1 Like

Great news guys!

https://github.com/EpicGames/UnrealEngine/commit/0af4b53953ca69a1e41b40c56c6bec0e6a16f9cd

We have a commit to source to correct the issue. I haven’t been able to test just yet as it will require a cherry pick from into the preview release branch … I should be able to test and confirm soon.

Unfortunately, this is on the source c++ engine/source/runtime side and won’t be able to be patched via shaders or module project level override.

1 Like

That’s not true as we’ve had multiple issues that could only be reproduced w. Steamlink, or Virtual Desktop for that matter. Hence why I asked.

The .ini “issue” is technically working as intended. While there are CVARs that can improve VR performance, we try to keep the Templates as close to the engine defaults as possible. When engine defaults are updated, templates receive those updates as well as long as they don’t break functionality.

As you can see this was committed almost a month ago (right after Preview 1 was finalized), and I should’ve clarified that I’m testing on 5.5-Release branch. This fix will be in the full 5.5 Binary release as well.

3 Likes

Awesome news! Thanks very much for clarification and going through each concern.

And yes depending on the thing your trying to repo I could totally see the application handling chaperone, actor coordinate space or many other things its needs to return from the runtime to the editor/engine differently… but this is a rendering feature/issue and in that context I was just trying to state that the runtime in this case doesn’t matter. Looking back at my wording here I’m not sure I articulated my response in the best way so sorry about that. :slight_smile:

Thanks again for the clarity here :slight_smile:
uno1982/UnrealEngine at 5.5.0-preview-1-shadowsfix
For those interested I have a cherry pick from 5.5-Preview-1 with only these changes pulled in that I’ve used to test/repo. As @VictorLerp stated you can likely just pull from 5.5-release once it goes public but I’m only seeing this being merged into 5.5 and dev-5.5 and no release tag cut for 5.5 on git yet.

Just a FYI: The washed out issue seems to be that the build all editor function isn’t kicking off a rebuild of the reflection probes. Manually kick off a build of reflections if this appears to happen to you or if your shadows are extremely dark when you first load up. (also remember to build lightmass in visual studio as you’ll likely want to kick off a fresh light build if your using stationary ligthing)

Before:


After:

The awesome news is that when testing my branch with the cherry pick all is well in both eyes with instanced stereo :raised_hands:

6 Likes

Also; Checking then unchecking “Real Time Capture” in “Skylight” solves “washed out issue” without rebuilding anything.

1 Like