Limit fast-path transform updates to just transform property changes #36076
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are several transform paint property nodes, but the fast-path in
PaintPropertyTreeBuilder::DirectlyUpdateTransformMatrix only supports
the primary transform paint property node. If a transform-related
property changes, such as "rotate: 90deg;" (note the difference from
"transform: rotate(90deg)"), we cannot use the fast-path update. Fixing
this requires differentiating transform css property changes from the
transform-related css property changes in StyleDifference.
PaintPropertyTreeUpdateTest.ChangeDuringAnimation regresses
performance (but not correctness) because transform origin changes are
no longer on the fast-path. This is not difficult to support, but the
additonal complexity required in StyleDifference do not seem worth the
real-world benefit.
With the last blocking issue fixed, this patch re-enables
FastPathPaintPropertyUpdates by default.
Bug: 1347264, 1365255
Change-Id: I1bab0943eae4f738edeebb2c52fb6eeebe16a52f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3917399
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1051430}