Source: Steam Community (opens in a new tab)
vrOS v0.5.1 Patch Notes
Highlights
- Major desktop-only memory leak reduction. The worst steady private-byte bleed we were tracking in the desktop app was around 6 MB/min in long samples, with one representative run climbing from about 486 MB to 747 MB of private bytes over roughly 41 minutes. This patch removes that constant desktop bleed; smaller intermittent leaks are still under investigation.
- FPS plumbing has been cleaned up and scoped back to where it belongs: VR. The desktop app no longer carries the desktop FPS page/perf path, while the VR FPS tools now poll less aggressively, reuse canvases, and surface dropped-frame stats more clearly.
- Desktop startup and shutdown flow is smoother again. Desktop start behavior is behaving properly again, and the shutdown dialog includes the desktop auto-start checkmark so startup preference is easier to manage when closing the app.
Bug Fixes
- Fixed the main desktop memory leak by replacing hot Rust to JS `evaluate_script` churn with direct JSCore callback and event delivery, and by removing desktop-only FPS telemetry work from the desktop child.
- Cleared Ultralight texture and video caches more aggressively during shutdown and stream churn to stop another memory-retention path.
- Fixed Twitch Chat and Ads Manager in both the desktop app and VR child after the desktop and backend process split.
- Fixed VR overlays occasionally respawning at world origin after restart.
- Hardened child pipe decoding and OBS config handling so malformed child messages are isolated instead of destabilizing the child connection.
Improvements
- FPS stats are now treated as a VR feature: the desktop app no longer shows the FPS page, and the OVR FPS settings view no longer duplicates the full graphs.
- FPS views now reuse canvas backing stores, stop polling while inactive, and expose dropped-frame stats more cleanly.
- Ultralight rendering now skips unnecessary render and present work when a view did not dirty itself.
- VU meter audio updates now use snapshot polling instead of a constant push stream, reducing hot-path bridge traffic.
- STTT transcripts, translation history, live chat, and capture-card buffers are now bounded so old entries do not accumulate indefinitely.
Other Changes
- Added repo-local Windows memory profiling helpers and documentation for WPR, VMMap, and UMDH so the remaining leaks can be investigated faster.