Skip to content

VR Software Status

Objective: Investigate software such as these native titles on Steam to find whether they actually support virtual reality (VR) on Linux. In addition, Steam Play whitelisted software will also be tracked. Please post what issues you have here.

This document is VR-focused, but augmented reality (AR) applications will also be included. (Together, VR and AR are known as XR.)

Make sure to use the latest graphics drivers and Linux kernel available to you. At a minimum, Linux kernel 4.13 with Mesa 18.2 (AMD) or Nvidia version 430.26 is required for the SteamVR beta. For more details on SteamVR for Linux, click here.

For unsupported games that may work with Proton, see the list on Gitlab or the Steam forum thread.

Confirmed Working

Games
Other Software

Confirmed Planned

The developers will try to make a Linux version at some point. May or may not be released.

Confirmed Not Working (Natively)

Not Currently Planned

Some have great Proton compatibility, but are not whitelisted. Others have more mixed results, but may work well. See the list on Gitlab or the Steam forum thread for more info.


VR Hardware Status

Confirmed Working

Unofficial OpenHMD Support

These currently lack positional tracking functionality, and not as many games support OpenHMD yet.

  • Oculus Rift S
  • Microsoft Mixed Reality
  • PSVR

These have experimental positional tracking support from a development branch.

  • Oculus Rift CV1
  • Oculus Rift DK2

Also check out Monado, the free and open source OpenXR implementation. It relies on OpenHMD for some devices.

If you want official Linux support for the Oculus Rift, add your vote here. If you want, leave a nice comment, too.

Unofficial ALVR Support (Experimental)

Some Oculus headsets are supported by ALVR (Air Light VR).

Stream VR games from your PC to your headset via Wi-Fi.\ ALVR uses technologies like Asynchronous Timewarp and Fixed Foveated Rendering for a smoother experience.\ All games that work with an Oculus Rift (s) should work with ALVR.

Linux support is still in beta. To be able to make audio work or run ALVR at all you may need advanced knowledge of your distro for debugging or building from source.

ALVR currently supports:

  • Oculus Quest 1/2/Pro
  • Pico 4/Neo 3
  • Vive Focus 3/XR Elite
  • YVR 1/2

Graphics Cards

You should try to get the latest graphics drivers that are available. For Nvidia users, have at least the NVIDIA 470.42.01 driver installed, available since June 22, 2021. For AMD users, have at least Mesa 18.2 (September 2018). Intel graphics are not currently supported by SteamVR.


Troubleshooting

SteamVR

Rainbow pixels at the edge of my viewport (AMDGPU)

SteamVR only renders what can actually be seen by the player. This results in two ovals being drawn on the HMD. SteamVR does not touch the outside of those ovals. That results in random pixels from the VRAM segment the frame buffer was allocated on. You can probably see these if you move your eyes quick enough and are looking at a dark scene in VR.

You can tell the RADV driver to always zero the frame buffer to avoid this. I am not sure if this results in a performance penalty or not.

Fix - Add this environment variable to the launch options of SteamVR: RADV_DEBUG=zerovram - NOTE: You can add multiple options to RADV_DEBUG by separating them with a comma (,). Example: RADV_DEBUG=zerovram,nodcc

SteamVR doesn't start on Wayland

If you have environment variables that force Qt or SDL apps to run in Wayland mode, SteamVR might not start at all.

Fix - Add these environment variables to the launch options of SteamVR: QT_QPA_PLATFORM=xcb SDL_VIDEODRIVER=x11

SteamVR does not use direct mode on Wayland (window appears on monitor)

If this has never worked for you on Wayland, make sure your compositor supports the wp_drm_lease_device_v1 protocol. (As of writing both Sway and KWin support it)

Fix - Use a compositor that supports wp_drm_lease_device_v1 - Make sure your XWayland version supports wp_drm_lease_device_v1 (X.Org 22.1.0+)

SteamVR occasionally does not use direct mode on Wayland (window appears on monitor)

Sometimes SteamVR fails to use direct mode. This is probably because the last instance didn't release its lease on your HMD. You can kill XWayland and try again (Sway automatically restarts it when needed)

If your HMD is listed in the output of xrandr, it probably means that it's available for lease.

Fix - Restart XWayland - Alternatively restart your compositor

No microphone input from HMD

The microphone of the Valve Index is kinda finnicky. Your best bet is to use PipeWire here. PulseAudio can be made to work, if you figure out the correct sample-rate and stuff.

Fix - Use PipeWire - (Maybe) Make sure you have selected the corresponding HDMI output (the Index won't capture the microphone otherwise?)

Double vision when moving head

On SteamVR versions >1.14, asynchronous reprojection is broken on all drivers and hardware. If games generate enough frames, you won't see this, but otherwise, you probably will.

Fix Either: - Use SteamVR 1.14, refer to Using older SteamVR versions - Enable Legacy Reprojection Mode for each game, then reduce the resolution until the experience is stable (otherwise a similar effect will be present) - If asynchronous reprojection causes issues on SteamVR 1.14, disable it by setting "enableLinuxVulkanAsync" : false under the steamvr section at ~/.steam/steam/config/steamvr.vrsettings

Games crash before anything renders

This is most likely caused by the Vulkan driver.

Fix - Refer to "Use alternative Vulkan drivers" in order to try another driver

Use alternative Vulkan drivers

AMD

Short overview of Vulkan drivers - RADV: Ships with Mesa, required by SteamVR - AMDVLK: Open source, reprojection is not broken on SteamVR >1.14, may perform better than RADV - AMDGPU-PRO: Proprietary, reprojection is TODO, performs TODO

Instructions 1. Install AMDVLK drivers and optionally AMDGPU-PRO drivers, however the latter should not be installed system-wide, instead use amdgpu-pro-vulkan-only 2. Since AMD_VULKAN_ICD causes issues (more on that here), add these entries to /etc/environment, making RADV the default driver in the process:

DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
3. In order to use AMDVLK or AMDGPU-PRO Vulkan drivers for games, set these variables only for the games (not SteamVR), appending %command% if it's a Steam game launch argument: - AMDVLK:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd32.json:/usr/share/vulkan/icd.d/amd_icd64.json
- AMDGPU-PRO (depends on where it's installed):
VK_ICD_FILENAMES=/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd64.json:/opt/amdgpu-pro/etc/vulkan/icd.d/amd_icd32.json

Nvidia

NVK driver has become part of Mesa, however it is not finished yet and does not yield the expected performance.

Graphics artifacts in SteamVR and in overlays (AMDGPU)

Upstream issue

Fix - (Applies to SteamVR >1.14) Reinstall SteamVR and reject superuser access, setting cap_sys_nice causes issues - Otherwise, use SteamVR 1.14 as per Using older SteamVR versions

Old fix - Add this environment variable to the launch options of SteamVR: RADV_DEBUG=nodcc - NOTE: You can add multiple options to RADV_DEBUG by separating them with a comma (,). Example: RADV_DEBUG=zerovram,nodcc

Overlays are wobbling/jittering

Upstream issue

This is a SteamVR bug and it can't really be fixed from the outside.

There is some discussion in this Reddit thread about some workarounds, but they can cause issues with some games.

Using older SteamVR versions

SteamVR 1.14 is the version to fall back to in case of certain issues.

Note: It does not work on Wayland.

It fixes asynchronous reprojection, and doesn't crash or introduce graphics artifacts, unlike the newer versions do.

Instructions

  1. Right click SteamVR in Steam
  2. Select Properties...
  3. Go to the Betas tab
  4. Under Beta Participation, select linux_v1.14
  5. Refer to this issue comment to fix vrwebhelper
  6. For each Windows Unity game or any other Windows game that crashes, select Proton 5.13, which should make the game playable

Acknowledgements

Many thanks to: