Rework snapping logic in clip mask generate to fix uneven box shadows
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox67 | --- | fixed |
People
(Reporter: gw, Assigned: gw)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
The existing logic for handling clip mask generation is inaccurate for primitives that are snapped. This can result in uneven stretching and rendering of box shadows, among other issues.
Instead, calculate the snap offsets for a primitive where appropriate on the CPU, and pass these to the clip mask shaders. This allows the clip mask shaders to undo the effect of snapping, which produces accurate and symmetrical box shadows.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 1•6 years ago
|
||
Assignee | ||
Comment 2•6 years ago
|
||
This is a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1475827 and https://bugzilla.mozilla.org/show_bug.cgi?id=1411693.
The most notable part is the new reftest output in scale.png, showing symmetrical box shadows at various transform scales, with/without clipping and segmentation.
The try run [1] looks mostly good, it has:
- A few additional PASS results that I need to update (in addition to the new PASSes and a couple of extra fuzzy tests I already annotated).
- A perma-fail in Wr3 for a known intermittent. I need to investigate this further in the morning to see what is causing this.
- Some unrelated intermittents.
[1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=84d30b68e3ac146199272ec85fa99cbc15b4132a
Assignee | ||
Comment 6•6 years ago
|
||
Updated the reftest annotations on Windows, and re-queued for landing.
Updated try runs for wrench + gecko/wr:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=64f12f2a850d32f607f2347385ba56857decfc36
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d1c796bd73143a05da61e36b5885fc7dad14f077
Comment hidden (obsolete) |
Assignee | ||
Comment 9•6 years ago
|
||
It looks like that test is slightly fuzzy on CI (max difference: 1, number of differing pixels: 5). I've marked that wrench test with fuzziness, and will try to push again.
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
bugherder |
Assignee | ||
Comment 12•6 years ago
|
||
This is, somehow, causing a major performance regression in GPU time. It seems to be resulting in either many more clip masks, or much larger ones. I've asked the sheriffs to back it out for now, and will debug and re-land tomorrow.
Updated•6 years ago
|
Comment 13•6 years ago
|
||
Comment 14•6 years ago
|
||
Comment 15•6 years ago
|
||
bugherder |
Comment 16•6 years ago
|
||
== Change summary for alert #19153 (as of Tue, 05 Feb 2019 07:42:14 GMT) ==
Improvements:
2% ts_paint linux64-qr opt e10s stylo 862.08 -> 848.58
1% sessionrestore linux64-qr opt e10s stylo 799.67 -> 789.33
For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=19153
Description
•