Hi everyone, last week we released Unity 2019.3 which included several XR features. We’ve seen questions come up, and I wanted to address the common topics being raised.
Vulkan with FFR for Oculus Quest (Experimental)
Vulkan/FFR on Oculus Quest is currently an experimental release, in which we intend to gather valuable feedback from the community on its performance in real world situations. This feature is only available through the XR plugin framework using the Oculus XR Plugin and not available through the deprecated built-in XR pathway. The feature is also only supported for a limited set of configurations. Currently, the feature only works with the built-in rendering pipeline (using multipass with post processing disabled) but will soon work with URP when URP 7.2.0 is released. We will make sure our documentation is more explicit about the scope of this experimental feature, and include guides on how to get started.
New XR Plugin Framework
Over the past several years we realized that our approach in integrating XR platforms directly into Unity’s core engine was not going to scale well with the anticipated growth of new XR hardware/software providers. We realized we were getting in the way of innovation. So we decided to develop a new plugin framework (i.e. XR SDK) that opens up the door for XR providers to leverage our engine features & optimizations. This plugin-based approach improves our ability to make quick bug fixes, distribute SDK updates from our partners, and allows us to support new XR devices and runtimes without having to modify the core engine.
Our new XR plugins released in 2019.2 as preview packages, with the intention of collecting user feedback and addressing bugs. The plugin packages were tested and verified by all of our platform partners to ensure feature parity and performance with their respective built-in version and compatibility with their own toolkits. During the 2019.2/2019.3 alpha and beta cycles, we received great feedback from the community. Combined with our own internal testing and testing by our platform partners, we made the decision to release our new XR plugins as verified packages in the 2019.3.
We also marked the built-in integrations as deprecated. We understand why folks are concerned about not having clarity regarding the deprecation of the built-in integrations, and how this will impact their projects. It was never our intent to outright remove a path from users and we want to ensure you that we are committed to keeping it working through the 2019 release cycle. Deprecation means the built-in implementations are still available for use in 2019.3 and will remain functional in 2019 LTS with no new features, but essential bug fixes. We will only remove the built-in integrations in future releases once we are confident that the new plugin approach is working and stable for developers as intended.
Migrating to the XR plugin framework has impacted how projects are configured in Player Preferences and how users manage the specific platform packages they are targeting. We realize this has added extra steps from the prior setup process. In the near term, we’re working on better documentation (e.g. migration guide and getting started guide). We’re also working on project templates and more samples for XR to help developers get started more easily. Additionally, we’re constantly working on improving the overall UX workflow for XR with regards to package discoverability and installation.
XR Performance
Most people find performance issues first with VR because it’s felt most in VR, but the root of it may or may not be VR-related. From the XR side, we have not seen any noticeable performance regressions in our testing. Our XR tests evaluate many different scenarios, and we’re always expanding our test cases. As we head towards the 2019 LTS release, we are prioritizing performance over everything else to make sure it is on par with our community’s expectations. If you are running into issues, please file a bug so we can help identify the root cause and work towards resolving.