Bug 1634472 Comment 1 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

What's happening in the case of about:support is that gecko is invalidating the displaylist during scrolling when the intersection between the table and the displayport changes which happens continuously during scrolling with long tables. This causes the scene to be re-built. If the scene contains a lot of text (most web pages do), `push_text` will be visible in profiles.

All of this DL and scene building probably eats up valuable CPU cycles and memory bandwidth (the latter being often a bottleneck with high res sreens) which is probably why you are seeing janky scrolling.

> Actually on other pages the rebuilds are happening right in the middle of the page too (??)

This is normal. We build display-lists and scenes only for the content that intersects with the displayport. So as you scroll down a page we periodically ahve to move the displayport and update the display list and scene. It's fine but if it's happening continuously then it can be an issue.
What's happening in the case of about:support is that gecko is invalidating the displaylist during scrolling when the intersection between the table and the displayport changes which happens continuously during scrolling with long tables. This causes the scene to be re-built. If the scene contains a lot of text (most web pages do), `push_text` will be visible in profiles.
The way I use the term "invalidation" is a bit handwavey here. What I should say is that the displayport is continuously update which causes the DL and scene to be rebuilt continuously.

All of this DL and scene building probably eats up valuable CPU cycles and memory bandwidth (the latter being often a bottleneck with high res sreens) which is probably why you are seeing janky scrolling.

> Actually on other pages the rebuilds are happening right in the middle of the page too (??)

This is normal. We build display-lists and scenes only for the content that intersects with the displayport. So as you scroll down a page we periodically ahve to move the displayport and update the display list and scene. It's fine but if it's happening continuously then it can be an issue.
What's happening in the case of about:support is that gecko is invalidating the WR displaylist during scrolling ~when the intersection between the table and the displayport changes which happens continuously during scrolling with long tables~ when moving the displayport which happens at a fairly high frequency when scrolling is far enough from the top or bottom of the page that the display port isn't touching the top/bottom. This causes the scene to be re-built. If the scene contains a lot of text (most web pages do), `push_text` will be visible in profiles.
The way I use the term "invalidation" is a bit handwavey here. What I should say is that the displayport is frequently updating which causes the DL and scene to be rebuilt continuously.

All of this DL and scene building probably eats up valuable CPU cycles and memory bandwidth (the latter being often a bottleneck with high res sreens) which is probably why you are seeing janky scrolling.

> Actually on other pages the rebuilds are happening right in the middle of the page too (??)

This is normal. We build display-lists and scenes only for the content that intersects with the displayport. So as you scroll down a page we periodically ahve to move the displayport and update the display list and scene. It's fine but if it's happening continuously then it can be an issue.

Back to Bug 1634472 Comment 1