[VIVE] Stuttering occuring when transitioning above - below 11 ms frames

Dear all,
I don’t know if the title is sufficiently self-explanatory so let me elaborate a little the performance issues I’m facing:

  • I am working on a test projet, UE 4.24-3, the various drivers and hardware firmware are up-to-date.
  • My project is not large but with sufficient complexity (e.g. full-body IK-based VR character, several planar reflections for testing purposes, modular asset design hence relatively high call draws etc.) so that I must investigate bottlenecks, and that’s a WIP. So far, I managed to decrease the frame durations in some areas from 22-23 ms down to < 11 ms, sometimes slightly above 11 ms.
  • And, that’s the areas in which frames often transition slightly below 11 ms to slightly above 11 ms (and vice-versa) that pose a problem: in these areas, I experience a very noticeable stuttering when moving my headset. To be clear, this stuttering does not occur in areas where frame duration is consistently below 11 ms, or consistently above 11 ms. It only happens in areas where this transition below and above 11 ms occurs.

I am relatively new to VR optimization, so for me this issue was a bit counter-intuitive at first, because it happens around the 90 FPS framerate threshold, which at first glance is a rather high framerate for which you wouldn’t expect stuttering. Then, after investigating, I realized that this problem could be addressed by avoiding this 11 ms transition (e.g. make sure that ALL areas are sufficiently optimized to be under consistently the 11 ms threshold, which is sometimes very impractical, or use Steam VR’s smooth motion, so that the UE4 framerate is set to a consistent 22ms/45FPS) In those conditions, the problem doesn’t occur, but I consider this as workarounds only.

I would like your help to understand better what are the general approaches to really address this issue, not avoid the conditions (<11ms / >11ms frame duration transitions) which create this issue.

I hope this problem is described sufficiently clearly. I hope you can suggest some directions / guidelines / references / fixes for this problem. Thanks.

ps: I prefixed the title with “[VIVE]” since SteamVR’s motion smoothing is not available to all platforms, but I suppose that this stuttering issue may occur on other headsets as well. Also, from all my tests on the subject, at this point I don’t think it relates to any tracking issue with the bases, or potential interference issue between base and headset nor any hardware-related issue.

Ever figure this out? Having a similar issue