Closed Bug 1695807 Opened 4 years ago Closed 4 years ago

Text corruption when scrolling down in colorjs.io

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

RESOLVED FIXED
88 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox86 --- unaffected
firefox87 --- fixed
firefox88 --- fixed

People

(Reporter: emilio, Assigned: lsalzman)

References

(Regression, )

Details

(Keywords: regression)

Attachments

(2 files)

Attached image screenshot

Seems to happen reliably (yay)

I can reproduce this locally.

However, although the referenced patch (bug 1684781) results in it occurring, the problem appears to be caused by bug 1691859.

The mix-blend on the page that is corrupted is a multiply which runs through the fast path enabled in bug 1691859 (it doesn't hit the new mix-blend code path in bug 1684781). However, bug 1684781 does result in the advanced dual-source mix-blend occurring directly on a picture cache tile instead of an off-screen surface, perhaps exposing some kind of driver bug or similar (or a bug in the WR advanced blend impl).

Bug 1693998 was a previously reported regression with the same symptoms, that was also caused by bug 1691859. We thought that bug 1684781 fixed that issue, but it just seems to make it occur in different circumstances.

I think that until we understand better what's going on, we should reluctantly disable the advanced blend path in bug 1691859. I've verified that without that, neither of the reported regressions occur with the other mix-blend patch that I landed. Thoughts Lee?

Flags: needinfo?(gwatson) → needinfo?(lsalzman)

Confirmed that this also occurs with SWGL enabled, so it must be a bug in the advanced blend equation code path, rather than a driver issue. I still think the safest bet for now is to disable that advanced blend path, since it's in beta.

Assignee: nobody → lsalzman
Status: NEW → ASSIGNED

Emilio, can you try my patch and verify if it fixes the issue for you?

It appears there was just a small innocuous bug in the original advanced blend equation code, where it chose raster-space local, instead of raster-space screen. Not sure if that was the right thing to do at the time, but right now it definitely needs to be raster-space screen to properly read the right UVs for the primitive in the shader. It stood out as a "one of these things is not like the others" the minute Glenn and I spotted it in the code.

Flags: needinfo?(lsalzman) → needinfo?(emilio)
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/140002ffa867 Mix blend image brush data should be RasterizationSpace::Screen. r=gw
Attachment #9206268 - Attachment description: Bug 1695807 - Mix blend image brush data should be RasterizationSpace::Screen. r?gw → Bug 1695807 - Mix blend image brush data should be RasterizationSpace::Screen. r=gw

Yes, the patch fixes the issue. All those failures look like actually passes, so I relanded with the fuzzy annotations removed.

Flags: needinfo?(emilio)
Flags: needinfo?(lsalzman)
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/aa752a99fe85 Mix blend image brush data should be RasterizationSpace::Screen. r=gw
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch

Comment on attachment 9206268 [details]
Bug 1695807 - Mix blend image brush data should be RasterizationSpace::Screen. r=gw

Beta/Release Uplift Approval Request

  • User impact if declined: Visual artifacts in many sites that use mix-blend-mode in their CSS.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Fixes a long-standing bug in in mix-blend-mode support in WebRender, but doesn't add new features or semantics.
  • String changes made/needed:
Attachment #9206268 - Flags: approval-mozilla-beta?

This bug is marked as regressed by https://hg.mozilla.org/integration/autoland/rev/23bd3cec784397ac9ce2d1d69fda2aa334ed9515 which landed in 88. Is beta actually affected?

Flags: needinfo?(lsalzman)

Set release status flags based on info from the regressing bug 1684781

(In reply to Julien Cristau [:jcristau] from comment #13)

This bug is marked as regressed by https://hg.mozilla.org/integration/autoland/rev/23bd3cec784397ac9ce2d1d69fda2aa334ed9515 which landed in 88. Is beta actually affected?

Yes

Flags: needinfo?(lsalzman)

(In reply to Julien Cristau [:jcristau] from comment #13)

This bug is marked as regressed by https://hg.mozilla.org/integration/autoland/rev/23bd3cec784397ac9ce2d1d69fda2aa334ed9515 which landed in 88. Is beta actually affected?

From comment #2, it sounds like this was actually regressed by bug 1691859, which landed in Firefox 87.

Regressed by: 1691859
Has Regression Range: --- → yes

Comment on attachment 9206268 [details]
Bug 1695807 - Mix blend image brush data should be RasterizationSpace::Screen. r=gw

approved for 87.0b8

Attachment #9206268 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: