New issue
Advanced search Search tips

Issue 870743 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 7
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
Proj-VR
Proj-XR
Proj-XR-VR



Sign in to add a comment

VR: Handle GL context loss

Project Member Reported by mthiesse@chromium.org, Aug 3

Issue description

GL context loss can happen when we're rendering to a surface (as opposed to surface-less rendering) if we lose visibility.

We render to a surface in two cases: Pre-Daydream devices, and when we fail to turn on Asynchronous Reprojection on Daydream devices (I'm not aware of a situation where this could happen).

Supporting re-creating our GL context is hard, so for Pre-Daydream devices we should just exit VR when we lose our context - this isn't a huge issue for Cardboard users and should happen extremely rarely (we don't expect to lose visibility during XR presentation.

For Daydream devices, we should just not enter VR if we can't turn on Async Reprojection for two reasons:
1. The experience will suck.
2. Going to dashboard and back will crash Chrome as our GL context will be lost.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97

commit 6bf1393c4a932816a1f9c9de31ab8a07c62f1f97
Author: Michael Thiessen <mthiesse@chromium.org>
Date: Tue Aug 07 19:12:11 2018

VR: Handle GL context loss

If we lose our GL context, which could potentially happen on
pre-Daydream devices, we can just exit VR and expect the user to
re-enter.

On Daydream-ready devices context loss should only happen if we fail to
turn on Async Reprojection, so we should just not enter VR if we fail to
turn it on (the experience would suck anyways).

Bug:  870743 
Change-Id: Ic2052ff5ef4a7977cb8626df00aee57480e5d2f2
Reviewed-on: https://chromium-review.googlesource.com/1162277
Reviewed-by: Aldo Culquicondor <acondor@chromium.org>
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581300}
[modify] https://crrev.com/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97/chrome/android/java/src/org/chromium/chrome/browser/vr/VrShell.java
[modify] https://crrev.com/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97/chrome/android/java/src/org/chromium/chrome/browser/vr/VrShellDelegate.java
[modify] https://crrev.com/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserTransitionTest.java
[modify] https://crrev.com/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97/chrome/browser/android/vr/vr_shell.cc
[modify] https://crrev.com/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97/chrome/browser/android/vr/vr_shell_gl.cc
[modify] https://crrev.com/6bf1393c4a932816a1f9c9de31ab8a07c62f1f97/chrome/browser/android/vr/vr_shell_gl.h

Status: Fixed (was: Started)

Sign in to add a comment