Upgrading WiFi bandwidth, hardware codec for VR Expreience

I'm a heavy VRChat player. My setup wasn't really good for VR per se. I had a relatively weak PC and limited LAN bandwidth. The upgrade is a bit costly, but I'm happy with the money spent. Also some unexpected issues caused my the upgrade.

WiFi bandwidth

My setup is weird. Most people have their PC and playspace in the same room. But I have my PC somewhere. Recently I started to notice siginifcant compression artifacts. However, I don't thick this is new. It's jsut that I ignored it as I upgraded my PC's WiFi adapter from 802.11 ac to ax. And that solved the more pressing issues. With some messing around I determin that the issue is caused Oculus detecting low bandwidth to my headset. Thus reducing the quality of the video stream. That, in turn, is caused by the thick wall between my playspace and the AP. More debugging shows there's only ~30MBps of bandwidth out of the >1Gbps avaliable over WiFi 6/802.11 ax.

┌──┬─────────────────┬────┬──────────────────────┐
│  │Modem            │    │                      │
├──┤                 │    │                      │
│  │  No LoS 30Mbps  │    │ ///Where I play VR// │
│  │   WiFi 6        │    │                      │
│  │◄────────────────┼────┼─────►                │
│  │TV               │    │            ┌─────────┤
│  │                 │THIC│            │         │
├┐ │                 │WALL│            │         │
││ │                 │    │            │         │
││ │                 │    │ /Also here/│         │
├┴─┘                 │    │            │ Bed     │
│WiFI AP             │    │            │         │
│                    │    │            │         │
│ ▲                  │    │   │        │         │
│ │                  │    │   │        │         │
│ │                  └────┴───┘     ───┴─────────┴───────────
│ │
│ │
│ │WiFi 6
│ │Line of sight     ┌───────────────────────────────────────
│ │1.1Gbps     ┌─────┤
│ │            │     │
│ │            │     │
│ └───────────►│ PC  │
│              │     │
│              │     │
│              └─────┤
│                    │
└────────────────────┘

Well this sucks. Line of sight affects the bandwidth a lot. It is usually not as important as mosts applications doesn't need that kind of bandwidth. 30Mbps is good enough for 1080p video streaming, web browsing, etc. But VR needs that bandwidth. Or at least 50Mbps to not get framedrops. The soltion I ended up with is a bit pricey - add another WiFi 6 AP in bridge mode and connect a cable to it.

Bridge mode is a feature of most APs. Instead in normal mode, where the AP manages it's own NAT and DHCP. In bridge mode, the AP drops the responsibility and realies on equipment on the upstream network. Now my setup looks like this:

┌──┬─────────────────┬────┬───┬──────────────────┐
│  │┌───────────────┐│    │   │WiFi AP 2         │
│  ││ Cat 6.e 1Gbps ││    │▲──┘                  │
│  ││               ││    ││///Where I play VR// │
│  ││               ││    ││  ▲                  │
│  ││               ││    ││  │WiFi 6            │
│  ││               ││    ││  │1.1Gbps ┌─────────┤
│  ││               ││THIC││  ▼        │         │
├┐ ││               ││WALL││           │         │
│├─┼┘               ││    ││           │         │
││ │                ││    ││/Also here/│         │
├┴─┘                ││    ││           │ Bed     │
│WiFI AP            ││    ││           │         │
│                   ││    ││           │         │
│ ▲                 ││    ││  │        │         │
│ │                 ││    ││  │        │         │
│ │                 │└────┴┼──┘     ───┴─────────┴───────────
│ │                 └──────┘
│ │
│ │WiFi 6
│ │Line of sight     ┌───────────────────────────────────────
│ │1.1Gbps     ┌─────┤
│ │            │     │
│ │            │     │
│ └───────────►│ PC  │
│              │     │
│              │     │
│              └─────┤
│                    │
└────────────────────┘

This is an old apartment built before the internet. So no wireings in the wall for ethernet cable. I just walk a new cable along the wall to reduce visiblity. Then setup the new AP... Yesss! Now there's a 1Gbps link between the PC and my VR headset. The image quality is much better and I can see Oculus using up to 80Mbps of bandwidth on video streaming! Close to the 100Mbps encoder limit. Netowrk topology is now:

                        Thick wall
                           │
     ┌──────────┐          │
     │          │          │
     │  Modem   │          │
     └────▲─────┘          │
          │                │
          │                │
          │                │
     ┌────▼──────┐         │      ┌───────────┐
     │           │  20M Cat 6e    │           │
     │ AP 1      │◄──────────────►│ AP 2      │
     │           │  1Gbps         │           │
     └────▲──────┘         │      └─────▲─────┘
          │802.11 ax       │            │802.11 ax
          │Line of sight   │            │Line of sight
          │1.1Gbps         │            │1.1Gbps
 ┌────────▼───────────┐    │   ┌────────▼────────┐
 │                    │    │   │                 │
 │                    │    │   │  Oculus Quest 2 │
 │    My Gaming PC    │    │   │                 │
 │                    │    │   │   VR Heatset    │
 │                    │    │   │                 │
 └────────────────────┘    │   └─────────────────┘
                           │
│                                                  │
└──────────────────────────────────────────────────┘
         Same NAT, Same subnet, Reachable

AMD GPU and h.264

One upgrade I also did is to get myself a brand new AMD Radeon 6700XT GPU. It provides much more VRAM and compute power than my old GTX 970. I chose AMD for two reasons. One I don't want to use the horrible NVIDIA proprietary driver on Linux anymore. And VRChat is a VRAM hog. It can easily use up 8Gigs easily. What I didn't expect is the codec. Oculus AirLink uses H.264 between the PC and the headset. But AMD sucks at H.264, instead it is future proofed and uses h.265. But AirLink has trouble with h.265.

Worse, the fallback CPU encoder has a worse quality than the Nvidia GPU encoder. So even at 100Mbps, the quality is still not that good.

The solution is to drop AirLink and use Virtual Desktop. It's an additional app you have to purchase for $20 on the Oculus store. It provides the smae functionality as AirLink, but it supports and is much lighter weight. One downside is it doesn't have dynamic bitrate and sets the default bitrate to 20Mbps. For me that's a meh.. h.265 at 20Mbps is about h.264 at 40Mbps. So the quality is okay. But I didn't spent my money to upgrade my network gear to not benifit from the bandwidth.

Changed the default bitrate to 100Mbps and encoder to h.265. Booted into VRChat... Wow it made a huge difference. Now there's no compression artifacts in Japan Shrine's Cherry Blossom. No more gray blobs in the dark cornet of LS Media.

As a bonus, Virtual Desktop also come with built-in image scaling. So you don't need VRPerf Kit to upscale. For me I prefer VRPerf Kit so I worked around it.


In total. I spent $8 on the 20M ethernet cable, $60 on the D-Link 1800AX router and $20 on Virtual Desktop. Adding up to $88.

Author's profile. Photo taken in VRChat by my friend Tast+
Martin Chang
Systems software, HPC, GPGPU and AI. I mostly write stupid C++ code. Sometimes does AI research. Chronic VRChat addict

I run TLGS, a major search engine on Gemini. Used by Buran by default.


  • marty1885 \at protonmail.com
  • Matrix: @clehaxze:matrix.clehaxze.tw
  • Jami: a72b62ac04a958ca57739247aa1ed4fe0d11d2df