Closed Bug 1529378 Opened 6 years ago Closed 6 years ago

Corruption on Google Calendar time period selector

Categories

(Core :: Graphics: WebRender, defect)

defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla67
Tracking Status
firefox67 --- verified

People

(Reporter: jrmuizel, Assigned: gw)

References

Details

Attachments

(3 files)

Looks like a recent regression

This was regressed by bug 1528157

Blocks: 1528157

I have a standalone test case that I'm cleaning up a little bit

Attached image Screenshot (deleted) —
Attached file Standalone somewhat reduced version (deleted) —

Make sure the browser is at least ~1444 wide to reproduce the problem.

bug 1528157 affected this site https://material.io/design/ .
mouse hover over sidebar menu, or click it.
the emphasize background is corrupted.

This bug occurs under the following conditions:

  • The clip chain instance has multiple clip items.
  • The first item in the clip chain is a clip rectangle, with:
    • ClipMode::Clip
    • Is in the same coordinate system as the primitive.

In this case, the code would skip adding the clip rect to the
mask (due to the same coord system). However, the logic that
determines whether to render subsequent masks with blend disabled
or multiplicative blend was only considering the index of the
clip item in the clip chain. In this case, these masks would
get added to the blend enabled batches, but the first clip mask
which would have written the initial mask values was skipped.

The end result was that the subsequent clip masks would be
blending with uninitialized render target contents from a previous
frame.

This patch changes the logic to track when the first clip mask
has actually been added to the batch, rather than relying on
the index. In this case, it means that the rounded rect mask
will get drawn in the blend disabled path, writing the correct
mask values without blending with the existing render target contents.

Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e64ad7b0e3bd Corruption on Google Calendar time period selector. r=kvark
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67
Assignee: nobody → gwatson
Flags: qe-verify+

I have reproduced this issue using Firefox 67.0a1 (2019.02.20)on macOS 10.13.6.
I can confirm this issue is fixed, I verified using Firefox 67.0b18 on macOS 10.13.6, Win 10 x64, and Ubuntu 18.04 x64.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: