How Daydream Beats Google Cardboard

How Daydream Beats Google Cardboard


Despite being the developers of Android, Google has been locked out of several key hardware functions required for virtual reality. That is about to change.

Cardboard was implemented as a user-level library that essentially provided some helper functions and a wrapper for the dual-viewport OpenGL context. Anybody who has experienced VR knows that latency is critical, and Cardbard fails miserably.

Daydream's library will be similar to desktop (and Samsung's mobile) VR performance by interfacing directly with special hardware routines in at least 3 areas.

Input latency, processor scheduling, & output buffering.

Cardboard was only a library embedded into each application, so it could not increase performance beyond what any normal app could get. This included triple buffering (or delaying the video image by up to 3 frames). Meanwhile, Daydream is an operating system level library that can hook into the display pipleline of compatible processors, and lower that with front-buffering (or drawing right before the screen renders).

Oculus and Samsung solved much of the performance in 2015 with magnetic and gyroscopic sensors that were sampled faster than Android's fastest 200 times a second. They also added OpenGL extensions in their Mali GPU to enable front buffering for Android.

Qualcom followed suite in 2016 with their Snapdragon 820 processor (and Adreno 530 GPU), which has front buffering and several other GPU extensions not found on lesser mobile processors.

Above, Qualcomm's focus for VR

These mobile optimized processors can handle the various DSP functions for sensors while rendering to a 4k screen thanks to many physical and software optimizations. And, Google will expose these in a nicely abstracted API via Cardboard.

This Fall

We can expect that Google's premiere Cardboard partners will release phones with Android N, along with their low level Daydream library that takes advantage of Qualcomm's 820 processor.

Above: Samsung's hidden GearVR service

You can look at the existing GearVR Service from Samsung as an example of what this might look like. It will most likely pause some Android services, set the processor and GPU performance levels, and enable the front buffering for the VR application.

So, I am getting ready, because this fall, us Android developers can finally compete with the desktop in one more area, true virtual reality.

Like what you read? Let me know in the comments! I'll be writing more in depth about virtual reality development and theory real soon.

Posted by Marshall on 2016-05-22.

Tweets by @manschutz