protonscr

[PERF] Latest SteamVR version jerks around and stutters a lot

steamvropen perf
ValveSoftware/SteamVR-for-Linux#631 · opened 2023-11-02 by Dwood15 · updated 2026-03-18 · 23 comments · github
1 matching comments, n / p to jump
DDwood15 2023-11-02 github

Describe the bug

When using SteamVR with the new UI, it introduce intermittent stalls in frame output, and is generally incredibly laggy. Whenever I move my head the game follows, then it jerks around, and is generally unplayable even when the overlay is closed.

To Reproduce

There's no specific error and I'm not skilled enough in debugging to know how to guarantee anyone else gets this issues, so if commenters having the same issues as me can help add details, it would be very nice.

It happens in games like beat saber and tetris effect, as well as the base Home and Non-Home environments, which prior to the latest updates with the new UI, only the SteamVR-Home environments ever lagged. At this point VR is impossible to use.

Expected behavior

For SteamVR not to turn into a slideshow whenever I move my head. and to easily get 120fps

System Information (please complete the following information):

  • Distribution: Manjaro
    Note: why is it such a pain to find the installed version of SteamVR? The installed version numbers should be front and center in the ui client. Edit: Turns out the version is visible in the little window while steamvr is running. If it's not running, it's not visible in the main steam library ui or properties page.

  • SteamVR version: 2.0.10

  • Steam client version:
    Steam Version: 1698777785
    Steam Client Build Date: Mon, Oct 30 8:09 PM UTC -07:00
    Steam Web Build Date: Fri, Oct 27 5:29 PM UTC -07:00

  • Opted into Steam client beta?: No

  • Graphics driver version: Driver Version: 535.129.03 CUDA Version: 12.2

  • Gist for SteamVR System Information: https://gist.github.com/Dwood15/bcf692a1e9b32322cb3e8c8e0ce3389a

Performance Data (optional, but very helpful):

OS: Manjaro Linux x86_64
Kernel: 6.1.55-1-MANJARO
CPU: AMD Ryzen Threadripper 3960X (48) @ 3.8GHz
GPU: NVIDIA RTX A6000
Memory: 5.92GiB / 125.67GiB (4%)

Perf measurements not taken yet- the issues are visibly apparent on my setup with my ampere gpu.

Screenshots
If applicable, add screenshots to help explain your problem. If possible, also include screenshot of vrmonitor's timing graph.

Additional context
Add any other context about the problem here.

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

Will detail in comments any further debugging I attempt.

DDwood15 2023-11-02 github

force-closing the vrwebhelper and performance returns to what I expect.

Current theory: Latest vrwebhelper is missing a special sauce for hardware decoding that was in the earlier version. Either way, the webhelper is clearly the root problem.

NNewtSoup 2023-11-02 github

@Dwood15 I have to say that killing all instances of VR Webhelper did increase the performance in Fallout 4 VR to the point where it was almost playable! I was unable to check the timing graph because doing so disables the VR Dashboard and Overlays of course. I was still getting some double vision when moving and or turning but it was less intense than previously

DDwood15 2023-11-07 github

@NewtSoup Yeah, even with the webview killed, the performance of various VR games on linux still massively underperforms. At least with the webview down, things like Beat Saber are still usable.

Unfortunately this comes with a massive cost, like you said.

Hhennakin 2023-12-08 github

If Valve would open-source the dependencies we could debug this and help. Linux-VR really seems broken at this time. I would put some code in it to measure timing and needed time for critical function calls and make some unit testing for this with sane thresholds before failing on your testing-environment - so one could get the timing straight before releasing anything. What I don´t understand is why is vrwebhelper and steam webhelper doing really anything when not displaying something. In such timing critical applications like VR it seems a bad decision for me letting some stuff going on in the background that seems to be not needed at that time.

PPhilT 2024-01-16 github
PPatola 2024-05-16 github

Ok... I've tried all the solutions described here from killing vrwebhelper to disable or enable async reprojection and none of them worked. So I've found a solution that worked for me, which I explained in issue #657 --

I thought that stutter (also present in SteamVR 2.5.5) was due to something much more trivial, excessive logging, and it seems it is. I mounted ~/.local/share/Steam/logs as a tmpfs filesystem with owner/group as my own user and then the stutter is GONE!

The logs in there have a lot of trivial warnings repeated ad nauseum several times per second. This is useless/wasteful, but it hits the filesystem in a chorus a thousand times per second, and it's no wonder that it hinders the ability of games to keep the frame window stable.

Why is there so much logging, anyway? It doesn't seem it's sent to steam servers or something, and I see no way to turn it off. If a log falls in the middle of the forest and no one reads it, have those log messages really happened?

To me the only thing these logs inform is that steam and its subsystems like SteamVR are in a really bad shape, with lots of problems in their plumbing. Rejected connections, wrong inputs, mishandled files, stuff not found, and still it can run games and seems to work fine. Additionally, in my experience on bug reports here, on most cases these warning/error messages are useless to the diagnostics of the problem.

My hack to get stable frames is so good that I'm adding it to /etc/fstab. It forgets all files once I reboot, of course, but if I need them to a bug report or something they're still there, in my RAM.

Wwallcarpet40 2024-05-16 github

I mentioned the same in my comment https://github.com/ValveSoftware/SteamVR-for-Linux/issues/667#issuecomment-2094826635 that vrwebhelper keeps writing to the disk at 8MB/s with considerable CPU usage and if you leave SteamVR on for a while, you can see, that it keeps increasing the RAM usage to over 2,2 Gigabytes despite the fact that no game is running (not even SteamVR Home).

"Luckily" on Fedora 40, vrwebhelper requires SDL_VIDEODRIVER=x11 in it's launch script and without it, vrwebhelper does not start and the performance goes back to normal.

HHisanatos 2024-07-04 github

Hey, I haven't had this problem under X11, but after explicit sync was added to Nvidia driver I tried Wayland and encountered the problem specified in the issue
image

This makes VR totally unplayable under Wayland.

HHisanatos 2024-07-07 github

Hey, I've got some spare time on Weekend and downgraded Nvidia drivers from 555 to 550, and the stuttering is gone, something ticked me off, when Monado experienced the same behaviour.
obraz
I'll retest on Wayland and edit this message, and open an issue on Nvidia forums some time later.

EDIT: Yeah, this time it's on Nvidia
obraz

Jjp7677 2024-07-07 github

This post hints that disabling GSP on the 555 driver also solves it https://forums.developer.nvidia.com/t/enabling-gsp-makes-steamvr-unplayable-on-rtx-3090ti/298694

NNewtSoup 2024-07-07 github

This post hints that disabling GSP on the 555 driver also solves it https://forums.developer.nvidia.com/t/enabling-gsp-makes-steamvr-unplayable-on-rtx-3090ti/298694

What is GSP? Is it a setting that is turned off in Steam VR?

Jjp7677 2024-07-07 github

This post hints that disabling GSP on the 555 driver also solves it https://forums.developer.nvidia.com/t/enabling-gsp-makes-steamvr-unplayable-on-rtx-3090ti/298694

What is GSP? Is it a setting that is turned off in Steam VR?

See https://download.nvidia.com/XFree86/Linux-x86_64/555.58.02/README/gsp.html

HHisanatos 2024-07-09 github

For anyone who struggles (took me like 3 hours) with setting this up (as it resolved my problem) you can open a terminal and type
nvidia-smi -q | grep "GSP"

If you get
GSP Firmware Version : N/A
You are golden if not and instead of N/A you have some numbers you will encounter this problem on Nvidia drivers.

I had gone to /etc/modprobe.d/ created nvidia.conf file and inside put this

options nvidia NVreg_EnableGpuFirmware=0

After dracut-rebuild and restart I no longer experience those horrendous stuttering.

Hope this helps anyone who have similar distros to me, and point others to the right direction.

NNewtSoup 2024-07-18 github

Replying to https://github.com/ValveSoftware/SteamVR-for-Linux/issues/631#issuecomment-2236518224

Is there an AMD equivalent? I'm not using an nVidia card - RX6700XT

WWAUthethird 2024-10-26 github

Replying to https://github.com/ValveSoftware/SteamVR-for-Linux/issues/631#issuecomment-2216836976

Note that this does not work for those on the newer open NVIDIA drivers, since those require GSP to be enabled to even function: https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/667

KKoli0842 2026-02-25 github

