Oculus Go Development

On 6/23/20 Oculus announced plans to sunset Oculus Go. Information about dates and alternatives can be found in the Oculus Go introduction.

Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Known Issues With Vulkan API

Vulkan is a modern graphics API, in many ways the successor to OpenGL ES, which has been the primary graphics API used in the Oculus Quest app development. It has numerous benefits, both from an API design perspective, as well as possible performance improvements. These include:

  • Stateless API(OpenGL ES is stateful)
  • More explicit API, leading to more fine-grained GPU control
  • Graphics driver performs less CPU work in its API entry points(less work for issuing draw calls, or other render thread work)
  • Validation layers system that allows your app to benefit from error checking at test-time, without paying the performance penalty for error checking at runtime

It’s also important to remember that Vulkan, as well as graphics APIs in general, is a CPU API that controls the GPU, so any performance benefits that you might derive from Vulkan will only be of rendering CPU performance, not of GPU performance.

Known Issues

Before you upgrade to using Vulkan API, make sure you check the following list of known issues associated with its usage:

  • Performance impact: In our performance tests, we’re seeing Vulkan API as roughly equal to OpenGL ES performance, with slight wins depending on content. If your applications have any performance regressions with Vulkan compared to when using OpenGL ES, please file a bug and we’ll make it a priority to fix the discrepancy.

  • Current status: Experimental: We are marking Vulkan API as experimental, primarily because we have several known issues that we must resolve before we attain full functionality and performance parity with OpenGL ES. However, we also encourage you to upgrade any test projects you have to Vulkan, to better test the underlying implementation. If you find that none of the below known issues apply to you, then we encourage you to upgrade your projects to use Vulkan API.

  • Supported Unity versions: Oculus Vulkan support in Unity is only for development with Oculus Quest, and not other headsets.

    Considering that issues are in the process of being resolved, we recommend that you stay on the latest Unity version, as every successive version released has a fair chance of containing an important fix from the known issues listed below.

    Thus, the current recommended Unity versions to use with Vulkan would be either of the latest versions of 2019.4 or 2020.1.

    Finally, Vulkan support is only available via the Oculus XR Plugin system. To use Vulkan, first upgrade your project to this system if not already done.

  • Performance issues:

    • 3 ms of GPU wasted: depth buffer stored
    • 2 ms of GPU wasted: color buffer stored

    Note: For both the issues mentioned above, you must be on the Oculus XR Plugin v1.5 or higher, and check the Optimize Buffer Discards checkbox in the Oculus XR Plugin settings to avoid the performance penalty. When this option is selected, the buffers are not be stored, and the GPU performance penalty is not incurred.

    • Compositor layers not rendering(OVROverlay)
    • 200 MB of memory wasted
    • Possible memory leak when using mixed reality capture
    • Possible memory leak when using OVROverlay
    • Mixed reality capture colors are washed out, likely a gamma correction issue