Changelog
V5.0.0 (V5.0.0) - 2026-07-18T00:31:19Z
VRto3D — Direct Mode Release
The big one: VRto3D now renders and presents stereo 3D natively/in direct mode, instead of relying on ReShade + external tools. This unlocks a full menu of output formats, an in-3D settings UI, auto-depth, proper screenshots, and native Linux support.
🎬 Native 3D output modes
All modes are produced directly by the driver (no ReShade required):
- Side-by-Side and Top-and-Bottom
- Row Interlaced / Column Interlaced
- Checkerboard
- All Anaglyph flavors (Red/Cyan, Green/Magenta, Blue/Amber, + Dubois/deghosted/half-color variants)
- Dual Display / Dual Display Flip — for dual-projector or dual-monitor setups
- Frame-Packed modes — switches the display into a frame-packed HDMI mode
- LeiaSR — autostereoscopic weaving with tracking built in (Midlife Crisis / Eff’s tracking incorporated — no separate app needed)
- NvidiaDX9 — 3D Vision output, rebuilt on top of the new NV3D-Lib
- WibbleWobble — frame-sequential output (installer fetches the required WibbleWobble beta automatically)
- VirtualDesktop mode (replaces the old
vd_fsbs_hack)
- Mono mode
🐧 Linux support (new)
- Full Linux port with Wayland and X11 presenters and a Vulkan rendering path
- evdev-based input and OSD on Linux
- Frame-packed modeline wiring on X11; WibbleWobble streaming to
wwserver
- Linux install script + CI build workflow
- Not extensively tested
🖥️ On-Screen Display (OSD)
- ImGUI-based in-headset menu to edit every VRto3D setting — no more hand-editing config files (Ctrl+Home or Start + D-Pad Down)
- Gamepad navigation for the OSD
- Download the latest game profiles directly from the OSD
- Display-correction shader: a final-pass color correction applied to the composited image — per-channel Lift / Gamma / Gain plus an adjustable contrast curve — to tame ghosting/crosstalk and match brightness on displays that need it
- Buttons to take a screenshot, open the profile/screenshot folders, and reset to factory defaults
- Stereo cursor: optional per-eye software cursor drawn at adjustable depth and size, plus hide-cursor and lock/confine-cursor options — all saved per profile
- Auto Exit SteamVR: optionally shut SteamVR down automatically when the game closes
🔎 Auto-Depth
- Auto-Depth feature that works in any game (behaves like auto-convergence, depth-buffer driven)
- Comfort-target and smoothing controls, plus optional sample logging for tuning
🎯 Head tracking
- LeiaSR built-in head tracking — sensitivity, deadzone, per-axis limits, One-Euro filter smoothing, and the track mode (Yaw/Pitch up to Full 6DOF) are all tunable, so no separate tracking app is required
- OpenTrack tuning — position deadzone, zoom smoothing, and max-zoom controls for XInput/OpenTrack head tracking; you can also disable the built-in SR tracking to feed the OpenTrack port from an external source (OpenTrack, VertoXR, …)
📸 Screenshots
- Captures a normal and a cross-view image each time
- Trigger from the OSD (Misc → Take Screenshot) or the Ctrl+F12 hotkey
- Fixed black/blank screenshots
⌨️ Hotkeys & profiles
- Reworked user hotkeys; “Toggle” mode now supports multiple presets
- Start + D-Pad Up now mirrors the Ctrl + F8 focus hotkey
- Hotkey changes apply live without a restart
- All shipped game profiles migrated to portable key names (cross-platform)
📦 Installer
- New Windows installer (Inno Setup): picks release / pre-release / local build, detects SteamVR, optional cleanup of legacy ReShade and third-party drivers, optional WibbleWobble + LeiaSR setup
🛠️ Fixes & polish
- Overhauled focus / always-on-top handling (unified
ComputeWantOnTop focus policy; fixes overlay stuck-on-top after game exit; consistent auto-focus)
- Numerous DX9 stability, color, and freeze fixes
- Fixed screen tearing, multi-layer sizing, UEVR rendering/stutter, RealVR reconnect, recenter reliability, DPI-scaling bug
- sRGB present chain fixes for correct (non-dark) output
What’s Changed
- v5.0.0 - Move to Direct Presentation with Native 3D Output Modes by @oneup03 in https://github.com/oneup03/VRto3D/pull/26
Full Changelog: https://github.com/oneup03/VRto3D/compare/V4.1.0…V5.0.0
V4.1.0 (V4.1.0) - 2026-04-24T01:00:10Z
- Fix display_index initialization issues
- Rewrite pose tracking for OpenTrack 6DoF
- Integrate UE3D, including auto_focus - thanks Midlife Crisis!
- 6DoF tracking on SR Displays via SR-OpenTrack-Bridge - thanks Midlife Crisis & Eff!
- 6DoF tracking on AR Glasses via VertoXR - thanks Rohit Sangwan!
- Moved logging to
Steam/logs/vrto3d.txt
- Add Accela-Hamilton filter for pose updates
- New
Steam\config\vrto3d\default_config.json settings:
multi_display - used to extend the SbS 3D window across multiple displays
use_track_filter - enable/disable track filtering using Accela-Hamilton
trk_flt_rot_sens - Rotation smoothing threshold for track filter (lower = more smoothing)
trk_flt_pos_sens - Position smoothing threshold for track filter (lower = more smoothing)
trk_flt_rot_dz - Rotation deadzone used by track filter
trk_flt_pos_dz - Position deadzone used by track filter
trk_flt_zoom_smooth - Additional rotation smoothing when moving toward the display
trk_flt_max_zoom - Max Z distance used for scaling zoom smoothing
- New Hotkeys when
use_track_filter is true:
Ctrl - / Ctrl + and Ctrl [ / Ctrl ] adjust track filter rotation/translation sensitivity, and also hold Shift to adjust track filter rotation/translation deadzones
Ctrl + ; / Ctrl + ' adjust track filter zoom smoothing, and also hold Shift to adjust track filter max zoom range
- Save
hmd_height, hmd_x, hmd_y, hmd_yaw, and all 6 Track Filter parameters using Ctrl + F9
Full Changelog: https://github.com/oneup03/VRto3D/compare/V4.0.2…V4.1.0
V4.0.2 (V4.0.2) - 2026-02-27T17:15:07Z
- VRto3D PROFILES LOCATION HAS MOVED to
Steam/config/vrto3d/ due to Windows restrictions
- VertoXR integration for 3DoF tracking on AR glasses - Thanks Rohit Sangwan!
- WibbleWobbleVR now has all the essential VRto3D features integrated and should be used instead of VRto3D + WibbleWobbleReshade. 3DVision hardware is natively supported on any driver
- Settings changes:
display_index added to specify a display number that matches Windows’ display setting numbering or 0 to use the primary. This will automatically move VRto3D to any display and set the window size to match that desktop resolution. If you set this to a secondary display and your primary display is lower resolution than the 3D display, you may need to select the Headset Window and then press Win + Shift + Left followed by Win + Shift + Right to fix the 3D display
window_height and window_width were removed, as display_index replaced the need for them
launch_script added to run a command on startup. This is useful for starting head tracking services like VertoXR when set to "start vertoxr://steamvr" for example
user_fov added to user presets. Allows you to jump to another FoV when the corresponding key is activated
- Moved reusable functions to separate VRto3DLib for use with WibbleWobble
- Removed WibbleWobbleReshade from docs and code workarounds
- Updated game profiles for: Final Fantasy 7 Rebirth, Assassin’s Creed Valhalla, Assassin’s Creed Odyssey, Starfield
Full Changelog: https://github.com/oneup03/VRto3D/compare/V3.4.1…V4.0.2
V3.4.1 (V3.4.1) - 2026-01-02T09:19:39Z
- fix Open Track lag
- only recenter once per focus
Full Changelog: https://github.com/oneup03/VRto3D/compare/V3.4.0…V3.4.1
V3.4.0 (V3.4.0) - 2025-11-07T23:13:39Z
- Auto-Recenter on VRto3D focus (fixes NoMoreFlat mods, but WibbleWobble users may still need to manually recenter from SteamVR Status window)
- Settings changes:
async_enable is now a per-game setting (default will remain disabled, but you can manually override it now)
aspect_ratio is now an optional per-game setting (mainly for VR users)
- Potential stutter fixes
- Maybe made screenshot trigger more consistent
- Added wiki instructions for Vive Tracker, Lighthouse, and motion controller usage
- Updated WibbleWobble instructions and added some pre-configured settings to download
- Updated game profiles for: Star Wars Outlaws, Cyberpunk 2077, Ghost of Tsushima, Elden Ring, Uncharted, Last of Us 1, Spider-Man, Dead Island 2, Tekken 8, Indiana Jones, Assetto Corsa Competizone, Automobilista 2, Aircar, Arca’s Path, Final Fantasy 7 Rebirth, Doom Dark Ages, Sonic Racing CrossWorlds, Chronos, Edge of Nowhere, Assassin’s Creed Odyssey
Full Changelog: https://github.com/oneup03/VRto3D/compare/V3.3.0…V3.4.0
V3.3.0 (V3.3.0) - 2025-07-29T23:03:37Z
- Frame Packed 3D Support: use
framepack_offset and the correct window_width and window_height for 720p or 1080p as documented in the Readme (1080p60Hz works on some displays)
- Virtual Desktop Full-SbS Support: set
window_width and window_height to 2x your render resolution and set vd_fsbs_hack to true
- Updated foregrounding/focusing feature:
Ctrl + F8 and auto_focus now work with WibbleWobbleReshade - start WibbleWobble before starting a VR game/mod
- Focusing now puts the 3D window on top AND focuses the game window for controls/audio - no need to Alt+Tab anymore! (works most of the time)
- The
auto_focus global setting is now true by default and triggers 8 seconds after a game with a VRto3D profile connects to SteamVR
- Focusing now better handles events where the VR signal drops/reconnects/disconnects. VRto3D attempts to refocus 15 seconds after losing connection. Focus is immediately disabled when a VR game exits
Ctrl + F8 can still be used to enable/disable focus while a game is running
- Hotkey updates:
- Take a Screenshot with
Ctrl + F12 (unfortunately this doesn’t always work correctly)
- Removed HMD height toggle that was on
Ctrl + F9
- HMD position and yaw adjustments (useful to align with lighthouse tracked devices):
Ctrl + Home/End for Y
Ctrl + Delete/PageDown for X
Ctrl + Insert/PageUp for Yaw
Ctrl + Shift + PageUp/PageDown for Height
- Save
hmd_height, hmd_x, hmd_y, hmd_yaw using Ctrl + F9
- Added On Screen Display for: HMD position and yaw adjustments
- Removed refresh rate hack that was an old attempt to fix Async Reprojection. This may improve frame timing
- Updated profile blacklist - if you run into a profile getting loaded for an app that shouldn’t, please report it
- The valid named configuration options for
Documents\My Games\vrto3d\default_config.json are now enforced
- Updated game profiles for: Resident Evil 7, Stellar Blade (demo, but full may work), Oblivion Remastered, Immortals of Aveum, Ghosts ‘n Goblins Resurrection, Dragon’s Dogma 2, Palworld, Robocop, Ninja Gaiden 2 Black, Hogwarts Legacy, Death Stranding, Horizon Zero Dawn, Elden Ring, Cyberpunk 2077, Spider-Man
Full Changelog: https://github.com/oneup03/VRto3D/compare/V3.2.0…V3.3.0
V3.2.0 (V3.2.0) - 2025-05-26T19:48:42Z
- Added On Screen Display for: Profile load/save notifications, Depth & Convergence, HMD height, Controller Sensitivity & Pitch Radius, User Save binding updates
- This isn’t perfect as the text flashes on screen and it doesn’t show up when using WibbleWobble
- Removed
depth_gauge setting, but the gauge will show up if you set the dash_enable setting for SteamVR Dashboard
- Updated Asynchronous Reprojection handling:
- Added
async_enable global setting that can be turned on if it performs better on your system
- VRto3D now forces this setting for all VR games (no longer Steam-only)
- Updated foregrounding/focusing feature:
- Added
auto_focus global setting that will automatically bring the VRto3D Headset Window to the foreground when you launch a game that has a VRto3D profile. DO NOT use this with WibbleWobble
- VRto3D will now always release focus when a game exits
- Hotkey updates:
- Added Depth Sync hotkey
Ctrl + Shift + F3/F4 that updates the convergence as depth is adjusted (this is the same effect as 3DV depth). This won’t work in UEVR or RealVR without Restart/Reinitialize as it changes convergence
- Changed
Ctrl + F10 hotkey to reload the current game’s VRto3D profile
- Moved default config reload hotkey to
Ctrl + Shift + F10
- Added VRto3D profiles for many native VR games including: Battle Zone, Doom VFR, Humanity, Lucky’s Tale VR, Microsoft Flight Simulator, Psychonauts RoR, Sayonara Umihara Kawase, Sky Squadron, Star Wars Squadrons, Subnautica, Tetris Effect Connected, Thumper, Zone of the Enders 2. All games and instructions available on 3DJ’s Database
- Additional UEVR profiles that may not get posted on the blog are available here. Some recent additions: Eternal Strands, Kiborg, Robocop, Still Wakes the Deep. Follow the UEVR Quickstart
Full Changelog: https://github.com/oneup03/VRto3D/compare/V3.1.0…V3.2.0
V3.1.0 (V3.1.0) - 2025-03-17T18:30:15Z
- Allow mouse passthrough, making it possible to play games using a mouse on a single display!
- Make sure the game window is in a good position to receive mouse input before making VRto3D on top using
Ctrl+F8
- If the game doesn’t properly capture the mouse, you may end up losing control of the game. AutoCursorLock might help
- Removed
debug_enable flag as it will now always be set as all 3D display modes work with it now and it only causes user confusion
- Legacy 3DVision plugin is now incompatible, but users should be moving to use WibbleWobble instead
- Force Async Reprojection to be disabled for Steam Games, making them run a lot smoother at lower framerates
Full Changelog: https://github.com/oneup03/VRto3D/compare/V3.0.1…V3.1.0
V3.0.1 (V3.0.1) - 2025-02-25T03:23:18Z
- Significantly better Frame Sequential (3DVision) support thanks to PhartGames’ WibbleWobble software! Runs much more stably and can now run independent of Nvidia driver versions
- Fixed Convergence/Zero Parallax calculation to use the proper Off-Axis calculation instead of the incorrect Toe-In calculation that was used previously. All released profiles have been updated to use proper convergence. If you created any personal profiles, you will need to update them.
4.0 is the new default convergence and a good neutral value to start from
- Added Auto Depth Listener so that mods can command a different depth value dynamically. Use
Ctrl + F11 to toggle it off/on (on is default on startup)
- Added 3DoF OpenTrack UDP support. Set
use_open_track to true and change open_track_port if you need to in default_config.json to use it. Can be used in combination with Pitch/Yaw emulation similar to gyro aim
- Added option to use SteamVR dashboard. Set
dash_enable to true in default_config.json to use it
- FoV settings now also store in game profiles, so you can have different settings per-game
- Beep pitch lowered to be less annoying
- All UEVR/RealVR configuration files and instructions updated for DLSS4
Full Changelog: https://github.com/oneup03/VRto3D/compare/V2.0.0…V3.0.1
V2.0.0 (V2.0.0) - 2024-10-05T20:44:54Z
This release is not backwards compatible with previous releases!
Delete your Steam\steamapps\common\SteamVR\drivers\vrto3d folder and Steam\config\steamvr.vrsettings before installing this one!
- Main configuration moved to
Documents\My Games\vrto3d\default_config.json
default_config.json is generated on first startup of SteamVR after VRto3D is installed
- Settings with a
+ are stored/loaded to/from profiles and can be reloaded from default_config.json using Ctrl + F10
- Rewrote Profiles so that they are more easily modified and shareable
- depth & convergence, user hotkeys, and pitch/yaw emulation settings are stored
- Make changes in
default_config.json as needed for a game ( and then reload with Ctrl + F10 if SteamVR is running)
- Start the game
- Make additional adjustments in-game using hotkeys
- Press
Ctrl+F7 to save the profile
- Profile will automatically load each time you launch the game
- Profiles are stored in
Documents\My Games\vrto3d\
- Official RealVR support as of RealVR V14.1.0. See Instructions
- Added
ctrl_toggle_type so that pitch/yaw control can be either "toggle" or "hold" off
num_user_settings and numbering your user presets are deprecated and no longer needed
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.7.0…V2.0.0
V1.7.0 (V1.7.0) - 2024-09-23T17:42:31Z
- Rewrote pitch/yaw emulation handling. Significantly improved judder
- Added hotkeys to adjust
ctrl_sensitivity using Ctrl - and Ctrl +
- Added hotkeys to adjust
pitch_radius using Ctrl [ and Ctrl ]
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.6.0…V1.7.0
V1.6.0 (V1.6.0) - 2024-09-21T17:09:41Z
OUTDATED PROFILE INFO. See V2.0.0
- Added per-game configurations!
- depth & convergence, user hotkeys, and pitch/yaw emulation settings are stored
- Make changes in
default.vrsettings as needed for the game (need to restart SteamVR after changing)
- Load the game
- Make additional adjustments in-game using hotkeys
- Press
Ctrl+F7 to save the profile
- Profile will automatically load each time you launch the game
- Profiles are stored in
Steam\config\steamvr.vrsettings
- Added a new hotkey to reload the startup settings using
Ctrl + F10
- Can load these defaults then press
Ctrl+F7 to save over a game’s profile if needed
- Slightly Improve judder of pitch/yaw emulation
- Cleanup and add some keyboard/mouse hotkeys
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.5.0…V1.6.0
V1.5.0 (V1.5.0) - 2024-09-14T16:52:17Z
- Make Borderless Windowed the default again as OpenVR compatibility seems to have improved
- Fix stutter when using pitch/yaw emulation in single display mode
- Fix Yaw position wraparound error
- Make default presets all use same convergence setting. Changing convergence in-game can cause black bars on the side of the screen, so you should find a convergence you like, save it for all your presets, and restart the game.
- Improve performance when switching to another preset
- Add XInput Guide button as a hotkey (cannot be used in combinations)
- Add Combination hotkeys for XInput. They can be defined like this:
"XINPUT_GAMEPAD_A+XINPUT_GAMEPAD_B"
- Update SR Display instructions for 1.0 release of srReShade
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.4.1…V1.5.0
V1.4.1 (V1.4.1) - 2024-08-31T20:46:23Z
- Force SteamVR to use the render resolution defined in VRto3D’s settings
- Added instructions for Leia/Acer SR/SpatialLabs displays
- Cleanup readme instructions to be more organized
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.4.0…V1.4.1
V1.4.0 (V1.4.0) - 2024-07-24T05:23:37Z
- Re-added debug display mode as an optional parameter
debug_enable in default.vrsettings. This will make more games work in Single-Display mode, but may cause framerate issues and is incompatible with some OpenVR mods (use OpenXR instead) and incompatible with 3DVision
- UEVR GUI elements will display properly and Luke Ross mods will work for example
- SteamVR Status window will now let you know when your Headset window isn’t fullscreen and let you toggle it on. This is useful for Multi-Display mode as when the Headset window isn’t fullscreen, the game may not render or render incorrectly.
- Removed
hdr_enable setting as it did nothing and SteamVR doesn’t fully support HDR currently
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.3.0…V1.4.0
(V1.3.0) - 2024-07-20T13:06:28Z
- Added support for Single Display mode by locking the headset window in the foreground using
Ctrl+F8 see README for details. Doesn’t work with 3DVision
- Improved 3DVision support
- Full resolution per-eye can now be achieved by using DSR 4x without a performance hit - see README
- Stability of 3D activation greatly improved
- Compatibility with VR mods improved - you should now be able to run any game+mod that doesn’t require newer drivers
- The need to use SpecialK is now gone (remove SteamVR launch parameters if you have any)
- If you run into issues, do a clean install and also delete your
Steam\steamapps\common\SteamVR folder
- Added
render_width and render_height to set the resolution per-eye
half_enable is now deprecated and shouldn’t be used
- Fixed compatibility with OpenVR mods - should now be able to run UEVR and REFramework in OpenVR mode
- Fixed framerate/refresh rate mismatch
- Added configurable
pose_reset_key that is useful when using pitch/yaw emulation
- Added
pitch_radius setting that can make the camera move up and over/down and under while it is pitching up/down. This is useful for 3rd person games and particularly Luke Ross mods
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.2.0…V1.3.0
V1.2.0 (V1.2.0) - 2024-07-13T04:35:12Z
- Added Instructions for 3DVision, Interlaced, Checkerboard, Anaglyph rendering
- Added configurable toggle key to turn on/off pitch & yaw emulation
- Added toggle for HMD height to Ctrl + F9 for games that force a floor calibration
- Fixed HMD proximity sensor causing some VR games to pause
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.1.0…V1.2.0
V1.1.0 (V1.1.0) - 2024-06-29T01:14:47Z
- Added User-bindable hotkeys for Depth+Convergence
- Added HMD Pitch and Yaw emulation that are useful for REALVR and VR games
- Added ability to save Depth+Convergence using Ctrl+F7
- Added reverse eye rendering
Full Changelog: https://github.com/oneup03/VRto3D/compare/V1.0.0…V1.1.0
Initial Release V1.0.0 (V1.0.0) - 2024-06-11T05:15:47Z
Initial version with SbS, TaB output support and depth/convergence hotkeys
vrto3d.zip
Full Changelog: https://github.com/oneup03/VRto3D/commits/V1.0.0