[PERF] Jittering on Arch
Describe the bug When running SteamVR even in the base empty environment (Not SteamVR Home), I experience jittering when moving the head, especially so if moving fast.
To Reproduce Steps to reproduce the behavior:
- Open SteamVR
- (Optional) Open VRChat
Expected behavior Smooth VR experience as is on Windows.
System Information (please complete the following information):
- Distribution: Arch (EndeavourOS)
- SteamVR version: 2.7.4
- Steam client version: 1726604483
- Opted into Steam client beta?: No
- Graphics driver version: 560.35.03
- Gist for SteamVR System Information: https://gist.github.com/rs189/62a461fecc5e3eb4d93ce116533f1bb5
Performance Data (optional, but very helpful):
- CPU: i7-10700K
- GPU: NVIDIA RTX 2070
- Gist for perf top: [See instructions]
- Link to gpuvis trace: [See instructions]
Screenshots
Additional context I am NOT looking to use Monado personally even though it doesn't jitter.
I am using Gnome 47 with Wayland as it just added DRM support (Prior versions of Gnome did not support DRM on Wayland) I experience the same problem under X11 too.
Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" and "Perf Data" sections in their replies.
For me 2.7.4 is complete chaos, just look at this wall of pink I got:
For 2.8.4-beta for me its random depending on what mood SteamVR is in when you start it, all I did between these two screenshots is restart SteamVR:
Of course the photon latency is still all over the place, so SteamVR is still unusable for me even when it decides to give green.
I am on Arch (6.9.7), and have Nvidia driver 555.58. I am using Plasma on Wayland. I'm running on an Asus G14 (2023 - GA402) with RTX 4060 Laptop GPU. I have SteamVR beta 2.8.4. I am using a Valve Index.
For me, adding nvidia NVreg_EnableGpuFirmware=0 to modprobe.d/nvidia.conf did the most to resolve this issue, and the wall of pink is now gone, with only occasional spikes (still hunting those down), but much more usable.
My /etc/modprobe.d/nvidia.conf file contains the following (note: NVreg_PreserveVideoMemoryAllocations is for an unrelated issue and you may not need it):
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia NVreg_EnableGpuFirmware=0
After updating, run sudo mkinitcpio -P to regenerate initrd with updated parameters.
Additionally, I have the following kernel parameters set (unsure if these are needed in addition to the above):
nvidia-drm.modeset=1 nvidia-drm.fbdev=1
These are probably duplicates of the modprobe.d but I haven't removed them yet.
I also have the following SteamVR launch options set, unsure if this made a difference (haven't experimented with this yet): __GL_MaxFramesAllowed=0 %command%
@digivation We had our LVRA members test these tweaks, its not a silver bullet for stutter. Monado is still the only way to get a stutter free experience.
It does improve somewhat for nvidia users and modesetting + wayland should be used anyway on nvidia.