Closed Bug 1697558 Opened 4 years ago Closed 4 years ago

Corruption with masks and isolate.

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED
91 Branch
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)

Attached file Test-case.

With the attached test-case I see corrupted masks, only on WebRender.

Flags: needinfo?(gwatson)
Regressed by: 1696842
Has Regression Range: --- → yes

We've backed out the regressing patch for now, while I investigate this further.

Assignee: nobody → gwatson
Flags: needinfo?(gwatson)

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.

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

Blocks: 1696842
Blocks: 1703709

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.

Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e19685e641eb Fix mix-blend readbacks from raster roots. r=gfx-reviewers,lsalzman
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 91 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: