Closed Bug 1725624 Opened 3 years ago Closed 2 years ago

Rendering issues with hardware WebRender on Raspberry Pi 4

Categories

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

Firefox 91
ARM64
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1738816

People

(Reporter: vinceying113, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

(Keywords: correctness)

Attachments

(3 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0

Steps to reproduce:

Enable hardware WebRender on a Raspberry Pi 4

Actual results:

On starting Firefox, hardware WebRender will initially appear to be working correctly with no artifacts.

After a few minutes of use, rectangular portions of the screen will begin turning white. These rectangles will move around the window and obscure different parts of the browser.

Expected results:

It would be great to get hardware WebRender working on the Pi. layers.acceleration OpenGL is working fine, but if this is going away, the Pi will lose GPU acceleration.

Component: Untriaged → Graphics: WebRender
Product: Firefox → Core
Blocks: linux-egl, raspi
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: correctness
OS: Unspecified → Linux
Hardware: Unspecified → ARM64
Severity: -- → S4
Priority: -- → P3

Can you post a screenshot? This sounds like it might be a driver bug so it's probably worth reporting upstream. If you do report it upstream can you post a link here?

Flags: needinfo?(vinceying113)
Attached image 2143.jpg

Here's a screenshot. You can see that a portion of the screen is not displaying.

I don't know where else to report it. I assume whoever writes the driver for the Broadcom GPU. But I don't know who does that.

Flags: needinfo?(vinceying113)

What does glxinfo say?

Flags: needinfo?(vinceying113)
Attached file glxinfo
Flags: needinfo?(vinceying113)
Attachment #9240958 - Attachment mime type: application/octet-stream → text/plain

Please also open about:support, click on "Copy text to clipboard" and paste it here. Thanks!

(In reply to vinceying113 from comment #2)

I don't know where else to report it. I assume whoever writes the driver for the Broadcom GPU. But I don't know who does that.

You are using the open Mesa drivers, so the right place to report it is https://gitlab.freedesktop.org/mesa/mesa/-/issues (using v3d as driver name). This slightly reminds me of https://gitlab.freedesktop.org/mesa/mesa/-/issues/4620 though, maybe it's the same underlying issue.

Attached file about:support

Compositing: OpenGL

That codepath has been removed. Please set gfx.webrender.all to true and restart Firefox. Does this bug also occur with WebRender or do you see different ones?

You need to set gfx.webrender.force-legacy-layers to false.

Please refer to my original bug report above. OpenGL layers works, hardware WebRender does not.

This is most likely a driver bug and nothing we can do something about. I've pinged a v3d driver dev at https://gitlab.freedesktop.org/mesa/mesa/-/issues/4620#note_1059340, hopefully he or somebody else will have a look.

(vinceying113 from comment 7)

Version: 92.0
Window Protocol: wayland
Description: V3D 4.2
Vendor ID: Broadcom
Device ID: V3D 4.2
Driver Vendor: mesa/swrast
Driver Version: 21.0.3.0

Raspberry Pi4 driver info looked like this in the past:
(Leo_sk from bug 1661359 comment 7)

Window Protocol: x11
Description: V3D 4.2
Vendor ID: 0x14e4
Device ID: 0xffff
Driver Vendor: mesa/vc4

Either the driver vendor is not correctly displayed or you might not even be using your GPU.
Because if one uses Software GL with too little RAM, glitches can occur (bug 1729779 comment 42 was about Firefox' built-in software gl library while you seem to use swrast).

You might be falling back to swrast because you are using Wayland.
For example, GBM has been reported as broken on Raspberry Pi 4.
https://github.com/lgsvl/meta-lgsvl-browser/commit/282c2b24b604b7ab88c1904eafb17aff75e9ccac
https://github.com/raspberrypi/linux/issues/3411

Try using X11 and set gfx.x11-egl.force-enabled=true (because you need EGL instead of GLX to be able to use GLES3 for hardware WebRender on Raspberry Pi 4).

(In reply to Darkspirit from comment #12)

Either the driver vendor is not correctly displayed or you might not even be using your GPU.
Because if one uses Software GL with too little RAM, glitches can occur (bug 1729779 comment 42 was about Firefox' built-in software gl library while you seem to use swrast).

Does this bug also occur with gfx.webrender.force-legacy-layers=false and gfx.webrender.software=true ?

Thanks for submitting to Mesa.

WebRender issue is the same with X11 and EGL. Bug does not occur with software WebRender. I don't think it's using software due to the performance - OpenGL layers is notably smoother than software WebRender.

(In reply to vinceying113 from comment #14)

OpenGL layers is notably smoother than software WebRender.

How does about:support look like if you start Firefox with $ LIBGL_ALWAYS_SOFTWARE=1 firefox? (Please attach it.)
Is it slower (does the driver vendor change to mesa/llvmpipe) or does it have the same speed (because you are assumingly already using it).

Yes, performance is poor when using software.

GPU #1
Active Yes
Description llvmpipe (LLVM 12.0.0, 128 bits)
Vendor ID Mesa/X.org
Device ID llvmpipe (LLVM 12.0.0, 128 bits)
Driver Vendor mesa/llvmpipe
Driver Version 21.0.3.0
RAM 0

So either a) the driver vendor is incorrectly reported as swrast when actually using vc4 (?) or b) swrast is faster than llvmpipe.
swrast will be gone as soon as your distribution updates Mesa: https://www.phoronix.com/scan.php?page=news_item&px=Mesa-Kills-SWRAST

Driver Version: 21.0.3.0

I missed this, you already have 21. It seems there was not "the one" swrast:
https://docs.mesa3d.org/relnotes/21.0.0.html

Classic swrast dri driver removed in favor of gallium swrast (llvmpipe or softpipe)

So either a) the driver vendor is incorrectly reported as swrast when actually using vc4 or b) softpipe (as swrast) is faster than llvmpipe.

https://dri.freedesktop.org/doxygen/gallium/softpipe.html

The softpipe driver is a software implementation of the Gallium3D interface.
It will be used as a reference implementation and as a fallback driver when a hardware driver isn't available

See Also: → 1730936
No longer blocks: linux-egl
Depends on: linux-egl

The driver should now be reported as mesa/software-uncommon, something we can likely fix in bug 1730936 (dmabuf detection and software driver detection are currently closely coupled). Can somebody post an up-to-date about:support from nightly?

Summary: Hardware WebRender on Raspberry Pi 4 → Rendering issues with hardware WebRender on Raspberry Pi 4

This bug was about the OpenGL compositor. Similar bug with Hardware WebRender was bug 1738816. Remaining HW WR bug is bug 1784327.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: