ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
919 stars 45 forks source link

[BUG] VR presentation looks ...off? #415

Open Atemu opened 3 years ago

Atemu commented 3 years ago

Describe the bug A clear and concise description of what the bug is.

I can't quite put my finger on it but something about the presentation of VR on Linux is different to Windows, in a bad way. Rotating my head or simply looking around feels unnatural and moving around even more so.

I've got some pretty decent VR legs but even I get a bit dizzy when moving too much with this bug.

Since just looking around without rotating my head is also off, I don't think it's a latency issue and I didn't notice any when swinging around the controllers either.
My current hypothesis is that the FoV is wrong because that's the sense I got when trying to play Beat Saber but it's really hard to tell. Is there any way I could simulate some undesirable effects like these on Windows to find out which one matches my experience?

To Reproduce Steps to reproduce the behavior:

Start SteamVR on a system with an HTC Vive and an nGreedia or AMDGPU.

Expected behavior A clear and concise description of what you expected to happen.

Rotation and movement should feel as natural as on Windows.

System Information (please complete the following information):

Screenshots If applicable, add screenshots to help explain your problem.

(Is there a test level or test screen I could screenshot that would make spotting the precise issue easier?)

Additional context Add any other context about the problem here.

My Vive was purchased in 2018 if that makes a difference. GPU is a GTX 970.

Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.

I'd also like to verify that I'm not the only one with this issue as I wasn't able to find any reports of similar bugs in here and this is a rather obvious one. I'd love to hear other users' reports whose systems are similar to mine.

slackerbob commented 3 years ago

A 970 is a super weak card for VR.

VR on Linux is very poorly optimized, so I"m wondering if you're just dropping/reprojecting a lot of your frames.

I swap back and forth between Linux VR and Windows VR with a 2060 and the only thing I notice is the worse framerate.

Atemu commented 3 years ago

Nah that's not it, this even happens in the "empty" loading area thingy and I had to turn off async reprojection anyways because it causes severe framerate issues with Nvidia.
Beat Saber was running on a near perfect 90fps.

You might wanna check if you're affected too. That could explain the performance delta you observe because, on a 2060 class card, DXVK overhead shouldn't cause any noticable real-world VR performance degradation.

A 970 is more than good enough for most VR games on a Vive btw.

Which headset are you on? This might be an OG Vive-only thing.

Atemu commented 3 years ago

The same issue happens with AMDGPU, so it's not the Nvidia driver.

I didn't bother testing on an FHS-compliant distro again since it didn't make a difference with the Nvidia card.

slackerbob commented 3 years ago

I'm running a Valve Index. it's been a really great headset, but under Linux (Arch btw) it's struggling to keep a stable 90fps on many games. That said, I'm pretty stubborn...I'll keep putting up with substandard experience just to avoid Windows lol

If you're curious (it's months outdated now), my most recent system info gist is here.

Judging by that, it looks like async reprojection is already disabled on my system, but I'll look into it more anyway, thank you.

As far as your problem, though, I haven't experienced it, so I'm probably not going to be much help, unfortunately.

Hopefully someone else will come forward...or perhaps you're just nuts! :smile:

Atemu commented 3 years ago

Got an Index (overpriced but I'm putting my money where the Tux is!) and I'm not that used to it yet but in my initial testing something still seemed different about the visual presentation in movement compared to Windows.
To a lesser degree than the Vive though.

Edit: New system report

Bloodninj commented 3 years ago

I can confirm this too. I've used the same Index setup with this computer using Windows 10 build 1909, 2004 and 2010, as well as Ubuntu 20.04 and 20.10 and Pop!_OS 20.10. The HMD movement and rotation is smooth in Windows, whereas any of the Linux environments makes the rotation feel off. The SteamVR playspace indicators jump around when moving or rotating and create strange blurs near the side of the lenses. Games can be played but because of this, feels worse than the same game on Windows. Here's a system report.

Edit: Reprojection is disabled/not available under amdgpu on Linux for my system. Happens at all available refresh rates.

Atemu commented 3 years ago

The SteamVR playspace indicators jump around when moving or rotating and create strange blurs near the side of the lenses.

Do you mean like a trail or stuttery?

There is an issue I experience on my Index where the refresh rate of the display is at 144Hz but the compositor is running at 90Hz causing ghost image trails behind moving objects. See bottom of https://github.com/ValveSoftware/SteamVR-for-Linux/issues/334 for more details.
You can check the current compositing rate in the performance monitor.

That's separate from my issue though.
It's more subtle and not directly visible but makes rotation and translation feel off regardless.

Reprojection is disabled/not available under amdgpu on Linux for my system.

What do you mean?

Regular reprojection should be working but async reprojection needs the capability to be set on vrcompositor and the ability to raise the ambient cap. This may not work in containerised settings like Flatpak.

Atemu commented 3 years ago

What I'm experiencing might be https://github.com/ValveSoftware/SteamVR-for-Linux/issues/21.

I noticed a significant delay when going back to the Vive for troubleshooting but I'm not sure that's everything.

sio-k commented 3 years ago

I've also experienced this. I don't think it's related to #21, as tracking in basically all games is smooth and there is no noticable delay. But before actually launching a game, there is a noticable delay in there. It feels like there's 1-3 frames' worth of lag between input and output.

The issue has been consistently there for several months, largely unchanged across different distros (Ubuntu 20.04/10, Gentoo), different kernel versions, and both Mesa 20 and Mesa 21.

System:

I am unable to verify whether the same issue occurs under Windows with my system.