VR Camera overridden - eyes not rendered separately? UE4 SteamVR

I don’t want this to happen and I’m trying to figure out how it even is possible. A coworker has written a C++ component that does GPU memory sharing for other textures not related to the VR rendering. It works for most OpenXR headsets, but sometimes this happens:

Oculus OpenXR:

ocu_small

HTC Focus 3 with VIVE Business Streaming and SteamVR

htc_small

Other SteamVR headsets have done this in the past, but I don’t have them on me to do a demonstration.

Clearly UE knows there are two eyes, as you can still see the ‘lighting needs to be rebuilt’ message in two locations. I’m using the stock VRPawn with no changes. Also, once this happens once, it seems to persist until I close the editor, even on levels that don’t have the custom components.

What causes this effect? I’m trying to dig through coworkers code (there are some cuda commands in there) but if anyone knows the ‘obvious reason’ it would be super helpful!

That’s an interesting issue. The message being there suggests that it is something on the Unreal side. Both eyes are supposed to be rendered to halves of the same render target, but it looks like one of the eyes gets rendered over the entire target, overwriting the other eye.

I’d suggest using RenderDoc to look at a frame to see how it is getting drawn.