invalidation bug with text-shadows + mix-blend-mode
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr91 | --- | unaffected |
firefox97 | --- | unaffected |
firefox98 | --- | unaffected |
firefox99 | + | verified |
People
(Reporter: Gankra, Assigned: gw)
References
(Regression)
Details
(Keywords: regression)
Attachments
(5 files)
STR:
- go to https://gankra.github.io/blah/
- resize the window horizontally
alternative:
- go to https://gankra.github.io/blah/
- scroll down to the bottom of the page
- scroll back to the top of the page
expected result:
chromatic abberation-y "Faultlore" text should render properly (colored fringing but coherent)
actual result:
chromatic abberation-y "Faultlore" text has huge random blocks of solid red, is clearly being invalidated wrong
I incidentally already have a mostly reduced example of this at https://gankra.github.io/blah/rustblog/before.html.
The problematic input is:
- 3 nested copies of the text "Faultlore"
- text set to transparent
- each textrun has a different color shadow at a different offset (cyan, magenta, yellow)
- the textruns are merged with
mix-blend-mode: darken
The net effect of this is that you get colorful printer-style bleeding around the edges but where the shadows all overlap you get a fairly clean black copy of the text. This is obviously very evil and not terribly surprising that it breaks webrender.
This appears to be a recent regression. I developed and tested this abomination in firefox nightly on this machine only a few days ago, and resizing the window never corrupted the result during that time.
Reporter | ||
Comment 1•2 years ago
|
||
Reporter | ||
Comment 2•2 years ago
|
||
Reporter | ||
Comment 3•2 years ago
|
||
not 100% sure this is invalidation after messing around with window resizing, but these corruption patterns are so weird that there's something clearly very messed up happening.
Comment 4•2 years ago
|
||
if it glitches for you if you pinch-zoom, might be a dupe of bug 1756929
Updated•2 years ago
|
![]() |
||
Comment 5•2 years ago
|
||
[Tracking Requested - why for this release]:
Regression window:
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 6•2 years ago
|
||
A slightly more reduced test case
Comment 7•2 years ago
|
||
Regressor landed in 99
Updated•2 years ago
|
Assignee | ||
Comment 8•2 years ago
|
||
Setting gfx.webrender.debug.force-picture-invalidation
works around it for me, looks to be an issue where we don't invalidate either the correct bounding rects, or deeply enough in the surface hierarchy.
Assignee | ||
Comment 9•2 years ago
|
||
Hmm, looks like there are two issues - setting gfx.webrender.debug.force-picture-invalidation
fixes one problem, but there's still glitches during resize which look like a different bug.
Assignee | ||
Comment 10•2 years ago
|
||
Comment 11•2 years ago
|
||
possible to get a try build for testing?
Assignee | ||
Comment 12•2 years ago
|
||
(In reply to Mayank Bansal from comment #11)
possible to get a try build for testing?
Yup, you beat me to it - was just about it post it (artifacts not available yet but should be soon).
https://treeherder.mozilla.org/jobs?repo=try&revision=422897f59ab4bb22f71da5d2c68426ebb86ab467
Updated•2 years ago
|
Comment 13•2 years ago
|
||
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7aaefe97188d Fix mix-blend mode on parent surfaces with snapping enabled r=gfx-reviewers,lsalzman
Comment 14•2 years ago
|
||
Backout by nerli@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d6aabaf771d4 Backed out changeset 7aaefe97188d for causing bustage in mix-blend-layers.yaml CLOSED TREE
Comment 15•2 years ago
|
||
Backed out changeset 7aaefe97188d (Bug 1757201) for causing bustage in mix-blend-layers.yaml CLOSED TREE
Log: https://treeherder.mozilla.org/logviewer?job_id=369603264&repo=autoland&lineNumber=1830
Backout: https://hg.mozilla.org/integration/autoland/rev/d6aabaf771d4c6ee0a63b24e79b3afe379ce7bd6
Assignee | ||
Comment 16•2 years ago
|
||
Added a bit of fuzziness to account for android hardware rendering and re-pushed.
Comment 17•2 years ago
|
||
Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/157f7165d8d9 Fix mix-blend mode on parent surfaces with snapping enabled r=gfx-reviewers,lsalzman
Comment 18•2 years ago
|
||
bugherder |
Comment hidden (obsolete) |
Updated•2 years ago
|
Comment 20•2 years ago
|
||
I was able to reproduce the issue on Win10x64 using build 99.0a1(20220225104705), when scrolling up/down text appears Red.
Verified as fixed on Win10x64 / Ubuntu 20.4 / Mac 10.13 using builds: 99.0b4(20220315185755) and 100.0a1 (20220316095231).
Comment 21•2 years ago
|
||
(In reply to Andra Esanu from comment #19)
(In reply to Noemi Erli[:noemi_erli] from comment #18)
== Change summary for alert #33487 (as of Mon, 07 Mar 2022 11:27:48 GMT) ==
Improvements:
Ratio Test Platform Options Absolute values (old vs new) 149% motionmark_webgl 3DGraphics-WebGL linux1804-64-shippable-qr e10s fission stylo webrender-sw 4.09 -> 10.18 143% motionmark_webgl 3DGraphics-WebGL linux1804-64-shippable-qr e10s fission stylo webrender 4.26 -> 10.34 40% motionmark_webgl 3DGraphics-WebGL linux1804-64-shippable-qr e10s fission stylo webrender 7.10 -> 9.93 21% glvideo Mean tick time across 100 ticks: linux1804-64-shippable-qr e10s fission stylo webrender 21.84 -> 17.17 20% glvideo Mean tick time across 100 ticks: linux1804-64-shippable-qr e10s fission stylo webrender-sw 21.54 -> 17.14 For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=33487
:jgilbert there are some significant improvements associated with this change, can you confirm these are expected/genuine?
Comment 22•2 years ago
|
||
@gw these seem high, or is this a kind of small-change-big-effect we expect here?
Assignee | ||
Comment 23•2 years ago
|
||
The patch in this bug should only affect mix-blend-mode
elements (and I wouldn't expect a major performance difference), which I doubt the above tests have? So it seems likely to be unrelated to this bug, perhaps an incorrect attribution?
Comment 24•2 years ago
|
||
Andra, could you review the alert to see if this is the correct bug to associate with this improvement?
Comment 25•2 years ago
|
||
Thank you for this. It seems the culprit was a bit earlier, I've linked the alert to bug 1638466.
Description
•