Closed Bug 1904566 Opened 1 year ago Closed 1 year ago

Perma layout/reftests/svg/filters/feDropShadow-01.svg == layout/reftests/svg/filters/feDropShadow-01-ref.svg | image comparison, max difference: 97, number of differing pixels: 22869 when Gecko 129 merges to beta on 2024-07-08

Categories

(Core :: Graphics: WebRender, defect)

defect

Tracking

()

VERIFIED FIXED
129 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- unaffected
firefox127 --- unaffected
firefox128 --- unaffected
firefox129 + verified

People

(Reporter: SerbanS, Assigned: ahale)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

I'm adjusting component to match bug 1896503, the regressor here.

Adding a few more notes while I'm here... from the log:

REFTEST INFO | REFTEST fuzzy test (55, 14033) <= (97, 22869) <= (98, 16467)
REFTEST TEST-UNEXPECTED-FAIL | layout/reftests/svg/filters/feDropShadow-01.svg == layout/reftests/svg/filters/feDropShadow-01-ref.svg |
  image comparison, max difference: 97, number of differing pixels: 22869

The allowed range there seems to come from this annotation:
fuzzy-if(!useDrawSnapshot,55-98,14033-16467)
...and the mismatching pixel count (22869) is very outside the allowable range there (for this annotation and all of the annotations on this line of the manifest).

That seems to be a substantial increase in the number of mismatching pixels on any platform/config. Not sure if that's concerning or not.

Component: SVG → Graphics: WebRender

I'll look into this regression today.

Assignee: nobody → ahale

https://searchfox.org/mozilla-central/source/layout/reftests/svg/filters/reftest.list#118
Excerpt: fuzzy-if(winWidget,0-2,0-25) fuzzy-if(!useDrawSnapshot,55-98,14033-16467) fuzzy-if(gfxSVGFEDropShadow&&!gfxSVGFEOffset,97-98,21575-22951) fuzzy-if(gfxSVGFEOffset,0-2,0-1000000) == feDropShadow-01.svg feDropShadow-01-ref.svg

The value 22869 for failed pixels is within the range I was seeing with gfxSVGFEDropShadow without gfxSVGFEOffset (where it ends up comparing the result from the blob fallback in Gecko in the feGaussianBlur+feOffset case, with the result from native WebRender rendering of SVGFEDropShadow), but gfx.webrender.svg-filter-effects is nightly build only ( https://searchfox.org/mozilla-central/rev/67956a15835fc397334668525d528d471b19b273/modules/libpref/init/StaticPrefList.yaml#6530 ), so I am not yet certain why gfxSVGFEDropShadow conditional would differ from the actual state of the prefs.

I'll continue debugging, but suffice to say this is within tolerances I expect for this particular scenario, but why it is behaving this way is unclear.

Note: There is no firm guideline on blur accuracy in SVG or CSS specs so we're given a lot of leeway on deviations like this, so at worst we expand the fuzzy range to fuzzy(0-98,0-22951), which would still flag any major bugs in feDropShadow rendering, but I'd prefer to have a tighter tolerance and understand this case.

The cause turned out to be a missing pref check in FilterInstance::BuildWebRenderFilters, so it was executing the SVGFE code path even if the top level pref was off (the individual prefs for particular filters still worked fine, but it wasn't supposed to get that far outside of Nightly builds).

Flags: needinfo?(ahale)

Waiting for phabricator to catch up so I can land fix D214912

Pushed by ahale@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/91d635836bae check gfx.webrender.svg-filter-effects pref before building SVGFE filters r=gfx-reviewers,gw

:ahale, the Fx129 soft code freeze starts on Thursday 2024-07-04, ahead of Fx129 merging to beta on Monday 2024-07-08.
There is little time to fix this before next week.

Pushed by ahale@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7b206bd8dfb4 check gfx.webrender.svg-filter-effects pref before building SVGFE filters r=gfx-reviewers,gw
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 129 Branch

The patch fixed the initial issues but other failures seem to have appeared as mentioned in Bug 1905354. Not closing it as verified for now, in case a patch will be submitted here

Status: RESOLVED → VERIFIED
Status: VERIFIED → RESOLVED
Closed: 1 year ago1 year ago
Status: RESOLVED → VERIFIED
Flags: needinfo?(ahale)
See Also: → 1905354

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

Crash Signature: [@ webrender::scene_building::SceneBuilder::wrap_prim_with_filters]
Crash Signature: [@ webrender::scene_building::SceneBuilder::wrap_prim_with_filters]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: