Closed Bug 929021 Opened 6 years ago Closed 6 years ago

Avoid calling nsDisplayTransform::GetFrameBoundsForTransform

Categories

(Core :: SVG, defect)

x86_64
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla27
Tracking Status
firefox26 --- unaffected
firefox27 + fixed

People

(Reporter: roc, Assigned: roc)

References

Details

(Keywords: perf, regression, Whiteboard: [qa-])

Attachments

(1 file)

Bug 923193 regressed tsvg performance.

We should fix it by avoiding calling GetFrameBoundsForTransform if possible. I think the easiest and best thing to do is to avoid calling GetDeltaToMozTransformOrigin for translation-only transforms, since it doesn't affect them.
Actually the thing to do is to avoid calling GetFrameBoundsForTransform when we have absolute coordinates for transform-orign --- which is the default for SVG, so we end up avoiding the cost of bug 923193 except where transform-origin is explicitly used.
Attachment #820213 - Flags: review?(cam) → review+
https://hg.mozilla.org/mozilla-central/rev/c1578a4fc86d
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
This only partially fixed the tsvg regression from bug 923193.  The original regression was about +80ms, and the change from this patch was about -30ms.
Where is data for this regression this bug is tracking?
Keywords: verifyme
(In reply to Matt Brubeck (:mbrubeck) from comment #9)
> This only partially fixed the tsvg regression from bug 923193.  The original
> regression was about +80ms, and the change from this patch was about -30ms.

That's probably because there are a lot more places that call GetFrameBoundsForTransform than the caller that the patch for this bug guarded. Unfortunately at least some of those other callers don't look like they can be guarded since we don't know at the call point whether we will want the bounds later or not.
(In reply to [:tracy] Tracy Walker - QA Mentor from comment #10)
> Where is data for this regression this bug is tracking?

http://graphs.mozilla.org/graph.html#tests=[[281,63,29]]&sel=none&displayrange=30&datatype=running

For example. As far as verifying the regression fixed, no need though. It's not.

I'm not sure if roc would prefer to reopen this bug, or have another opened for the rest. Or maybe bug 923193 should be backed out until we implement caching of bboxes. roc?
Blocks: 933354
I filed bug 933354 to track the remaining regression.
Backed out everything involving this bug:
https://hg.mozilla.org/integration/mozilla-inbound/rev/3fb151446ec5

Leaving FIXED since there is no more work to do here.
Removing keyword per comment 12.
Keywords: verifyme
Whiteboard: [qa-]
You need to log in before you can comment on or make changes to this bug.