Issue metadata
Sign in to add a comment
|
Chrome stucks on large transform with transition
Reported by
d...@hinderlingvolkart.com,
Dec 20 2017
|
||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36 Example URL: https://codepen.io/derz/pen/aEZmoW Steps to reproduce the problem: 1. Open https://codepen.io/derz/pen/aEZmoW 2. Click on "Scale it" Button 3. Browser stucks and gets frozen during the transition. Whole OS seems to stuck -- Browser always stucks when there is a large transform on an element (see the example: 1px height scaled too 800px with a transform) What is the expected behavior? Element should transition smoothly during the whole scaleing/transform. What went wrong? Browser always stucks when there is a large transform on an element (see the example: 1px height scaled too 800px with a transform) Does it occur on multiple sites: Yes Is it a problem with a plugin? No Did this work before? Yes v62 Does this work in other browsers? Yes Chrome version: 63.0.3239.84 Channel: n/a OS Version: OS X 10.13.1 Flash Version:
,
Dec 21 2017
Able to reproduce the issue on mac 10.12.6 using chrome reported version #63.0.3239.84 and latest canary #65.0.3299.0. Issue is not seen in OS-Win and OS-Linux. Bisect Information: ===================== Good build: 63.0.3238.0 Revision(508208) Bad Build : 63.0.3239.0 Revision(508578) Change Log URL: https://chromium.googlesource.com/chromium/src/+log/3d541cac26d562d9a6f621362faef99d807056f6..48493dc45de06867eec97e7944f56d511e3c4578 From the above change log suspecting below change Change-Id: I3a383721b33378065ff5d868afcc729b08064d82 Reviewed-on: https://chromium-review.googlesource.com/697886 sunxd@ - Could you please check whether this is caused with respect to your change, if not please help us in assigning it to the right owner. Note: Adding stable blocker as it seems to be a recent regression. Please feel free to remove the same if not appropriate. Thanks...!!
,
Dec 21 2017
Trying to reproduce on local machine now.
,
Dec 21 2017
,
Dec 25 2017
,
Dec 28 2017
Friendly ping to get an update on this issue as it is marked as stable blocker. Thanks..!
,
Dec 28 2017
,
Dec 28 2017
The bug will not reproduce if I run with --disable-mac-overlays. I suspect we reraster during animation?
,
Jan 2 2018
If I make the 1px height div a non-solid one, the animation finishes quickly. Is there any difference between converting a solid quad and a tiled quad to ca layers?
,
Jan 8 2018
dme@ Could you please respond for the comment #10? Thanks!
,
Jan 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260 commit 34cfc6e4d65c2ccddebce50c974a0e1bb67b5260 Author: sunxd <sunxd@chromium.org> Date: Tue Jan 09 22:04:21 2018 cc: Make solid color non-mask layers ignore contents scale This is a workaround to fix crbug.com/796558. Solid color layers are expected to respect the contents scale because otherwise, a solid color mask layer would downgrade the rendering quality of masked layers should it be converted to ca layer. However, respecting contents would stuck the browser if a large scale transition is applied. This patch makes non-mask layers to ignore the scale so that we can unblock stable release. Bug: 796558 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ied2607238dc9b01a3ec2e6d9463c36adb41dbc93 Reviewed-on: https://chromium-review.googlesource.com/854976 Reviewed-by: Kenneth Russell <kbr@chromium.org> Reviewed-by: enne <enne@chromium.org> Commit-Queue: Xianda Sun <sunxd@chromium.org> Cr-Commit-Position: refs/heads/master@{#528133} [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/cc/layers/picture_layer_impl.cc [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/cc/layers/picture_layer_impl_unittest.cc [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/cc/test/test_layer_tree_host_base.cc [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/cc/test/test_layer_tree_host_base.h [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/content/test/gpu/gpu_tests/pixel_expectations.py [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/content/test/gpu/gpu_tests/pixel_test_pages.py [delete] https://crrev.com/7f9da00a4990a7a593aa7c27c827e5d8f7ac6cfd/third_party/WebKit/LayoutTests/compositing/overflow/scaled-overflow-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/linux/transforms/3d/point-mapping/3d-point-mapping-3-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/mac/compositing/3d-corners-expected.png [add] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/mac/compositing/overflow/scaled-overflow-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/mac/compositing/scaling/tiled-layer-recursion-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/mac/transforms/3d/point-mapping/3d-point-mapping-3-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/win/compositing/3d-corners-expected.png [add] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/win/compositing/overflow/scaled-overflow-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/win/compositing/scaling/tiled-layer-recursion-expected.png [modify] https://crrev.com/34cfc6e4d65c2ccddebce50c974a0e1bb67b5260/third_party/WebKit/LayoutTests/platform/win/transforms/3d/point-mapping/3d-point-mapping-3-expected.png
,
Jan 9 2018
This patch is a workaround, so the bug is not fixed. But we can remove the release-blocker if the bug is no longer reproducible.
,
Jan 12 2018
Should we merge the workaround on the 64 branch?
,
Jan 15 2018
I think we need to merge to m63, 64 and 65. Also ccameron@, can you please take a look at this bug?
,
Jan 16 2018
Hi govind@, do I need to merge to M64 if the fix goes into m63?
,
Jan 16 2018
We're not planning any further M63 releases. + abdulsyed@ (M64 Desktop Release TPM) to comment on M64 merge.
,
Jan 16 2018
Rejecting merge to M63 per comment #17.
,
Jan 16 2018
Add Merge-request-64.
,
Jan 16 2018
This bug requires manual review: We are only 6 days from stable. Please contact the milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jan 16 2018
Since this has been present since M63, can you please confirm why this is absolutely needed for M64? We're only 1 week away from stable and this seems like a fairly large change.
,
Jan 16 2018
This vaguely reminds me issue 796167 , where we created ~100k quads, and that caused us to keel over dead. This impacted mac and CoreAnimation a bit more than non-CoreAnimation platforms, but the underlying issue was "we just can't handle a bazillion quads and we should find a way to not do that". Not 100% sure if this is the same though -- we'd need to check. If this is indeed an issue with a particular CATransform being bad, we can just say "if the matrix scales any component by >100, don't use CoreAnimation".
,
Jan 17 2018
Given it's a rare hit in M63, I think it would be fine not to merge and let the workaround flow into M65. ccameron@, thanks for commenting, I'm going to examine the ca transform then.
,
Jan 22 2018
sunxd@, Friendly ping to get an update on this issue as per C#23. Thanks..!
,
Jan 22 2018
Sorry since it is not actually blocking release, I have been working on other things. The transform does have a large scale of 800. I think we can work on disabling mac overlays in this case. I'm also make it a P2 bug since the workaround is already in M65.
,
Jan 26 2018
Removing ReleaseBlock-Stable per #25.
,
Apr 13 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/16ad333175b42977d1d6d7a4a7c29bf04607d927 commit 16ad333175b42977d1d6d7a4a7c29bf04607d927 Author: Kenneth Russell <kbr@chromium.org> Date: Fri Apr 13 01:47:48 2018 Make collisions in text expectations fatal. If two different test expectations for the same test apply on the current browser configuration, fail hard. This has happened a couple of times already in the pixel test expectations and it has led to confusion. Added verify_all_expectations_unittest which checks for collisions in all of the GPU test expectations subclasses in this directory, taking into account configurations on the waterfall. This is automatically run during presubmit, along with all of the other GPU unittests, to make life easier on developers. Removed expectations for Pixel_CSS3DBlueBox, which should be passing on macOS reliably now. Bug: 533690 , 706016 , 796558, 830228 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I64a604d38a4b21729cf0e5b969328d2b051bddbb Reviewed-on: https://chromium-review.googlesource.com/1002032 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Cr-Commit-Position: refs/heads/master@{#550464} [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/pixel_expectations.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/test_expectations.py [add] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/verify_all_expectations_unittest.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_conformance_expectations.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_conformance_expectations_unittest.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py [add] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_test_util.py
,
Apr 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/16ad333175b42977d1d6d7a4a7c29bf04607d927 commit 16ad333175b42977d1d6d7a4a7c29bf04607d927 Author: Kenneth Russell <kbr@chromium.org> Date: Fri Apr 13 01:47:48 2018 Make collisions in text expectations fatal. If two different test expectations for the same test apply on the current browser configuration, fail hard. This has happened a couple of times already in the pixel test expectations and it has led to confusion. Added verify_all_expectations_unittest which checks for collisions in all of the GPU test expectations subclasses in this directory, taking into account configurations on the waterfall. This is automatically run during presubmit, along with all of the other GPU unittests, to make life easier on developers. Removed expectations for Pixel_CSS3DBlueBox, which should be passing on macOS reliably now. Bug: 533690 , 706016 , 796558, 830228 Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: I64a604d38a4b21729cf0e5b969328d2b051bddbb Reviewed-on: https://chromium-review.googlesource.com/1002032 Commit-Queue: Kenneth Russell <kbr@chromium.org> Reviewed-by: Kai Ninomiya <kainino@chromium.org> Cr-Commit-Position: refs/heads/master@{#550464} [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/pixel_expectations.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/test_expectations.py [add] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/verify_all_expectations_unittest.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_conformance_expectations.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_conformance_expectations_unittest.py [modify] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_conformance_integration_test.py [add] https://crrev.com/16ad333175b42977d1d6d7a4a7c29bf04607d927/content/test/gpu/gpu_tests/webgl_test_util.py |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by krajshree@chromium.org
, Dec 20 2017