Repository navigation
Immutable
release. Only release title and notes can be modified.
VectorXR 0.19.3 - Star Citizen Stability, Performance Headroom, and a System Tray
A stability release with a few new tools. Star Citizen's head wobble with Frame Generation is fixed on Virtual Desktop and Pimax, and an unplugged controller no longer stalls games every two seconds. Frame Generation holds steadier over long sessions, works with OpenComposite games that leave frames open, and no longer uses images that failed to allocate when video memory runs low. The On-Screen Display gains a PERFORMANCE row showing CPU and GPU headroom and video memory, and the app gains a system tray icon. Settings carry over from 0.19.2 unchanged.
Star Citizen
- The head wobble is fixed. With Frame Generation enabled for Star Citizen, the world swam against head movement, even with generation toggled off in-game. The game draws each frame after handing its image over, and VectorXR copied the image at the handover, so the headset was shown an older frame with the current head position. It was clearest on Virtual Desktop, where the frame was three frames old, and fainter on Pimax, where it was one. VectorXR now takes the image when the frame is submitted, as a runtime does. Frame Generation's frames come from the same images, so they are fixed too.
Input devices
- An unplugged controller no longer stalls the game every two seconds. If any VectorXR binding pointed at a controller that wasn't connected, VectorXR tried to reach it every two seconds for the whole session, and each try stalled the game's frame. That showed as a regular hitch, and with Frame Generation as extra latency. In a game, VectorXR now looks for a missing controller only when Windows reports one plugged in and when VR starts. Outside a VR session it still retries regularly.
- Rescan inputs (Settings > General > Input Devices) makes running games look again, for a controller connected mid-session that VectorXR didn't detect.
Frame Generation
- Steadier over long sessions. When video memory was close to its limit, Frame Generation could switch between keeping three and five real frames each time it re-engaged, rebuilding all its images each time. It now keeps its choice until memory really runs short, and the log says when it changes.
- Recovers from late pauses. Frame Generation retries by itself after a pause, but only three times per session, so a fourth pause late in a long flight stayed paused until you toggled it. The retries now come back after five minutes without a pause.
- OpenComposite games no longer pause Frame Generation. OpenVR games running through OpenComposite (Automobilista 2, for example) can leave a frame open and begin another. One such frame left Frame Generation a frame behind for the rest of the session, and it soon paused. It now drops those frames, as the runtime does.
- Fewer failures under GPU pressure. A failed image allocation (low video memory) could leave Frame Generation using images that didn't exist; that is fixed. Changing the motion quality while NVIDIA's optical flow hardware is busy now waits for it, and a watchdog releases a match that never finishes.
- Layer metadata is kept. Colour scale and bias, and alpha-blend settings a game attaches to its layers, now carry through to generated frames. A game that attaches metadata Frame Generation can't carry over gets Frame Generation off for that session, with the reason on the OSD and in the log, instead of frames that lose it.
- Logs and summaries show more for support: the real frames kept, how long Dynamic waits after standing down, retries used, the game's view sizes when they change, and its full depth description.
On-Screen Display
- New PERFORMANCE row (on by default in the expanded layout, optional in compact): how much of the frame budget the game's CPU time and the GPU leave free (headroom), and which one limits you when that is clear, plus the game's video memory use against its budget. It samples only while the row is shown.
- The OSD shows in games that restart VR at launch. OpenComposite games (seen with Automobilista 2) start their VR session twice at launch, and on Virtual Desktop the OSD then stayed off, even when its binding showed it, until a setting was saved.
App
- System tray icon. The tray menu has the health status, the VectorXR switch, the log level and Export Debug. Changes made there are saved at once. With the tray On (the default), closing the window keeps the app in the tray, and starting VectorXR again brings the window back. With it Off, closing the window quits. The app and tray only manage your settings: VectorXR works in your games with both closed, as long as VectorXR Enabled is on.
- Export Debug is also under Settings > Logging.
- Settings saved by 0.19.3 stay readable by 0.19.0-0.19.2 layers, so you can keep an older copy installed.
Fixes from GitHub issues
- DCS no longer crashes with OpenXR Toolkit and Quadviews (#108). OpenXR Toolkit supports two views only, and VectorXR usually sits below it, where Toolkit would get DCS's four quad views. In that order VectorXR now keeps Quadviews off, so DCS runs stereo. The log says why, and the OpenXR Layers page shows a warning. Turn OpenXR Toolkit off for DCS, or set it to bypass DCS, to use Quadviews. VectorXR directly above Toolkit no longer crashes at startup either.
- Tools can read Frame Generation's live rates (#103). While Frame Generation runs, the runtime status file has its mode, frame rate, multiplier, refresh rate and real, output and distinct frame rates as numbers, for tools such as MSFS_AutoFPS. The fixed rates now read "up to 1/2 the refresh rate", and the guide explains what happens below that rate.
- Upside-down images from OpenComposite (#107). When an OpenComposite build flips an image with a negative height, which OpenXR does not allow, Frame Generation pauses with a message naming OpenComposite's invertUsingShaders option. Before, it failed with no explanation.
Known issues
- In helicopters, Interpolate can show artifacts around the rotors and in the sky behind them.
- On Varjo headsets with Quadviews, focus sharpening is off in DCS while Frame Generation runs.
- Frame Generation does not use Star Citizen's depth yet: the game fills only one eye's depth image.