SteamVR

SteamVR

Jittery mess
The image on my HMD is a jittery and stuttery mess. It is driving me crazy, and it makes everything unplayable. The image doubles, blinks back and forth, as if the interpolation algorithms are going awry or something like that.

I have RTX 4090 with the newest proprietary drivers and R9 5900x, so lack of performance is out of question. I've tried using older version of drivers, and with an older version of SteamVR(1.27.5), and the newest SteamVR Beta, but the issue persists everywhere.
I'm on Ubuntu 23.10 X11.
I'm using HTC Vive OG, so any kind of additional layer incompatibility is out of question. At this point, HTC Vive OG should be considered the most compatible headset in the world.
I'm already using enableLinuxVulkanAsync set to false. Setting it to true makes the hmd screen permanently black.
GPU is used up to 22% max. CPU usage is 30-40% for 2 cores, so I can't see it being the cause of it.

Now, this bit you might find interesting - I saw some strange pattern in its behaviour:
Every time I trigger my desktop's events, the jittering "heals" for a short period of time. This behaviour is repeatable:
- Opening/closing terminal window.
- Hovering my mouse off the browser window onto Steam window, or vice versa.
- Opening/closing context menu at the desktop.
Everytime I do one of those things, the jitter kinda stops, only being triggered once in 1000 frames. Practically very rarely, but once 2-3 seconds pass, the jitter returns, making the image unbearable to look at.

EDIT: Now it seems that, after setting modeset=1 the lagging become much less pronounced, and gaming is much more possible, with no input lag,
It still annoyingly jitters, though. According to many reports, it might, or might not be caused by Nvidia's recent drivers.

