VR does not work on Samsung S8+ when display is not set to highest resolution |
||||||||||||
Issue descriptionChrome Version: 62.0.3173.0 OS: Android 7.0 Device: Samsung Galaxy S8+ with Daydream Headset or Cardboard What steps will reproduce the problem? (1) WebVR: (a) Go to https://webvr.info/samples/03-vr-presentation.html. (b) Click 'Enter VR'. (2) VR Browsing Mode: (a) Go to https://google.com. (b) Place phone into headset. (c) Finish DON flow. What is the expected result? Chrome is displayed in VR. What happens instead? Things I observed were that - I ended up on the Android home screen, - the DON screen did not disappear after connecting the controller, - Chrome stayed in 2D after I clicked 'Enter VR'. As a side note, I didn't get popup that Chrome crashed. Also, I didn't see anything obvious in logcat.
,
Aug 9 2017
,
Aug 10 2017
After doing some more digging it appears that Chrome gets killed by Android when it tries to set the orientation to landscape (https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java?rcl=a129458eeb588b4d47a2e5aaeb8e8f083ebf120a&l=980). Logcat gives the following output after setting the orientation: 08-10 10:47:31.334 1172 1434 I ActivityManager: Config changes=1000 {0 1.1 themeSeq = 0 showBtnBg = 0 ?mcc?mnc [en_US] ldltr sw411dp w797dp h387dp 560dpi nrml long land ?dc finger -keyb/v/h -nav/h mkbd/h desktop/d s.278} 08-10 10:47:31.339 1172 1434 D SamsungActivityManager: killAllProcesses mSystemUIProcessRecord=ProcessRecord{5258b95 20689:com.android.systemui/u0a5} 08-10 10:47:31.339 1172 1434 I ActivityManager: Killing 20689:com.android.systemui/u0a5 (adj -800): kill all background except(policy=multi-resolution) 08-10 10:47:31.341 1172 1434 D ActivityManager: cleanUpApplicationRecord -- 20689 08-10 10:47:31.341 1172 1434 W ActivityManager: Scheduling restart of crashed service com.android.systemui/.keyguard.KeyguardService in 0ms 08-10 10:47:31.341 1172 1434 W ActivityManager: Scheduling restart of crashed service com.android.systemui/.SystemUIService in 0ms 08-10 10:47:31.345 1172 1434 I ActivityManager: KPU : put [com.wssnps] : 0 K 08-10 10:47:31.345 1172 1434 I ActivityManager: Killing 22987:com.wssnps/1000 (adj 906): DHA:empty #33 08-10 10:47:31.354 1172 1434 D MountService: MountService getExternalStorageMountMode : 1 08-10 10:47:31.354 1172 1434 D MountService: MountService getExternalStorageMountMode : 3 08-10 10:47:31.354 1172 1434 D MountService: MountService getExternalStorageMountMode : final mountMode=1, uid : 10005, packageName : com.android.systemui 08-10 10:47:31.374 1172 1434 I ActivityManager: Start proc 23778:com.android.systemui/u0a5 for added application com.android.systemui 08-10 10:47:31.376 23778 23778 E Zygote : v2 08-10 10:47:31.376 23778 23778 I libpersona: KNOX_SDCARD checking this for 10005 08-10 10:47:31.376 23778 23778 I libpersona: KNOX_SDCARD not a persona 08-10 10:47:31.377 1172 1434 I ActivityManager: Killing 23452:com.sec.android.app.chromecustomizations/u0a108 (adj 700): kill all background except(policy=multi-resolution) 08-10 10:47:31.377 23778 23778 E Zygote : accessInfo : 0 08-10 10:47:31.378 1172 1434 D ActivityManager: cleanUpApplicationRecord -- 23452 08-10 10:47:31.378 23778 23778 W SELinux : SELinux selinux_android_compute_policy_index : Policy Index[2], Con:u:r:zygote:s0 RAM:SEPF_SECMOBILE_7.0_0009, [-1 -1 -1 -1 0 1] 08-10 10:47:31.379 1172 1434 I ActivityManager: Killing 23111:org.chromium.chrome/u0a231 (adj 0): kill all background except(policy=multi-resolution)
,
Aug 10 2017
Marking for discussion as this should be assigned.
,
Aug 10 2017
I reached out internally.
,
Aug 10 2017
,
Aug 10 2017
,
Aug 30 2017
This only happens if the screen is not set to the highest resolution. As a workaround: go to Settings > Display > Screen resolution > set slider to WQHD+ (2960x1440). I will follow up with more info on how to solve this bug properly.
,
Sep 12 2017
,
Sep 14 2017
,
Sep 22 2017
,
Sep 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bc7726602e587ad0b4fdb141910c7281bbf1b73e commit bc7726602e587ad0b4fdb141910c7281bbf1b73e Author: Michael Thiessen <mthiesse@chromium.org> Date: Fri Sep 22 21:16:38 2017 Prevent Android from recreating Chrome when density changes while in WebVR. This adds a density change handler to the manifest for ChromeActivitys, but manually recreates ChromeActvity when not in WebVR because we don't correctly handle DPI changing and don't redraw our Java UI correctly. This also disables the VR Browser when on devices that change density when in VR as we don't correctly handle density changes. Bug: 753865 Change-Id: I011977b7d7ef09e4d485ef2cf1cea860b3500208 Reviewed-on: https://chromium-review.googlesource.com/668042 Commit-Queue: Michael Thiessen <mthiesse@chromium.org> Reviewed-by: Ted Choc <tedchoc@chromium.org> Reviewed-by: Yash Malik <ymalik@chromium.org> Cr-Commit-Position: refs/heads/master@{#503855} [modify] https://crrev.com/bc7726602e587ad0b4fdb141910c7281bbf1b73e/chrome/android/java/AndroidManifest.xml [modify] https://crrev.com/bc7726602e587ad0b4fdb141910c7281bbf1b73e/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java [modify] https://crrev.com/bc7726602e587ad0b4fdb141910c7281bbf1b73e/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
,
Sep 25 2017
Marking this as fixed as WebVR works again (though there are some outstanding bugs captured separately). Filed issue 768380 to specifically capture VR browsing.
,
Sep 26 2017
,
Oct 11 2017
Verified that with the resolution not set at the highest, WebVR works. But Chrome Vr does not, as noted in #13.
,
Dec 13 2017
,
Jul 4
|
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by tiborg@chromium.org
, Aug 9 2017