protonscr

[BUG] steam VR link , macro blocking and trails with quest 3s

steamvropen bug
ValveSoftware/SteamVR-for-Linux#904 · opened 2026-06-08 by tails101 · updated 2026-08-12 · 15 comments · github
Ttails101 2026-06-08 github

im trying steam vr linux and i get a very blurry image with tons of artefact.

it works on windows as it should.

tried to increase the bandwidth but nothing seems to work.

im using cachy os with kde desktop wayland (no gamescope) and my computer is a 5820k with a rx5700xt and 32gb ram.

the computer use ethernet and a dedicated 5ghz wifi router.

the fps are good on linux, i receive 90fps and flat game streaming works perfectly as well.

seems to be a codec issue in steam vr itself.

the headset is a quest 3s with steam link app.

any idea on what could be the problem?

Edit:
checked for and it blur even more the screen but it does not help sadly.

so yes it is disabled.

i tried as well to put the bandwith to manual and set it to max, did not help either . But it was helping before, I'm using Ethernet and wifi in same time.

PPacketdancer 2026-06-08 github

It'd be helpful to get the SteamVR logs. In particular vrserver.txt, vrcompositor.txt, and driver_vrlink.txt may have useful information.

Ttails101 2026-06-09 github

ouch sorry i used windows to play yesterday
because downgraded the version of steam vr expecting this would change a thing but nope
so i need to try the latest beta and try again.
im on wayland btw

PPacketdancer 2026-06-10 github

No worries, just if you can get logs under the latest beta it'll help figure out what might be happening for you.

And while it's useful to know you're on Wayland, it's also good to know which Linux distro, and what GPU you have.

Ttails101 2026-06-11 github

Sure, as I said, distro: Cachy os
De: kde Wayland
GPU:5700xt

Ttails101 2026-06-13 github

vrserver.txt

vrcompositor.txt

here you go.
after updating and everything still same issue

DDanaGoyette 2026-06-17 github

I'm seeing something similar, though I have a bit of DRI_PRIME in the mix, so it's not 100% certain to be the same bug.
Changing the bitrate slider to maximum does nothing to fix it.

I took these screenshots from the Quest 3's OS, then used the Android app to download them to my phone.

SteamVR UI in terribly low bit rate SteamVR UI in terribly low bit rate
Ttails101 2026-06-18 github

Definitely looks very similar, and yes before setting manual bitrate was fixing it a few month ago but it does not anymore.

UUselessGhost 2026-06-18 github

I am seeing the same behavior with a Quest 2 and Bazzite-deck RX 5700 XT host machine. Bitrate is reporting as 1 Mbp/s in the debug tools. Playing with target bandwidth does nothing to resolve.

For what it's worth, I've also tried the same Quest 2 on a Fedora 44 KDE system running an AMD 760M iGPU and encoding looks fine there.

Ttails101 2026-06-20 github

forgot to add, this issue does not affect flat games streaming, wivrn or alvr so it is a steam vr specific thing.

11TheBlueWii1 2026-07-03 github

Having this issue on my Quest 2, tested both on my main PC and on my Steam Deck LCD. This happens on the latest beta (2.17.3), and on live branch (2.16.7). The logs I'll attach will only show 2.17.3 testing on both systems.

Also, since both systems have RDNA2 based GPUs, I ran this launch command on SteamVR so it's able to stream to the headset:
RADV_PERFTEST=video_encode,video_decode %command%

Lastly, I want to point out that this blurring issue didn't exist often pre-2.16 SteamVR. I noticed it happening when 2.16 was in beta.

Test 1: Main PC

CPU: AMD Ryzen 7 5700x3D
RAM: 32GB DDR4 @ 3200mhz (2x16GB)
GPU: Radeon RX 6800
MB: MSI B550M PRO-VDH WIFI
OS: Linux Mint 22.3 (X11)
Kernel: 6.17.0
GPU Driver: Mesa 26.1.3

https://github.com/user-attachments/assets/7258e407-2bf0-44c2-a5c9-297a84b0cdf2

driver_vrlink.txt
vrcompositor.txt
vrmonitor.txt
vrserver.txt
vrstartup-linux.txt

I should note that when I attempted to close SteamVR, it would freeze and lock up Steam with it. Though after saving copies of the logs, I did a reboot, and later testing would close SteamVR properly.

Test 2: Steam Deck

Model: Steam Deck LCD 256GB model w/ 1TB Corsair SSD replacing the 256GB.
OS: SteamOS 3.8.21
(This was tested on Desktop mode. Using Wayland)

Image

driver_vrlink.txt
vrcompositor.txt
vrmonitor.txt
vrserver.txt
vrstartup.txt
vrstartup-linux.txt

Closing SteamVR was normal, so the logs should be cleaner here. The Deck was also connected to my network via Ethernet on a JSAUX dock to get the best connection.

Overall, I get the same result of blurring and smearing. I tried manually changing the bit rate, resolution, and frame rate. But nothing changes.
Also this doesn't happen on ALVR (with SteamVR 2.15), nor on Windows 11 with Steam Link VR.

PPacketdancer 2026-07-06 github

We've actually seen this here in the office now, which is bad (it means it's not just a configuration issue), but also good (because it means we can reproduce and hopefully track down/fix it). So, to steal some terms from a certain Clair Obscur character, a bit of "wheee" and a bit of "whooo".

11TheBlueWii1 2026-08-08 github

Out of curiosity, I decided to swap out my RX 6800 with a backup RX 9060 XT I own, just to test and see if newer hardware works better with SteamVR on Linux via Steam Link.
And to my surprise, the blurry artifacts were gone! The stream was clean. Doesn't matter if the RADV_PERFTEST launch command is set or not.

Before I swapped GPUs, I removed the launch command and tried Steam Link on my RX 6800 again, I got a proper error this time: (In older SteamVR versions, it would index the error code, but not show a proper message of what the error was.)

Image

And bypassing it with the launch command, I still get the low quality bit rate.

But with my RX 9060 XT, this is not the case.

Here's vainfo for my RX 9060 XT:

libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 26.1.6 - kisak-mesa PPA for AMD Radeon Graphics (radeonsi, gfx1200, ACO, DRM 3.64, 6.17.0-41-generic)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointEncSlice
      VAProfileNone                   :	VAEntrypointVideoProc

And for my RX 6800:

libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 26.1.6 - kisak-mesa PPA for AMD Radeon RX 6800 (radeonsi, navi21, ACO, DRM 3.64, 6.17.0-41-generic)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

Clearly both cards have HEVC encoding and decoding (for 8-bit and 10-bit), yet SteamVR doesn't think the RX 6800 does...

Seems like SteamVR is not recognizing that RDNA2 and RDNA1 GPUs can do HEVC.

Ttails101 2026-08-09 · hidden on GitHub github

Out of curiosity, I decided to swap out my RX 6800 with a backup RX 9060 XT I own, just to test and see if newer hardware works better with SteamVR on Linux via Steam Link. And to my surprise, the blurry artifacts were gone! The stream was clean. Doesn't matter if the RADV_PERFTEST launch command is set or not.

Before I swapped GPUs, I removed the launch command and tried Steam Link on my RX 6800 again, I got a proper error this time: (In older SteamVR versions, it would index the error code, but not show a proper message of what the error was.)

Image And bypassing it with the launch command, I still get the low quality bit rate.

But with my RX 9060 XT, this is not the case.

Here's vainfo for my RX 9060 XT:

libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 26.1.6 - kisak-mesa PPA for AMD Radeon Graphics (radeonsi, gfx1200, ACO, DRM 3.64, 6.17.0-41-generic)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointEncSlice
      VAProfileNone                   :	VAEntrypointVideoProc

And for my RX 6800:

libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 26.1.6 - kisak-mesa PPA for AMD Radeon RX 6800 (radeonsi, navi21, ACO, DRM 3.64, 6.17.0-41-generic)
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD
      VAProfileAV1Profile0            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc

Clearly both cards have HEVC encoding and decoding (for 8-bit and 10-bit), yet SteamVR doesn't think the RX 6800 does...

Seems like SteamVR is not recognizing that RDNA2 and RDNA1 GPUs can do HEVC.

Ttails101 2026-08-09 github

yes im not surprised it work on newer hardware, they indeed use different encoder so this is probably why

PPacketdancer 2026-08-12 github

FWIW, even if the GPU supports HEVC, if the Vulkan video drivers for the GPU don't, VRLink is going to flag it as not supporting HEVC (because it uses Vulkan video).