|
|
Descriptioncc : Move screen space scale factor to root transform node
This CL computes the screen space scale factor which is
combined form scale factors of device transform, device
scale factor and page scale factor(if required), and stores
it on the root transform node as its surface contents scale.
This also implicitly fixes a clipping bug.
TransformTree::ComputeTransforms(a, b) should return the
transform between a and b without the surface contents
scale. But, since screen space scale was baked into the
local transform of the contents root node (before this CL),
ComputeTransform(a, root) was having the scale baked in.
(and this caused the bug)
BUG=651584
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel
Committed: https://crrev.com/61fa0fb418a3f77665e0bc1be88ec5a2984c6dc6
Cr-Commit-Position: refs/heads/master@{#427366}
Patch Set 1 #Patch Set 2 : format #
Total comments: 1
Patch Set 3 : PAC #Patch Set 4 : test #
Total comments: 4
Patch Set 5 : rebase #Patch Set 6 : comments #Patch Set 7 : rebase #Patch Set 8 : . #Patch Set 9 : . #Patch Set 10 : initialze EffectNode::target_id to 1 #Patch Set 11 : comments #
Total comments: 3
Patch Set 12 : comments #
Messages
Total messages: 78 (58 generated)
Description was changed from ========== cc : Move screen space scale factor to root transform node BUG=651584 ========== to ========== cc : Move screen space scale factor to root transform node BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
Description was changed from ========== cc : Move screen space scale factor to root transform node BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) would have the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
Description was changed from ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) would have the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) was having the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
jaydasika@chromium.org changed reviewers: + ajuma@chromium.org, weiliangc@chromium.org
Sending it out for initial comments. I still need to add a test for the bug its fixing, but I have verified that it fixes the bug. https://codereview.chromium.org/2408243002/diff/20001/cc/trees/property_tree.h File cc/trees/property_tree.h (right): https://codereview.chromium.org/2408243002/diff/20001/cc/trees/property_tree.... cc/trees/property_tree.h:224: void SetDeviceTransform(const gfx::Transform& transform, This needs to be renamed. SetContentsRootPostLocalTransform could be one. Any better suggestions ?
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_precise_blink_rel on master.tryserver.blink (JOB_FAILED, http://build.chromium.org/p/tryserver.blink/builders/linux_precise_blink_rel/...)
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Made changes to PAC to put device scale factor into the root transform node there too and added a cc unit test for the bug.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Thanks for pushing this for merge to 55. Overall looks good. https://codereview.chromium.org/2408243002/diff/60001/cc/trees/layer_tree_hos... File cc/trees/layer_tree_host_common_unittest.cc (right): https://codereview.chromium.org/2408243002/diff/60001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_common_unittest.cc:9503: float device_scale_factor = 2.f; Could you add a case with device scale factor = 1.f before this to show that the device scale factor would change the clip_rect? Thanks. https://codereview.chromium.org/2408243002/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2408243002/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:461: // TODO(jaydasika) : We shouldn't set ToScreen and FromScreen of root Why does this not work in cc right now?
https://codereview.chromium.org/2408243002/diff/60001/third_party/WebKit/Sour... File third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp (right): https://codereview.chromium.org/2408243002/diff/60001/third_party/WebKit/Sour... third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp:461: // TODO(jaydasika) : We shouldn't set ToScreen and FromScreen of root On 2016/10/13 21:16:18, weiliangc wrote: > Why does this not work in cc right now? It doesn't work. We only update transforms from node 1. In cc, you can see a similar update for node 0 in SetScreenSpaceScale. I plan to remove them in a follow-up.
https://codereview.chromium.org/2408243002/diff/60001/cc/trees/layer_tree_hos... File cc/trees/layer_tree_host_common_unittest.cc (right): https://codereview.chromium.org/2408243002/diff/60001/cc/trees/layer_tree_hos... cc/trees/layer_tree_host_common_unittest.cc:9503: float device_scale_factor = 2.f; On 2016/10/13 21:16:18, weiliangc wrote: > Could you add a case with device scale factor = 1.f before this to show that the > device scale factor would change the clip_rect? > > Thanks. Done.
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
lgtm on behalf of Wei (who asked me offline to lgtm this)
jaydasika@chromium.org changed reviewers: + chrishtr@chromium.org, pdr@chromium.org
+ pdr/chrishtr for changes to PaintArtifactCompositor
On 2016/10/14 at 23:19:01, jaydasika wrote: > + pdr/chrishtr for changes to PaintArtifactCompositor PaintArtifactCompositor.cpp LGTM
The CQ bit was checked by jaydasika@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: android_n5x_swarming_rel on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_n5x_...)
The CQ bit was checked by jaydasika@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
Patchset #7 (id:120001) has been deleted
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...) win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
PTAL (see the diff b/w Patch 7 and the last patch for new changes) https://codereview.chromium.org/2408243002/diff/220001/cc/trees/effect_node.cc File cc/trees/effect_node.cc (right): https://codereview.chromium.org/2408243002/diff/220001/cc/trees/effect_node.c... cc/trees/effect_node.cc:36: target_id(1), Effect node 0 is a dummy node, the actual root is node 1. So, setting default target to 1. This is required because screen space surface contents scale for root is stored on node 1.
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Overall looks like reasonable approach. Since this patch is meant to be merged into M55, probably best to run cc_unittest on after merge on your own. Thanks for pushing this! https://codereview.chromium.org/2408243002/diff/220001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (right): https://codereview.chromium.org/2408243002/diff/220001/cc/trees/property_tree... cc/trees/property_tree.cc:709: post_local.matrix().postScale(1.f / device_transform_scale_components.x(), This assumes device transform's scale components is part of the scale on the root surface, right? Can this assumption be tested/guaranteed? For example is SetDeviceTransform always called with SetScreenSpaceScale? Could these two calls being bundled together?
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
https://codereview.chromium.org/2408243002/diff/220001/cc/trees/property_tree.cc File cc/trees/property_tree.cc (right): https://codereview.chromium.org/2408243002/diff/220001/cc/trees/property_tree... cc/trees/property_tree.cc:709: post_local.matrix().postScale(1.f / device_transform_scale_components.x(), On 2016/10/24 21:29:36, weiliangc wrote: > This assumes device transform's scale components is part of the scale on the > root surface, right? Can this assumption be tested/guaranteed? For example is > SetDeviceTransform always called with SetScreenSpaceScale? Could these two calls > being bundled together? Done.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...)
The CQ bit was checked by jaydasika@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
LGTM
The CQ bit was checked by weiliangc@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from ajuma@chromium.org, pdr@chromium.org Link to the patchset: https://codereview.chromium.org/2408243002/#ps240001 (title: "comments")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) was having the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) was having the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ==========
Message was sent while issue was closed.
Committed patchset #12 (id:240001)
Message was sent while issue was closed.
Description was changed from ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) was having the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel ========== to ========== cc : Move screen space scale factor to root transform node This CL computes the screen space scale factor which is combined form scale factors of device transform, device scale factor and page scale factor(if required), and stores it on the root transform node as its surface contents scale. This also implicitly fixes a clipping bug. TransformTree::ComputeTransforms(a, b) should return the transform between a and b without the surface contents scale. But, since screen space scale was baked into the local transform of the contents root node (before this CL), ComputeTransform(a, root) was having the scale baked in. (and this caused the bug) BUG=651584 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel Committed: https://crrev.com/61fa0fb418a3f77665e0bc1be88ec5a2984c6dc6 Cr-Commit-Position: refs/heads/master@{#427366} ==========
Message was sent while issue was closed.
Patchset 12 (id:??) landed as https://crrev.com/61fa0fb418a3f77665e0bc1be88ec5a2984c6dc6 Cr-Commit-Position: refs/heads/master@{#427366}
Message was sent while issue was closed.
A revert of this CL (patchset #12 id:240001) has been created in https://codereview.chromium.org/2452303003/ by jaydasika@chromium.org. The reason for reverting is: https://bugs.chromium.org/p/chromium/issues/detail?id=660047. |