Closed Bug 1435650 Opened 4 years ago Closed 4 years ago

Avoid calling GetOffsetToCrossDoc during ProcessDisplayItems

Categories

(Core :: Web Painting, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla60
Tracking Status
firefox60 --- fixed

People

(Reporter: mattwoodrow, Assigned: mattwoodrow)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Attached patch cache-agr-offsetSplinter Review
We currently call GetOffsetToCrossDoc for every item, which dereferences the nsIFrame, and pulls it into the cache.

This is pretty bad, since processing most items shouldn't require this, and we spend a lot of time waiting for cache misses.

Generally, the AGR for each item will be the same as last time, so we can just cache the offset and only look it up when it changes.

We could also figure this out in advance and store an offset on each AGR itself, but that's more work, and I'm not sure it's worth it yet.
Attachment #8948298 - Flags: review?(jnicol)
Comment on attachment 8948298 [details] [diff] [review]
cache-agr-offset

Review of attachment 8948298 [details] [diff] [review]:
-----------------------------------------------------------------

This looks good. Except I can't see what's happened to the old lastAnimatedGeometryRoot and lastAGRTopLeft variables, which were used in the mFlattenToSingleLayer code path. Won't that be affected?
Sorry, forgot to add bug 1435643 as a dependency. I'm trying to get rid of the mFlattenToSingleLayer code path, so this patch doesn't need to worry about it.
Depends on: 1435643
Attachment #8948298 - Flags: review?(jnicol) → review+
Blocks: 1436900
Pushed by mwoodrow@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/f840f8d4b7b1
Cache the offset from AGR to reference frame in ProcessDisplayItems. r=jnicol
https://hg.mozilla.org/mozilla-central/rev/f840f8d4b7b1
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
You need to log in before you can comment on or make changes to this bug.