New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 597721 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature


Sign in to add a comment

Clean up transform tree logic for cc property trees

Project Member Reported by weiliangc@chromium.org, Mar 24 2016

Issue description

- Remove target related information, including target_id and to/from_target cache 
- Snapping to screen space
- Use screen space transform for content scale

 
Cc: enne@chromium.org
Blocking: 597734

Comment 3 by sunxd@chromium.org, May 2 2016

Owner: sunxd@chromium.org
Status: Assigned (was: Available)
I will start working on snapping and content scale.
Project Member

Comment 4 by bugdroid1@chromium.org, May 17 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d0d98d0dcf5e3758a604f4c5e61a75166b0e57f7

commit d0d98d0dcf5e3758a604f4c5e61a75166b0e57f7
Author: sunxd <sunxd@chromium.org>
Date: Tue May 17 22:25:09 2016

cc: Use to_screen transform for scroll offset snapping

As part of the process of cleaning up transform tree logic, target
space transform is not going to live in the transform tree, so scroll
snapping has to snap screen space transform instead.

BUG= 597721 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1979273002
Cr-Commit-Position: refs/heads/master@{#394245}

[modify] https://crrev.com/d0d98d0dcf5e3758a604f4c5e61a75166b0e57f7/cc/trees/layer_tree_host_unittest_scroll.cc
[modify] https://crrev.com/d0d98d0dcf5e3758a604f4c5e61a75166b0e57f7/cc/trees/property_tree.cc

Project Member

Comment 5 by bugdroid1@chromium.org, May 27 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c5d4fb49b677d6c68687dd3dcca8c0000d786169

commit c5d4fb49b677d6c68687dd3dcca8c0000d786169
Author: sunxd <sunxd@chromium.org>
Date: Fri May 27 04:40:09 2016

cc: Use ScreenSpaceTransform to determine content scale

ScreenSpaceTransform should be used to determine the ideal content
scale as TargetSpaceTransform will no longer be cached in transform
tree.

Because of the way sublayer scale works, the scale component of
TargetSpaceTransform is the same as the scale component of
ScreenSpaceTransform.

The switching results in a different behavior because of snapping
float transforms, thus a manual rebaseline is needed for layout test.

BUG= 597721 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2011063002
Cr-Commit-Position: refs/heads/master@{#396389}

[modify] https://crrev.com/c5d4fb49b677d6c68687dd3dcca8c0000d786169/cc/layers/layer_impl.cc
[modify] https://crrev.com/c5d4fb49b677d6c68687dd3dcca8c0000d786169/cc/layers/picture_image_layer_impl_unittest.cc
[modify] https://crrev.com/c5d4fb49b677d6c68687dd3dcca8c0000d786169/cc/layers/picture_layer_impl_unittest.cc
[modify] https://crrev.com/c5d4fb49b677d6c68687dd3dcca8c0000d786169/cc/test/layer_tree_host_common_test.cc
[modify] https://crrev.com/c5d4fb49b677d6c68687dd3dcca8c0000d786169/cc/trees/layer_tree_host_common_unittest.cc
[modify] https://crrev.com/c5d4fb49b677d6c68687dd3dcca8c0000d786169/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1

commit 2c5f8d42b4bc2282953fb4c724831b8d7aac98f1
Author: sunxd <sunxd@chromium.org>
Date: Thu Jun 09 20:05:41 2016

cc: Put to_target and to_screen behind an accessor.

Target-related information will eventually be removed from transform
tree and computed when needed.

This CL wraps the target-related information in transform tree in an
accessor, so that we can hide the implementations of the accessor, thus
we can make the code work with either the old way or the new way of
computing the information each time we need it.

BUG= 597721 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2032213002
Cr-Commit-Position: refs/heads/master@{#398989}

[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/proto/property_tree.proto
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree.h
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree_unittest.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1

commit 2c5f8d42b4bc2282953fb4c724831b8d7aac98f1
Author: sunxd <sunxd@chromium.org>
Date: Thu Jun 09 20:05:41 2016

cc: Put to_target and to_screen behind an accessor.

Target-related information will eventually be removed from transform
tree and computed when needed.

This CL wraps the target-related information in transform tree in an
accessor, so that we can hide the implementations of the accessor, thus
we can make the code work with either the old way or the new way of
computing the information each time we need it.

BUG= 597721 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2032213002
Cr-Commit-Position: refs/heads/master@{#398989}

[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/proto/property_tree.proto
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/draw_property_utils.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree.h
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/cc/trees/property_tree_unittest.cc
[modify] https://crrev.com/2c5f8d42b4bc2282953fb4c724831b8d7aac98f1/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp

Blockedon: 622372

Comment 10 by sunxd@chromium.org, Jun 27 2016

Blockedon: 623564

Comment 11 by sunxd@chromium.org, Jun 28 2016

Blockedon: 624120

Comment 12 by sunxd@chromium.org, Jul 29 2016

Blockedon: 632787
Xianda, what's the status of this bug?

Comment 14 by sunxd@chromium.org, Aug 22 2016

I'm kinda stuck at the performance stage. We have approximately 7% perf regression on impl side cdp, due to hash map access time and not reusing cache efficiently.

We are not using efficiently because recently there's a change to compute draw transforms even if target node is a descendant of the source transform node. I'm still working around with that.

After resolving the regression, we might want to stop adding transform node for render surfaces. But that's blocked by clip tree de-targeting.

Comment 15 by sunxd@chromium.org, Aug 22 2016

More precisely, this bug is blocked by  crbug.com/624120  which is at the perf test stage as I mentioned on the above comment.

Comment 16 by sunxd@chromium.org, Oct 26 2016

jaydasika@, can we closing this bug now?
Status: Fixed (was: Assigned)

Sign in to add a comment