Today we've updated SteamVR for all users with changes that have been cooking in SteamVR Beta for the last month. This includes major features like Motion Smoothing and updates to the controller rebinding UI, as well as a host of new features, bug fixes, tweaks, and improvements across SteamVR. With this update we’ve also changed our versioning system from build IDs to dot releases. This will make it simpler for our users (and us) to refer back to different versions of SteamVR as we continue to add features and improvements.
Update Highlights
Motion Smoothing
Today we are introducing a new feature in SteamVR called Motion Smoothing. This is the latest advancement to our asynchronous reprojection system that fills in missing frames when an application is falling behind. For more information, please see the post below, "Introducing SteamVR Motion Smoothing":
https://steamcommunity.com/games/250820/announcements/detail/1705071932992003492
Improved support for rebinding input
This update includes a few changes to improve support for input rebinding using SteamVR Input support:
- The binding UI is now available on the desktop under the Devices menu in SteamVR.
- The controller binding UI now enables users to rename actions for applications which do not yet have native SteamVR Input support.
- The controller binding UI also enables users to to create simulated actions for trigger pulls or trackpad clicks.
These new features are described in this guide to controller rebinding:
https://steamcommunity.com/games/250820/announcements/detail/1697188096865619876
Full Update Notes
SteamVR Home:
- Recent Apps / Friends / Public Lobbies panels can now have custom sizes (editable in Hammer)
- Turned community wall on by default.
- Fixed invitation disabled CSS.
- Fixed invitation messages not clearing on join.
- Reduce snap turn angle.
General:
- Added an Always-On motion smoothing option to the Applications tab. Choosing this option for a given application will force that application to half framerate (45 fps on a 90 Hz headset) with motion smoothing always on. This is useful for games that don’t deal well with variable framerate when changing between full and half framerate. Some games have shown issues with their physics simulations and movement algorithms that is noticeable to users. This is a per-application setting. No global setting is being made available to avoid users accidentally forcing on half framerate for all apps. You must opt-in for each application.
- Restarting SteamVR now clears out warning popups
- Base Station Power Management UI fixes.
- Fix Vive Reboot options from appearing for non Vive Headsets.
- Added automatic “safe mode” that kicks in if there is a crash. This mode avoids loading drivers that might have caused the crash.
- Removed unnecessary Linux and OSX binaries from installs for other platforms.
- Additional retry logic for Base Station 1.0 Power Management to deal with poor signal strength issues causing some Base Stations to turn off unexpectedly.
- Fixed issue with per-application settings not working when the application starts before SteamVR is running.
- Resolution sliders on the Video tab and Applications tab in settings will only update the resolution when the mouse button is released instead of continuously while dragging. This reduces render target allocation/deallocation thrashing for apps and the compositor.
- Save/restore last directory when saving a system report to disk
- Fixed haptics pulses being slightly lengthened when using the legacy haptics API
- Fixed controllers and trackers not blinking an LED when Identify Controller is selected
- Knuckles controllers report trackpad coordinates (0, 0) when the trackpad is not touched, to fix some content that relies on that assumption
- Removed the ability for scene applications (i.e. any non-overlay apps that draw a 3D scene to the headset) to set SteamVR settings. At least one application was using the API to modify a bunch of user settings at startup, including turning off users’ chaperone drawing and the home app.
- Fix issue where the Applications settings tab would refresh and change focus to SteamVR Home intermittently. The dropdown will now only auto-select third-party apps when they are initially launched, and SteamVR Home will no longer be auto-selected when an app exits.
- The Applications tab in the Settings window now automatically selects the current application when it launches
- Added Power Management support for Base Station 2.0.
- Fixed rare vrserver startup crash.
SteamVR Input:
- Added Controller Binding option to the devices menu to show the binding UI on the desktop.
- Added a progress indicator for long-press actions in any binding file. The only action that is bound this way by default is the power menu's long-press on the system button, but same UI will appear for any other long press binding.
- Fixed issue with dashboard coming up the first time the screenshot action is used after SteamVR starts.
- Fixed issue with Input system incorrectly reporting repeated touch and press events on Oculus Touch grip buttons
- Made the touch event for trigger buttons without a touch sensor more sensitive
- Fixed controller binding UI for Swedish users.
- Fixed issue with dpad modes not working on force-based trackpads (like the one on Knuckles.)
- Fixed issue with links from the Unity plugin not opening the UI to the correct application.
- Added Set Up Legacy Actions tab in the binding UI for games that don't use the new input system. This UI allows actions to be named, unused actions to be hidden, and certain types of actions to be simulated for games that have more complex input needs.
- Added simulated action for trigger pulls. This allows binding digital inputs to trigger pulls for games that perform their own threshold check in the game. (Beat Saber is an example of such a game.)
- Added simulated action for trackpad clicks. This allows binding digital inputs to a trackpad click on a specific place on the trackpad for games that make more complex use of trackpads. (Moss is an example of such a game.)
- Fixed several cases of black screens instead of the binding UI.
- Fixed a case where an action manifest with mismatched case for the same action set would treat it as two different action sets.
Compositor:
- Gpu scheduling improvements.
- Fix for poor interaction with D3D fences and apps which use non-flip DXGI SwapEffect for their desktop window, which evidenced as certain D3D functions (e.g. Flush or Present) blocking on the CPU for much longer than normal.
- Fixed Vive Wireless Adapter gpu performance issues.
- Fix for extended running start in async mode. The compositor will dynamically pull back running start to accommodate apps which are cpu bound on their submit thread. However, there was a driver bug which was preventing this from operating correctly much of the time. This change switches to a more general approach which avoids this issue. This now allows the compositor to provide up to 8ms of running start on both Nvidia and AMD hardware, although it is a Windows 10 only feature. If you have previously relied on disabling async-reprojection and enabling “Always-On Reprojection” in order to play racing and flight sims, please retest with this change and let us know on the forums. You can monitor running start timing using the SteamVR Frame Timing graph by looking at the black “New Poses Ready” line in the Details view.
- Allow developers and advanced users to disable all async and reprojection features by pressing Shift+A in the mirror window. This setting will persist until SteamVR exits to avoid customers accidentally disabling async persistently across launches of SteamVR without knowing how to re-enable it. A message will be displayed in the upper left corner of the mirror window notifying you that async and reprojection have been disabled. Pressing Shift+A has the same effect as disabling async, disabling interleaved reprojection, and enabling “always-on reprojection” (which just gives a full frame of running start to the app) in older versions of SteamVR.
- Fixed prediction for secondary "game" poses when going into and out of throttling.
- Moved Direct Mode settings to their own group to support multiple headsets.
- Fix for constant dropped frames reporting and erratic timing when NvAPI display timing call fails.
- Added check for Windows environment variable STEAMVR_MOTION_SMOOTHING_WIN7=1 to allow Windows 7 customers to use the experimental Windows 7 implementation of Motion Smoothing by setting that environment variable to 1 before launching SteamVR
Skeletal Input:
- Improved the fist hand pose used in the empty hand range of motion for Knuckles, Vive Wand and Touch
Chaperone:
- Changed chaperone to apply the same minimum opacity that is expressed in the slider in the UI.
- Fixed bug for setups using standing-only room setup where “reset seated position” actions caused standing chaperone center and orientation to be changed as well.
Linux:
- Fixed startup crash when async reprojection is enabled on RADV.
Vive Trackers:
- Added Manage Vive Trackers option to the devices menu to show the tracker management UI on the desktop.
- Added display of connected state for trackers in the UI.
Oculus:
- Updated to Oculus SDK v1.30.0
- Fixed rare crash when triggering haptic vibration.
