Closed Bug 1683936 Opened 4 years ago Closed 4 years ago

[Bug] all sites are blank since 84.1.1 on Adreno 510

Categories

(Core :: Graphics: WebRender, defect, P1)

Unspecified
Android
defect

Tracking

()

VERIFIED FIXED
86 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox84 blocking verified
firefox85 + verified
firefox86 + fixed

People

(Reporter: kbrosnan, Assigned: jnicol)

References

(Blocks 2 open bugs, Regression)

Details

(Keywords: correctness, regression)

Attachments

(1 file)

From github: https://github.com/mozilla-mobile/fenix/issues/17181.

Firefox does not show(render) any website. No google search, nothing. You just got a white or black pane where content should be shown, no matter which URL. Looks like others have this problem too: https://www.reddit.com/r/firefox/comments/kfg3zb/8411_stable_any_url_only_shows_a_blank_background/.
It looks like you can still click on unvisible links on this blank screen and the url changes, so it must be the rendering .

I am using firefox for a long time on this device and never got a ( serious ;-) )problem before. Just V 84.1.1 is completly broken for me.
I have no plugins installed and already restarted the device and so on...

Steps to reproduce

I got an update from playstore and now firefox does not show any more webites. You either get a white or a black screen.
Just install firefox 84.1.1 and you get the trouble. ( on this device )

Expected behavior

firefox should show websites

Actual behavior

firefox just shows white or black blank screen as content.

Device information

  • Android device: Xiaomi redmi note 3 global
    Android 6.0.1 MMB29M ( MIUMI Global 10.2 Stable 10.2.1.0(MHRMIXXM))

  • Fenix version: 84.1.1 (Build #2015781795)

Change performed by the Move to Bugzilla add-on.

I tried the Android 6 devices I have and are not able to reproduce. I have a Mali based Mi-498 and Adreno 330 based Xiaomi Mi 4 LTE.

:jnicol, is WebRender enabled on Adreno 510?

Flags: needinfo?(jnicol)

Bug 1656554 seems to enable WebRender on Adreno 510 since Firefox 81.

Flags: needinfo?(jnicol)

I have a feeling this might be the same as bug 1678585. It was caused by using persistently mapped buffers (bug 1661528) which landed in 84. It is an Adreno driver bug which appears to be present in Android 6, but not later versions.

I had only seen it on an Adreno 4xx running Android 6 (which wasn't a problem because Adreno 4xx does not have webrender enabled yet). But I can believe that it also affects Adreno 5xx running Android 6. All my Adreno 5xx devices run newer android versions, so I had not seen this. Kevin's Adreno 3xx device would not reproduce because they do not support the EXT_buffer_storage extension, so we do not use the buggy code path.

What we need to do is ensure that supports_buffer_storage is false here on affected devices. For now, I would just do a blanket check for all Adreno. ie wrap the current condition in parenthesis, and append && !is_adreno. (And move the existing let is_adreno... statement up a few lines)

As a follow up, we can try to find a precise driver version to disable it against.

Component: Graphics → Graphics: WebRender

There is a driver bug on old versions of the Adreno driver which
prevents usage of persistenly mapped buffers for texture
uploads. Creating and mapping the buffer works correctly, but
attempting to upload to a texture from the buffer results in an error
due to the buffer still being mapped.

This means that no texture data is uploaded, essentially meaning that
we do not render anything at all.

It appears to affect at least Adreno 4xx and 5xx devices running
Android 6. For now, simply disable persistent mapping on all Adreno
devices, until we know more specifically which are affected.

Assignee: nobody → jnicol
Status: NEW → ASSIGNED
Pushed by jnicol@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1de3ccd3da57 Disable persistently mapped buffers on Adreno devices. r=sotaro

Comment on attachment 9194535 [details]
Bug 1683936 - Disable persistently mapped buffers on Adreno devices.

Beta/Release Uplift Approval Request

  • User impact if declined: Nothing rendered at all for users with Adreno GPUs running Android 6
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It simply switches us to using a different texture upload path, which is well tested on other platforms and was used on these devices until 84. The code path isn't even very different, it just avoids a driver bug on these devices.
  • String changes made/needed:
Attachment #9194535 - Flags: approval-mozilla-release?
Attachment #9194535 - Flags: approval-mozilla-beta?
Has Regression Range: --- → yes

A user on GitHub has tested the patch and confirmed it fixes the issue: https://github.com/mozilla-mobile/fenix/issues/17181#issuecomment-750329817

Comment on attachment 9194535 [details]
Bug 1683936 - Disable persistently mapped buffers on Adreno devices.

This sounds like it basically makes Firefox for Android unusable for affected users. Approved for Fenix 85.0.0-beta.4 and 84.1.2.

Attachment #9194535 - Flags: approval-mozilla-release?
Attachment #9194535 - Flags: approval-mozilla-release+
Attachment #9194535 - Flags: approval-mozilla-beta?
Attachment #9194535 - Flags: approval-mozilla-beta+
Blocks: 1684047
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch

Verified as fixed on the following builds: 84.1.2 dot RC, 85.0.0.beta4 and Focus 8.11.2 GV 84.
With the following devices: Google Pixel 4 XL (11), Samsung Galaxy S10+ (10), Nexus 4 (Android 5), Moto G (Android 10), Xiaomi Redmi Note 8T (Android 9), Nexus 5 (Android 6.0.1).
Due to very specific devices running Adreno 510, we tried to verify this bug on the closest devices we got.
I also tried with emulators, but no luck there finding one virtual device with Adreno 510.
Also, the bug was verified by the reporter on the exact device, and it works as expected!

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: