Substantial DRM lease presentation latency resulting in unusable VR/ HMD experience

This effect is more pronounced on Monado and variable on SteamVR.

Reproduction is simple, run any app which could be as simple as xrgears, on the Monado runtime with a headset like a valve index and the effect will immediate present as a delayed viewport almost like the contents are being double composited. A VR headset MUST be used to visualize the effect.
Make sure to enable the Monado compute compositor and select the proper steamvr_lh driver if using a Valve lighthouse type headset:
STEAMVR_LH_ENABLE=true
XRT_COMPOSITOR_COMPUTE=true

All display managers, all graphics APIs, all apps, any nvidia kernel module, any combination of kernel parameters.

It is most uncomfortable for even short term usage and is only present on Nvidia proprietary userland. Nouveau, AMD, Intel, all feel fine for simple low-load usage in comparison.

Some users have partial success in delaying the composition using U_PACING_COMP_MIN_TIME_MS to reduce the effect but it is quite far from a cure, just improves comfort modestly when set to about 10.

This bug currently runs back as far as the 550 driver as far as we can tell and is present in the latest releases.

2 Likes

options nvidia NVreg_RegistryDwords=RMLockingMode=1 was used in an attempt to resolve the issue alongside setting the CPU gov to performance state.
Some mild stutter under extreme loads was improved but the visual swim or drag was still present with seemingly no effect on it, the sensation like the lease is being double composited.

SteamVR appears to variably swim while monado seems to be fairly consistent in how it wobbles and the U_PACING_COMP_MIN_TIME_MS=10 env var on monado appears to move the sensation from maximally sickening to mildly sickening. Substantial improvement from there reported, when user switched to AMD.

A secondary issue worthy of mentioning is some people with VRR capable monitors enabled and working appear to experience tearing in HMD while VRR is active in kernel or in userspace. Disabling VRR at any of these stages prevents the tearing in the HMD.