New issue
Advanced search Search tips

Issue 883940 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 21
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug
Proj-VR
Proj-XR
Proj-XR-VR



Sign in to add a comment

Support VR frame buffer dumping

Project Member Reported by bsheedy@chromium.org, Sep 13

Issue description

The regular approach to taking screenshots does not work very well while in VR due to:

1. GVR applying distortion and asynchronous reprojection after a frame is submitted
2. Screenshots not working (which is expected) on standalone VR devices

This can be worked around in Chromium by adding the ability to dump frame buffers to disk instead of relying on Android's screenshot capabilities.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 14

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

commit 0c5d1f89e789aaf97aade7b51768fd96a8be8710
Author: bsheedy <bsheedy@chromium.org>
Date: Fri Sep 14 17:55:18 2018

Support specifying port for EmbeddedTestServer

Adds the ability for the native and Java versions of EmbeddedTestServer
to be started using a specified port instead of always using an auto
selected one.

The use case that prompted this is pixel tests in VR, which need to use
the test server (instead of file URLs) in order to grant permissions to
pages, but need the URL to remain constant so that captured images
don't differ between test runs.

Bug:  883940 
Change-Id: I7c0fa1a86cdf15d0e3271de6722d315a0191327a
Reviewed-on: https://chromium-review.googlesource.com/1225304
Reviewed-by: Zhongyi Shi <zhongyi@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591389}
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/android_webview/test/embedded_test_server/java/src/org/chromium/android_webview/test/AwEmbeddedTestServer.java
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServer.java
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerImpl.java
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/android/javatests/src/org/chromium/net/test/EmbeddedTestServerRule.java
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/android/javatests/src/org/chromium/net/test/IEmbeddedTestServerImpl.aidl
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/embedded_test_server/android/embedded_test_server_android.cc
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/embedded_test_server/android/embedded_test_server_android.h
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/embedded_test_server/embedded_test_server.cc
[modify] https://crrev.com/0c5d1f89e789aaf97aade7b51768fd96a8be8710/net/test/embedded_test_server/embedded_test_server.h

Project Member

Comment 2 by bugdroid1@chromium.org, Sep 18

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

commit fa3e442d0c712a4890b3bc158ee9c26504519beb
Author: bsheedy <bsheedy@chromium.org>
Date: Tue Sep 18 21:39:31 2018

Add VR framebuffer dump support

Adds support for dumping VR frame buffers to disk during
tests instead of relying on Android's screenshot
capabilities. This works around any potential flakiness
in image diff tests that could be caused by asynchronous
reprojection or distortion.

Also refactors the code used to be notified of when the
native UI reaches quiescence to be applicable to any
type of event that tests need to block on. In this
case, it is used to block until the frame buffers have
been fully dumped, as otherwise images could get
corrupted by the test ending during a dump.

Bug:  883940 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:linux_vr;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I1b18deaabfe54ccc4890f3345a19402bbccefe9a
Reviewed-on: https://chromium-review.googlesource.com/1213925
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Aldo Culquicondor <acondor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592206}
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/android/java/src/org/chromium/chrome/browser/vr/VrShell.java
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/android/javatests/src/org/chromium/chrome/browser/vr/TestVrShellDelegate.java
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserDialogTest.java
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/android/javatests/src/org/chromium/chrome/browser/vr/VrBrowserTransitionTest.java
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/android/javatests/src/org/chromium/chrome/browser/vr/util/NativeUiUtils.java
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/android/vr/gvr_graphics_delegate.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/android/vr/gvr_graphics_delegate.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/android/vr/vr_gl_thread.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/android/vr/vr_gl_thread.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/android/vr/vr_shell.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/android/vr/vr_shell.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/browser_renderer.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/browser_renderer.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/browser_renderer_browser_interface.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/browser_renderer_unittest.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/graphics_delegate.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/input_delegate_for_testing.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/testapp/gl_renderer.cc
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/testapp/gl_renderer.h
[modify] https://crrev.com/fa3e442d0c712a4890b3bc158ee9c26504519beb/chrome/browser/vr/ui_test_input.h

Status: Fixed (was: Started)

Sign in to add a comment