On 10/28/14, 1:15 PM, Patrick Walton wrote:
In other words, what are examples of
the major pain points that DLBI was designed to handle in Gecko?

You should double-check with Matt Woodrow, but three things come to mind:

1) Pre-DLBI, invalidation code was scattered all over layout and it was easy to forget to invalidate.

2) We ended up invalidating too much due to transient layout changes of various sorts that triggered an invalidation and then were undone by the layout algorithm (e.g. temporary repositioning of things, size-measuring layouts, etc).

3)  The old invalidation setup had poor performance.

Keep in mind that the old setup in Gecko was aiming at "correct, but invalidating the minimal possible area". So any time something changed size/position during layout we'd walk all the way to the painting root computing the now-invalid region in that painting root's coordinate system, then store it there. All those tree-walks were the source of problem #3. The fact that they had to be at all places that changed size/position during layout led to #1 and #2.

https://bugzilla.mozilla.org/buglist.cgi?f1=dependson&list_id=11461782&o1=anywordssubstr&resolution=FIXED&query_format=advanced&v1=539356 has a list of some bugs that DLBI fixed that might be worth looking at.

-Boris
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to