EDIT2: Check out this https://gtm.steamproxy.vip/app/250820/discussions/5/4036980006274402358/#c4200238856305260558
(it is a link to a message #14 in this thread)
I think I've fixed it.

EDIT3: Check out this
https://gtm.steamproxy.vip/app/250820/discussions/5/4036980006274402358/?ctp=2#c4355620416675262501
(it is a link to a message #20 in this thread)
I think I've fixed it.
Last edited by SiEgE; 1 May @ 4:50am
< >
Showing 1-15 of 37 comments
dudemack 6 Jan @ 12:15am 
Try using a program called CoreCtrl (https://gitlab.com/corectrl/corectrl) and set both the GPU and CPU profile to Performance. It made a huge difference. VR is now playable again. There were still some very occasional single stutters every once and awhile but it was definitely playable. I'd give that a try. It sounds like there is a problem that really just shows up in VR where the system it constantly ramping up and down in a loop. Hopefully this helps.
SiEgE 6 Jan @ 2:39am 
Originally posted by dudemack:
Try using a program called CoreCtrl (https://gitlab.com/corectrl/corectrl) and set both the GPU and CPU profile to Performance. It made a huge difference. VR is now playable again. There were still some very occasional single stutters every once and awhile but it was definitely playable. I'd give that a try. It sounds like there is a problem that really just shows up in VR where the system it constantly ramping up and down in a loop. Hopefully this helps.
powerctrl doesn't see my GPU. Instead, I've just went to nvidia-settings->PowerMizer and set Preferred Mode to "Prefer Maximum Performance", and it does pretty much the same thing.

No result. That didn't fix the issue.
Last edited by SiEgE; 6 Jan @ 3:35am
Moik 6 Jan @ 6:13am 
I just tune everything down in SteamVR. I'm running at 90Hz (instead of 120, which it can happily do). Then I either enable Legacy projection per app, or fixed 45 fps - whichever works best for the specific app in question.

Kinda sucks that this also includes Steam Home. You'd think that would work, even if non-SteamVR specific apps don't. But hey ho.
Try just the CPU?
SiEgE 6 Jan @ 8:18am 
Originally posted by dudemack:
Try just the CPU?
Tried both "Performance" on CPU through corectrl and "Max perf" on GPU through the driver, at the same time.
No effect.
Last edited by SiEgE; 6 Jan @ 8:19am
Oh well
It'd be nice if we could lock in a particular SteamVR version or any software for that matter. When I first played Half Life Alyx it was working really well (2020).
SiEgE 15 Jan @ 3:05am 
Originally posted by dudemack:
It'd be nice if we could lock in a particular SteamVR version or any software for that matter. When I first played Half Life Alyx it was working really well (2020).
Within the depths of this issue discussion:
https://github.com/ValveSoftware/SteamVR-for-Linux/issues/658
I've found this link:
https://www.reddit.com/r/SteamVR/comments/118vlrl/fix_for_rtx_4090_and_vr_tracking_input_latency_lag/

I wonder if I'll help our issue.
dudemack 15 Jan @ 8:47am 
I wonder what the breakdown is for VR users where everything works. The forums are probably skewed towards people with problems since they probably wouldn't look at the forums if they weren't having any problems.

Did you have any success with the photon increment adjustment button?
lightwo 17 Jan @ 9:29am 
The closest to your issue I experienced was when my VRAM was exceeded and asynchronous reprojection was fighting for VRAM. Given that you explicitly disabled it (enableLinuxVulkanAsync = false), that clearly isn't the case.

Given that the issue at hand sounds severe and beyond what reprojection can fix, I don't feel it would help much, but can you downgrade to 1.27.5 and switch enableLinuxVulkanAsync back to true, making sure legacy reprojection mode is disabled in games?

You may experience graphical artifacts in SteamVR menus, but games should render okay. Hopefully.
SiEgE 6 Feb @ 10:59am 
So, apparently I had 2 issues at the same time. First being that said jitter, and the second one - slight input lag. I could tolerate through one, or another, but not both at the same time.
Surprisingly, I've managed to fix the slight input lag issue by fiddling with vsync_to_photons_increment. One small, yet glorious step. Linux VR is one step closer to be reality.
What is left is this brain numbing jitter, that happens once per 500 frames. It doesn't sound too bad, until you start realizing that you're getting severely disoriented by it.

Originally posted by lightwo:
The closest to your issue I experienced was when my VRAM was exceeded and asynchronous reprojection was fighting for VRAM. Given that you explicitly disabled it (enableLinuxVulkanAsync = false), that clearly isn't the case.

Given that the issue at hand sounds severe and beyond what reprojection can fix, I don't feel it would help much, but can you downgrade to 1.27.5 and switch enableLinuxVulkanAsync back to true, making sure legacy reprojection mode is disabled in games?

You may experience graphical artifacts in SteamVR menus, but games should render okay. Hopefully.
Your suggestion gave me some food for thought.
My enableLinuxVulkanAsync is disabled, but I've decided to give it a try, and nudge it to fix it. Despite still not being sure how exactly I've managed to fix it, but after few attempts to launch it with, enableLinuxVulkanAsync=true, I've managed to do that twice, successfully. What I've got was a horrible, wobbly feeling to the head tracking. Looks like the asyncronious reprojection doesn't really understand how it is supposed to work on Linux. No matter the amount of vsync_to_photons_increment - it changed nothing, and using it on both 1.14 and 1.27 is equally bad, so I've turned it back off. Not to mention the jitter was still there. So, it seems that reprojection(or lack of it) is definitely not the issue I'm facing here.
Last edited by SiEgE; 6 Feb @ 11:28am
SiEgE 8 Feb @ 2:40am 
https://gtm.steamproxy.vip/app/250820/discussions/3/3881599433107492846/
I wonder if my issue has anything to do with this. Too bad I need that Ray Reconstruction from the newer versions :(

Anyway. I've set my modeset to 1. I wonder if that was the core of my issues. Looking forward to check.
SiEgE 8 Feb @ 9:36am 
Okay, there are some news of my progress:
1. Thanks to modeset=1, there is no input lag now. No need to fiddle with vsync_to_photons_increment now.
2. Thanks to modeset=1, the worst part of the jitter is gone. I don't have to keep a htop running in the background/hunt for that exact invisible window that causes overload anymore.
3. Sadly, despite modeset=1, the jitter is still there. Not as bad, but still annoys me greatly. It was upgraded from "unusable" to "usable through clenched teeth".

This is 2.3.5 SteamVR, Frame Timing:
https://gtm.steamproxy.vip/ugc/2335748378506914705/3DE694A9A5C3CFD95D0C958C219F5E74E1710AA1/
Each spike corresponds with the pink line on the graph inside VR, and is also the moment when the hitch occurs.
I've unchecked all the graphs that were just flat lines, or plain invisible.
So, Compositor GPU is absolutely fine. It shows 0.6 ms lag, with "short patches of noise" most of the time(it is a bit noisy on the image itself, because I screened it while being in the menu).
At the same time, hitches seem to only affect the graphs "WaitForPresent Spin" and "New Poses Ready"

https://github.com/ValveSoftware/SteamVR-for-Linux/issues/657
Looks like we might be at the mercy of Nvidia.

EDIT: Found at dmesg:
[drm:nv_drm_atomic_commit [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000800] Failed to apply atomic modeset. Error code: -22
[drm:nv_drm_atomic_commit [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000800] Flip event timeout on head 0

Setting fbdev to 0, though fixing the issue, it didn't fix the jittering. Though it feels like it has more chances to produce very clean graphs, from time to time.
Last edited by SiEgE; 8 Feb @ 10:59pm
SiEgE 10 Feb @ 7:30am 
Uuuuh.. guys. I think me or Nvidia have finally fixed it.
1. I've installed Nvidia 550.40.07 Beta driver.
2. Turned on fbdev=1 (and hdmi_deepcolor=1. Mentioning that bit just in case)
3. Installed Wayland(I don't use it, though, cause it is VERY buggy on Gnome-based distros. It is just there, sitting as a possible selection at the login screen. Mentioning it just in case it might've been the cause in some odd way. During the tutorial I've used, I've installed dracut, which I've later used during Nvidia setup process(it suggested me to use it)).
4. Turned off Steam's own Hardware Acceleration.
5. Closed every single additional SteamVR window(that will cause most of your additions like Linux desktop to break).

So far, my GPU graph is crystal clear, with no hitches or jitters, and no spikes on my graph, too!
I'm about to try few actual VR games, but so far, at the SteamVR's space, everything looks super smooth.

EDIT:
Boneworks, Google Earth VR and HL:Alyx were so smooth. Off to a great start.

I saw a bit of input lag fluctuation. It changed between perfect and better than Windows, to "Oculus Quest 2'esque".

EDIT2:
Using NVreg_EnableGpuFirmware=1 damages the performance greatly, creating tons of hitches. Didn't see much change with __GL_MaxFramesAllowed=1, not sure though.

EDIT3:
Still haven't managed to launch it with enableLinuxVulkanAsync=true. Just black screen.
Sometimes, it gives off a feeling of strange "overshoot", or a strange input lag, despite the gpu graph never going over 3ms.
Last edited by SiEgE; 11 Mar @ 4:55am
SiEgE 7 Mar @ 1:18am 
Ended up converting my Ubuntu 23.10 into Kubuntu 23.10, wiping the gnome out completely. Now it is just KDE Plasma 5 with Wayland.
Installed Kernel 6.7.7 and updated my Nvidia driver up to 550.54.14.
Bleeding edge version of SteamVR.

VR feels awesome. No input lag, no hitches or lags, perfect performance.
On the other hand, VR is the only thing that feels so awesome.
The PC won't go to the login screen automatically when hmd's hdmi cable is plugged in.
Lack of "explicit sync" or whatever in the Nvidia drivers makes most non-VR games jittery(frame order glitch). 2D games also have black frames that flicker or even take over the game's screen. Valve's gamescope helps(it prevents the blackness from staying, and makes it just flicker. Also kinda fixes the frame order glitch so it is only present at the top 15% of the screen for Cyberpunk 2077).

UPD 10.03.2024 fbdev=1 doesn't seem to affect VR, at least on 550.54.14.
Found an odd bug where the HMD feed colors would start suffering from banding after SteamVR's crash. I do believe it is healed through PC reboot. HMD's OLED panels would also lose the info about pixel normalization, causing each pixel on the HMD to have odd patterns of brightness/dimness.
Last edited by SiEgE; 11 Mar @ 5:03am
< >
Showing 1-15 of 37 comments
Per page: 1530 50