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