Oculus’ move to a model of SDK capable of supporting the DK2’s specific needs was troublesome to say the least. The initial release was so problematic it caused a (albeit brief) delay in DK2 shipments. Lots of progress has been made since then, but the Oculus Runtime model which enables features such as the low latency Direct Mode (bypassing as many Windows driver layers as possible) is still sometimes erratic in behaviour and performance – with screen tearing and multi-monitor headaches abound.
Now, Oculus have sent the latest beta SDK, version 0.4.3 beta, out into the world with some interesting new additions.
Unity Free Developers Rejoice
Unity is enormously popular in the VR development community due to it’s pick up and create ease of use and it’s portability. The major bugbear for developers on a budget however that, in order to develop and release anything which utilised the Oculus SDK, you had to first purchase one of the paid-for licenses or commit to a subscription. With this release, Oculus have opened the door to more developers who were reticent or unable to make that kind of financial commitment. This new model is supported for Unity versions 4.5.5 and up.
Experimental Linux Support
Something people have been waiting for, the latest beta brings ‘experimental’ support for linux, allowing open source aficionados to get their teeth into creating virtual reality content.
Headline features aside, there’s some under-the-hood tweaks promising to make the journey into VR with your DK2 that much more pleasant with reductions in rendering latency and multi-threaded driver improvements. The full set of release notes below:
Version 0.4.3 Beta 10/24/2014
New Features
Oculus SDK
- Display Driver latency reduction in Direct Mode by 1 frame, resulting in 0ms Post-present.
- Updated display driver to support multi-threaded calls efficiently, this may improve performance in some scenarios.
- Added option in the Oculus Configuration Utility to Suppress the Health and Safety Warning during active development.
- Added option in the Oculus Configuration Utility to set the OVRServer logging level.
- Updated the Health and Safety Warning screen to reflect an age restriction of 13. More information can be found in the Oculus VR Best Practices Guide and in the Oculus VR Health And Safety Warnings documentation.
- Experimental Linux support (see included LINUX_README).
- Added an error dialog notification to notify users if direct mode fails due to conflicting shims.
- Numerous stability and performance improvements.
Unity
- Added support for Unity Free in Unity 4.5.5 and up.
- Overhauled Unity C# API. Reduced performance overhead. See the migration guide for more details.
- Improved support for multi-layered rendering. Just instantiate multiple OVRCameraRigs, set Camera.depth and Camera.clearFlags for each eye, and use.
Bug Fixes
Oculus SDK
- Fixes in Vsync direct mode tearing.
- Fixed a bug in the D3D10/11 rendering path that was causing the overall brightness of the visuals to change on some systems.
- Improved OpenGL state management through contexts.
Unity
- Fixed a source of jitter in TimeWarp timing that resulted in shaky images.
- Removed problematic “out of camera range” message. Will be replaced by an optional camera bounds visualization in a future release.
- In the editor, Game view rendering no longer targets the wrong view.
Known Issues
Oculus SDK
In order to reduce head tracking latency and make sure the CPU and GPU frame processing overlap as much as possible, there are currently 2 major CPU/GPU synchronization points in the SDK rendering path. This can cause performance problems for applications that tend to do a good deal of CPU processing or buffering of many draw calls at the start of a new frame by introducing GPU “bubbles” into the command buffers.
The Mac version of the Oculus Configuration Utility may get stuck in an upgrade loop during a Firmware update. The workaround is to let the update complete and then power cycle the DK2.
Unity
D3D11 in extended mode is unsupported for this release. This configuration will typically appear to judder due to being capped at the 60hz refresh of your primary monitor.
Forcing Unity to use OpenGL on Windows is unsupported for this release. This configuration is currently unstable and may encounter crashes.