Hey @NewtSoup did you find a solution? I was having a bad experience on nvidia, switched to 9070XT, and on semi-demanding titles I also have a stuttery presentation with lots of pink lines in the frametime graph

Kkisak-valve maintainer 2026-02-25 github

Hello @Koli0842, check pp_power_profile_mode as discussed in #469.

NNewtSoup 2026-02-25 github

Hey @NewtSoup did you find a solution? I was having a bad experience on nvidia, switched to 9070XT, and on semi-demanding titles I also have a stuttery presentation with lots of pink lines in the frametime graph

I did not. My very expensive Valve Index has been a paperweight since SteamVR 1.26

The problem is especially prevalent with AMD card and it's Steam VR's Pipelining that's at fault. I can only hope that with the Steam Frame being in the works AND the Steam Machine being a linux machine that Steam VR gets a good overhaul very soon.

I had a lengthy chat with ChatGPT and it reckons there are a bunch of workarounds that can improve things. Oh and Kisak has just replied too - I will go and look at that - though if he means my machine power profile then I already have that set to maximum using CoreCTRL - Ah yes, this is exactly it ( I just looked ) and the aggressive power profile does not help.

I know my hardware is good because it's flawless in Windows ( I can't use windows any more though )

Fingers crossed for updates close to the steam frame release ( or before )

I'm unable to test anything at the moment because I'm in temporary housing ( landlord sold my house and I have nowhere to go to ). Once I'm settled I will however get back to VR gaming and I will try a few of the workarounds.

** Edit - I added the results of what ChatGPT suggested as work arounds for VR in Linux using AMD based cards but it seems to have been marked as spam. The message is still there for me so I hope people can still elect to view it. It's not spam, just created by generative.

NNewtSoup 2026-02-25 · hidden on GitHub github

This is what ChatGPT suggested I try. I have not yet had the opportunity to test this:

Here’s a clean, step-by-step summary of all the known workarounds, overrides, and patches that help SteamVR behave better on Linux with AMD GPUs, specifically the RX 6700 XT.
This pulls together everything that actually matters and cuts the noise.

✅ 1. System-Level Setup (Arch / BigLinux)
1.1 Kernel + Mesa

Make sure you’re on:

Latest stable kernel (you said BigLinux does this already).

Mesa ≥ 24.x

LLVM ≥ 17

vulkan-radeon and vulkan-mesa-layers installed.

Install the essentials:
sudo pacman -Syu mesa mesa-vdpau vulkan-radeon vulkan-mesa-layers vulkan-tools lib32-vulkan-radeon

✅ 2. Required Core Workarounds (AMD + SteamVR Issues)

SteamVR on Linux was basically tuned for NVIDIA. AMD requires the following:

2.1 Export Required Environment Variables

Add these to your Steam Launch Options for SteamVR:

ENABLE_VR=1 VKD3D_CONFIG=upload_hvv RADV_PERFTEST=shaderballot MESA_VK_WSI_LAYER=simple

Or globally in a wrapper script if needed.

What each one does:

RADV_PERFTEST=shaderballot → MASSIVE gain for VR workloads

MESA_VK_WSI_LAYER=simple → fixes compositor jank

VKD3D_CONFIG=upload_hvv → stabilises DX11+VR translation

ENABLE_VR=1 → forces VR mode on some games

2.2 Force Legacy Async Reprojection

SteamVR’s reprojection is broken on Linux + AMD.

Put this into /etc/environment or Launch Options:

VR_FORCE_SPAWN_ODR=1
VR_COMPOSITOR_FORCE_GPU=1

And in SteamVR settings → Developer:

Enable Timing Override

Enable Advanced Supersample Filtering

Disable Motion Smoothing (AMD cannot use Valve’s implementation)

✅ 3. Compositor Fixes (Most Important Section)

SteamVR uses its own compositor, which breaks under Wayland.

The fix: run SteamVR inside X11 even while your DE is Wayland

Launch Steam with:

STEAM_FORCE_DESKTOPUI_SCALING=1 STEAM_USE_XDG_OPEN=0 QT_QPA_PLATFORM=xcb steam

If on Wayland, use gamescope wrapper:

gamescope -w 1920 -h 1080 -- steam -vr

This isolates SteamVR from Wayland’s frame scheduling which Kills VR.

✅ 4. Proton-Specific Fixes (For VR Games)

For each VR game:

4.1 Set Launch Options
DXVK_ASYNC=1 DXVK_HUD=compiler gamemoderun %command% --steamvr

4.2 Protontricks settings

Use winetricks/protontricks:

protontricks mediafoundation
protontricks d3dcompiler_47
protontricks faudio

Especially important for:

Fallout 4 VR

Skyrim VR

Most Unity VR games

4.3 Check file limits

VR games need high ulimit:

/etc/security/limits.conf:

  • soft nofile 524288
  • hard nofile 524288

✅ 5. Patch SteamVR Itself (Real Fixes People Use)
5.1 OpenComposite (OpenXR instead of SteamVR)

For many games, SteamVR = jank, OpenXR = smooth.

Install:

yay -S opencomposite-git

Then:

xrdiscover

Select OpenComposite (OpenXR) for each game.

Massive FPS improvements for:

Skyrim VR

Fallout 4 VR

No Man’s Sky

Beat Saber

Boneworks

H3VR

5.2 Force SteamVR to Use OpenXR Overlays

Create:

~/.steam/steam/steamapps/common/SteamVR/resources/settings/default.vrsettings

Add:

{
"steamvr" : {
"forceFadeOnBadTracking": false,
"enableLinuxVulkanAsync": true,
"forceWindowsCompat": true
},
"linux" : {
"requireVulkan": true
}
}

This disables Valve’s bad Linux tracking fallback and forces Vulkan-only paths.

✅ 6. AMD-Specific Overrides for Better VR Latency

Create /etc/modprobe.d/amdgpu.conf:

options amdgpu vm_fragment_size=9
options amdgpu gpu_recovery=1
options amdgpu dcdebugmask=0x0
options amdgpu si_support=0
options amdgpu cik_support=0

This improves VRAM paging, reduces compositor stalls, and improves recovery from VR freezes.

✅ 7. Optional but Extremely Helpful Tools
7.1 MangoHUD

Monitor frame timing:

sudo pacman -S mango

Launch games with:

mangohud %command%

7.2 Gamescope (Most effective single fix after OpenComposite)

It isolates VR app → prevents stutter from your DE.

gamescope -f --steam -- %command%

👍 The Setup That Works Best on RX 6700 XT Today

Here’s the known-good combination for AMD VR on Linux:

✔ Kernel 6.8+
✔ Mesa 24+
✔ SteamVR launched under X11 (even on Wayland)
✔ OpenComposite for all supported games
✔ Async reprojection forced ON
✔ DXVK_ASYNC for games
✔ Gamescope wrapper

KKoli0842 2026-03-02 github

Hey @kisak-valve, Thanks for responding. I've tried both pp_power_profile_mode to 4, power_dpm_force_performance_level to high, and various similar combinations from LACT as a GUI tool as well. None of them seem to change the beahviour at all. I see ~25% GPU usage and 2000-something Mhz clocks on my 9070XT, peak clocks are usually around 3000s but I don't completely understand how AMD handles and reports back clocks.
The behaviour is particularly noticable in things like SteamVR Home, it stutters in a way that I get severe double vision even looking at the dashboard, that gets more severe the faster I turn my head, but depending on the title, it's either fine or not. Beat Saber feels fine for example.

KKoli0842 2026-03-09 github

I have tried a few more things today, to no avail, including:

  • Any render scale from 50% to 500%
  • Any refresh rate mode, from 80 to 144 Hz
  • Deleting steamvr.vrsettings to see if there's a stuck setting
  • High Performance mode in the GUI (KDE / power-profiles-daemon)
  • Force high power state on the GPU like mentioned above
  • Verify the above works by monitoring tools
  • Various scheduler and task priority settings.

The only thing I was able to observe really, is that either SteamVR Home or the compositor appears to be single core limited, as 1-2 cores see hit 100% regularly. I know Linux has the overhead worse, but having a 5800X3D this certainly feels harsh. I have attached some screenshots, where in just 80Hz mode, I look around in the default SteamVR Home.

Image Image
KKoli0842 2026-03-18 github

Some further update, I have tried SteamVR beta where the issue persist. I have also tried Monado, where I've had various issues around playspace calibration, but the performance was actually great, I've experienced none of the described stuttering