Developer Options

The Daydream Developer options screen allows you to toggle advanced options for Daydream apps. These are similar to the Android developer options, but are a set of VR-specific developer options. These options help you profile and debug your app. They can also be used to enable experimental developer-only features.

Enable Daydream developer options

On a Daydream Ready phone:

  1. Launch Daydream app.
  2. Use the icon to access Settings, then tap VR settings.
  3. Tap on the Build Version until a new Developer options item appears.

On a Standalone headset:

  1. Use the Daydream button to bring up the Dashboard and tap on the Settings icon. Open ALL SETTINGS.
  2. Go to Daydream and VR settings.
  3. Tap on the Build Version until a new Developer options item appears.

Daydream developer options

Enable developer logs

As the app runs, information such as the temperature profile will occasionally be sent to logcat. E.g,

adb logcat *:S PerformanceLogger:*
W PerformanceLogger: Throttling temperature: 40.0
W PerformanceLogger: Max temperature for good VR performance: 52.0
W PerformanceLogger: Shutdown temperature: 56.0
W PerformanceLogger: Current Temperature: 32.0
...

Enable performance monitoring

VR apps will log frame rate & head orientation data every second. E.g,

I GVR     : [vr/gvr/logging/performance_logger.cc:76] PerfMon: Start of session
I GVR     : [vr/gvr/logging/performance_logger.cc:463] PerfMon: Starting logging with output to file: /storage/emulated/0/Android/data/com.google.android.vr.home/cache/gvr_performance_20180510_17_00_39.log
I GVR     : [vr/gvr/logging/performance_logger.cc:385] PerfMon: Async reprojection thread FPS: 59.4197
I GVR     : [vr/gvr/logging/performance_logger.cc:410] PerfMon: Application FPS: 59.5602
I GVR     : [vr/gvr/logging/performance_logger.cc:411] PerfMon: Application frame submits blocked on GPU in FPS window: 0
I GVR     : [vr/gvr/logging/performance_logger.cc:437] PerfMon: Head Rotation Quaternion (xyzw): -0.300382 4.18758e-05 -0.00579545 0.953802
...

The screen will also flash red and log a warning every time asynchronous reprojection fails. This happens when the system is under heavy load and unable to render at the ideal frame rate.

Enable performance heads-up display

Enables Performance HUD.

Motion latency patch render mode

Display a black bar over the right eye to demonstrate motion-to-phone latency.

Display frame tracking bar

Display a bar at the bottom of the screen that alternates between red and blue. This can be used for per-frame analysis when recording high-speed footage of your phone's display.

GVR SDK Library Version

The version of the library in Google VR Services. This library is dynamically loaded into Daydream apps and affects which features are enabled in that app.

Enable GVR SDK library loading

Toggles whether the SDK library is loaded from Google VR Services into Daydream apps at runtime. If disabled, the app will use the library that is in its APK which is normally older than the library inside Google VR Services.

Enable Daydream Dashboard

If disabled, pressing the Daydream button on the controller will launch Daydream Home instead of Daydream Dashboard.

Force 6DoF in apps

Daydream apps that are not compatible with WorldSense will not be rendered with positional tracking on headsets that have WorldSense. This option forces compatibility with WorldSense for all apps.

Enable Dashboard 2D library

Experimental feature to show 2D apps in VR.

Enable safety graphics

Enable sensor logs

Saves raw accelerometer, gyroscope, and magnetometer readings for your headset to /storage/emulated/0/Android/data/com.google.android.vr.home/cache/headtracking/.

Context sharing for in-process reprojection

Shares an OpenGL Context between the applications render thread and the asynchronous reprojection thread. This improves performance on some devices but is unstable on other devices.

Controller emulator device

Allows the use of a second phone with an emulator app instead of a real Daydream controller.

Controller Home button bypass list

This disables the Daydream button for certain apps. This setting is useful for running Daydream in "kiosk" mode where only a single app is allowed to run and the user is not allowed to launch other apps.

Skip VR entry screens

When launching VR apps, this setting will skip standard checks such as headset compatibility or Daydream Controller updates.

Enable VR screen recording via chords

Allows recording of screenshots and videos using chords on the Daydream Controller. Pressing and holding Daydream + Volume Down will capture a screenshot. Pressing and holding Daydream + Volume Up will start and stop recording video.

Enable VR screen recording via ADB

adb can be used for more options when recording Daydream apps. You can query RecorderService with

adb shell am startservice -n com.google.vr.vrcore/.capture.record.RecorderService --es command HELP

This will output information to logcat:

I RecorderService:   Use "adb shell am startservice -n com.google.vr.vrcore/.capture.record.RecorderService command [options]"
I RecorderService:   command:
I RecorderService:     --es command IMAGE
I RecorderService:     --es command START
I RecorderService:     --es command STOP
I RecorderService:   common options for IMAGE & START:
I RecorderService:     --ei width WIDTH
I RecorderService:     --ei height HEIGHT
I RecorderService:     --ef fov HORIZONTAL_FOV_DEGREES
I RecorderService:   options for IMAGE:
I RecorderService:     --ei quality QUALITY_OF_JPEG
I RecorderService:     --es path /sdcard/PATH/TO/FILE.JPG
I RecorderService:   options for START:
I RecorderService:     --ei bitRate BITS_PER_SECOND
I RecorderService:     --es path /sdcard/PATH/TO/FILE.MP4

Some more example commands:

  • Capture a square screenshot with an 85 degree FOV:
    adb shell am startservice -n com.google.vr.vrcore/.capture.record.RecorderService --es command IMAGE --ef fov 85 --ei width 1280 --ei height 1280
  • Start recording a 1080p video at 16Mbps:
    adb shell am startservice -n com.google.vr.vrcore/.capture.record.RecorderService --es command START --ei width 1920 --ei height 1080 --ei bitRate 16000000
  • Stops recording:
    adb shell am startservice -n com.google.vr.vrcore/.capture.record.RecorderService --es command STOP

Enable developer service

Enabling this allows modification of system Settings via adb.

Change size of 2D-in-VR apps

If 2D-in-VR is used, these settings can be used to configure the size of the virtual display.

  • Width and height These affect the size of the virtual display that the app renders to.
  • DPI This changes the dots per virtual inch used by the app to configure its layout.
  • Scale This changes the size of the floating quad that contains the virtual display.