Play ordinary 3D games in a VR headset with real stereo 3D: each eye gets its own rendered view. The games don't need to know about it: no mods, no VR support needed. Linux, Vulkan, OpenGL (via Zink) and Proton/DXVK games.
One graphics card is enough, any vendor (AMD, NVIDIA, Intel via Mesa). The eyes are then rendered on alternate frames, so each eye gets half the game's frame rate. A second, identical GPU is optional: it renders the other eye in parallel, so each eye gets the full frame rate.
Status: early, but games run in the headset (game list). Headset: Quest 3/3S via WiVRn tested; any OpenXR runtime should work.
Video: The Witcher 3, 5 s side-by-side (3840x1080, made with vrdual record; play it in a VR video player as SBS).
INSTALL.md: packages, then
git clone --recursive https://github.com/adderek/vrdual
cd vrdual
./vrdual install # builds, prints the launch option: .../vrdual/run %command%
./vrdual xr # starts WiVRn, game into the headsetOptional: ./vrdual view shows both eyes side by side on the monitor.
Releases: vrdual-<version>.tar.gz from
Releases (0.x are pre-releases;
GitHub's own "Source code" archives lack the Vulkan headers submodule and do
not build).
With one GPU the game window on the monitor flickers (it shows left and right frames alternately); the headset is fine.
./_ # menu
./vrdual demo # test scene in stereo (window, side by side)
./vrdual calib # IPD setup: arrows = IPD, W = save
./vrdual selftest # does everything work? (exit 0 = yes)
./vrdual gpus # what GPUs vrdual seesSettings: ~/.config/vrdual/vrdual.conf (./vrdual config init).
Both cards must be the same model and driver. Note: in most PCs the second
card sits behind the chipset with a slower link (e.g. PCIe Gen3 x4 instead of
Gen4 x16); check with ./vrdual gpus.
Hardware:
- 1x NVIDIA RTX 5070 Ti (single GPU)
- 2x AMD RX 7900 XTX
Games — per-game status: game list (one / two GPUs, search, other VR routes); settings and tuning: docs/GAMES.md. Works in the headset: Zen Bound 2, Alice: Madness Returns, Portal 2, LEGO Harry Potter 1-4, Tomb Raider III, Psychonauts, Mirror's Edge, Hospital Tycoon. Broken: Portal (Zink bug), Tomb Raider I (DOSBox, 2D).
vrdual is developed in spare time. If it lets you play something in VR, consider supporting it: GitHub Sponsors, Liberapay or Ko-fi. Donations are a gift: no perks in return, everything is published for everyone.
When reporting a problem, include the output of ./vrdual version (it also
shows whether Steam still loads an older layer) and the game's log.
./vrdual report --open opens a game report prefilled with the last game you
played and your system; ./vrdual request "Game" --open asks for a game in
Discussions.
vrdual sends nothing itself: you see the form and submit it.
Hardware helps too: the only headset here is a Meta Quest 3S, so other headsets (and their OpenXR runtimes) are untested. If you can lend or donate one, please open an issue.
Apache License 2.0. Use, modify and redistribute freely, also commercially; copies and derivative works must keep the copyright and the NOTICE file, which names this project as the origin.
More: docs/ARCHITECTURE.md · plan: TODO.md · for AI agents: AGENTS.md


















