Closed Bug 1555483 Opened 6 months ago Closed 3 months ago

Implement blend SVG filter in WebRender

Categories

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

task

Tracking

()

RESOLVED FIXED

People

(Reporter: jrmuizel, Assigned: cbrewster)

References

(Blocks 1 open bug)

Details

Attachments

(5 files, 5 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review

https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feBlend

The most interesting thing about this filter is that's the first one to take multiple inputs. Markus' API proposal in https://github.com/servo/webrender/issues/1880#issue-265615077 seems like a good api for expressing this. I'm not sure on the details of making that work on the WebRender side but I suspect nical can come up with something reasonable.

Flags: needinfo?(nical.bugzilla)
Type: defect → task
Priority: -- → P3
Assignee: nobody → cbrewster

Depends on D34088

Depends on D34089

Attachment #9069105 - Attachment is obsolete: true
Attachment #9070455 - Attachment is obsolete: true
Attachment #9070459 - Attachment is obsolete: true
Attachment #9070458 - Attachment is obsolete: true

Depends on D34091

Flags: needinfo?(nical.bugzilla)
Attachment #9070474 - Attachment is obsolete: true
Attachment #9070456 - Attachment description: Bug 1555483 - Part 1: Add SVG filter primitive display item. → Bug 1555483 - Part 1: Add SVG filter primitive display item. r?gw
Attachment #9070457 - Attachment description: Bug 1555483 - Part 2: Add SVG filter picture composite mode → Bug 1555483 - Part 2: Add SVG filter picture composite mode r?gw
Attachment #9070460 - Attachment description: Bug 1555483 - Part 3: Add SVG render task with blend and flood support. → Bug 1555483 - Part 3: Add SVG render task and shader r?gw

Treeherder: https://treeherder.mozilla.org/#/jobs?repo=try&revision=ebf2ccf554eab14585c6128bd58baaeebfcb9128

Blend is implemented with this patch, but most of the Gecko reftests rely on Flood which is set to use the software fallback instead of WebRender.
Since most Gecko blend reftests will use the fallback, I added a wrench reftest to test some basic use-cases for blend.
I plan to enable support for using WebRender for flood filter primitives in the future, but it will likely be separate from this bug.

Pushed by opoprus@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3a1e5a56759b
Part 1: Add SVG filter primitive display item. r=gw
https://hg.mozilla.org/integration/autoland/rev/d6169482c913
Part 2: Add SVG filter picture composite mode r=gw
https://hg.mozilla.org/integration/autoland/rev/5618213e2196
Part 3: Add SVG render task and shader r=gw
https://hg.mozilla.org/integration/autoland/rev/4d4f45f7f1d1
Part 4: Sanitize filter primitives r=gw
https://hg.mozilla.org/integration/autoland/rev/244b23c635c5
Part 5: Add wrench reftests for SVG filters and update test expectations r=gw

Keywords: checkin-needed

The test failure that caused the back out was unrelated, see Bug 1564677

Flags: needinfo?(cbrewster)
Keywords: checkin-needed

Pushed by csabou@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7c43dc769da7
Part 1: Add SVG filter primitive display item. r=gw
https://hg.mozilla.org/integration/autoland/rev/134a51a0e034
Part 2: Add SVG filter picture composite mode r=gw
https://hg.mozilla.org/integration/autoland/rev/418839320ab5
Part 3: Add SVG render task and shader r=gw
https://hg.mozilla.org/integration/autoland/rev/917f800e4e43
Part 4: Sanitize filter primitives r=gw
https://hg.mozilla.org/integration/autoland/rev/8149efc1f813
Part 5: Add wrench reftests for SVG filters and update test expectations r=gw

Keywords: checkin-needed

Part 5 had some images that were committed without any contents, this is now fixed.

Try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=e7c4129a85163904d85cf63f1e3045fd9ba70d44

Flags: needinfo?(cbrewster)
Keywords: checkin-needed

Pushed by csabou@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/31009157a5b4
Part 1: Add SVG filter primitive display item. r=gw
https://hg.mozilla.org/integration/autoland/rev/6c311d8365d2
Part 2: Add SVG filter picture composite mode r=gw
https://hg.mozilla.org/integration/autoland/rev/6db240b7d056
Part 3: Add SVG render task and shader r=gw
https://hg.mozilla.org/integration/autoland/rev/27c68f16f91f
Part 4: Sanitize filter primitives r=gw
https://hg.mozilla.org/integration/autoland/rev/b810038f5eb1
Part 5: Add wrench reftests for SVG filters and update test expectations r=gw

Keywords: checkin-needed

Blend is now supported by WebRender, but Gecko is not using it yet. I opened bug 1573994 to track updating Gecko to use these new SVG filter primitives.

Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.