Corruption with masks and isolate.
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr78 | --- | unaffected |
| firefox89 | --- | disabled |
| firefox90 | --- | disabled |
| firefox91 | --- | fixed |
People
(Reporter: emilio, Assigned: gw)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(2 files)
With the attached test-case I see corrupted masks, only on WebRender.
Updated•4 years ago
|
| Assignee | ||
Comment 1•4 years ago
|
||
We've backed out the regressing patch for now, while I investigate this further.
| Assignee | ||
Comment 2•4 years ago
|
||
Notes to self, for more investigation tomorrow:
- Seems specific to mask - changing to border-radii (which results in the same task graph) doesn't repro.
- Readback seems correct.
- Seems related either to reading of the source stacking context (but UVs / target rects seem correct), or that the source surface itself is incorrect.
| Assignee | ||
Comment 3•4 years ago
|
||
The bug is somewhere around [1].
In this test case, it assumes that the entire clip mask will be covered (so doesn't need to clear it), but then the loop to add the tiles calculates incorrect local sub-rects, resulting in only part of the clip mask being written to.
I confirmed that forcing clip_is_axis_aligned to be false here makes the test case render correctly. That's not a proper fix (it means we overdraw for each tile), but it confirms that the issue is related to the tile sub-rect coords created here.
[1] https://searchfox.org/mozilla-central/source/gfx/wr/webrender/src/batch.rs#3583
Updated•4 years ago
|
| Assignee | ||
Comment 4•4 years ago
|
||
Picture cache code was using final device-space rect instead of the
actual raster rect when determining the readback coordinates for
mix-blend-mode effects. These are equivalent in most cases, but can
be different if the picture cache is also establishing a raster root.
Comment 6•4 years ago
|
||
| bugherder | ||
Updated•4 years ago
|
Description
•