If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
OpenXR:
Improved the readability of subtitles rendered with quad layers placed with action spaces.
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
SteamVR:
Fix for crash where GPU would hang due to excessive bus usage.
Mini-perf graph now shows Bus % usage when above 3% (currently Nvidia only). Bus usage measures memory transfer between GPU and system. This typically happens primarily during loading, but can result in catastrophic performance loss when running out of video memory and the OS starts paging critical resources to system memory. The easiest fix in this case is typically to reduce your recommended render target resolution in SteamVR settings, or max texture resolutions in the application’s settings.
OpenXR:
Fixed a bug with visibility mask vertex direction and related two-call idiom behavior.
Fixed an issue for DX12 apps that use multiple swapchains per frame.
Fixed an issue with xrStopHapticFeedback having no effect on HTC Vive controllers.
Updated OpenGL supported depth format. Removed GL_DEPTH_COMPONENT32 and added GL_DEPTH_COMPONENT32F for wider driver compatibility.
Fixed an issue where multi-session applications would get old time information on the first frame of sessions after the first.
Today's update brings exciting new compatibility features, enabling players with newer or less common headsets to play more games, and broadening input customization for OpenXR.
As VR has grown over the past few years, assumptions that games made about the kinds of controllers or headsets in the community have become stale. This has lead to players with some headsets being unable to play older, much loved games. The updates in this release allow users to work around many of these problems.
The new compatibility features can be found in the input binding UI by pressing the options button in the top right corner. You will then be able to select a controller to emulate, and if the render model and associated HMD should be emulated. Different games require different levels of emulation, and you should restart the game after making changes. You'll want to select the controller with the physical buttons that most closely matches the one you're holding. In most cases, this will be the Touch controller.
We've also brought input remapping to OpenXR. You can now use our existing binding UI and workshop features with games that use OpenXR. Similar to the compatibility features described above, rebinding input with OpenXR apps allows you to select the input profile you would like to use.
Full Update Notes
SteamVR:
SteamVR Input bindings can now configure compatibility modes. Compatibility mode emulates a different controller’s properties, and can even return a different render model. This lets games that were targeted towards specific controller types be accessible to all controllers.
DXGI_FORMAT_R16G16B16A16_UNORM (i.e. GL_RGBA16 on Windows) format textures are now correctly treated as containing linear color data when using ColorSpace_Auto.
OpenXR:
XrViewConfigurationView maxImageRectWidth and maxImageRectHeight now report the global SteamVR setting MaxRecommendedResolution which defaults to 8192.
xrEnumerateSwapchainFormats no longer returns the following formats on Linux as they are not properly supported: GL_RGBA16, GL_RGB16F, GL_RGB16F.
Fixed an issue with non-native headsets (e.g. Focus3, Quest, WMR) which was introducing extra unnecessary latency in UE apps >= v4.27 (and possibly others).
OpenXR titles can now be rebound using the binding UI.
OpenXR bindings now allow selection of the “interaction profile” name. Some games may have actions that only work when using a specific interaction profile.
Applied fix to allow for dead zones in between dpad input directions (wedgeAngle < pi and >= 0)
Fixed DX12-only issue that was interfering with gpu frame overlap (xrEndFrame was blocking until its associated gpu work was finished).
Fixed inconsistent pose flags returned by xrLocateSpace - both “valid” and “tracked” flags will be cleared in case of tracking loss.
Fixed DX12 validation error with resetting a command allocator causing a crash on Unity with the latest OpenXR plugin
This build is a candidate for a full release. If you encounter issues, please report them in the forum so they can be fixed before this build goes out to everyone.
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
OpenXR:
Fix for OpenXR apps not showing default bindings in rebinding UI in certain scenarios.
This build is a candidate for a full release. If you encounter issues, please report them in the forum so they can be fixed before this build goes out to everyone.
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
OpenXR:
Fix for OpenXR apps not recognizing controllers that were turned on after session start.
Fixed DX12 validation error with resetting a command allocator causing a crash on Unity with the latest OpenXR plugin
This build is a candidate for a full release. If you encounter issues, please report them in the forum so they can be fixed before this build goes out to everyone.
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
OpenXR:
Fixed DX12-only issue that was interfering with gpu frame overlap (xrEndFrame was blocking until its associated gpu work was finished).
Fixed inconsistent pose flags returned by xrLocateSpace - both “valid” and “tracked” flags will be cleared in case of tracking loss.
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
OpenXR:
Fixed an issue with non-native headsets (e.g. Focus3, Quest, WMR) which was introducing extra unnecessary latency in UE apps >= v4.27 (and possibly others).
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
SteamVR:
Fixed oversized overlay scale for window views.
DXGI_FORMAT_R16G16B16A16_UNORM (i.e. GL_RGBA16 on Windows) format textures are now correctly treated as containing linear color data when using ColorSpace_Auto.
OpenXR:
XrViewConfigurationView maxImageRectWidth and maxImageRectHeight now report the global SteamVR setting MaxRecommendedResolution which defaults to 8192.
xrEnumerateSwapchainFormats no longer returns the following formats on Linux as they are not properly supported: GL_RGBA16, GL_RGB16F, GL_RGB16F.
If you encounter issues with this update, please post in the SteamVR Bug Report forum. If possible, please include a system report to aid in tracking down your issue. Replies to this post are not tracked for bug reporting purposes. Please use the forum linked above to report issues.
SteamVR:
SteamVR Input bindings can now configure compatibility modes. Compatibility mode emulates a different controller’s properties, and can even return a different render model. This lets games that were targeted towards specific controller types be accessible to all controllers.
OpenXR:
OpenXR titles can now be rebound using the binding UI.
OpenXR bindings now allow selection of the “interaction profile” name. Some games may have actions that only work when using a specific interaction profile.
Applied fix to allow for dead zones in between dpad input directions (wedgeAngle < pi and >= 0)
Today's update features continued progress on OpenXR and a variety of dead bugs. In addition to killing several longstanding bugs in our webserver, we have a new SteamVR Home destination that showcases CT scans of actual dead bugs we found lying on the ground outside our office.
A CT scan involves passing X-rays through a subject at different angles - captured data is then processed with a computer to generate a 3D voxel grid representing density at each point. These scans were produced using an industrial CT scanner capable of extremely high resolution scans - gigabytes of voxel data being converted into simpler 3D models capable of being rendered in real-time on your GPU.
Some technical details: CT scanner was a GE Phoenix V|tome|x S X-Ray Machine with dual 240kV and 180kV tubes and the larger DXR 400mm detector, the 180kV tube being used for insect scans as they are mostly homogeneous in density, and the lower power tube produces smaller voxel sizes.
Scans processed in VGSTUDIO MAX, generating model geometry relatively close to that seen in VR, then subsequent triangle reduction done in MeshLab. Models are about 2 million triangles each.
Model vertex colours were generated in MeshLab using the volumetric obscurance filter followed by various colour adjustments - this makes interior structures vastly easier to 'read' visually while still being quite inexpensive to render.
Fixed crashes with Unity's OpenXR plugin when using DX12.
Fixed crash related to calling SetAppID before an action manifest is loaded.
Fixed issue with simulating touch controller bindings for WMR that was causing touch controller bindings for primary and secondary buttons to not work.
On Windows, whenever you accept the UAC prompt to set SteamVR as the default runtime, it will also be added to the list of available OpenXR runtimes in the registry.
Fixed conformance issues when using xrLocateViews - return errors when application sends an invalid time or unsupported view.
Fixed SteamVR crash when running game engine editors.