Rumbleball
(Rumbleball)
November 9, 2017, 4:30pm
1775
UE4 gathers scene proxies and late updates them in the rendering thread by re-sampling the controller / HMD location there and applying the difference to their visual location (not game location) since the game thread last moved them. is because the rendering thread is a frame or so after the game thread and you can get significant offset with fast movements in VR in that time.
Prior to 4.18 (.17 of my plugin because I implemented it early) they were using a method that caused some thread thrashing and jitter like what you were seeing. It mostly happened when moving at high velocities but I could see if happening with scaling the world as well.
TLDR: 4.17 of my plugin, or 4.18 of the engine likely fix for you, it should be because of badly managed cross thread variables that they had in the late update system. However you can also just turn off late updates on the controllers during scaling operation and it should also fix it.
I don’t know if you had late updates off in your original controllers? They should be using the same logic for the late update as epics in the 4.16 branch. Its possible that there is something missed, but I just went back over some of those areas recently.
Thanks for your fast reply.
Right now we can’t upgrade as we rely on a plugin that is not up to date yet.
I tried calling SetGripLateUpdateSettings with “LateUpdatesAlwaysOff” but it did not fix it.
As you describe it the late update is just a rendering thing. If so, why does it seem to mess with the location values on the game thread?