New issue
Advanced search Search tips

Issue 655722 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Feature
Proj-XR

Blocked on:
issue 698643
issue 698923

Blocking:
issue 732522



Sign in to add a comment

WebVR mobile: bypass compositor to reduce latency

Project Member Reported by meganlindsay@chromium.org, Oct 13 2016

Issue description

Bypass compositor to eliminate unnecessary copies and reduce latency
 
Components: Blink>WebVR
Cc: klausw@chromium.org
 Issue 644780  has been merged into this issue.
Labels: Type-Feature
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 17 2016

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

commit 4026d565687ddbc1f67c4cc04887c339b7a03685
Author: klausw <klausw@chromium.org>
Date: Thu Nov 17 08:27:52 2016

WebVR: Use content CVC size for compositor rendering

We can't currently resize the content window used by the
compositor rendering path, so we must use its dimensions
for the WebVR API reported render sizes.

It includes a rather nasty hack to override canvas size to 100% if
it was manually set to something different. This works around
three.js examples not rendering right, apparently a fullscreened
canvas just gets centered if it explicitly sets a size smaller
than the fullscreen dimensions.

BUG= 389343 , 655722 

Review-Url: https://codereview.chromium.org/2508703002
Cr-Commit-Position: refs/heads/master@{#432811}

[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/chrome/browser/android/vr_shell/vr_shell.cc
[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/chrome/browser/android/vr_shell/vr_shell.h
[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/chrome/browser/android/vr_shell/vr_shell_delegate.cc
[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/device/vr/android/gvr/gvr_delegate.h
[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/device/vr/android/gvr/gvr_device.cc
[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
[modify] https://crrev.com/4026d565687ddbc1f67c4cc04887c339b7a03685/third_party/WebKit/Source/modules/vr/VRDisplay.h

Comment 5 by klausw@chromium.org, Nov 18 2016

Status: Started (was: Assigned)
FYI, patch 2508703002 from yesterday's comment 4 is still based on the currently used compositor path, it includes various code comments referring to things that will need changing when moving to compositor bypass, these are linked to this bug.

The current compositor bypass work in progress is here: https://codereview.chromium.org/2508583002/

Comment 6 by klausw@chromium.org, Nov 18 2016

Issue 655733 has been merged into this issue.
Labels: -M-56 M-57
 Issue 655724  has been merged into this issue.
Labels: -VR-Demo VR-FF
Cc: mthiesse@chromium.org
 Issue 678721  has been merged into this issue.
Project Member

Comment 11 by bugdroid1@chromium.org, Jan 6 2017

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

commit ec8edae43017bf5ea65d3b65edbcfd740af453c7
Author: klausw <klausw@chromium.org>
Date: Fri Jan 06 18:48:46 2017

Refactor GL surface format handling

Replace the GLSurface::Format enum with a proper class in preparation to
supporting types with configurable depth_size / samples / stencil_size.
Doing this in the current enum format would lead to a combinatorial
explosion.

The basic idea is that GetFormat can be used to initialize a new
surface with the same format as a pre-existing surface, and a
IsCompatible predicate is used to check if two formats are
equivalent for the purpose of avoiding BAD_MATCH errors. Code
should no longer be comparing formats to SURFACE_DEFAULT or similar.

Also add a new CreateOffscreenGLSurfaceWithFormat function that can
be used to request a specific surface format.

(These changes were suggested during review of https://crrev.com/2461803002 which is now forked into https://crrev.com/2586803003 .)

BUG= 655722 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2616723002
Cr-Commit-Position: refs/heads/master@{#441993}

[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/command_buffer/service/gl_surface_mock.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/command_buffer/tests/gl_dynamic_config_unittest.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/gpu_command_buffer_stub.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface_android.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface_linux.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface_mac.mm
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface_overlay_mac.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface_overlay_mac.mm
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/image_transport_surface_win.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/pass_through_image_transport_surface.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/gpu/ipc/service/pass_through_image_transport_surface.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/BUILD.gn
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_context_osmesa.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_egl.h
[add] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_format.cc
[add] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_format.h
[add] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_format_unittest.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_glx.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_glx.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_osmesa.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_osmesa.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_osmesa_win.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_osmesa_win.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_osmesa_x11.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_osmesa_x11.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_wgl.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/gl_surface_wgl.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory.h
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory_android.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory_mac.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory_ozone.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory_win.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/gl/init/gl_factory_x11.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc
[modify] https://crrev.com/ec8edae43017bf5ea65d3b65edbcfd740af453c7/ui/ozone/platform/drm/gpu/gbm_surfaceless.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jan 10 2017

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

commit 46b9f6aaaf5851014c2474365734e71ffe9367a0
Author: klausw <klausw@chromium.org>
Date: Tue Jan 10 02:22:08 2017

Enable creation of offscreen contexts which own their backing surface.

This is adapted from bajones's patch from issue 2461803002 at patchset 1
(http://crrev.com/2461803002#ps1)

Uses the own_offscreen_surface flag with WebGL contexts when WebVR is enabled,
to allow the surface to be swapped out with a compatible one if used for VR
presentation.

Includes support for canvas attributes such as "antialias", and adds a "low
priority" GL context option so that postprocessing such as in WebVR frame
submit at normal priority won't get blocked on the next frame being drawn.

BUG= 655722 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2586803003
Cr-Commit-Position: refs/heads/master@{#442448}

[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/gpu/ipc/service/gpu_command_buffer_stub.cc
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/third_party/WebKit/Source/modules/webgl/WebGLContextAttributeHelpers.cpp
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/third_party/WebKit/public/platform/Platform.h
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/ui/gl/gl_context.h
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/ui/gl/gl_context_egl.cc
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/46b9f6aaaf5851014c2474365734e71ffe9367a0/ui/gl/gl_surface_egl.h

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 11 2017

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

commit a08094dee4ad5de452d011f1bdd9714815739348
Author: mthiesse <mthiesse@chromium.org>
Date: Wed Jan 11 22:59:54 2017

Revert of Enable creation of offscreen contexts which own their backing surface. (patchset #12 id:220001 of https://codereview.chromium.org/2586803003/ )

Reason for revert:
Causes out-of-order frames and tearing in WebVR.

Original issue's description:
> Enable creation of offscreen contexts which own their backing surface.
>
> This is adapted from bajones's patch from issue 2461803002 at patchset 1
> (http://crrev.com/2461803002#ps1)
>
> Uses the own_offscreen_surface flag with WebGL contexts when WebVR is enabled,
> to allow the surface to be swapped out with a compatible one if used for VR
> presentation.
>
> Includes support for canvas attributes such as "antialias", and adds a "low
> priority" GL context option so that postprocessing such as in WebVR frame
> submit at normal priority won't get blocked on the next frame being drawn.
>
> BUG= 655722 
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
>
> Review-Url: https://codereview.chromium.org/2586803003
> Cr-Commit-Position: refs/heads/master@{#442448}
> Committed: https://chromium.googlesource.com/chromium/src/+/46b9f6aaaf5851014c2474365734e71ffe9367a0

TBR=aelias@chromium.org,bajones@chromium.org,dcheng@chromium.org,jbauman@chromium.org,klausw@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 655722 

Review-Url: https://codereview.chromium.org/2628963002
Cr-Commit-Position: refs/heads/master@{#443039}

[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/gpu/command_buffer/common/gles2_cmd_utils.cc
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/gpu/command_buffer/common/gles2_cmd_utils.h
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/gpu/ipc/service/gpu_command_buffer_stub.cc
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/third_party/WebKit/Source/modules/webgl/WebGLContextAttributeHelpers.cpp
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/third_party/WebKit/public/platform/Platform.h
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/ui/gl/gl_context.h
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/ui/gl/gl_context_egl.cc
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/ui/gl/gl_surface_egl.cc
[modify] https://crrev.com/a08094dee4ad5de452d011f1bdd9714815739348/ui/gl/gl_surface_egl.h

Labels: -M-57 M-58
We will be pivoting to a less intense solution for Android in M58.  This may be blocked until refactoring of this area to support desktop is complete.  
Project Member

Comment 15 by bugdroid1@chromium.org, Jan 27 2017

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

commit a316edeb21fbc8c122dbe64232c72c574155ed1b
Author: mthiesse <mthiesse@chromium.org>
Date: Fri Jan 27 03:58:09 2017

Remove Sync GetPose VRService call, implement VRVSyncProvider

This CL removes the Synchronous GetPose call from the VRService, in favor of a VRVSyncProvider that sends the pose with each VSync.

BUG= 655722 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2624633002
Cr-Commit-Position: refs/heads/master@{#446581}

[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/NonPresentingGvrContext.java
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/NonPresentingGvrContextImpl.java
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/BUILD.gn
[add] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/non_presenting_gvr_delegate.cc
[add] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/non_presenting_gvr_delegate.h
[add] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_gl_thread.cc
[add] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_gl_thread.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_shell.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_shell.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_shell_delegate.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_shell_delegate.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_shell_gl.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/chrome/browser/android/vr_shell/vr_shell_gl.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/content/browser/BUILD.gn
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/BUILD.gn
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/android/gvr/gvr_delegate.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/android/gvr/gvr_device.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/android/gvr/gvr_device.h
[add] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/empty.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/test/fake_vr_device.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/test/fake_vr_device.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/vr_device.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/vr_display_impl.cc
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/vr_display_impl.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/device/vr/vr_service.mojom
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/third_party/WebKit/LayoutTests/vr/resources/mock-vr-service.js
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/third_party/WebKit/Source/modules/vr/VRDisplay.h
[modify] https://crrev.com/a316edeb21fbc8c122dbe64232c72c574155ed1b/third_party/WebKit/Source/modules/vr/VRFrameData.cpp

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 27 2017

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

commit 961dc47e8f5b088debbab559fe81b85f32e9f9e4
Author: mthiesse <mthiesse@chromium.org>
Date: Fri Jan 27 18:05:56 2017

Allow VRDisplay to specify which frame the layer bounds should be updated at.

BUG= 655722 , 670891 

Review-Url: https://codereview.chromium.org/2612333002
Cr-Commit-Position: refs/heads/master@{#446707}

[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/chrome/browser/android/vr_shell/non_presenting_gvr_delegate.cc
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/chrome/browser/android/vr_shell/non_presenting_gvr_delegate.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/chrome/browser/android/vr_shell/vr_shell.cc
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/chrome/browser/android/vr_shell/vr_shell.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/chrome/browser/android/vr_shell/vr_shell_gl.cc
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/chrome/browser/android/vr_shell/vr_shell_gl.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/android/gvr/gvr_delegate.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/android/gvr/gvr_device.cc
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/android/gvr/gvr_device.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/test/fake_vr_device.cc
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/test/fake_vr_device.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/vr_device.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/vr_display_impl.cc
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/vr_display_impl.h
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/device/vr/vr_service.mojom
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
[modify] https://crrev.com/961dc47e8f5b088debbab559fe81b85f32e9f9e4/third_party/WebKit/Source/modules/vr/VRDisplay.h

I've reopened issue 655733 "WebVR mobile: render directly to the surface that we want" since that feature got deferred, it's blocked on issue 690106 "non-virtualized WebGL contexts cause screen tearing / out of sync WebVR frames".

New plan is to implement compositor bypass without directly drawing to the destination surface, this needs an extra copy but works around the sync issue.
Blockedon: 698643
Blockedon: 698923
Compositor bypass via mailbox copy ( issue 698643 ) is now implemented on trunk and available in Android builds from download-chromium.appspot.com.
Labels: -M-58 M-59
Status: Fixed (was: Started)
Bumping to M59, and marking as fixed since we have a working implementation as per  issue 698643  that's already available in Chrome Canary.

Comment 22 by kbr@chromium.org, Jun 14 2017

Blocking: 732522
Components: Blink>WebXR

Sign in to add a comment