Closed Bug 1760747 Opened 3 years ago Closed 1 year ago

SVG rendering cut parts when scrolling

Categories

(Core :: Graphics: WebRender, defect, P3)

Firefox 100
defect

Tracking

()

RESOLVED FIXED
119 Branch
Tracking Status
firefox-esr91 --- wontfix
firefox-esr102 --- wontfix
firefox-esr115 --- wontfix
firefox98 --- wontfix
firefox99 --- wontfix
firefox100 --- wontfix
firefox101 --- wontfix
firefox117 --- wontfix
firefox118 --- wontfix
firefox119 --- fixed

People

(Reporter: alejandroalonsofernandez, Assigned: tnikkel)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(4 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36

Steps to reproduce:

In the attached html, scrolling down and up again make part of the svg disappear and appear again.

I'm attaching the sample test.html to reproduce the bug and two screenshots. One for the OK visualization and one for the KO after the scroll.

Actual results:

In my case it only happens when using my laptop screen but not if using an external monitor

Expected results:

The svg should be rendered consistently when scrolling.

Attached image ok.png
Attached image ko.png
Attached file test.html
Flags: needinfo?(alejandroalonsofernandez)

The Bugbug bot thinks this bug should belong to the 'Core::Graphics: WebRender' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Graphics: WebRender
Product: Firefox → Core

Easily reproduces on nightly and stable. It looks like there is some wrong clipping happening inside of the blob image (paint flashing show tiles for the missing part but they are transparent), and that clip looks like it may be related to the viewport clip. The cut out part comes back when tiles are invalidated and are visible.

Flags: needinfo?(jmuizelaar)
Severity: -- → S2
Flags: needinfo?(jmuizelaar)
Regressed by: 1720986

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

:mattwoodrow, since you are the author of the regressor, bug 1720986, could you take a look?
For more information, please visit auto_nag documentation.

Flags: needinfo?(matt.woodrow)

Interestingly enough, reverting bug 1720986 doesn't seem to fix things anymore.

It would be interesting to see if reverting before and after bug 1728498 makes a difference. nical, do you want to try this? I tried building before then on my M1 but it failed to build because of macOS sdk stuff

Reverting bug 1720986 immediately before bug 1728498 fixes the testcase.
Reverting bug 1720986 immediately after bug 1728498 does not fix the testcase.

(Since there we conflicts reverting in the TYPE_FILTER case of PaintContainerItem, it looks like reverting it means not touching the building rect at all there, which is what I did to "revert" after bug 1728498.)

(I don't plan to work on this further, just felt like checking this.)

Severity: S2 → S4
Priority: -- → P3

The bug has a release status flag that shows some version of Firefox is affected, thus it will be considered confirmed.

Status: UNCONFIRMED → NEW
Ever confirmed: true

Redirect a needinfo that is pending on an inactive user to the triage owner.
:gw, since the bug has recent activity, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(matt.woodrow) → needinfo?(gwatson)

Jeff, perhaps something you or Nical could investigate further?

Flags: needinfo?(gwatson) → needinfo?(jmuizelaar)
See Also: → 1845856

There are several paths in ComputeGeometryChange where we can allocate an geometry item for a filter item, but only one path that will call DetectContainerLayerPropertiesBoundsChange (which adjusts the bounds for filter items). Make sure this always happens in ComputeGeometryChange.

This was causing a bug where the geometry bounds were the full filter item height on the first paint (even though only part of the filter item was visible inside the building rect), but we did not call DetectContainerLayerPropertiesBoundsChange because it was the first paint where the filter item was visible. Then on the next paint the full filter item was visible, and there is no rect change to signal that we need to repaint.

Assignee: nobody → tnikkel
Status: NEW → ASSIGNED
Flags: needinfo?(jmuizelaar)
Blocks: 1845856
See Also: 1845856
Pushed by tnikkel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/12882fe96164 Ensure that the bounds on the geometry of filter items are always limited by the building rect. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 119 Branch
No longer blocks: 1845856
Duplicate of this bug: 1845856
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: