protonscr

[BUG] Extremely pixelated low bitrate streaming from PC to Steam Frame

steamvropen bug
ValveSoftware/SteamVR-for-Linux#1004 · opened 2026-10-08 by robertkirkman · updated 2026-10-28 · 10 comments · github
Rrobertkirkman 2026-10-08 github

Describe the bug

No matter what encoding, target bitrate, resolution, foveated rendering, link device (WiFi router or Steam Frame Wireless Adapter), SteamVR version, SteamOS version, or Steam version is used, the stream of the SteamVR main menu, and any games launched in any way through streaming, is extremely pixelated and low bitrate, making almost everything unreadable and many small objects invisible.

To Reproduce
Steps to reproduce the behavior:

  1. Set up Steam Frame and Steam Frame Wireless Adapter on Linux by:
  • Fully updating all distro packages and installing Steam from the distro's own repository, not Flathub
  • plugging the Steam Frame Wireless Adapter into a light blue USB 3.1 port marked with "10" on the motherboard main I/O without any extenders or USB hubs splitting the connection
  • setting the PC backwards on top of the desk so that the Steam Frame Wireless Adapter is directly pointed at the Steam Frame no greater than 5 feet away with no objects in between them
  • disabling all nearby bluetooth devices and any other WiFi access points that are closeby, leaving only the main WiFi router at a distance of more than 10 feet from both the Steam Frame and the Steam Frame Wireless Adapter
  • running iw reg set US and setting it to always run on startup
  • installing kernel 7.2+
  • installing and enabling NetworkManager service
  • manually setting the "Steam Frame Wireless Adapter" access point from "WPA/WPA2/WPA3 Personal" security to "WPA3 Personal" security through NetworkManager after launching Steam
  • reconnecting the Steam Frame Wireless Adapter through NetworkManager manually
  1. Update Steam Frame's SteamOS to the latest preview and the PC's Steam client and SteamVR to latest beta
  2. Launch SteamVR and/or any VR game streamed to the Steam Frame
  3. See extremely pixelated stream in the headset and extremely low bitrate and low encoding speed in the SteamVR Remote Detailed Debug window

Expected behavior

No other users I've seen have SteamVR streaming this pixelated in any situation

System Information (please complete the following information):
Please use the latest Steam beta client and SteamVR beta for your bug reports!

  • Steam client version (build number or date): 1791415817 Wed, Oct 7, 2026 5:46 PM UTC
  • SteamVR version: 2.18.2 beta
  • Distribution (e.g. Ubuntu): Gentoo (fully up to date)
  • Steam runtime diagnostics: steamdiag.txt
  • Steam and SteamVR logs: steam-logs.tar.gz
  • Minidumps: steam-minidumps.tar.gz

Screenshots

Image Image Image Image Image

Additional context

  • Steam Frame brand new and has always had this problem so far - never seen SteamVR working correctly yet

  • No issues with standalone games - only streaming affected

  • Steam Frame Wireless Adapter is paired using the Linux workarounds and otherwise working, but the issue occurs regardless of whether WiFi streaming, Steam Frame Wireless Adapter streaming, or Multiple Links streaming with both is used

  • There are no obvious framerate or input latency problems - only negative effect is from the extremely low bitrate and/or resolution of the stream

NNervyalloy5 2026-10-09 github

I'm encountering the same problem on arch linux,
Any VR stream displays with the same unplayable level of compression as the above screenshots, with the proper refresh rate and no noticeable latency.

My wireless adapter seems to function properly, though connecting via wifi, adapter, USB tethering, or any combination of multi-link streaming makes no change to the image quality.

At least in my case, streaming flat-screen desktop games to the frame to play in theater mode works normally.

I also tried streaming from an old windows 10 install in case this was some kind of hardware issue, but VR streaming worked as expected there.

Desktop:

  • Distribution: Arch Linux | Kernel 7.2.9-arch1-1
  • GPU: AMD Radeon RX 5700 XT
  • Graphics Driver: mesa 1:26.2.4-1
  • Steam Client Version: 1791415817 | Wed, Oct 7, 2026 18:46 UTC -04:00 (Steam Client Beta)
  • SteamVR Version: 2.18.2 (1790893534) | Built Oct 1, 2026 at 18:25

Frame:

  • OS Version: 0.4.5
  • OS Build: 20261007.6125817
  • Steam Version: 1791328779
  • SteamVR Version: 2.18.2
Rrobertkirkman 2026-10-10 github

Updated information:

I have learned how to use WiVRn as an alternative to SteamVR, and WiVRn is not affected by this problem for me, so I can now play PCVR on my Steam Frame through WiVRn, including through the Steam Frame Wireless Adapter, without having any bitrate problem.

However, I will continue to test SteamVR in the future if SteamVR gets updates that might fix the problem, because SteamVR and WiVRn seem to have slightly different features.

The setup of WiVRn on Steam Frame and Gentoo PC is very complicated, but I was able to do it. I have not explained exactly how I set it up, but could if someone needs an explanation.

Ssonalder-darlene 2026-10-14 github

Had the exact same thing on Nobara (kernel 7.2.8, RX 7800 XT, Mesa 26.2.4) and got it fixed with some help from an LLM. Posting in case it's the same cause for others on AMD.

The problem was the VCN firmware. Mine was really old: dmesg showed ENC: 1.13 DEC: 5, file dated Feb 2024. It came from an old amd-gpu-pro-firmware 5.7.2 package that Nobara's codec wizard had installed at some point (AMF stuff). That package also "provides" amd-gpu-firmware, so the normal firmware package never got installed and the VCN firmware was never updated.

With firmware that old, RADV doesn't expose Vulkan video encode, so at first I couldn't stream at all. The game would start on the PC and the Frame complained the account was in use somewhere else. Forcing it with RADV_PERFTEST=video_encode got streaming going, but that's when I got the super pixelated image from this issue. Turns out RADV hides encode on old firmware for a reason.

Fix was putting the current firmware from linux-firmware where the kernel looks first:

sudo mkdir -p /lib/firmware/updates/amdgpu
curl -L -o /tmp/vcn_4_0_0.bin https://gitlab.com/kernel-firmware/linux-firmware/-/raw/main/amdgpu/vcn_4_0_0.bin
sudo cp /tmp/vcn_4_0_0.bin /lib/firmware/updates/amdgpu/

Reboot, drop the RADV_PERFTEST variable, and the stream is sharp now. vcn_4_0_0.bin is the one for Navi 31/32, other cards may load a different file.

Quick way to check if you're hitting the same thing:

sudo dmesg | grep -i "vcn.*firmware"
vulkaninfo 2>/dev/null | grep video_encode_h265   # with RADV_PERFTEST unset

If the second command prints nothing, your VCN firmware is probably too old. On Nobara the cleaner fix is probably removing the AMD Pro codecs through the codec wizard and then installing amd-gpu-firmware (a manual dnf remove gets blocked), but I haven't done that part yet.

OP, what GPU are you on? On Gentoo the package part won't apply, but the firmware check should.

Rrobertkirkman 2026-10-14 github

We both who posted first have RX 5700 XT, which is visible in our reports. here is the result on my computer of the commands you posted

tacokoneko@CORSAIR ~ $ sudo dmesg | grep -i "vcn.*firmware"
tacokoneko@CORSAIR ~ $ vulkaninfo 2>/dev/null | grep video_encode_h265   # with RADV_PERFTEST unset
	VK_KHR_video_encode_h265                      : extension revision 14
tacokoneko@CORSAIR ~ $ 
RReikoAldrakar 2026-10-16 github

I have the same problem. Also got a RX 5700 XT and know of at least 2 others with the same GPU and the same problem...

Eelfomze 2026-10-16 github

Same thing on Nobara with an RX 5700 XT :/

@robertkirkman would you mind sharing how you got the wivrn client running on the frame? I grabbed the frame binaries from the build action artifacts of the project repo, but it refuses to run on the frame.

Rrobertkirkman 2026-10-16 github

Here are screenshots of the relevant settings I am using in the Steam entry for it:

Image Image

if you have these set and it's still not working, or you have difficulty connecting it to the PC after launching it, I will make a more complete tutorial.

PParkerHGordon 2026-10-17 github

Copying what I posted in #904 , although this thread seems more relevant so I'll keep posting here. Seeing the same blurry VR streaming, changed tons of settings, no luck. Flatscreen streaming to my Frame from the same desktop doesn't have the same problem.

I'd like to add that I've had this issue with the Steam Frame, streaming from my CachyOS desktop (with a AMD Radeon RX 5700 XT as well). Just to double check any other potential streaming issues on the frame, I've ran https://github.com/ValveSoftware/SteamVR-for-Linux/issues/904 and all else is well with my setup that I can tell. Vulkan driver issue would make sense since I've had issues with Vulkan in the past... I'll try messing with my drivers and see if I make any progress

Now as for this post:

Had the exact same thing on Nobara (kernel 7.2.8, RX 7800 XT, Mesa 26.2.4) and got it fixed with some help from an LLM. Posting in case it's the same cause for others on AMD.
The problem was the VCN firmware. Mine was really old: dmesg showed ENC: 1.13 DEC: 5, file dated Feb 2024. It came from an old amd-gpu-pro-firmware ...
...

Unfortunately, I don't think this is the case for me, I do get VK_KHR-video_encode_h265 : extension revision 14 on your quick check command. I am on VCN firmware enc: 1.24 and dec: 8, and I've verified that it's coming from linux-firmware-amdgpu recently installed. I can't seem to find what the latest numbers for that should be for Radeon RX 5700 XT though...

So far, what I've checked on my system seems to indicate:

  • The driver exposes H.264 and H.265 encode.
  • The Vulkan encoder initializes successfully.
  • Firmware is current and correctly packaged.
  • The network is fine, with no packet loss or lag.
  • Changing the codec toggles, resolution and encode width had no effect.

Something interesting worth mentioning, not sure if it's related, but logs show the following:

chosen m_MaxSVLVideoExtent: 3200x4096
Resize: 1024 4096

And all future logs show it staying with that 1024 4096, not sure if that's low or not. Figured I'd mention in case it is, but the picture is so blurry that it's probably unrelated.

Will keep looking for clues.

PParkerHGordon 2026-10-17 github

Final bit of digging from me for now, looking at the logs and doing some tests with FFMPEG to rule out driver issues:

  • vrlink logs: Vulkan Video init succeeds, rate control mode 4, encode surface 1024x4096
  • Actual stream bitrate about 2.3 Mbps at 90 fps, unchanged by manually changing bitrate settings
  • Testing with ffmpeg videos to see if vulkan correctly handles 10-bit, VBR -tune ull, and/or 1024x4096 on my AMD Radeon RX 5700 XT with my current drivers: Here's the actual commands I ran:
