Make css change tracking more precise
This is another attempt at making use of parent matcher information while calculating change flags. The goal is to reduce the amount of nodes with parent-state and similar change flags, which cause frequent recomputation of styles.
Statistics for this branch (widget-factory with Adwaita):
Flag | Before | After |
---|---|---|
backdrop | 2247 | 2247 |
class | 686 | 626 |
disabled | 2247 | 2247 |
first-child | 645 | 223 |
hover | 2247 | 2247 |
id | 2 | 2 |
last-child | 595 | 225 |
name | 2246 | 2246 |
parent-backdrop | 477 | 5 |
parent-class | 2247 | 628 |
parent-disabled | 222 | 91 |
parent-first-child | 117 | 82 |
parent-hover | 386 | 5 |
parent-id | 90 | 2 |
parent-last-child | 117 | 82 |
parent-name | 2247 | 868 |
parent-selected | 2247 | 2246 |
parent-sibling-class | 11 | 7 |
parent-sibling-first-child | 11 | 7 |
parent-sibling-last-child | 11 | 7 |
parent-sibling-name | 11 | 7 |
parent-sibling-state | 11 | 7 |
parent-state | 640 | 126 |
selected | 2247 | 2247 |
sibling-class | 179 | 87 |
sibling-disabled | 58 | 18 |
sibling-first-child | 180 | 88 |
sibling-last-child | 179 | 87 |
sibling-name | 192 | 100 |
sibling-state | 179 | 87 |
state | 2247 | 2247 |