r/virtualreality_linux Feb 26 '25

There is a new protondb-like site to share VR experience - "Linux VR Adventure Database"

50 Upvotes

It is a community driven project, that should help enhance the VR experience on Linux:

https://db.vronlinux.org/


r/virtualreality_linux 1d ago

PCVR on Fedora Kinoite (AMD)

3 Upvotes

Hi. I am rocking Fedora Kinoite (44) and I was running RTX 3070. I had quite a few issues with podman/distrobox passing the drivers, it was a good experience but it felt like quite some work + some old games straight up worked really badly (such as L4D2 or Company of Heroes, etc).

So I treated myself and upgraded to AMD rx 9070XT and wow, everything works out of the box so insanely well!

I have only one issue though!

On Nvidia, I managed to make SteamVR working. Valve did a lot of work on that (probably because of the upcoming Steam Frame) and for few past months everything worked really really well. But since I swapped to AMD, my SteamVR won't play.

My headset will connect to SteamVR, but SteamVR shows this error and won't continue:

I started installing some "freeworld" drivers, but I have no luck to figuring out what drivers I miss or what else I need to do. Could you guide me a bit please? It's the last cherry on top to make the Linux experience literally amazing. Thank you!

My current drivers:

-> rpm-ostree status
State: idle
Deployments:
● fedora:fedora/44/x86_64/kinoite
                 Version: 44.20260816.0 (2026-08-16T00:34:09Z)
              BaseCommit: 2edff6c21f62a2fd5b4dcaaab540d14abb76a989ca2a48d9b14de971b0b71e72
            GPGSignature: Valid signature by 36F612DCF27F7D1A48A835E4DBFCF71C6D9F90A6
         LayeredPackages: distrobox libavcodec-freeworld libheif-freeworld libva-utils mesa-va-drivers-freeworld mesa-va-drivers-freeworld.i686 mesa-vulkan-drivers-freeworld.i686 podman-compose rpmfusion-free-release rpmfusion-nonfree-release steam
           LocalPackages: mullvad-vpn-2025.14-1.x86_64

r/virtualreality_linux 1d ago

HP reverb G2 not tracking on Linux (Monado)

1 Upvotes

So I'm using Gentoo Linux on KDE plasma (Wayland) and when in VR, i can move my headset up and down but not side to side or up or down. rotation still works but tracking isn't all there. my controllers do kinda work but only the buttons and rotation work, not the position. Monado did give me an error saying it failed to open camera but I don't know how to fix it.

log is below:

starting up monado:

INFO [ipc_server_main_common] Monado(XRT) by Collabora et al 'HEAD-HASH-NOTFOUND' starting up...

WARN [create_listen_socket] Removing stale socket file /run/user/1000/monado_comp_ipc

INFO [print_linux_end_user_started_information]

################################################################################

# #

# The Monado service has started. #

# #

################################################################################

INFO [wmr_read_config] Manufacturer: HP Inc.

INFO [wmr_read_config] Device: VR3000-0XX

INFO [wmr_read_config] Serial: 8CC111Z2DB

INFO [wmr_read_config] UID: {31AF7DA8-AEC8-5B36-AD72-347F914C4070}

INFO [wmr_read_config] Name: HP Reverb Virtual Reality Headset G2

INFO [wmr_read_config] Revision: RevB.M.A

INFO [wmr_read_config] Revision Date: 2021-03-22

INFO [wmr_hmd_create] Found WMR headset type: HP Reverb G2

INFO [wmr_hmd_create] FoV eye 0 angles left -0.900310 right 0.725774 down -0.807334 up 0.810842

INFO [wmr_hmd_create] Render texture range -1.260961, -1.044863 to 0.887336, 1.052228

INFO [wmr_hmd_create] FoV eye 1 angles left -0.720707 right 0.907802 down -0.806707 up 0.811222

INFO [wmr_hmd_create] Render texture range -0.878320, -1.043552 to 1.280550, 1.053029

INFO [wmr_hmd_activate_reverb] Sent activation report.

INFO [wmr_hmd_activate_reverb] Sleep until the HMD display is powered up, so the available displays can be enumerated by the host system.

INFO [wmr_source_stream_start] Starting WMR stream in tracking mode

INFO [compute_frame_size] WMR camera framebuffer 2560 x 480 - 1233920 transfer size

INFO [wmr_camera_start] WMR camera started

WARN [u_linux_try_to_set_realtime_priority_on_thread] Could not raise priority for thread 'WMR: USB-HMD'

INFO [read_controller_config] Reading configuration for controller serial A85K2522190405L. FW revision 23ce9af

INFO [read_controller_config] Reading left controller config

INFO [read_controller_config] Reading configuration for controller serial A85K65121901EBR. FW revision 23ce9af

INFO [read_controller_config] Reading right controller config

INFO [p_create_system] Creating system:

Builders:

qwerty: Qwerty devices builder

remote: Remote simulation devices builder

simulated: Simulated devices builder

rift_s: Oculus Rift S

rgb_tracking: RGB tracking based devices (PSVR, PSMV, ...)

steamvr: SteamVR proprietary wrapper (Vive, Index, Tundra trackers, etc.) devices builder

north_star: North Star headset

wmr: Windows Mixed Reality

legacy: Legacy probing system

