GPU Support#

VR Support on Linux can depend on the support of your graphics driver.
This page notes the known state of various drivers, as well as workarounds when they are needed.

GPU Support table#

Manufacturer/ Hardware Driver VR Support Reprojection Support Hybrid Graphics Support Notes
AMD >= RDNA generation GPU RADV (Open Source) ✅ Excellent ✅ Robust (RDNA+) ✅ Supported Recommended for wired VR.
AMD GCN generation GPU RADV (Open Source) ✅ Excellent ⚠️ Limited ✅ Supported Not recommended for wired VR. Pre-RDNA GPUs have functional but less robust reprojection.
AMD/ Any AMDVLK / AMDGPU PRO ❌ Not Viable ❌ Not Viable ❌ N/A RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support.
Nvidia >= 16XX Series GPU Nvidia (Open Module) ✅ Acceptable ⚠️ Partial ✅ Supported Requires driver version 565+. By default there will be noticeable display latency - see the Monado troubleshooting section. There is no fix on SteamVR.
Nvidia <= 10XX Series GPU Nvidia (Closed Source Module) ✅ Acceptable ⚠️ Partial ✅ Supported Requires driver version 565+. No Valve Index support.
Nvidia/ Any Nouveau (Open Source) ⚠️ Limited ❌ Not Viable ✅ Supported Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR.
Intel/ Any i915 (Open Source) ⚡ Functional ✅ Robust (Limited testing) ✅ Supported Relatively old driver. SteamVR/ALVR doesn’t start. WiVRn tested working. Graphical glitches in some games.
Intel/ Any Intel/Xe (Open Source) ❌ No wired HMDs ✅ Robust (Limited testing) ✅ Supported Lacks direct mode implementation in driver, unable to drive wired HMDs. WiVRn tested working. Graphical glitches in some games.

Notes:

  • AMD GPU users: Make sure you are using the RADV Vulkan driver. AMDVLK is deprecated, is unable to lease displays when using SteamVR/Monado, and will cause video corruption on WiVRn.
  • For Nvidia proprietary drivers older than 565, (please try to update!), the vulkan-layers must be installed in order to not crash: monado-vulkan-layers-gitAURFedora
  • Wired HMDs on Intel Arc GPUs: Only DisplayPort-based HMDs work, only with i915 driver. Tested: A580, A770 with HP Reverb G2 (OK), Acer AH101 (FAIL).
    • Direct Display Mode doesn’t work with HDMI-based HMDs.
    • Xe driver currently doesn’t support Direct Display Mode at all.
  • Audio over DisplayPort is known to temporarily cut out whenever new audio sources spring up on PipeWire without a fix to add ALSA headroom.
    • This fix’s default values adds a lot of audio latency to the entire system. If you’re someone who is sensitive to audio latency, you can try changing period-size=64 and headroom=512. If audio continues to cut off, double these values.
    • Also, this fix will change the latency of all audio output devices. To tweak the audio output latency of your HMD only, which is usually sufficient to prevent cutouts, use pactl list sinks to identify the Sink Name that your HMD is currently connected to, and edit the headroom fix file by changing the node.name.
    • For example: node.name = "alsa_output.pci-0000_03_00.1.hdmi-stereo-extra2" (not a typo, it’s still connected via DisplayPort)

Known workarounds#

Unless otherwise noted, these workarounds are mainly for Monado. Workarounds may be added here that are for other runtimes (SteamVR/WiVRn) if they run into GPU specific issues.

Nvidia workarounds#

Latency or frame pacing issues#

Adding the below environment variables has been known to improve this issue on Monado.
Add the below to your Environment Variables in Envision: XRT_COMPOSITOR_USE_PRESENT_WAIT="1",
U_PACING_COMP_TIME_FRACTION_PERCENT="90",
U_PACING_APP_USE_MIN_FRAME_PERIOD = "1",
U_PACING_APP_IMMEDIATE_WAIT_FRAME_RETURN_BELOW_REFRESH = "1"

vkAcquireXlibDisplayEXT: VK_ERROR_UNKNOWN error#

First, try restaring your headset.
If that doesn’t work and you are on a Wayland session, try adding the below environment variable:
XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT="1"

NVIDIA: No allowlisted displays found#

This may be caused by a few different issues.
If you see the HMD display completely missing from the list: Try unplugging and re-plugging the power adapter.
Nvidia driver misnaming the display: If you see a display simply named “NVIDIA” in the output, the Nvidia driver may be using a fallback name. This can be worked around by setting the below environment variable:
XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY="NVIDIA"

Screen tearing in wired VR headsets#

This is caused by having a monitor with VRR available while using an Nvidia GPU. Turning off VRR (also named G-Sync, FreeSync, Adaptive Sync) in your compositor’s display settings may not be sufficient, you should disable it in your monitor’s on-screen display.
If the issue is still happening, you need to add the kernel parameter nvidia-modeset.conceal_vrr_caps=1 to your boot loader. ArchWiki has a guide on how to add kernel parameters in general, but here’s an example if you boot with GRUB.

  1. Open your terminal and type sudo nano /etc/default/grub
  2. Add nvidia-modeset.conceal_vrr_caps=1 inside the parameters of GRUB_CMDLINE_LINUX_DEFAULT=
  3. Close nano after saving the changes to the text file
  4. Update your grub config by typing sudo grub-mkconfig -o /boot/grub/grub.cfg
  5. Restart your PC

AMD Workarounds#

AMD: Unable to lease display#

First, try restarting the headset.
If this persists, try adding the below environment variable:
RADV_DEBUG=nodisplaydcc
This fix is mainly known to work for users on RDNA2/6000 series Radeon cards.

Intel Workarounds#

Nothing here yet#

There are presently no known workarounds for Intel GPUs when running Monado. If you discover any, please send a Merge Request!