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:
- Launch Daydream app.
- Use the icon to access Settings, then tap VR settings.
- Tap on the Build Version until a new Developer options item appears.
On a Standalone headset:
- Use the Daydream button to bring up the Dashboard and tap on the Settings icon. Open ALL SETTINGS.
- Go to Daydream and VR settings.
- 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.