Closed Bug 1673939 Opened 1 month ago Closed 23 days ago

garbled text display towards end of long page

Categories

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

Firefox 82
x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox82 --- disabled
firefox83 --- disabled
firefox84 --- fixed

People

(Reporter: igor.v.kovalenko, Assigned: aosmond)

References

(Blocks 2 open bugs)

Details

Attachments

(7 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0

Steps to reproduce:

I'm running into this issue on kde + wayland but also reproduced it in plain X11 session without display manager using latest Nightly build + webrender enabled.

  1. Enable webrender via gfx.webrender.all:true

  2. Open long text page https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.8.15 and go to end of page, try reading text.

Another example https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/227 wait for page to load, try reading last comments at the end of page.

Actual results:

Some lines of text are not completely drawn, others are invisible, and some are displayed correctly.
Scrolling up/down and then selecting partially invisible text does change which lines are garbled.
At the top of page all text is visible as expected; problems occur at some place down .

Expected results:

All text on page should be visible.

Using mozregression to find first occurrence ~exactly matching screenshot

MOZ_DISABLE_CONTENT_SANDBOX=1 MACH_USE_SYSTEM_PYTHON=1 ./mach mozregression --persist /sources/firefox/mozregression-cache --good 68 --bad 72 --pref gfx.webrender.all:true -a https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.8.15
...
88:22.81 INFO: Narrowed integration regression window from [2d52a5a0, c0f887d8] (3 builds) to [2d52a5a0, b5cfc7ed] (2 builds) (~1 steps left)
88:22.81 INFO: No more integration revisions, bisection finished.
88:22.81 INFO: Last good revision: 2d52a5a00e007ff7f78a053a446e246828cf3d60
88:22.81 INFO: First bad revision: b5cfc7ed22b48babd34b6f1cbd2b1b7d93648a07
88:22.81 INFO: Pushlog: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=2d52a5a00e007ff7f78a053a446e246828cf3d60&tochange=b5cfc7ed22b48babd34b6f1cbd2b1b7d93648a07

Digging deeper revealed that there was yet older issue bisected like this, for which Screenshot of older problem where text is garbled but appears to be visible is attached. Versions even older than below were displaying text cleanly:

MOZ_DISABLE_CONTENT_SANDBOX=1 MACH_USE_SYSTEM_PYTHON=1 ./mach mozregression --persist /sources/firefox/mozregression-cache --good 6 --pref gfx.webrender.all:true -a https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.8.15
...
15:13.76 INFO: Narrowed nightly regression window from [2019-04-16, 2019-04-18] (2 days) to [2019-04-17, 2019-04-18] (1 days) (~0 steps left)
15:13.76 INFO: Got as far as we can go bisecting nightlies...
15:13.76 INFO: Last good revision: 02b89c29412b6c1444fe32a4847e5261e2bb3d00 (2019-04-17)
15:13.76 INFO: First bad revision: 2ccc6648064315964dd23039ad28ebf7d9f82999 (2019-04-18)
15:13.76 INFO: Pushlog: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=02b89c29412b6c1444fe32a4847e5261e2bb3d00&tochange=2ccc6648064315964dd23039ad28ebf7d9f82999

Component: Untriaged → Graphics: WebRender
Product: Firefox → Core

Testing again, issue is reproduced on Firefox Nightly 20201029095639 clean profile + gfx.webrender.all=true, about:support attached.

Testing again, issue is NOT reproduced on Firefox Nightly 20201029095639 clean profile + gfx.webrender.all=true and software rendering llvmpipe, about:support attached.

Running with software rendering llvmpipe like this:

export MOZ_LAYERS_ALLOW_SOFTWARE_GL=1
export LIBGL_ALWAYS_SOFTWARE=true
./firefox -P Nightly
OS: Unspecified → Linux
Hardware: Unspecified → x86_64

Looks like the issue is isolated somewhere between webrender and mesa r600 driver running on Radeon HD 4290

Just verified that Google Chrome in the same environment does not have this rendering issue.

See Also: → 1667534

Resumed bisecting firefox using source build, confirming earlier suggestion by @emilio

The first bad revision is:
changeset:   469949:c513275730f6
user:        Glenn Watson <github@intuitionlibrary.com>
date:        Wed Apr 17 21:06:19 2019 +0000
summary:     Bug 1545006 - Use external scroll offsets to move primitives and clips into local space. r=kats

mach run for changeset 469949:c513275730f6 using test file generated with (for i in $(seq 1 1000000); do echo "0" ${i}; done) > testcase-narrow.txt
with r600 hardware it starts to show visible artifacts near line 587 and end of page is already not visible at all
with llvmpipe software it is much better but in the end of page text lines are misplaced, attached screenshot

Attached screenshot for mach run of changeset 469949:c513275730f6 with llvmpipe software rendeding and gfx.webrender.all:true

GDK_BACKEND=x11 MOZ_DISABLE_CONTENT_SANDBOX=1 MOZ_LAYERS_ALLOW_SOFTWARE_GL=1 LIBGL_ALWAYS_SOFTWARE=false ./mach run -P dev

(In reply to Igor Kovalenko from comment #9)

Mesa bug report https://gitlab.freedesktop.org/mesa/mesa/-/issues/3720

Attached apitrace running Firefox Nightly 84.0a1 20201030034830 firefox-long-page.trace.xz to mesa bug tracker item.

To double-check this finding I did hg update --rev 469948:a3acb30248ff and then I see no issues with text display with gfx.webrender.all:true for all test cases above, both with hardware r600 and software llvmpipe rendering.

Andrew, can we block this hardware for the Linux WebRender release?

Flags: needinfo?(aosmond)
Assignee: nobody → aosmond
Severity: -- → S3
Flags: needinfo?(aosmond)
Priority: -- → P3
Blocks: wr-linux
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Attachment #9186109 - Attachment description: Bug 1673939 - Block WebRender for AMD RS880 GPUs with Mesa drivers due to garbled text. → Bug 1673939 - Block WebRender for AMD R600 GPUs with Mesa drivers due to garbled text.
Pushed by aosmond@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/0cf49d959929
Block WebRender for AMD R600 GPUs with Mesa drivers due to garbled text. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 23 days ago
Resolution: --- → FIXED
Target Milestone: --- → 84 Branch
You need to log in before you can comment on or make changes to this bug.