OFXR Bridge is an experimental OpenXR API layer that inserts an optical-flow generated frame between two rendered frames.
Current pre-release: v0.2.1 (internal build V116). See the release notes.
Warning
This is a pre-release. It may not work with your game, VR mod, GPU or OpenXR runtime. It may produce visual artifacts, fail to activate, freeze the game or cause a crash. Use it at your own risk.
Important
The NVIDIA backend requires an NVIDIA Turing-generation GPU or newer with Optical Flow hardware support. TU117-based cards, including the GTX 1650, are not supported. RTX 20/30/40-series cards and GTX 1660-family cards are supported with a compatible NVIDIA driver. Older Pascal cards such as the GTX 10 series are not supported. FidelityFX remains available on other GPUs.
Tip
A typical real-world result is a 30–50% frame-rate increase when using FidelityFX, or NVIDIA Medium with NVIDIA OFA at 50% resolution. Actual results vary by game, GPU, resolution and base frame rate.
The current build provides:
- AMD FidelityFX Optical Flow (default)
- NVIDIA Optical Flow with Fast (test), Medium and Slow presets
- 100%, 75% and 50% NVIDIA optical-flow calculation scales
- manual persistent OpenXR Arm/Disarm from a tray icon
- an optional transparent in-headset FPS number with four corner positions; green means recent synthetic submissions and red means inactive generation
- an optional bridge flight recorder for diagnostics
OFXR Bridge uses color-only optical flow. It does not receive game motion vectors or depth, so artifacts around moving objects, disocclusions and head rotation are still possible.
- Download the latest pre-release archive from GitHub Releases.
- Extract the complete archive to a writable folder.
- Run
OFXRBridgeTray.exe. - Right-click the tray icon and select the optical-flow backend and options.
- Select Arm bridge until manual disarm.
- Start the game normally. For injectors such as UEVR, arm OFXR Bridge before starting the game and leave it armed while the VR mod is injected.
- Select Disarm bridge or close the tray application when finished.
For supported NVIDIA GPUs, the suggested starting configuration is NVIDIA Medium with 50% NVIDIA OFA resolution. It should provide a decent performance boost with minimal visual-quality loss. Running NVIDIA OFA at 100% resolution is usually too expensive and often produces only a small or negligible net performance gain, so it is not recommended for normal use.
Note
Some FPS counters, including xrFPS in certain setups, measure the original application frames upstream of OFXR. While frame generation is active, they may therefore display roughly half the frames actually being submitted to the headset. This does not necessarily mean that OFXR is inactive.
The bridge's own optional FPS number counts accepted nonempty OpenXR submissions. It is a diagnostic indicator rather than proof of physical headset scanout; see FPS overlay details.
When both the Bridge flight recorder and an FPS overlay position are enabled, OFXR draws a small purple rectangle into synthetic frames near the FPS counter. Its purpose is to verify whether generated frames are actually reaching the headset: if the rectangle is visible there, the synthetic output has reached the displayed presentation path. The green FPS number alone only confirms accepted submissions. Disable the flight recorder after testing to remove the marker.
The tray and bridge require the Microsoft Visual C++ Redistributable x64. OFXR Bridge does not replace your active OpenXR runtime.
FidelityFX is the most performing one but will produce artifacts during headset rotation in dark areas, this is known and cannot be avoided.
When you select Arm, the tray copies the versioned OFXR layer and its
configuration into %LOCALAPPDATA%\OFXR Bridge, creates an absolute-path
OpenXR implicit-layer manifest and registers that manifest for the current
Windows user. It does not inject a DLL into the game, replace game files or
replace the active OpenXR runtime.
Selecting Disarm removes the exact OpenXR registration. Closing the tray
also disarms it, with a watchdog providing cleanup if the tray exits
unexpectedly. After disarming and closing the application, no active OFXR hook
or OpenXR registration remains on the system. Versioned cache files, settings
and diagnostic logs may remain under %LOCALAPPDATA%\OFXR Bridge, but they are
inert and may be deleted manually at any time.
Please report both working and non-working games, rendering problems, freezes and crashes in GitHub Issues or on the Flat2VR Modding Discord.
Reported results are collected in the OFXR Bridge Compatibility Chart.
Before reproducing a problem:
- Right-click the tray icon and enable Bridge flight recorder.
- Start the game and reproduce the problem once.
- Close the game, then select Open bridge logs from the tray.
- Attach the newest
ofxr-bridge-flight-*.logfile to the issue. - Make sure OFXR has worked on your system on at least another game before claiming that is not working for the game you are reporting
Please also include:
- game name and version
- VR mod or injector, if any
- headset and OpenXR runtime
- GPU and driver version
- Windows version/build and OFXR build number
- selected OFXR backend and options
- exact steps and the observed result
If no OFXR log was created, report that too: it usually means the layer was not loaded or the process stopped before the recorder could start. Game logs and a crash dump are also useful when available.
The recorder is independent from game and mod logging. It records OpenXR negotiation, resource eligibility, frame-generation stages, recovery events and potentially blocked call boundaries. It does not record video or replace a native crash dump.
See the Windows build instructions.
OFXR Bridge is licensed under LGPL-3.0-or-later. Third-party components retain their respective licenses.
If you find OFXR Bridge useful and want to support its development, you can support the project on Ko-fi.