cd /tmp
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1920x1080:r=60 -t 10 -vf "format=nv12,hwupload" -c:v hevc_vulkan -b:v 5M /tmp/base_5M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1920x1080:r=60 -t 10 -vf "format=nv12,hwupload" -c:v hevc_vulkan -b:v 50M /tmp/base_50M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1024x4096:r=90 -t 10 -vf "format=nv12,hwupload" -c:v hevc_vulkan -b:v 5M /tmp/tall_5M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1024x4096:r=90 -t 10 -vf "format=nv12,hwupload" -c:v hevc_vulkan -b:v 50M /tmp/tall_50M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1920x1080:r=90 -t 10 -vf "format=p010,hwupload" -c:v hevc_vulkan -profile:v main10 -b:v 5M /tmp/tenbit_5M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1920x1080:r=90 -t 10 -vf "format=p010,hwupload" -c:v hevc_vulkan -profile:v main10 -b:v 50M /tmp/tenbit_50M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1920x1080:r=90 -t 10 -vf "format=nv12,hwupload" -c:v hevc_vulkan -rc_mode vbr -tune ull -b:v 5M /tmp/vbrull_5M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1920x1080:r=90 -t 10 -vf "format=nv12,hwupload" -c:v hevc_vulkan -rc_mode vbr -tune ull -b:v 50M /tmp/vbrull_50M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1024x4096:r=90 -t 10 -vf "format=p010,hwupload" -c:v hevc_vulkan -profile:v main10 -rc_mode vbr -tune ull -b:v 5M /tmp/all_5M.mkv
ffmpeg -y -loglevel error -init_hw_device vulkan=vk -filter_hw_device vk -f lavfi -i mandelbrot=s=1024x4096:r=90 -t 10 -vf "format=p010,hwupload" -c:v hevc_vulkan -profile:v main10 -rc_mode vbr -tune ull -b:v 50M /tmp/all_50M.mkv
ls -l /tmp/*_5M.mkv /tmp/*_50M.mkv

with results seemingly working as they should, all the 50M tests are about ~10x the size of their 5M test counterparts. That seems to imply to me that Vulkan is working correctly on my machine, but I can't say for sure of course, this is just testing based on guesses on how SteamVR is using Vulkan via logs and settings. Hope any of this is helpful!

Eelfomze 2026-10-28 github
Same issue here, also on an RX 5700 XT (Navi 10 / VCN 2). I also did a test with `ffmpeg`.

System

Nobara (Fedora 44), kernel [x], Mesa [x]
SteamVR 2.18.4 beta
Frame OS 0.5.6 (20261022.6153909)

Ruled out

Firmware: amd-gpu-firmware-20260916-1.fc44, loaded VCN firmware 0x0811800d, no amd-gpu-pro-firmware, nothing in /lib/firmware/updates. So this is not the outdated-firmware cause from the 7800 XT comment above.
Driver overrides: no RADV_PERFTEST set. RADV exposes VK_KHR_video_encode_h264/h265 natively.
Software encoding: vrlink uses the hardware Vulkan encoder:

  vrlink: [VideoVulkan] Created vkCreateVideoSessionParametersKHR!

Stream resolution: was streamFormatWidth 1344 for some reason, while games render 3490×3490. Forcing it higher is applied but changes nothing visible:

  "automaticStreamFormatWidth" : false,
  "streamFormatWidth" : 2048,
  "nonFoveatedStreamFormatWidth" : 2048,
  "automaticBandwidth" : false,
  "targetBandwidth" : 350
  vrlink: Setting VTE_USE_ENCODE_TARGET_WIDTH = 2048

Rendering performance: VR View on the PC shows a sharp image, and GPU frame time is 9.0 of 11.1 ms at 90 Hz. The quality is lost after rendering.

Control test: the encoder works outside SteamVR

Same GPU, 2048×2048 at 90 fps, with a moving-noise source (hard to compress), target 100 Mbit/s:

ffmpeg -init_hw_device vulkan=vk -filter_hw_device vk \
  -f lavfi -i 'testsrc2=size=2048x2048:rate=90,noise=alls=30:allf=t+u' -t 10 \
  -vf 'format=nv12,hwupload' -c:v hevc_vulkan -b:v 100M vk_hevc.mkv
Encoder Achieved bitrate Speed
hevc_vulkan (RADV) 99.9 Mbit/s 147 fps
hevc_vaapi 100.1 Mbit/s 148 fps

So the hardware, the firmware and RADV’s basic Vulkan encoding all work on VCN 2. The problem seems specific to how vrlink configures the encoder.

WiVRn, which streams without SteamVR, gives a sharp image on the same hardware.

Happy to run further tests or provide a trace if that helps.

Launch options