New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 851873 link

Starred by 2 users

Issue metadata

Status: ExternalDependency
Owner:
OOO until 2019-01-24
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
M68



Sign in to add a comment

Phone crashes when GLSL structs are used as "out" fucntion parameters

Reported by michael....@human-interactive.org, Jun 12 2018

Issue description

Steps to reproduce the problem:
Open the testcase: https://jsfiddle.net/f2Lommf5/6830/

What is the expected behavior?
You should see a green plane on the lower right of the screeen. That means the shader is executed correctly.

What went wrong?
In error cases the phone crashes after the page was loaded. It seems that certain Android are not able to process "out" struct paramters in GLSL functions. The crash only happens when the code is executed in high precision. lowp and mediump works fine.

Did this work before? N/A 

Does this work in other browsers? N/A

Chrome version: 66.0.3359.158  Channel: stable
OS Version: 7.0.0
Flash Version: 

Tested with  LG Aristo and LG Fiesta (both have a Qualcomm Snapdragon 425). It does not happen with other devices like a Pixel 1 or Pixel 2. More information about the issue: https://github.com/mrdoob/three.js/issues/14137
 
I have to correct the issue: The phone only crashes when you try to assign values of the "struct" after the function call to other variables (see https://jsfiddle.net/f2Lommf5/6798). In the first test case only fails but the phone does not crash.
Labels: Needs-triage-Mobile
Cc: jbanavatu@chromium.org
Components: Blink
Labels: Needs-Feedback Triaged-Mobile
Tested the issue using #66.0.3359.158 on Android Samsung J7 7.0 as per the steps mentioned in original comment.No crash is seen upon navigating to  https://jsfiddle.net/f2Lommf5/6798.

@Reporter: Could you please update to latest chrome version 67.0.3396.87 and check if issue persists. If yes, please help us by providing crash id from chrome://crashes.

Thanks!!
Thanks for the feedback! I asked my colleague to do a new test with your recommended setup. BTW: You might want to verify the issue with a mobile device that has a GPU from Qualcomm.

Besides: If https://jsfiddle.net/f2Lommf5/6830/ does not crash your phone but the colored output is red, there is still a problem with the device.
Project Member

Comment 5 by sheriffbot@chromium.org, Jun 13 2018

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding the requester to the cc list.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 6 by mema...@gmail.com, Jun 14 2018

Repeated from https://github.com/mrdoob/three.js/issues/14137#issuecomment-397094343

Verified that this issue does occur with the latest Chrome version available (67.0.3396.87). There are no crash IDs listed at chrome://crashes

I'm presuming this is because it isn't just causing chrome to crash, but rather causing the whole phone to crash (like full, hard restart), and that is occurring before the problem can be recorded.

Comment 7 by mema...@gmail.com, Jun 14 2018

To elaborate on Michael's comment: the Samsung J7 appears to have either a Qualcomm MSM8939 Snapdragon 615 (with Adreno 405 GPU) or Exynos 7580 Octa (with Mali-T720MP2) depending on the exact model. This issue appears to manifest on phones run by a Qualcomm Snapdragon 425 (with Adreno 308 GPU)

I've been testing on an LG Aristo and an LG Fiesta. The overarching issue has been reported on 15 different specific devices from 7 manufacturers[1], most (all?) of which have the same Snapdragon 425 (though it's unconfirmed whether this crash on this exact test case occur on all of those; I'm currently charging a Samsung J3 with this same processor to verify)

[1]: https://github.com/mrdoob/three.js/issues/14137#issue-326298141

Comment 8 Deleted

Comment 9 by mema...@gmail.com, Jun 14 2018

Repeated from https://github.com/mrdoob/three.js/issues/14137#issuecomment-397167706

Just tested on a Samsung Galaxy J3 Luna Pro (SM-S327VL) which also has the same Snapdragon 425/Adreno 308, but is running Android 6.0.1 (security patch July 1, 2017). As reported in the original issue on the AFrame repo (https://github.com/aframevr/aframe/issues/3523#issuecomment-391611976), this version of Android does _not_ exhibit the errors described in this issue.

It seems no official update is available for this device, so I'm still unable to personally confirm the issues on a non-LG phone (though, as previously mentioned, numerous others have already done so: https://github.com/mrdoob/three.js/issues/14137#issue-326298141)

Comment 10 by mema...@gmail.com, Jun 14 2018

note for anyone trying to repro this: this issue causes the phone to crash completely and hard-restart, so make sure you don't have anything important open that you'll lose, and I'd recommend testing it in an incognito tab to avoid getting stuck in the same restart loop that I did: https://github.com/mrdoob/three.js/issues/14137#issuecomment-396348889
Labels: TE-NeedsTriageHelp
As per comment #!0 this issue seems to be hardware related.Hence adding TE-NeedsTriageHelp label for further inputs on same.

Thanks!

Comment 12 by rtoy@chromium.org, Jun 14 2018

Components: Internals>GPU

Comment 13 by rtoy@chromium.org, Jun 14 2018

Components: -Blink

Comment 14 by kbr@chromium.org, Jun 19 2018

Components: -Internals>GPU Internals>GPU>ANGLE Blink>WebGL Internals>GPU>Internals
Adding some more labels. Need to potentially add this to the WebGL conformance suite and report this to Qualcomm, though I'm not optimistic about the drivers for these phones being fixed.

Comment 15 by kbr@chromium.org, Jun 19 2018

Labels: GPU-Qualcomm
Labels: -Pri-2 ReleaseBlock-Stable M68 Mobile-te Pri-1
Owner: kbr@chromium.org
Status: Assigned (was: Unconfirmed)
Could repro this issue on LG Aristo/NRD90U with M67

Steps:
1. Launch Chrome 
2. Go to https://jsfiddle.net/f2Lommf5/6798
3. Phone crashes not just browser

kbr@, I have the device with me, I can drop off at your desk.

Comment 17 by kbr@chromium.org, Jun 30 2018

Submitter: have created a WebGL conformance test for this in this pull request:
https://github.com/KhronosGroup/WebGL/pull/2663

It fails on the affected phone, but doesn't crash the phone. Perhaps the JSFiddles are crashing because they're repeatedly rendering with the affected shader.

If you can figure out how to modify the conformance test to crash the phone, please put up another pull request once the above one lands. Alternatively, the tests in conformance/rendering/ may be a better starting point.

Is there anything actionable here on the Chrome side? If this is not a Chrome issue, should we remove the release-block label?
Status: ExternalDependency (was: Assigned)
I was holding off marking this ExternalDependency until new Android graphics tests landed:
https://android-review.googlesource.com/718028

but let me do so now. There is nothing we can do from the Chrome side about this.

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 21

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

commit 6f64860d89fdb6d3397286e722b42f18c7df7db7
Author: Kenneth Russell <kbr@chromium.org>
Date: Sat Jul 21 02:54:54 2018

Roll WebGL a5c263c..21dbf06

https://chromium.googlesource.com/external/khronosgroup/webgl.git/+log/a5c263c..21dbf06

Bug:  830901 , 851870, 851873,  859400 ,  866089 
Tbr: zmo@chromium.org
Tbr: kainino@chromium.org
Cq-Include-Trybots: luci.chromium.try:win_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_angle_rel_ng;luci.chromium.try:win_angle_rel_ng
Change-Id: Icef8ddc970ccb6653e95920c28b4d003d1b27100
Reviewed-on: https://chromium-review.googlesource.com/1144306
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577063}
[modify] https://crrev.com/6f64860d89fdb6d3397286e722b42f18c7df7db7/DEPS
[modify] https://crrev.com/6f64860d89fdb6d3397286e722b42f18c7df7db7/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/6f64860d89fdb6d3397286e722b42f18c7df7db7/content/test/gpu/gpu_tests/webgl_conformance_revision.txt

Labels: -ReleaseBlock-Stable
Removing Release-Block-Stable label as there is nothing the Chrome team can do to work around this driver bug.

Sign in to add a comment