Warning about 4.22 and VR

Just a public service announcement:
If you’re considering updating or using 4.22 for a VR project here are three fairly major bugs:

  1. C++ spawned motion controllers do not work…esponding.html
    Unreal Engine Issues and Bug Tracker (UE-72941)

  2. Custom Depth doesn’t work with instanced stereo (so transparency has depth sorting issues)…king-in-4.html
    Unreal Engine Issues and Bug Tracker (UE-72551)

  3. Dynamic Particle parameters on Mesh Emitters do not work in instanced stereo
    (Submitted repro project to Epic and will update with issue number)
    Fixed this issue myself. Needs a small engine change:

ParticleSystemRenderer.cpp Line 2540

                for (uint32 Factor = 1; Factor < InstanceFactor; Factor++)
                    FMemory::Memcpy(TempDynamicParameterVert + DynamicParameterVertexStride * Factor, TempDynamicParameterVert, DynamicParameterVertexStride);

                TempDynamicParameterVert += DynamicParameterVertexStride * InstanceFactor;

Two of these bugs are currently slated for fix in 4.23 so you might want to skip 4.22.

As for myself, I managed to fix 1) but didn’t spot 2) until a week had passed. Now I can’t open those Blueprints saved that week in 4.21. So it’s a tough choice between burning a week of work or hoping for a fix soon.

I can confirm this is true, however, for 1) I don’t think it is limited to C++. I have a blueprints based project which works great before 4.22 but in 4.22 it displays the exact same bug where motion controllers are not tracked. Oddly enough, if I take the stock VR template those work, so then, I copy the stock pawn and logic to my project and it fails. The same project on 4.21 is fine.

There’s a fix in for UE-72551 now it seems with a cl on the issues page. Going to give that a shot now. UE-72941 can be fixed if you are using a custom engine (I posted the code change on the forum link). Good to know there is a workaround before 4.23!

So some good news. The cl for UE-72551 fixes the custom depth issue. I’ve discovered another issue however. Particles that use dynamic parameters don’t get initialised correctly in instanced stereo. I’m seeing issues (mainly with the right eye, but also with the left), that are fixed by turning off instanced stereo.

Anyone have any tips on how to set up cascade parameters for instanced stereo? I figure it’ll need similar changes to custom depth.

After a bit more testing I’ve found that in 4.22 dynamic particle parameters on mesh emitters don’t work with instanced stereo either. Made a repro project in launcher 4.22.2 and have submitted the bug report. I’ve added the fix to the first post.

Bug report guys got back to me with this issue: Unreal Engine Issues and Bug Tracker (UE-61777)
I explained that this is in Cascade and not Niagara. So far just radio silence back. Wasted enough time on this already.

Anyway, the point of this post was to point out 4.22 issues and record the fixes. So far it looks like everything else is in order.