Closed Bug 1555356 Opened 5 years ago Closed 4 years ago

Google docs images use blobs

Categories

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

enhancement

Tracking

()

RESOLVED FIXED
mozilla78
Tracking Status
firefox78 --- fixed

People

(Reporter: nical, Assigned: Gankra)

References

(Blocks 2 open bugs)

Details

(Keywords: perf, perf-alert)

Attachments

(1 file, 1 obsolete file)

Images in google docs are wrapped in svg elements which causes us to use a blob image and do unecessary work.

It would be good if we could detect that an SVG element only contains elements we support and avoid the blob fallback (in the case of google docs it is a single image).

Depends on: 1595799
Blocks: wr-blob-perf

looked into this and am currently confused because at least highlight-painted-layers seems to think we're not making a blob for google docs images (even though they're still inside an svg)

currently manually confirming the machinery isn't broken and that there indeed is no blob

Ok so it looks like a naive active-layers approach to this one won't work. The svg in question shows up as a transform containing an opaque(?) nsDisplaySVGGeometry, and not an nsDisplayImage as I'd hoped. I'll need to actually dig into the SVG itself to try to do this.

Assignee: nobody → a.beingessner

:aosmond -- don't bother reviewing that yet, mostly just wanted to test that i had pushing patches up for review properly configured :p

Ok this is ready to land, but I'm holding off until after we cut the beta, so that we have room to test this in nightly.

Pushed by abeingessner@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3a8a36e50541
Make images inside of SVGs active. r=aosmond
Pushed by abeingessner@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6550b62f1fe7
Make images inside of SVGs active. r=aosmond

just slightly fuzzier on mac (+2 pixels)

Flags: needinfo?(a.beingessner)

== Change summary for alert #24964 (as of Mon, 17 Feb 2020 12:14:53 GMT) ==

Improvements:

11% tsvgx windows10-64-shippable-qr opt e10s stylo 183.66 -> 163.28
10% tsvgx windows10-64-shippable-qr opt e10s stylo 184.07 -> 165.22

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24964

And the backout:

== Change summary for alert #24960 (as of Mon, 17 Feb 2020 10:47:17 GMT) ==

Regressions:

9% tsvgx windows10-64-shippable-qr opt e10s stylo 170.04 -> 185.89

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24960

Issues from backout:

  • minor fuzzy bump on a specific platform
  • exposing pre-existing Bug 1616326

For the latter, i'm inclined to mark this test as failing under WR until the root bug is fixed, and pressing along with this patch

Flags: needinfo?(a.beingessner)
Attachment #9120857 - Attachment description: Bug 1555356 - Make images inside of SVGs active. r?aosmond → Bug 1555356 - Make images inside of SVGs active. r=aosmond
Type: enhancement → defect

This is not a regression, the regression in tsvgx was caused by the backout of this patch.

Alexis, did you make a decision about comment 12?

Type: defect → enhancement
Flags: needinfo?(a.beingessner)
Keywords: regression

I am currently working on fixing the root issue, it's just a bit of a mess in there.

Flags: needinfo?(a.beingessner)

I believe the patch here is ultimately correct, but Bug 1616326 needs to be fixed before we reland this.

Assignee: a.beingessner → nobody
Depends on: 1616326
No longer depends on: 1595799

I've rebased this and did not see any regressions locally (Windows at 100% DPI), with reftest reftest-sanity, reftest svg (both enable-webrender) nor wrench reftest (-p1). Here's a try run.

Assignee: nobody → a.beingessner
Attachment #9120857 - Attachment description: Bug 1555356 - Make images inside of SVGs active. r=aosmond → Bug 1555356 - Make images inside of SVGs active.
Status: NEW → ASSIGNED
Pushed by bpeers@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a86dcd6715c9
Make images inside of SVGs active. r=aosmond
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla78

== Change summary for alert #25975 (as of Sat, 16 May 2020 10:56:27 GMT) ==

Improvements:

12% raptor-tp6-slides-firefox-cold fcp windows10-64-shippable-qr opt 1,424.58 -> 1,248.33
10% raptor-tp6-slides-firefox-cold fcp linux64-shippable-qr opt 1,381.75 -> 1,247.00
3% raptor-tp6-slides-firefox-cold windows10-64-shippable-qr opt 1,246.98 -> 1,207.00
3% raptor-tp6-slides-firefox-cold linux64-shippable-qr opt 1,290.08 -> 1,257.69

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=25975

== Change summary for alert #25984 (as of Mon, 18 May 2020 05:27:32 GMT) ==

Improvements:

14% tsvgx linux64-shippable-qr opt e10s stylo 247.31 -> 211.67
13% tsvgx linux64-shippable-qr opt e10s stylo 247.31 -> 214.56
6% tsvg_static linux64-shippable-qr opt e10s stylo 42.71 -> 39.95

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=25984

Regressions: 1640100
Regressions: 1656763
Regressions: 1659063
Regressions: 1674163
Regressions: 1676113

I wonder if we should consider backing this out given the high number of regressions.

Regressions: 1684625
Attachment #9196559 - Attachment is obsolete: true

bug 1684625 puts this code path under a pref that disables it. That fixes the regressions. I've checked in some reftests as part of that bug so if this code path is to be re-enabled they'd need to be fixed.

Depends on: 1686654
Blocks: 1686654
No longer depends on: 1686654
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: