alvr-org / ALVR

Stream VR games from your PC to your headset via Wi-Fi
MIT License
5.3k stars 474 forks source link

Terribly poor performance on Arch Linux and GTX 1650 #1263

Closed unclamped closed 1 year ago

unclamped commented 1 year ago

Description

After connecting my Quest 2 to my ALVR server, the server connected via Ethernet, and the Quest 2 connected to a 5.8 GHz WiFi access point, the latency is massive and the frames-per-second are way too low, beyond unusable. Despite the CPU being relatively underpowered for VR, I have seen it capable of running standalone VR games and other apps like the SteamVR home paired with the official Oculus app just fine in a playable state, so in this case, the hardware should not be an issue. Here are both a video recording of how it looks from the VR perspective, and also a screenshot of the ALVR dashboard's statistics image https://user-images.githubusercontent.com/104658278/203181415-28d29bf6-b574-490d-8d31-b72a0ea0447e.mp4

General Troubleshooting

Environment

Hardware

Note: for Linux, an upload to the hw-probe database is preferred: hw-probe -all -upload https://linux-hardware.org/?probe=fdafa2db2a

CPU: Intel Pentium G4560

GPU: Nvidia GTX 1650

Audio: Pipewire (?)

Installation

ALVR Version: ALVR server v20.0.0-dev01, alvr-git-r2177.75000045-1

SteamVR Version: SteamVR 1.24.6

Install Type:

OS Name and Version (winver on Windows or grep PRETTY_NAME /etc/os-release on most Linux distributions): Arch Linux

ghost commented 1 year ago

i see that you have a Pentium. It looks like NVENC is not working, or you are doing forced software rendering. I have also had similar lag when using software encoding. This usually is caused when you suspend, and the display driver has a fit and crashes.

unclamped commented 1 year ago

i see that you have a Pentium. It looks like NVENC is not working, or you are doing forced software rendering. I have also had similar lag when using software encoding. This usually is caused when you suspend, and the display driver has a fit and crashes.

As I mentioned, the Pentium should not be an issue, it is bad, yes, but in comparison to other experiences I had with PCVR, for example, Windows and the official Oculus app, it actually ran quite well. As for NVENC, how can you tell? Is there any way to also tell if I'm doing forced software rendering? And, at last, I actually ran the test right after rebooting my machine, without suspending it at all, so that shouldn't be an issue

Edit: I have already enabled DRM (Direct Rendering Manager) in my OS, which should also enable NVENC by enabling the nvidia_uvm module, so yeah, that shouldn't be the issue either. Still, it would be good to find a way to check whether or not it is working correctly

ghost commented 1 year ago

an easy way to check is to run a quick nvenc recording in OBS. If it throws an error, then it has to be an NVENC bug. Typically cpus such as pentiums take forever to encode a h.264 frame, making it kind of obvious to what encoding is happening. Another way is to also switch to HVEC encode, as many cpus do not support encoding for it.

unclamped commented 1 year ago

Sorry for leaving this inactive, NVENC is working correctly. I will test again with the latest release in the next days, hopefully it has been fixed.

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

unclamped commented 1 year ago

nah After updating to the latest nightly, I found that the latency is a lot better, under 10 ms in fact, but the FPS is still very bad. When in loading screens between games, it works perfectly, it's smooth, the quality is good (even for my bad router), and the latency is under 10 ms, but the second I enter the SteamVR home the FPS just performs horribly. A reminder that these issues don't happen to me on a Windows install, it's not a crappy hardware failure