Advanced Network Setup - GPUOpen-LibrariesAndSDKs/Radeon-ReLive-VR GitHub Wiki
Advanced Network Setup
Configuring your router for maximum performance
While most 802.11ac and 802.11ax routers with Gigabit Ethernet ports provide good experience out of the box for most users in most typical conditions, some users might have to tweak advanced WiFi settings in the router to attain the best performance of their wireless network in a VR-streaming use case.
Problems resulting from poor wireless network performance manifest themselves as image corruption/freezes, audio stuttering, image judder most noticeable in animations and controller movements and lost controller keystrokes. When streaming over TCP rather than UDP, poor network performance may lead to accumulating latency.
The absolute majority of network-related issues can be attributed to interference with other wireless devices. It is important to understand that your wireless network is not operating in isolation from other wireless devices even when they are not logically connected to it. Wireless devices communicating on the same frequencies as your headset will interfere with communications between the headset and the PC regardless of whether they are logically connected to your WiFi network or not, which can lead to spikes in network latency. Your WiFi network might also experience interference from devices like microwave ovens, weather radars, cellular devices, etc.
Most routers try to select a WiFi channel with the least amount of traffic. How they do this depends on the router's model. Some scan the channels and pick one at startup only, while others do it at scheduled intervals and hop channels when traffic on the current channel increases. Most routers allow to assign a WiFi channel manually. You can use numerous apps for your mobile phone to scan the WiFi channels and many routers have built-in functionality to do so.
In most cases it is best to leave the channel setting in your router at Auto and let the router pick the channel. This, however, depends on the type of network equipment in your neighborhood. If you experience periodic interference, we recommend that you survey the WiFi channels at your location and see if there are any channels that have consistently low usage over a period of several days. If you can find a channel that remains unused long enough, you may want to manually assign your router to use this channel. However, if other routers in your neighborhood tend to hop channels dynamically, fixing your router to a specific channel might be counter-productive as it would prevent your router from switching to another channel when the channel it is currently using becomes congested.
Most 802.11ac routers allow to combine several channels into a single channel to increase throughput. This is typically controlled by the parameter called "Channel Width" that can be set to one of the following values: "Auto", "20MHz", "40MHz", "80MHz" and sometimes "160MHz". While it might be tempting to set it to one of the higher values, it is important to remember that in many cases this might also be counter-productive. 40MHz combines two adjacent 20MHz channels together, 80MHz combines four 20MHz channels and so on. For example, setting the channel width to 80MHz would combine channels 36, 40, 44 and 48 in the UNII-1 domain into a single channel. Now imagine that channel 44 is not being used by other networks, but channels 36, 40 and 48 have high amount of traffic from other networks in range. In this case your 80MHz-wide channel would suffer more interference than a single 20MHz channel 44. If you have set channel width to a higher value and are experiencing problems, try reducing it to 40 or 20MHz.
For more information see this Wikipedia article. There is also an excellent overview of the topic on CBT Nuggets.
Configuring the network with multiple routers
In some cases your network may include several routers. It is important to ensure that the PC running SteamVR and the headset get their IP addresses on the same subnet. The headset will not be able to find the PC when this condition is not met. The simplest way to configure multiple routers is as follows:
- Configure each router to have a unique IP address on the same subnet outside the DHCP-assigned range. For example, you can configure your main router (the one connected to the Internet) to have the address 192.168.0.1/255.255.255.0 and the second router to have the address 192.168.0.2/255.255.255.0, the third router to to have the address 192.168.0.3/255.255.255.0 and so on.
- Disable DHCP server in all routers except the main one, or configure them for non-overlapping ranges of the same subnet, excluding the addresses of the routers themselves. For example, the DHCP server of the main router would assign IP addresses in the range of 192.168.0.10-192.168.0.29/255.255.255.0, while the second router would assign IP addresses in the range of 192.168.0.30-192.168.0.49/255.255.255.0 and so on.
- Connect all routers together using LAN (not WAN/Internet) ports. If your secondary routers support bridge mode, you could utilize it instead and essentially turn their WAN ports into extra LAN ports.
- Connect the PC to any LAN port of any router.
- Connect the headset to the SSID providing the strongest signal with the least interference (this would usually be the router closest to your play area)
If you have to chain-connect your routers (WAN port of the secondary router to the LAN port of the primary router with the secondary router configured for NAT) for any reason, ensure that the PC and headset are connected to the same router.
Do not use range extenders to stream VR. If you cannot avoid them on your wireless network, assign the access point used for VR streaming a distinct SSID and pair the headset with this AP only to avoid it hopping between two different APs with the same SSID as you move around in VR.
Using ReLive VR without a router
Windows 10 can turn your WiFi card into a wireless hotspot. This page explains how to enable it on your PC. Make sure that your hotspot operates at 5GHz to be used with ReLive VR. Once enabled, you can connect your headset to the hotspot's SSID just like you would connect it to a router. While Windows supports this mode and it works well in many cases, your mileage will vary, depending on the WiFi card in your PC, network drivers, version of Windows and other factors. We do not recommend using a hotspot instead of a dedicated router at this point.
Pairing a headset with the specific PC
When you have multiple PCs running ReLive VR on the same IP subnet, the headset would randomly connect to any PC that responds to its connection request. In this case you might want to pair each headset with a specific PC, so that they connect in a deterministic fashion. This is typically the case in an office or gaming cafe environment. Starting with the Adrenalin 2020 Edition of the graphics driver, you can pair a headset to each PC. Once pairing is performed, the PC would accept connection requests from the paired headsets only. Any number of headsets can be paired with any number of PCs.
To pair a headset, follow these steps:
- Start SteamVR on one PC only.
- Open Radeon Settings, click on the Settings icon and navigate to the Devices tab.
- Switch the Accept All Connections switch to Disabled. The Link a Device button will appear above.
- Click on the Link a Device button
- Put on a headset and start the ReLive VR app on it if it's not running already. Let it connect to the PC.
- To pair multiple headsets with the same PC, repeat steps 4 and 5 above. Note that a single PC can only stream to one headset at a time.
Repeat steps 1-6 for every PC connected to the same IP subnet.
Alternatively you can pair headsets using the Headset page of the Web browser-based UI.
Using ReLive VR across different IP subnets
The automatic discovery/connection mechanism uses UDP broadcasts that typically cannot cross the IP subnet boundaries. In some cases your network topology might not allow you to have the headset and the PC on the same IP subnet. While the absolute majority of WiFi routers assign the same subnet to both wireless and wired devices, do not assume this is always the case. Check the IP address/mask assigned to your headset and your PC belong to the same subnet when the headset fails to discover the PC. If you cannot place both the PC running ReLive VR and the headset on the same subnet, you can still configure the headset to connect to a specific PC by editing a configuration file on the headset:
- Configure the PC for a static IP address. You can achieve this by either configuring the PC not to use DHCP (make sure that the IP address you choose is outside of the address range assigned by the DHCP server), or, if your router supports this feature, by binding an IP address to the MAC address of your PC (refer to your router user manual for details)
- Connect the headset to the PC with a USB cable and enable file access on the headset when prompted.
- Create a plain ASCII text file named app.settings on your PC using your favorite text editor. Place the following code in this file:
{"Connection":{"EnableDiscovery":false, "Server":"UDP://<IP address of your PC>:1235"}}
. Replace the<IP address of your PC>
part with the IP address assigned to your PC in step 1 above. If you are streaming over TCP instead of UDP, replaceUDP
withTCP
as well. - Open Windows Explorer on your PC and locate your headset. Depending on which headset you are using, navigate to the following directory in the Internal Storage of your headset and copy the app.settings file there:
- For all Oculus devices:
Android\data\com.amd.wirelesshmd\files
- For HTC Vive Focus/Focus Plus devices:
Android\data\com.amd.wirelessvive\files
- For all Daydream devices including Lenovo Mirage Solo:
Android\data\com.amd.wirelessgvr\files
- Start the ReLive VR app on the headset. It will connect to the specified server without performing discovery. Should you wish to switch back to the automatic discovery mode, simply change the
EnableDiscovery
parameter totrue
. The URL specified in theServer
parameter will be ignored.