While gaming PCs have powerful CPUs and graphics cards drawing enormous amounts of power, in all-in-one “standalone” VR headsets like Oculus Go and the upcoming Oculus Quest, things are very different. Such headsets have very limited GPU power and run off a battery, making energy consumption an important concern.
Better hardware like newer more efficient chips and bigger internal batteries can help lessen these restrictions, but also make the headset heavier and more expensive. Another solution is more efficient software – and this is where Vulkan can help.
Vulkan is the successor to OpenGL, the industry standard graphics API that has been in widespread use for over 2 decades. OpenGL is similar to DirectX (up to version 11), but open and cross platform.
Vulkan, like DirectX 12 for Windows and Metal for iOS, is a “low level” graphics API (LLAPI). LLAPIs give developers more direct access to the GPU than regular APIs, allowing them to optimize their engine more specifically. The main benefit to these APIs, when a developer uses them right, is that more “draw calls”, instructions from the CPU to the GPU on what to draw, can be used each frame – or the same number of draw calls will use less CPU power & energy.
At GDC 2018 in April, Oculus told the crowd that Oculus Go would get Vulkan support from custom drivers made in a partnership with ARM and Qualcomm. The headset did not ship with this support, however, and there was no word on Vulkan for months after launch. In August, Oculus added ‘experimental’ support to the Vulkan API for Oculus Go in the Oculus Mobile Software Development Kit, which is used to make apps for Gear VR, Oculus Go, and the upcoming Oculus Quest.
Vulkan could improve one of the most common complaints about Oculus Go – the limited battery life. If apps use less energy, the battery will last longer. But where Vulkan could really shine is on the upcoming Oculus Quest, where Oculus is trying to deliver a console level experience, ultimately competing with the Nintendo Switch. While a mobile chip is unlikely to ever deliver the same performance as a home console or gaming PC, Vulkan may help narrow the gap and deliver more realistic graphics than OpenGL would.
A spokesperson from Oculus told us that they will have more to share on stable Vulkan support for Go “soon”, and that they would have more to share about Vulkan for Quest next year. We should also note that most VR games are made with Unity or Unreal Engine, so for Vulkan to receive widespread adoption on Go and Quest, these engines will need to add support for Vulkan on Oculus Mobile and the timeline for that support is not known yet either.