Closed Bug 1896503 Opened 5 months ago Closed 3 months ago

WR SVG Filters: Integrate new SVGFE code path with Gecko

Categories

(Core :: Graphics: WebRender, task, P2)

task

Tracking

()

RESOLVED FIXED
129 Branch
Tracking Status
firefox129 --- fixed

People

(Reporter: ahale, Assigned: ahale)

References

(Blocks 7 open bugs, Regressed 3 open bugs)

Details

Crash Data

Attachments

(2 files)

Now that we have the SVGFE code in WebRender we need to hook it up in Gecko so it is user visible and improves performance.

Depends on: 1824502
Assignee: nobody → ahale
Status: NEW → ASSIGNED
Severity: -- → S3
Priority: -- → P2
Blocks: 1896740
Blocks: 1896504
Blocks: 1897878
Blocks: 1899691
Blocks: 1900515

I found this testcase in the folder where I keep all my test cases, and noticed that some pieces in it show different behavior with the patch applied. IIRC all browsers are already fairly inconsistent about the behavior here but I think it's valuable to only change Firefox's behavior with intention and not by accident, so it's worth investigating what's causing the differences in behavior. This doesn't need to block the landing of this patch as the bugs are likely orthogonal, and because gfx.webrender.svg-filter-effects is nightly-only for now.

Blocks: 1901318
Blocks: 1902133
Blocks: 1902136
Pushed by ahale@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9ff43ea4a5c9 Implement FilterInstance code to send SVG filter graph to WebRender r=mstange

(In reply to Markus Stange [:mstange] from comment #2)

Created attachment 9405581 [details]
testcase exploring filter regions

I found this testcase in the folder where I keep all my test cases, and noticed that some pieces in it show different behavior with the patch applied. IIRC all browsers are already fairly inconsistent about the behavior here but I think it's valuable to only change Firefox's behavior with intention and not by accident, so it's worth investigating what's causing the differences in behavior. This doesn't need to block the landing of this patch as the bugs are likely orthogonal, and because gfx.webrender.svg-filter-effects is nightly-only for now.

I'll give this test case a look, if it is inconsistent between browsers then I'd like to turn it into a set of WPT tests.

Backed out for causing reftest failures

Backout link

Push with failures

Failure log

Flags: needinfo?(ahale)
Backout by pstanciu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bfd01427a5e8 Backed out changeset 9ff43ea4a5c9 for causing reftest failures

Backout was caused by https://bugzilla.mozilla.org/show_bug.cgi?id=1901884 which is an unrelated intermittent.

Flags: needinfo?(ahale)
Pushed by ahale@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c2eaf893e115 Implement FilterInstance code to send SVG filter graph to WebRender r=mstange
Regressions: 1903276
Regressions: 1903285
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 129 Branch

This change causes gpu process crashes, e.g. bp-173238fd-2e8f-474e-a9ae-227270240619. The issue reproduces here with https://developer.valvesoftware.com/wiki/Source/en#/media/File:Screenshot-CSS-Source_engine_comparison.jpg

The change will be reverted in the next Nightly.

Crash Signature: [@ webrender::scene_building::SceneBuilder::wrap_prim_with_filters]
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 129 Branch → ---

The bug is linked to a topcrash signature, which matches the following criterion:

  • Top 10 desktop browser crashes on nightly

:ahale, could you consider increasing the severity of this top-crash bug?

For more information, please visit BugBot documentation.

Flags: needinfo?(ahale)
Keywords: topcrash

This bug was tagged with the crash signature that it caused, and it has been backed out, so it doesn't make sense to increase the severity of this bug because of the crash it caused. Clearing needinfo.

Flags: needinfo?(ahale)
Pushed by ahale@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/beec388d4b0e Implement FilterInstance code to send SVG filter graph to WebRender r=mstange,gw

Status: The above diff has addressed the panic that was occurring on certain websites where an SVG filter graph was applied to a picture and then also an Opacity filter (which is not SVG) was being applied to the same picture.

Status: REOPENED → RESOLVED
Closed: 3 months ago3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 129 Branch
Regressions: 1904487
Regressions: 1904566
Blocks: 1846910
No longer regressions: 1904737
Regressions: 1905354
Regressions: 1905611
Keywords: topcrash

I'm working on this.

Just FYI the topcrash should have been resolved already by https://phabricator.services.mozilla.com/D214912 which also changed the error message and made it have a more spec-compliant failure mode if there is a mixed filter chain (which should only be possible in the case of opacity, which is handled by that patch).

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

Attachment

General

Created:
Updated:
Size: