Broken rendering of elements with clip-path on Wayland Linux
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox88 | --- | wontfix |
firefox89 | --- | wontfix |
firefox90 | --- | verified |
People
(Reporter: lutoma, Assigned: gw)
References
(Regression)
Details
(Keywords: regression)
Attachments
(5 files)
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
Steps to reproduce:
Attempt to render this test file:
<!doctype html>
<div></div>
<style>
body {
height: 200vw;
}
div {
background: rebeccapurple;
height: 100vh;
clip-path: polygon(50vw 0, 100vw 50vh, 50vw 100vh, 0 50vh);
}
</style>
Actual results:
A broken partial rendering of the element, with flickering when scrolling/switching tabs/otherwise interacting with it.
Screenshots (External host since I can only attach one in Bugzilla it seems):
- Firefox 88: https://fnord.cloud/s/s4yxCe5Fwe32aaj/preview
- Nightly (fresh profile): https://fnord.cloud/s/GGc3J685w6LK9fX/preview
- Firefox 87 (working properly): https://fnord.cloud/s/3B6pNDYwWrBDzFf/preview
- Chromium (working properly): https://fnord.cloud/s/c6rDqAQaALPgBj4/preview
Expected results:
A stable render of the element. This used to work in Firefox 87 with Wayland enabled, so this is a regression.
Reporter | ||
Updated•4 years ago
|
Comment 1•4 years ago
|
||
The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.
Comment 2•4 years ago
|
||
Comment 3•4 years ago
|
||
It works as expected here on Nightly (with and without wayland).
Is there any chance you could install mozregression (with pip install --user mozregression
) and run mozregression --good 87 --bad 88 -a https://bugzilla.mozilla.org/attachment.cgi?id=9217938
, to figure out what broke this for you?
Alternatively, can you attach the contents of your about:support
page? Thanks!
Reporter | ||
Comment 4•4 years ago
|
||
Final lines of the mozregression output:
7:48.12 INFO: Narrowed integration regression window from [3e627b12, 14fac67d] (3 builds) to [3e627b12, c7760ee4] (2 builds) (~1 steps left)
7:48.12 INFO: No more integration revisions, bisection finished.
7:48.12 INFO: Last good revision: 3e627b1236768fa8fa9fe915c7fdab32f96670ab
7:48.12 INFO: First bad revision: c7760ee4f8e2f5f2d263067b7a206c976a188d0b
7:48.12 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=3e627b1236768fa8fa9fe915c7fdab32f96670ab&tochange=c7760ee4f8e2f5f2d263067b7a206c976a188d0b
Looking at the commit in question, it does change some WebRender gfx code to fix bug #1696301, so it seems plausible to me that it could case the issue (but I know nothing about Firefox internals).
During testing I've also noticed that the issue only seems to appear if the Firefox window is wider than ~2000 pixels (window.outerWidth) / ~4000 rendered pixels (High-DPI screen).
Reporter | ||
Comment 5•4 years ago
|
||
Comment 6•4 years ago
|
||
Yeah, that sounds like a patch that could cause this, I think. Glenn is on PTO, Brad, any chance you could take a look since you reviewed the change? Thanks!
Updated•4 years ago
|
Comment 7•4 years ago
|
||
(I could repro by making a giant window, indeed :))
Reporter | ||
Comment 8•4 years ago
|
||
I noticed the commit in question talks about device pixel ratios, so I fiddled with my window manager (Gnome 40) settings a bit and noticed this bug only happens when fractional scaling is used. I usually use 150% scaling with my 4K screen. If I change that to 100% or 200% the issue disappears.
Comment 9•4 years ago
|
||
Set release status flags based on info from the regressing bug 1696301
Updated•4 years ago
|
Updated•4 years ago
|
Comment 10•4 years ago
|
||
Confirmed I can replicate on macOS with a window wider than the screen. No manipulation of screen scaling seems to be necessary.
Comment 11•4 years ago
•
|
||
I've confirmed that the bad behavior starts as soon as the surface_device_pixel_scale
passed to ClipBatcher::add
drops below 1.0 (and the global scale is at 1.0, in my case).
Comment 12•4 years ago
|
||
Same here, OS X Big Sur, FF 88.0 & 88.0.1
Happens on a 4K screen if the window is bigger than ~2000px
Comment 13•4 years ago
|
||
Comment 14•4 years ago
|
||
Example
Source: https://www.salz.ch/en
Comment 15•4 years ago
|
||
Glenn will probably need to determine the right fix for this.
Assignee | ||
Comment 16•4 years ago
|
||
I have been unable to reproduce this so far on a mac (+/- external 4k screen) and an ubuntu wayland + 4k and kde + 4k setup with the current nightly. Are there any tricks / interactions that make it more likely to occur? Can anyone else confirm it's still occurring for them with a current nightly?
Comment 17•4 years ago
|
||
I can still reproduce on macOS using 2x scaled 1920 x 1200 resolution with these steps:
- View attachment 9217938 [details].
- Resize the window as wide as you can while still fitting on the screen.
- Move the window partially off the screen to the right.
- Widen the window further by dragging the left side of the window.
Assignee | ||
Comment 18•4 years ago
|
||
Ah, yes I can reproduce locally with those steps. I'll take a look today, thanks!
Assignee | ||
Comment 19•4 years ago
|
||
Updated•4 years ago
|
Comment 20•4 years ago
|
||
Comment 21•4 years ago
|
||
bugherder |
Comment 22•4 years ago
|
||
The patch landed in nightly and beta is affected.
:gw, is this bug important enough to require an uplift?
If not please set status_beta
to wontfix
.
For more information, please visit auto_nag documentation.
Updated•4 years ago
|
Assignee | ||
Comment 23•4 years ago
|
||
Comment on attachment 9221474 [details]
Bug 1707154 - Use surface device pixel scale for image mask rects
Beta/Release Uplift Approval Request
- User impact if declined: Rendering glitch under certain circumstances. This is a fairly small patch to uplift, but it's also fairly rare, so it's not critical to uplift if we're getting close to merge day.
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: Yes
- If yes, steps to reproduce: Per bug
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): Change is very small and only affects a small number of configurations.
- String changes made/needed:
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 24•4 years ago
|
||
Comment on attachment 9221474 [details]
Bug 1707154 - Use surface device pixel scale for image mask rects
We have only one beta left and this is fixing an edge case for a subset of our end users, I think it is a good candidate to ride the 90 train, thanks.
Comment 25•4 years ago
•
|
||
I can confirm the bug on Fx 88.0.1 using Ubuntu 18.04 Wayland and MacOS 11.2.3 on 4k monitor(webrender on).
Verified -Fixed in the latest Nightly 90.0a1 using Ubuntu 18.04 Wayland and MacOS 11.2.3 on 4k monitor(webrender on).
Updated•4 years ago
|
Description
•