Open Bug 1364930 Opened 7 years ago Updated 2 years ago

After the Flood WebGL 2 demo renders incorrectly on ARM Mali Android GPU devices on Medium graphics quality and higher.

Categories

(Core :: Graphics: CanvasWebGL, defect, P3)

55 Branch
defect

Tracking

()

People

(Reporter: jujjyl, Unassigned)

Details

(Whiteboard: [gfx-noted])

Attachments

(6 files)

STR: https://playcanv.as/e/p/44MRmJRU/

If running After the Flood demo on Very Low or Low graphics quality on Firefox for Android on an ARM Mali device (tested on Huawei P10 Plus), it renders properly.

However if upping the graphics quality to Medium or higher, the rendering becomes corrupt, with most geometry missing.

(The above URL has a popup check to yell if attempting to run on a mobile device, fetch the desktop version of the page to avoid, or use via emunittest, which has the popup removed and easy to run links for different graphics quality levels)
Attached image Landscape orientation
I was trying to triage this by running the WebGL conformance suite on the device in the hopes that it would already highlight the cause of the glitch without the need to dive in to difficult GL bug hunt. That attempt is being made difficult by the following two issues

  - https://bugzilla.mozilla.org/show_bug.cgi?id=1362320: https://bugzilla.mozilla.org/show_bug.cgi?id=1362320: Crash in libGLES_mali_v2.so@0x65a4d8 in WebGL 2 conformance test deqp/data/gles3/shaders/arrays
  - https://bugzilla.mozilla.org/show_bug.cgi?id=1362319: Firefox hangs on uniform buffer WebGL 2 conformance tests on ARM Mali-G71 MP8 (on a Huawei P10 Plus)

which are preventing the WebGL 2 conformance suite from finishing on the device. So it might make sense to attempt to resolve those first, which might unblock finding clues to this bug.
Priority: -- → P3
Whiteboard: [gfx-noted]
Updated STR:

1. visit: http://clb.demon.fi/t/2017-02-08-AfterTheFlood/?quality=medium_shadows&hidemenu

which should render properly.

2. then visit: http://clb.demon.fi/t/2017-02-08-AfterTheFlood/?quality=verylow_high_shadows&hidemenu

which shows the graphical artifacts.

Affected devices:
 - Samsung Galaxy S7 Edge SM-G935F - Android 7.0, Kernel 3.18.14-11104523 (NRD90M), Fennec 55.0a1 (2017-05-19), ARM Mali-T880, OpenGL ES 3.2 v1.r12p1-03dev0.228ab63cced004f840e7dd47b762a1d0

 - Huawei P10 Plus - Android 7.0, Kernel 4.1.18-gfd75bbb (VKY-L29), Fennec 55.0a1 (2017-05-19) - ARM Mali-G71, OpenGL ES 3.2 v1.r2p0-02dev0.f7269486f3e0e3b308edf85872e361f4

Tested to be unaffected (when the device does not crash):
 - Google Pixel XL - Android 7.1.2, Kernel 3.18.31-g416bf43 (marlin N2G47O), Fennec 55.0a1 (2017-05-19) - Qualcomm Adreno 530, OpenGL ES 3.2 V@145.0 (GIT@Idb2b4cb785)
Correct rendering from Google Pixel XL (when the device does not crash, bug 1367417)
Incorrect rendering on a Huawei P10 Plus (S7 Edge has the same glitch)
To add to comment 5, the only difference between medium_shadows and verylow_high_shadows is that in the first mode, shadowQuality is set to DEMOSETTING_MEDIUM, whereas in the second mode, it is set to DEMOSETTING_HIGH.
Here is a minimal test case to reproduce. This works on desktop, but fails on ARM Mali with an error

> uncaught exception: could not compile shader:0:5: S0032: no default precision defined for parameter 'webgl_33955952fa6dcc32'

Jeff, does this look like a bug in shader translation rather than with ARM Mali GPU drivers?
Flags: needinfo?(jgilbert)

A couple shader translater updates later, is this still a problem?

Flags: needinfo?(jgilbert) → needinfo?(jujjyl)

clb.demon.fi is now clb.confined.space, so the URLs are available at e.g.

http://clb.confined.space/t/2017-02-08-AfterTheFlood/?quality=verylow_high_shadows&hidemenu

Tested the issue today on Huawei P10 Plus, and the bug does still unfortunately persist.

Flags: needinfo?(jujjyl)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: