Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limit fast-path transform updates to just transform property changes #36076

Merged
merged 1 commit into from
Sep 26, 2022

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Sep 26, 2022

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}

Copy link
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

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}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants