I filed a bug report but I also found an issue that was fixed for Oculus. I did a little experiment and I think even moving my head side to side produces the issue with OpenXR as well. In fact I noticed if I place my controllers on the floor and look at them there’s always this very subtle motion as they appear to wave around the debug axes I’m drawing for where the motion controllers actually are. If I use face locked stereo layers, for example, it’s positioned precisely.
Seems like another workaround is to use face locked stereo layers and update their transform relative to the camera instead. Gonna at least try that for now.
The associated fix.
https://github.com/EpicGames/UnrealEngine/commit/a003a59d05c4d606979cc551152ead15c17c0192
This is in the oculus runtime whereas I’m using the OpenXR runtime. If possible, maybe I’ll submit a similar fix for OpenXR. They basically recompute the world transform as they render the stereo layers instead of using the previous cached value, so it can’t be off at that time. (So simple!)
NVM not so simple, the two functions run on different threads, one game thread, and one the graphics thread…