DescriptionIntersect with the dirty rect before deciding which columns to examine for collection.
When collecting layer fragments (to paint, hit-test, etc.) for multicol, we
should limit the number of columns to examine. There may be very many columns
(or pages), and processing them isn't for free. We already had code in place to
narrow down the column interval by intersecting with the bounding box of the
content, but in many cases we can narrow it down further (by a lot, in fact) by
intersecting with the dirty rect as well. So let's do that.
We used to intersect with the dirty rect as part of examining each column (i.e.
inside the column loop). Now we do it up-front instead, to decide which columns
are worth examining at all. So remove the dirty rect intersection check from
the column loop. Also remove a bounding box intersection check from the loop,
since we already do that up-front to set the column interval to examine. It
just seemed useless to do it again inside the loop.
This gives a major speed-up in the Layout/multicol/tall-content-short-columns*
performance tests.
R=dsinclair@chromium.org
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=199107
Patch Set 1 #
Messages
Total messages: 5 (1 generated)
|