Oculus Releases New Mobile SDK

Oculus VR has been very busy recently and with the Oculus Connect 2 conference next month all eyes will be on the Oculus Rift head-mounted display (HMD) manufacturer to see what its next unveiling might be. For now though developers for mobile platforms have got an updated Software Development Kit (SDK) to play with.

The Oculus Mobile SDK, contains a range of new features, improvements and fixes which are listed in the changelog below. These include major structural changes to the native VrAppFramework library and a change to Unity integration. Now Unity integration in no longer bundled with the Mobile SDK, it instead must be downloaded separately from Ouclus VR’s download page.


The full list is as follows:

New Features

  • VrApi
    • Images composited by the time warp are now allocated through the VrApi as “texture swap chains”.
    • Performance params (CPU/GPU level, thread ids) can now be adjusted every frame through vrapi_SubmitFrame.
    • adb logcat -s VrApi now reports the thread affinity.
    • ovr_GetSystemProperty now provides options for querying GpuType, Device external memory, and max fullspeed framebuffer samples, see ovrSystemProperty in VrApi_Types.h
  • VrCubeWorld
    • Added example to VrCubeWorld_SurfaceView and VrCubeWorld_NativeActivity samples to reduce the latency by re-sampling the tracking state later in the frame.
  • VrTemplate
    • make_new_project script is now converted to Python for cross-compatibility.
  • VrCapture / OVRMonitor
    • VrCapture may now be integrated into and collect data from multiple shared libraries in your app simultaneously (previously you could capture from VrApi or from your app, but not both at the same time).
    • OpenGL and logcat calls are now captured throughout the entire process.
    • Applications may now expose user-adjustable variables via OVR::Capture::GetVariable() and tweak the values in real-time in OVRMonitor.
    • Frame Buffer capturing now does basic block-based compression on the GPU, reducing network bandwidth by 50%.
    • GPU Zones are enabled, but we recommend only using them on the Samsung GALAXY S6.
    • Added Settings View for toggling VR Developer Mode.
    • Sensor Graphs now turn red when values exceed max defined by SetSensorRange().

API Changes

  • Native Application Framework
    • VRMenu, OvrGuiSys, OvrGazeCursor and related classes have been moved to the VrAppSupport/VrGui library.
    • OvrSceneView, ModelFile and related classes have been moved to the VrAppSupport/VrModel library.
    • Localization-related functionality has been moved to the VrAppSupport/VrLocale library.
    • The sound pool and related classes have been moved to the VrAppSupport/VrSound library.
    • The VrGui library now uses the SoundEffectPlayer interface for sound playback, replacing SoundManager. This simple interface can be overloaded to allow VrGui sounds to be played by any sound library.
    • VrActivity java class now subclasses Android Activity instead of ActivityGroup.

Bug Fixes

  • VrAPI
    • Fixed adb logcat -s VrApi failure to report memory stats.
  • Native Application Framework
    • Fixed a bug where missing font glyphs were skipped instead of rendering as an asterisk.
  • Cinema SDK
    • Fixed last media poster showing up as the first poster for another category.
    • Play/Pause icon does not function correctly after unmount/mount.
    • Unmount/Mount does not pause media immediately.
    • Fixed bad camera orientation in Void theater when auto-switching from another theater due to starting a video with a resolution greater than 1920×1080.
  • 360 Photos SDK
    • Fixed Favorites and Folder Browser icon switching in the attribution menu.
    • Fixed menu state bug causing background scene not to be drawn.
    • Fixed menu orientations not resetting on reorient.
    • Increased vertical spacing between categories in Folder Browser to improve thumbnail scrollbar fit.
  • 360 Videos SDK
    • Fixed media failure to pause immediately when unmounted.
    • Fixed movie not pausing on launching system activities.
    • Fixed menu orientation when resuming app.
    • Fixed gaze cursor not showing up when in Browser.
  • Build Scripts
    • Fix for devices over adb tcpip: If the phone was connected over TCP, it was trying to find oculussig_WWW.XXX.YYY.ZZZ:PPP when checking for the oculussig file.
    • If an install and run was requested but no devices found, now reports to user rather than quitting silently.
    • Change directories in an exception-safe manner.
  • VrCapture / Remote Monitor
    • Fixed rare crash when disconnecting from remote host on OS X.
    • Reconnecting to an app multiple times no longer puts the capture library in an undefined state.

Known Issues

  • Unity 4 with Oculus Runtime for OS X 0.4.4 and Legacy Integration or
    • Editor crashes when building APK or pressing play in Play View; Mac standalone player crashes. To fix, update to Oculus Runtime for OS X Before updating your runtime, be sure to run uninstall.app (found in /Applications/Oculus/) to remove your previous installation.VrApi implicitly links to libGLESv3.so, so currently you cannot load libvrapi.so on devices without OpenGL ES 3.0 support.
  • VrCapture / Remote Monitor
    • GPU Zones currently work on the Galaxy S6 only.
    • Timer Queries are not functional on Adreno based devices.
    • Integrated systrace support is under development and is currently disabled.
    • Some VPNs break auto-discovery.

VRFocus will continue to follow all the latest news from Oculus VR and report back.