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

Make TransformState::Move accumulate into existing transform more often. #30492

Merged
merged 1 commit into from
Sep 10, 2021

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Sep 10, 2021

The substantive change here is the removal of the test of
accumulating_transform_ in TransformState::Move. At least when
direction_ is kApplyTransformDirection, optimizing away the modification
to the existing transform into a move is not safe.

The remainder of the code changes are removing accumulating_transform_,
since its remaining uses are all in DCHECK()s and its meaning is
somewhat unclear. It's not clear whether it's intended to be an
indicator for whether accumulated_transform_ would be non-null were it
not for the caching optimization in
TransformState::FlattenWithTransform, or whether it's an indication of
the state of flattening or preserve-3d.

Without the code change here,
virtual/transform-interop-disabled/external/wpt/css/css-transforms/transform-getBoundingClientRect-001.html
fails (with 75 rather than 125), but
external/wpt/css/css-transforms/transform-getBoundingClientRect-001.html
passes both with and without the change.

Bug: 1247858
Change-Id: Id32a11b2bf66757b0dbbab251c598222f9d120a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3152179
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#920070}

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.

The substantive change here is the removal of the test of
accumulating_transform_ in TransformState::Move.  At least when
direction_ is kApplyTransformDirection, optimizing away the modification
to the existing transform into a move is not safe.

The remainder of the code changes are removing accumulating_transform_,
since its remaining uses are all in DCHECK()s and its meaning is
somewhat unclear.  It's not clear whether it's intended to be an
indicator for whether accumulated_transform_ would be non-null were it
not for the caching optimization in
TransformState::FlattenWithTransform, or whether it's an indication of
the state of flattening or preserve-3d.

Without the code change here,
virtual/transform-interop-disabled/external/wpt/css/css-transforms/transform-getBoundingClientRect-001.html
fails (with 75 rather than 125), but
external/wpt/css/css-transforms/transform-getBoundingClientRect-001.html
passes both with and without the change.

Bug: 1247858
Change-Id: Id32a11b2bf66757b0dbbab251c598222f9d120a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3152179
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#920070}
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.

None yet

3 participants