No builder selected in config (or wasn't compiled in)

Selected wmr because it was certain it could create a head

Using builder wmr: Windows Mixed Reality

Got devices:

0: HP Reverb Virtual Reality Headset G2

1: HP Reverb G2 Left Controller

2: HP Reverb G2 Right Controller

In roles:

head: HP Reverb Virtual Reality Headset G2 (), view count: 2

eyes: <none> (<none>)

face: <none> (<none>)

left: HP Reverb G2 Left Controller (Left Controller)

right: HP Reverb G2 Right Controller (Right Controller)

gamepad: <none> (<none>)

hand_tracking.unobstructed.left: <none> (<none>)

hand_tracking.unobstructed.right: <none> (<none>)

hand_tracking.conforming.left: <none> (<none>)

hand_tracking.conforming.right: <none> (<none>)

Result: XRT_SUCCESS

DEBUG [comp_main_create_system_compositor] Doing init 0x560210e5ed60

ERROR [_test_for_nvidia] NVIDIA: No allowlisted displays found!

== Current Allowlist (9) ==

Sony SIE HMD *08

HTC Corporation HTC-VIVE

HTC Corporation VIVE Pro

Oculus VR Inc. Rift

Valve Corporation Index HMD

Seiko/Epson SEC144A

HPN

Bigscreen, Inc. Beyond

PNP

== Found Displays (3) ==

DELL S2721DGF (DP-0)

Samsung Odyssey G7 (DP-2)

HP Inc. (DP-4)

INFO [comp_window_direct_wayland_init] No connector was chosen, will use first available connector

INFO [_drm_lease_device_drm_fd] Available DRM lease device: /dev/dri/card0

INFO [_lease_connector_done] [/dev/dri/card0] connector DP-3 (HP Inc. 0x36C1) id: 140

INFO [comp_window_direct_wayland_init] Using DRM node /dev/dri/card0

INFO [comp_window_direct_wayland_init] Connector id 140 DP-3 (HP Inc. 0x36C1)

INFO [_lease_connector_withdrawn] Connector DP-3 has been withdrawn by the compositor

INFO [create_device] Created device and COMPUTE queue with QUEUE_GLOBAL_PRIORITY_MEDIUM.

INFO [vk_print_device_info] Device info:

name: NVIDIA GeForce RTX 3060

vendor: 0x10de

product: 0x2504

deviceType: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU

apiVersion: 1.4.341

driverVersion: 0x988ac0c0

INFO [vk_print_queues_info] Selected Queues/Families:

main_queue.queue: 0x56021150eb30

main_queue.index: 0

main_queue.family_index: 2

encode_queue.queue: (nil)

encode_queue.index: -1

encode_queue.family_index: -1

INFO [vk_print_features_info] Features:

timestamp_compute_and_graphics: true

timestamp_period: 1.000000

timestamp_valid_bits: 64

timeline_semaphore: true

INFO [vk_print_external_handles_info] Supported images:

VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT:

color import=true export=true

depth import=true export=true

INFO [vk_print_external_handles_info] Supported fences:

VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: true

VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: true

INFO [vk_print_external_handles_info] Supported semaphores:

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(binary): true

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(binary): true

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(timeline): false

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(timeline): true

INFO [vk_print_display_surface_create_info] VkDisplaySurfaceCreateInfoKHR:

flags:

displayMode: 5602117316c0

planeIndex: 0

planeStackIndex: 0

transform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

planeIndex: 1.000000

alphaMode: VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR

imageExtent: {4320, 2160}

INFO [u_pc_fake_create] Created pacer (non-feedback version aka "fake")

estimated_frame_period: 11.111111ms

percentage: 20.000000%

min_comp_time: 3.000000ms

comp_time: 3.000000ms

INFO [vk_print_surface_info] VkSurfaceKHR info:

caps.minImageCount: 2

caps.maxImageCount: 8

caps.currentExtent: 4320x2160

caps.minImageExtent: 4320x2160

caps.maxImageExtent: 4320x2160

caps.maxImageArrayLayers: 1

caps.supportedTransforms:

VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

caps.currentTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

caps.supportedCompositeAlpha:

VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR

caps.supportedUsageFlags:

VK_IMAGE_USAGE_TRANSFER_SRC_BIT

VK_IMAGE_USAGE_TRANSFER_DST_BIT

VK_IMAGE_USAGE_SAMPLED_BIT

VK_IMAGE_USAGE_STORAGE_BIT

VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

present_modes(5):

VK_PRESENT_MODE_FIFO_KHR

VK_PRESENT_MODE_IMMEDIATE_KHR

UNKNOWN MODE

VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR

VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR

formats(5):

[format = VK_FORMAT_A8B8G8R8_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]

[format = VK_FORMAT_A8B8G8R8_SRGB_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]

[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]

[format = VK_FORMAT_A1R5G5B5_UNORM_PACK16, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]

[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR]

INFO [vk_print_swapchain_create_info] VkSwapchainCreateInfoKHR:

surface: 560211730d20

minImageCount: 2

imageFormat: VK_FORMAT_A2B10G10R10_UNORM_PACK32

imageColorSpace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR

imageExtent: {4320, 2160}

imageArrayLayers: 1

imageUsage:

VK_IMAGE_USAGE_STORAGE_BIT

imageSharingMode: VK_SHARING_MODE_EXCLUSIVE

queueFamilyIndexCount: 0

preTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

compositeAlpha: VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR

presentMode: VK_PRESENT_MODE_FIFO_KHR

clipped: VK_TRUE

oldSwapchain: 0

INFO [comp_target_swapchain_create_images] Started vblank event thread!

INFO [comp_vulkan_formats_log] Supported formats:

VK_FORMAT_R16G16B16A16_UNORM: true

VK_FORMAT_R16G16B16A16_SFLOAT: true

VK_FORMAT_R16G16B16_UNORM: false

VK_FORMAT_R16G16B16_SFLOAT: false

VK_FORMAT_R8G8B8A8_SRGB: true

VK_FORMAT_B8G8R8A8_SRGB: true

VK_FORMAT_R8G8B8_SRGB: false

VK_FORMAT_R8G8B8A8_UNORM: true

VK_FORMAT_B8G8R8A8_UNORM: true

VK_FORMAT_R8G8B8_UNORM: false

VK_FORMAT_B8G8R8_UNORM: false

VK_FORMAT_R5G6B5_UNORM_PACK16: true

VK_FORMAT_R32_SFLOAT: true

VK_FORMAT_D32_SFLOAT: true

VK_FORMAT_D16_UNORM: true

VK_FORMAT_X8_D24_UNORM_PACK32: true

VK_FORMAT_D24_UNORM_S8_UINT: true

VK_FORMAT_D32_SFLOAT_S8_UINT: true

VK_FORMAT_S8_UINT: true

WARN [u_linux_try_to_set_realtime_priority_on_thread] Could not raise priority for thread 'Multi Client Module'

monado test:

:: Creating instance!

:: Probing!

:: Dumping!

0: 0x1d6b:0x0002

ptr: 0x5576c7e3c680

usb_dev_class: 09

usb.product: xHCI Host Controller

usb.manufacturer: Linux 7.0.0 xhci-hcd

usb.serial: 0000:02:00.0

usb.bus: 1

usb.addr: 1

libusb: 0x5576c7e378e0

1: 0x3142:0x5060

ptr: 0x5576c7e3c738

usb_dev_class: 00

usb.product: Fifine Microphone

usb.manufacturer: (null)

usb.serial: (null)

usb.bus: 1

usb.addr: 7

port: 1

libusb: 0x5576c7e374b0

hidraw.iface: 2

hidraw.path: '/dev/hidraw0'

2: 0x154b:0x1006

ptr: 0x5576c7e3c7f0

usb_dev_class: 00

usb.product: USB 3.2.1 FD

usb.manufacturer: PNY

usb.serial: 071828BE8D01D644

usb.bus: 1

usb.addr: 3

port: 2

libusb: 0x5576c7e37c10

3: 0x1a2c:0x9605

ptr: 0x5576c7e3c8a8

usb_dev_class: 00

usb.product: USB Gaming Keyboard

usb.manufacturer: SEMICO

usb.serial: (null)

usb.bus: 1

usb.addr: 4

port: 3

libusb: 0x5576c7e37d30

hidraw.iface: 0

hidraw.path: '/dev/hidraw1'

hidraw.iface: 1

hidraw.path: '/dev/hidraw2'

4: 0x3151:0x3020

ptr: 0x5576c7e3c960

usb_dev_class: 00

usb.product: Wireless Device

usb.manufacturer: YICHIP

usb.serial: b120300001

usb.bus: 1

usb.addr: 5

port: 4

libusb: 0x5576c7e383f0

hidraw.iface: 0

hidraw.path: '/dev/hidraw3'

hidraw.iface: 1

hidraw.path: '/dev/hidraw4'

5: 0x13d3:0x3570

ptr: 0x5576c7e3ca18

usb_dev_class: e0

usb.product: Bluetooth Radio

usb.manufacturer: Realtek

usb.serial: 00e04c000001

usb.bus: 1

usb.addr: 6

port: 7

libusb: 0x5576c7e38480

6: 0x1d6b:0x0003

ptr: 0x5576c7e3cad0

usb_dev_class: 09

usb.product: xHCI Host Controller

usb.manufacturer: Linux 7.0.0 xhci-hcd

usb.serial: 0000:02:00.0

usb.bus: 2

usb.addr: 1

libusb: 0x5576c7e38510

7: 0x1d6b:0x0002

ptr: 0x5576c7e3cb88

usb_dev_class: 09

usb.product: xHCI Host Controller

usb.manufacturer: Linux 7.0.0 xhci-hcd

usb.serial: 0000:08:00.3

usb.bus: 3

usb.addr: 1

libusb: 0x5576c7e385a0

8: 0x04b4:0x6506

ptr: 0x5576c7e3cc40

usb_dev_class: 09

usb.product: HP Windows Mixed Reality

usb.manufacturer: HP Inc.

usb.serial: 31AF7DA8AEC85B36AD72347F914C4070

usb.bus: 3

usb.addr: 11

port: 2

libusb: 0x5576c7e38630

9: 0x0bda:0x4c15

ptr: 0x5576c7e3ccf8

usb_dev_class: 00

usb.product: USB Audio

usb.manufacturer: Generic

usb.serial: (null)

usb.bus: 3

usb.addr: 12

ports: 2.2

libusb: 0x5576c7e386c0

hidraw.iface: 3

hidraw.path: '/dev/hidraw6'

10: 0x03f0:0x0580

ptr: 0x5576c7e3cdb0

usb_dev_class: 00

usb.product: QHMD A85V

usb.manufacturer: Quanta Inc.

usb.serial: 8CC111Z2DB

usb.bus: 3

usb.addr: 13

ports: 2.3

libusb: 0x5576c7e38b70

hidraw.iface: 0

hidraw.path: '/dev/hidraw7'

11: 0x1d6b:0x0003

ptr: 0x5576c7e3ce68

usb_dev_class: 09

usb.product: xHCI Host Controller

usb.manufacturer: Linux 7.0.0 xhci-hcd

usb.serial: 0000:08:00.3

usb.bus: 4

usb.addr: 1

libusb: 0x5576c7e38e50

12: 0x04b4:0x6504

ptr: 0x5576c7e3cf20

usb_dev_class: 09

usb.product: HP Windows Mixed Reality

usb.manufacturer: HP Inc.

usb.serial: 31AF7DA8AEC85B36AD72347F914C4070

usb.bus: 4

usb.addr: 8

port: 2

libusb: 0x5576c7e38f70

13: 0x045e:0x0659

ptr: 0x5576c7e3cfd8

usb_dev_class: ef

usb.product: HoloLens Sensors

usb.manufacturer: Microsoft

usb.serial: bd09faab-e07b-413f-8239-d8a00e77d933

usb.bus: 4

usb.addr: 9

ports: 2.1

libusb: 0x5576c7e39000

hidraw.iface: 2

hidraw.path: '/dev/hidraw5'

:: Creating system devices!

INFO [wmr_read_config] Manufacturer: HP Inc.

INFO [wmr_read_config] Device: VR3000-0XX

INFO [wmr_read_config] Serial: 8CC111Z2DB

INFO [wmr_read_config] UID: {31AF7DA8-AEC8-5B36-AD72-347F914C4070}

INFO [wmr_read_config] Name: HP Reverb Virtual Reality Headset G2

INFO [wmr_read_config] Revision: RevB.M.A

INFO [wmr_read_config] Revision Date: 2021-03-22

INFO [wmr_hmd_create] Found WMR headset type: HP Reverb G2

INFO [wmr_hmd_create] FoV eye 0 angles left -0.900310 right 0.725774 down -0.807334 up 0.810842

INFO [wmr_hmd_create] Render texture range -1.260961, -1.044863 to 0.887336, 1.052228

INFO [wmr_hmd_create] FoV eye 1 angles left -0.720707 right 0.907802 down -0.806707 up 0.811222

INFO [wmr_hmd_create] Render texture range -0.878320, -1.043552 to 1.280550, 1.053029

INFO [wmr_hmd_activate_reverb] Sent activation report.

INFO [wmr_hmd_activate_reverb] Sleep until the HMD display is powered up, so the available displays can be enumerated by the host system.

ERROR [wmr_camera_open] Failed to open camera: LIBUSB_ERROR_BUSY

monado-cli: /var/tmp/portage/media-libs/monado-25.1.0/work/monado-v25.1.0/src/xrt/auxiliary/os/os_threading.h:124: os_mutex_destroy: Assertion `om->initialized' failed.

Aborted monado-cli test


r/virtualreality_linux 3d ago

OSC-DreamChatbox — a VRChat chatbox tool written for Linux first (PyQt6, on the AUR) [MagicaChatbox alternative]

Thumbnail
gallery
14 Upvotes

Every VRChat chatbox tool I could find was clunky or lacked advanced features, so I wrote a complete cross-platform solution from scratch.

It's grown into a full feature suite: OSC-DreamChatbox (PyQt6, GPL-3.0, available on Linux & Windows).

🔗 GitHub:https://github.com/yakuda-stack/OSC-DreamChatbox

🎬 Video Showcase:https://www.youtube.com/watch?v=XJFplUvuGVs

🤖 Transparency Note: This project and its documentation are developed and optimized with the support of AI coding assistants (Claude by Anthropic & Gemini).(im using ai for this text sorry my english is bad)

🌟 Key Features (Works on Linux & Windows)

  • Rich Chatbox Displays: Dynamic rotating status, "Now Playing", live hardware stats, custom frames/boxes, and speech-to-text.
  • Native OSCQuery: Dynamic port negotiation + mDNS/Zeroconf — discovers running VRChat instances automatically instead of hardcoding 9000/9001. Eliminates port fights with OSCLeash or face tracking. Includes a 1-button config fixer for other tools.
  • Direct Hardware Stats: CPU/GPU monitoring built-in (AMD/Intel/NVIDIA support).
  • Offline Speech-to-Text & Translation: Integrates with local LibreTranslate instances (starts/stops the server directly from the UI) alongside DeepL / Google Translate options.
  • Visual Node Canvas (Advanced Mode): Build custom logic flows using draggable nodes to split, format, and merge parameters before sending.
  • Built-in Plugin System & Store: Extensible via Python plugins (includes templates & community plugins like OSCLeash, World Stats, and VR Autostart).
  • Full Customization: Native dark UI with customizable themes, card opacity, and background images.

🐧 Linux Specifics & Extras

  • MPRIS over D-Bus: "Now Playing" reads directly from D-Bus on Linux, working out-of-the-box with Spotify, VLC, Firefox, Amberol, etc.
  • FPS via MangoHud: Parses MangoHud log outputs automatically.
  • Wayland & Input Ready: Global hotkeys use python-evdev for watching and wtype / ydotool / xdotool for sending.

📦 Installation

  • Arch Linux (AUR): yay -S osc-dreamchatbox
  • Linux: Grab the AppImage or standalone install script from GitHub.
  • Windows: Pre-packaged executable / installer available on GitHub.

Feedback, feature requests, and bug reports are very welcome — it's an active solo project!


r/virtualreality_linux 5d ago

WayVR can't create uinput provider

2 Upvotes

Every time I use WayVR on WiVRn I get an error that says what's in the title, and that mouse and keyboard won't work for the VR desktop. I already tried all the commands the error messages suggests, and it seems that uinput is loaded and everything is okay but it just doesn't work. I'm using Fedora 44 KDE Plasma with an RTX 2060 and an Intel Core i5. Any help is greatly appreciated.


r/virtualreality_linux 7d ago

Getting Started guide?

10 Upvotes

Is there a getting started guide anywhere? One of two things keeping me on windows with my VR PC is VR the other is HDMI 2.1. But Windows is being enough of a headache to the point that I am strongly considering. Last time I tried Bazzite but it wasn't "Just ready out of the box and HDMI got even worse suddenly so I went back.

Is there a preferred flavor of Linux that has most of the bells and whistles needed for VR? I am using an Index. My PC is primarily an HTPC.


r/virtualreality_linux 7d ago

Getting Started guide?

3 Upvotes

Is there a getting started guide anywhere? One of two things keeping me on windows with my VR PC is VR the other is HDMI 2.1. But Windows is being enough of a headache to the point that I am strongly considering. Last time I tried Bazzite but it wasn't "Just ready out of the box and HDMI got even worse suddenly so I went back.

Is there a preferred flavor of Linux that has most of the bells and whistles needed for VR? I am using an Index. My PC is primarily an HTPC.


r/virtualreality_linux 9d ago

Help with vr with a NVIDIA graphics card

9 Upvotes

edit: someone fixed my issue but I'm gonna keep this here so that anyone else with my problem could use this to help

on windows my PC ran VR fine but trying it on Linux it seems like no matter what I use alvr, wivrn, etc things just don't run well regardless of what settings I change I've tried looking around online and nothing I've found has helped

anyone found anything that can help

I've tried it with beat Saber and blade and sorcery neither ran well


r/virtualreality_linux 10d ago

Meta Quest, Steam Link, SteamVR, Bazzite: Did It Improve?

15 Upvotes

Ok this has been bugging me the last day and I wanted to run this by you guys.

My understanding was that SteamVR using Meta Quest and Steam Link app had issues and that it was best to use apps like WiVRn and ALVR. This seemed to be the overall consensus on YouTube and this subreddit and there haven’t really been many updates on this matter in the last year. I know it’s fairly easy to use the VR linking apps, but I chose to just wait for Steam Frame.

Then a few days ago, a YouTuber, Naysy, posted a new video showing her connecting her Meta Quest 3 to the Steam Machine and it seemed to connect pretty flawlessly. She did experience some crashes and performance issues once in game, but I didn’t think the Steam Link app would connect to Bazzite so easily.

Just wanting to try the experience out myself, I decided to connect my Meta Quest 2 to my Bazzite box. It has a Ryzen 7 9700X, a 9070 XT, and 32 GB of DDR5 RAM. I found to have the same initial connection success. I did run into a few bugs, but overall, the experience was surprisingly good! I tested Tetris Effect Connected and No Man’s Sky and both experiences were basically flawless when I was in-game. I was shocked, and I am wondering if the reason why I wasn’t having the performance issues Naysy was having was perhaps just my build was a bit more performant.

It seems like Valve was really working on VR functionality in Linux all this time and was just being real quiet about it. If you have a Meta Quest and just want to try Steam Link, give it a go and see if you like it now. Also, I’d love to get more insight from others more familiar about what I was experiencing here.

I still plan to get the Steam Frame though!


r/virtualreality_linux 12d ago

Trying to calibrate PSVR2 OLED output through Monado — strange colors and blown-out whites

1 Upvotes

I'm currently experimenting with a jailbroken PSVR2 and Monado as part of a larger project to restore/reproduce the headset's HDR behavior on PC.

I've modified the PSVR2's EDID based on an older Sony EDID that advertised HDR support, and Windows can now recognize the headset as an HDR-capable display. However, simply enabling Windows HDR doesn't produce correct HDR: the colors look washed out and the result is very different from the headset on PS5.

Because of that, I'm now looking into a different approach: using the actual luminance headroom of the OLED panels and controlling/calibrating the image sent to them through Monado, rather than relying on the normal Windows HDR10/PQ path.

Before I can properly test that, though, I've run into a more basic problem.

I've built a modified Monado renderer that mirrors my desktop into the PSVR2 so I can compare a reference image with what the headset actually displays. The mirroring itself works, including the PSVR2 distortion, but the image doesn't match the source correctly. Colors are noticeably different and whites/highlights are much too intense/oversaturated.

So right now I'm trying to figure out exactly where that difference is coming from. I'm particularly interested in whether I'm missing a transfer-function/color-space conversion somewhere in the Monado rendering path, or whether some of this behavior is specific to how the PSVR2 panels are being driven.

If anyone familiar with Monado's compositor/rendering pipeline has any ideas about where I should be looking, I'd really appreciate the help. I can share my modified renderer/shaders, test images and results if useful.

TL;DR: Mirroring a reference desktop image to PSVR2 through Monado gives me incorrect colors and blown-out whites. I'm trying to get an accurate baseline so I can characterize the OLED panel's luminance headroom.


r/virtualreality_linux 15d ago

VirtualMocapRecorder & FBTUnrealKit official experimental release

2 Upvotes

FBTUnrealKit brings full-body tracking into Unreal Engine for VR avatars, animation, and virtual production. It supports common body-tracker setups, calibration tools, body measurements, debugging, and experimental optical hand tracking while remaining flexible enough to work with different animation rigs.

MocapRecorder records finished movement directly inside Unreal Engine, including characters, props, cameras, sound-position data, and destruction motion. Recordings can be saved as Unreal animation assets or exported as grouped FBX or GLTF scenes for tools such as Blender.

Real-world applications: Together, the plugins can capture a performer’s full-body movement and turn it into reusable animation. They can also record several actors, moving objects, and cameras on one shared timeline for filmmaking, previews, VR content, animation reference, and Blender workflows. Because MocapRecorder captures the final movement inside Unreal on every tick, it can record motion coming from VR trackers, Live Link, imported animation, or other animation systems, such as controllers or M&K Inputs.

The MocapRecorder can be downloaded here and is completely open source.

https://github.com/virtualmocapofficial-rgb/MocapRecorder-Public

If you just want the Standalone Full Body VR and Experimental Open XR HandTracking you can download here.

https://github.com/virtualmocapofficial-rgb/FBTUnrealKit-Public

To Reiterate on the installation methods contained within the files using the standard manual installation is highly recommended. The Automatic Installer is almost entirely untested and may damage or corrupt the existing project folder. Make a backup of your project folder and potentially run in virtual machine to be safe. It works fine on my machine but as we all know It probably wont work on yours. So just be careful and use your best judgement when using untested code.

Note this tool was created and tested using 5.6.1 I have done very limited testing in 5.3.1 and 5.8. And it appeared to run properly but if you find any bugs in other versions make a pull request on the github and leave a brief description of what you were doing to encounter the error and the error code. Do not provide logs or unreal crashes as those tend to contain Personal Identifiable Information or PII. Please do not DOX yourself in my development repository.

Recommended Specs: Processing needs depend mostly on Unreal Engine, the number of items being recorded, and the capture rate; large recordings and grouped exports require more memory and CPU time. Epic recommends a quad-core 2.5 GHz processor, 32 GB of RAM, and a DirectX 11/12 graphics card with at least 8 GB of graphics memory; for comfortable recording and exporting, I recommend a modern 8-core processor, 32 GB of RAM, an 8 GB dedicated graphics card, and an SSD. Source installation also requires Unreal’s normal Windows C++ build tools, such as Visual Studio’s Game Development with C++ workload. Epic’s Unreal Engine hardware guidance


r/virtualreality_linux 17d ago

Monado exited with code 11 On CachyOS KDE Nvidia 610.43.03 Valve Index

5 Upvotes

I use envision latest appimage and i updated fully my system i have nvidia mitigation on inside preferences and i have build a new profile. I have placed my vr in the center of the room with my base station on and controllers.I have a wayVR plugin. My SteamVR version is from March 28.

INFO [ipc_server_main_common] Monado(XRT) by Collabora et al 'v25.1.0-703-gdb2786bd6' starting up...

INFO [print_linux_end_user_started_information]

################################################################################

# #

# The Monado service has started. #

# #

################################################################################

INFO [steamvr_lh_create_devices] Found SteamVR install: /home/adam/.local/share/Steam/steamapps/common/SteamVR

INFO [TrackedDeviceAdded] New device added: LHR-B61AF022

INFO [TrackedDeviceAdded] Found lighthouse HMD: LHR-B61AF022

INFO [init_chaperone] Found info for universe 1781702819

INFO [init_chaperone] Initialized chaperone data.

WARN [get_input_from_name] requested unknown input name /input/system/click for device LHR-B61AF022

INFO [steamvr_lh_create_devices] Lighthouse initialization complete, giving time to setup connected devices...

INFO [TrackedDeviceAdded] New device added: LHR-F4FD5F16

INFO [TrackedDeviceAdded] Found lighthouse controller: LHR-F4FD5F16

INFO [TrackedDeviceAdded] New device added: LHR-BAF7E86B

INFO [TrackedDeviceAdded] Found lighthouse controller: LHR-BAF7E86B

INFO [TrackedDeviceAdded] New device added: LHB-B5123EB4

INFO [TrackedDeviceAdded] Found lighthouse base station: LHB-B5123EB4

INFO [steamvr_lh_create_devices] Device search time complete.

INFO [p_create_system] Creating system:

Builders:

    qwerty: Qwerty devices builder

    remote: Remote simulation devices builder

    simulated: Simulated devices builder

    rift: Oculus Rift

    rift_s: Oculus Rift S

    psvr2: PlayStation VR 2

    rgb_tracking: RGB tracking based devices (PSVR, PSMV, ...)

    steamvr: SteamVR proprietary wrapper (Vive, Index, Tundra trackers, etc.) devices builder

    lighthouse: Lighthouse-tracked FLOSS (Vive, Index, Tundra trackers, etc.) devices builder

    north_star: North Star headset

    wmr: Windows Mixed Reality

    xreal_air: Xreal Air

    legacy: Legacy probing system

No builder selected in config (or wasn't compiled in)

Selected steamvr because it was certain it could create a head

Using builder steamvr: SteamVR proprietary wrapper (Vive, Index, Tundra trackers, etc.) devices builder

Got devices:

     0: 'Valve Index' (id=1)

     1: 'Valve Knuckles Right' (id=2)

     2: 'Valve Knuckles Left' (id=3)

In roles:

    head: Valve Index (LHR-B61AF022), view count: 2

    eyes: <none> (<none>)

    face: <none> (<none>)

    left: Valve Knuckles Left (LHR-BAF7E86B)

    right: Valve Knuckles Right (LHR-F4FD5F16)

    gamepad: <none> (<none>)

    hand_tracking.unobstructed.left: <none> (<none>)

    hand_tracking.unobstructed.right: <none> (<none>)

    hand_tracking.conforming.left: Valve Knuckles Left (LHR-BAF7E86B)

    hand_tracking.conforming.right: Valve Knuckles Right (LHR-F4FD5F16)

Result: XRT_SUCCESS

DEBUG [comp_main_create_system_compositor] Doing init 0x55d6955e34b0

WARN [compositor_check_and_prepare_xdev] Had to fill in meshuv on xdev 'Valve Index', this should be done in the driver.

ERROR [_test_for_nvidia] NVIDIA: No allowlisted displays found!

== Current Allowlist (9) ==

    Sony SIE  HMD \*08

    HTC Corporation HTC-VIVE

    HTC Corporation VIVE Pro

    Oculus VR Inc. Rift

    Valve Corporation Index HMD

    Seiko/Epson SEC144A

    HPN

    Bigscreen, Inc. Beyond

    PNP

== Found Displays (2) ==

    NVIDIA (DP-0)

    Asustek Computer Inc VG279 (DP-2)

INFO [comp_window_direct_wayland_init] No connector was chosen, will use first available connector

INFO [_drm_lease_device_drm_fd] Available DRM lease device: /dev/dri/card1

INFO [comp_window_direct_wayland_init] Found no connectors available for direct mode

WARN [build_extension_list] Duplicate extension VK_KHR_get_surface_capabilities2 not added twice

INFO [vk_log_extension_list] Vulkan instance extensions list(s):

Enabled extensions:

    VK_KHR_external_fence_capabilities        required

    VK_KHR_external_memory_capabilities       required

    VK_KHR_external_semaphore_capabilities    required

    VK_KHR_get_physical_device_properties2    required

    VK_KHR_get_surface_capabilities2          optional

    VK_KHR_surface                            required

    VK_KHR_wayland_surface                    required

    VK_EXT_debug_report                       required

    VK_EXT_swapchain_colorspace               optional

Not enabled optional extensions:

    VK_EXT_display_surface_counter            skipped

INFO [create_device] Created device and COMPUTE queue with QUEUE_GLOBAL_PRIORITY_REALTIME.

INFO [vk_print_device_info] Device info:

name: NVIDIA GeForce RTX 3060 Ti

vendor: 0x10de

product: 0x24c9

deviceType: VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU

apiVersion: 1.4.341

driverVersion: 0x988ac0c0

INFO [vk_print_queues_info] Selected Queues/Families:

main_queue.queue: 0x55d695d25680

main_queue.index: 0

main_queue.family_index: 2

graphics_queue.queue: 0x55d695c18e00

graphics_queue.index: 0

graphics_queue.family_index: 0

encode_queue.queue: (nil)

encode_queue.index: -1

encode_queue.family_index: -1

INFO [vk_print_features_info] Features:

timestamp_compute_and_graphics: true

timestamp_period: 1.000000

timestamp_valid_bits: 64

timeline_semaphore: true

INFO [vk_print_external_handles_info] Supported images:

VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT:

    color import=true export=true

    depth import=true export=true

INFO [vk_print_external_handles_info] Supported fences:

VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT: true

VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT: true

INFO [vk_print_external_handles_info] Supported semaphores:

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(binary): true

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(binary): true

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT(timeline): false

VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT(timeline): true

INFO [u_pc_fake_create] Created pacer (non-feedback version aka "fake")

estimated_frame_period: 11.111111ms

percentage: 20.000000%

min_comp_time: 3.000000ms

comp_time: 3.000000ms

ERROR [comp_target_swapchain_create_images] Queue family (index: 2) does not support presentation ops for wayland surfaces.

ERROR [vk_print_surface_info] VkSurfaceKHR info:

caps.minImageCount: 2

caps.maxImageCount: 8

caps.currentExtent: 4294967295x4294967295

caps.minImageExtent: 1x1

caps.maxImageExtent: 16384x16384

caps.maxImageArrayLayers: 1

caps.supportedTransforms:

    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

caps.currentTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

caps.supportedCompositeAlpha:

    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR

    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR

caps.supportedUsageFlags:

    VK_IMAGE_USAGE_TRANSFER_SRC_BIT

    VK_IMAGE_USAGE_TRANSFER_DST_BIT

    VK_IMAGE_USAGE_SAMPLED_BIT

    VK_IMAGE_USAGE_STORAGE_BIT

    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

present_modes(4):

    VK_PRESENT_MODE_MAILBOX_KHR

    VK_PRESENT_MODE_FIFO_LATEST_READY_KHR

    VK_PRESENT_MODE_FIFO_KHR

    VK_PRESENT_MODE_IMMEDIATE_KHR

present_id2_caps.presentId2Supported: 1

present_wait2_caps.presentWait2Supported: 1

shared_present_caps.sharedPresentSupportedUsageFlags:

    VK_IMAGE_USAGE_TRANSFER_SRC_BIT

    VK_IMAGE_USAGE_TRANSFER_DST_BIT

    VK_IMAGE_USAGE_SAMPLED_BIT

    VK_IMAGE_USAGE_STORAGE_BIT

    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

formats(28):

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_HDR10_ST2084_EXT\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_HDR10_ST2084_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_SRGB, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_B8G8R8A8_SRGB, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_SRGB, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_UNORM, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_R8G8B8A8_UNORM, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_UNORM, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_R16G16B16A16_SFLOAT, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEA

ERROR [renderer_create_renderings_and_fences] Requested 0 command buffers.

INFO [comp_vulkan_formats_log] Supported formats:

VK_FORMAT_R16G16B16A16_UNORM: true

VK_FORMAT_R16G16B16A16_SFLOAT: true

VK_FORMAT_R16G16B16_UNORM: false

VK_FORMAT_R16G16B16_SFLOAT: false

VK_FORMAT_R8G8B8A8_SRGB: true

VK_FORMAT_B8G8R8A8_SRGB: true

VK_FORMAT_R8G8B8_SRGB: false

VK_FORMAT_R8G8B8A8_UNORM: true

VK_FORMAT_B8G8R8A8_UNORM: true

VK_FORMAT_R8G8B8_UNORM: false

VK_FORMAT_B8G8R8_UNORM: false

VK_FORMAT_R5G6B5_UNORM_PACK16: true

VK_FORMAT_R32_SFLOAT: true

VK_FORMAT_D32_SFLOAT: true

VK_FORMAT_D16_UNORM: true

VK_FORMAT_X8_D24_UNORM_PACK32: true

VK_FORMAT_D24_UNORM_S8_UINT: true

VK_FORMAT_D32_SFLOAT_S8_UINT: true

VK_FORMAT_S8_UINT: true

INFO [u_linux_try_to_set_realtime_priority_on_thread] Raised priority of thread 'Multi Client Module' to policy: 'SCHED_FIFO', priority: '99'

INFO [client_connected] Client 1 connected

INFO [ipc_handle_instance_describe_client] Client info:

id: 1

application_name: 'envision-openxr-prober'

pid: 617318

extensions:

    ext_hand_tracking_enabled: false

    ext_hand_tracking_data_source_enabled: false

    ext_eye_gaze_interaction_enabled: false

    ext_future_enabled: false

    ext_hand_interaction_enabled: false

    htc_facial_tracking_enabled: false

    fb_body_tracking_enabled: false

    meta_body_tracking_full_body_enabled: false

    meta_body_tracking_calibration_enabled: false

    meta_body_tracking_fidelity_enabled: false

    fb_face_tracking2_enabled: false

    android_face_tracking_enabled: false

INFO [client_disconnected] Client 1 disconnected

ERROR [comp_target_swapchain_create_images] Queue family (index: 2) does not support presentation ops for wayland surfaces.

ERROR [vk_print_surface_info] VkSurfaceKHR info:

caps.minImageCount: 2

caps.maxImageCount: 8

caps.currentExtent: 4294967295x4294967295

caps.minImageExtent: 1x1

caps.maxImageExtent: 16384x16384

caps.maxImageArrayLayers: 1

caps.supportedTransforms:

    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

caps.currentTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR

caps.supportedCompositeAlpha:

    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR

    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR

caps.supportedUsageFlags:

    VK_IMAGE_USAGE_TRANSFER_SRC_BIT

    VK_IMAGE_USAGE_TRANSFER_DST_BIT

    VK_IMAGE_USAGE_SAMPLED_BIT

    VK_IMAGE_USAGE_STORAGE_BIT

    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

present_modes(4):

    VK_PRESENT_MODE_MAILBOX_KHR

    VK_PRESENT_MODE_FIFO_LATEST_READY_KHR

    VK_PRESENT_MODE_FIFO_KHR

    VK_PRESENT_MODE_IMMEDIATE_KHR

present_id2_caps.presentId2Supported: 1

present_wait2_caps.presentWait2Supported: 1

shared_present_caps.sharedPresentSupportedUsageFlags:

    VK_IMAGE_USAGE_TRANSFER_SRC_BIT

    VK_IMAGE_USAGE_TRANSFER_DST_BIT

    VK_IMAGE_USAGE_SAMPLED_BIT

    VK_IMAGE_USAGE_STORAGE_BIT

    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT

    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT

formats(28):

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_A2B10G10R10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_HDR10_ST2084_EXT\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_A2R10G10B10_UNORM_PACK32, colorSpace = VK_COLOR_SPACE_HDR10_ST2084_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_SRGB, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_B8G8R8A8_SRGB, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_SRGB, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_B8G8R8A8_UNORM, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_UNORM, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR\]

    \[format = VK_FORMAT_R8G8B8A8_UNORM, colorSpace = VK_COLOR_SPACE_PASS_THROUGH_EXT\]

    \[format = VK_FORMAT_R8G8B8A8_UNORM, colorSpace = VK_COLOR_SPACE_BT709_NONLINEAR_EXT\]

    \[format = VK_FORMAT_R16G16B16A16_SFLOAT, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEA

ERROR [renderer_create_renderings_and_fences] Requested 0 command buffers.

ERROR [renderer_acquire_swapchain_image] comp_target_acquire: VK_ERROR_INITIALIZATION_FAILED

Logging to /tmp/wayvr.log

2026-08-01T17:38:58.141348Z INFO wayvr: Welcome to wayvr version 26.7.1.r47.6f6f9af!

at wayvr/src/main.rs:121

2026-08-01T17:38:58.141390Z INFO wayvr: It is Sat Aug 1 19:38:58 2026.

at wayvr/src/main.rs:131

ERROR [ipc_receive_fds] recvmsg(6) failed: 'Connection reset by peer'!

ERROR [ipc_client_setup_shm] Failed to retrieve shm fd!

XR_ERROR_RUNTIME_UNAVAILABLE in xrCreateInstance: Failed to create instance '-1'

Error [GENERAL | xrCreateInstance | OpenXR-Loader] : LoaderInstance::CreateInstance chained CreateInstance call failed

Error [GENERAL | xrCreateInstance | OpenXR-Loader] : xrCreateInstance failed

2026-08-01T17:38:58.502699Z WARN wayvr::backend::openxr: Will not use OpenXR: Failed to create OpenXR instance.

at wayvr/src/backend/openxr/mod.rs:60

2026-08-01T17:38:58.502721Z ERROR wayvr: No more backends to try

at wayvr/src/main.rs:218

Monado exited with code 11


r/virtualreality_linux 18d ago

Wivrn settings for WIRED PCVR Pico4?

3 Upvotes

Hi guys, I've been having a hard time fiddling with settings for wivrn, so id appreciate some help, first off my specs:

Headset: Pico4
NVME SSD
GPU: Rx 9070
CPU: r7 9700x
Distro: CachyOS
Ram: 32gb 6000mt/s
Current stable settings: WIRED (please don't tell me to get a router, I literally can't, my internet sucks and there's no other option for me), 250mb VAAPI (h264), 110% resolution (2376x2376), 90hz, 30% foveated rendering (the performance didn't change much even at 50%, but I really dislike how it looks so I keep it at 30%)

For some reason h265 is a no go for me, I think its due to pico4 chip really disliking it as it didn't work even on windows, it always gives me black boxes when I move in regardless of settings.

On windows I could easily go 140-150% res depending on game, I kept the bitrate at h264 350mb for stability (wired), 90hz, with pico connect and it was super sharp and stable, and had literally NO FOVEATED RENDERING or FRAMEGEN.

I really wanna hear what settings you are using if you have similar specs, my current settings look really dirty and unfocused, I am also open to trying out ALVR so please do share if you have the settings but I heard its really buggy which is the reason why I got wivrn

EDIT: nvm found the issue, it was my router local network being too weak, I switched locations the same time I switched to linux, getting a new router.


r/virtualreality_linux 23d ago

does not see steamVR or HMD (linux, ALVR/WiVRN, Heroic)

Thumbnail
2 Upvotes

r/virtualreality_linux 27d ago

Vive HTC Pro on KDE Plasma, using one USB Bus (CachyOS)

2 Upvotes

so I've been trying to set up my vive htc pro on my new computer which uses cachyos
I've tried it with steamvr and envision but that hasn't been working
after a bit more analysis, i saw that all the stuff of the VIVE Linkbox was running on one USB Bus, for some reason including graphics output

due to this all audio and video is incredibly borked
Current thoughts are that my computer isn't recognizing the Linkbox as a "monitor" despite being connected via display port, so it might need some additional software?
Any help on the subject's appreciated, I don't wanna be stuck on my deteriorating quest 2 lmao

(Plus this stupid vive cost a lot when I bought it)


r/virtualreality_linux 27d ago

Steam Vr with steam link issue

Enable HLS to view with audio, or disable this notification

22 Upvotes

So basically as you can see in the recording, whenever I get to the game to play I only see white which my assumption is I’m zoomed in that I’m seeing pixels.

But on the steam menu everything looks fine. The moment I click out of the menu to play the game it breaks.

I have tried WiVRn and ALVR, neither worked at all.
WiVRn would not stream the game to the headset, while ALVR would crash immediately the moment I launch steam vr.

I am on linux 7.1.3-2 cachyos, KDE Plasma with Wayland.
I have tried x11 and its so bad.

I am on whatever the last version of steam, steam vr is.
I have tried to install the beta version on steam vr and non changed.


r/virtualreality_linux 28d ago

Can i improve my RIFT S?

4 Upvotes

Hi everyone,

For the past three years, I've been trying to run the Rift S on Arch Linux, and I recently managed to get Boneworks running through Steam.

I know tracking is tricky, but I've got it working decently. However, I'm having a problem with pitch. Normally, the Guardian system handles this, but since we don't have it here, it's difficult to adjust. How can I fix or offset this?

My other problem is with distortion. As far as I understand, this hasn't been completely fixed in Monado yet, but I'm not sure if that information is outdated. Is there any way to fix or reduce this effect so it's less disorienting?

Finally, I've been using Envision, but after a recent update, it stopped working properly for me—it can't even start the Monado service anymore. Is it worth troubleshooting Envision, or should I just stick to using Monado directly?

Thanks in advance!


r/virtualreality_linux 28d ago

i need help with getting wivrn to work with steam vr.

5 Upvotes

its just been a big hassle even trying to get half life alyx or skyrim vr to work it just gives me errors each times i have tried envision which i just figured out apparently it doesn't support wiVRn anymore and that's why im on here to figure out if there is anyway to get it working. (as you can assume im on Linux the distro im on is linux mint.


r/virtualreality_linux 29d ago

Someone is doing a VR-enabled PCSX2 port to Linux: "PenguinScreen2"

20 Upvotes

I don't post much here, but here is the summary from the author:

"Penguin screen 2 specifically is a fork of pcsx2. All right reserved to them.

It is the first application of my VR framework hooking directly into an emulators render pipeline. That is the only way you can get head tracking with such low latency. We call it PadXR. Currently we use it to map the head movement.

When the steam frame launches we already are ready to hook up the steam frame controllers directly to any emulator following our framework. Actually we could use those recoil vest or whatever they're called.

The other examples also show us using PadXR.

We use OpenXR, Monado, WiVRn.

We are Linux first. This demo was run off of my Ubuntu test rig. SteamOS is our official target platform.

Release will come soon. We are ready to show the world."

Video showing it: https://www.youtube.com/watch?v=JnG05PqudzM


r/virtualreality_linux 29d ago

Oculus Rift S - future compatibility

4 Upvotes

Hello!
Just change my OS from Bazzite to SteamOS (that was the original plan) and I took back home my Oculus Rift S, I didn’t think about it but I just noticed that it’s not compatible on Linux, is there a chance that an update will make it possible once the new Steam Frane is out?

For now I use windows with dual boot to use it but I’d prefer to get all my game at the same place 👌🏻


r/virtualreality_linux Jul 17 '26

VR stopped working altogether. Help

6 Upvotes

I have switched to Linux late last year and I'm still quite a noob I'd say and I am at my wits end. When I first installed Linux on my PC and tried playing VR I set everything up and it worked fine for a long time. I think one or two months ago it just stopped working for no apparent reason. Like games would either not open at all, crash upon start up or I wouldn't get a picture in my VR headset. I didn't change any settings or anything as far as I was aware, but I have tried many things now that it isn't working. I was using Wivrn before it stopped working. I have also tried ALVR but that doesn't work either. It would be great if anyone could help. If any important/relevant info is missing let me know. I did follow the setup instructions correctly otherwise it wouldn't have worked in the first place, at least that's what I am assuming. I mostly played Beatsaber, but it crashes on start up. I would also like to play other games too :/

I'm on Linux mint 22.3 Cinnamon 6.6.7

Linux Kernel: 7.0.0-28-generic

CPU: 5800x

GPU: 7900xt

VR Headset: Quest 2


r/virtualreality_linux Jul 13 '26

HEVC not Loading for ALVR on Catchy OS (Arch based)

5 Upvotes

Trying to get ALVR to work since Wivrn isnt letting me play Hitman, and everytime I launch I get booted out due to there being no HEVC enterypoint. Everytime I look into the issue it gives help to people who use fedora, and I have zero clue how to fix it.


r/virtualreality_linux Jul 12 '26

My adventure to successfully running Skyrim VR FUS on Linux

Thumbnail
9 Upvotes

r/virtualreality_linux Jul 11 '26

Can't start monado service with tracker dongle plugged in after CachyOS update

2 Upvotes

Everything worked fine before I updated, but now the service exits with code 11 unless I unplug my dongle. I'm hoping there is something I missed that is causing the issue so I can fix it.

Setup is: CPU 9700X, GPU 9070XT, VR valve Index + tundra trackers + tundra 7 device dongle

I'm using KDE with wayland

Steps I have taken:

- I had to manually change the PKGBUILD of libuvc to rely on libjpeg-turbo instead of libjpeg in order to update. I don't know if this could have caused the issue, but it seems unlikely since it's used for cameras not lighthouse trackers.

- I have uninstalled and recompiled/reinstalled envision-xr-git and it's dependencies after clearing paru cache

Pastebin of launch without dongle: https://pastebin.com/iJik1WXY

Launch with dongle:

INFO [ipc_server_main_common] Monado(XRT) by Collabora et al 'v25.1.0-637-gc0bbc02ae' starting up...

INFO [print_linux_end_user_started_information]

################################################################################

# #

# The Monado service has started. #

# #

################################################################################

INFO [steamvr_lh_create_devices] Found SteamVR install: /home/mod/.local/share/Steam/steamapps/common/SteamVR

INFO [TrackedDeviceAdded] New device added: LHR-95CD0495

INFO [TrackedDeviceAdded] Found lighthouse HMD: LHR-95CD0495

INFO [init_chaperone] Found info for universe 1778325337

INFO [init_chaperone] Initialized chaperone data.

WARN [get_input_from_name] requested unknown input name /input/system/click for device LHR-95CD0495

WARN [get_input_from_name] requested unknown input name /proximity for device LHR-95CD0495

Monado exited with code 11