Here are (the interesting parts of) a couple of stacktraces showing what is triggering the transforms to be re-set to their old values: ``` #19 0x00007ff4b78f765e in mozilla::layers::RemoteContentController::NotifyLayerTransforms (this=0x7ff4a7f3e920, aTransforms=...) at /home/botond/dev/mozilla/central/gfx/layers/ipc/RemoteContentController.cpp:35 #20 0x00007ff4b78e9803 in mozilla::layers::CompositorBridgeParent::RecvAdoptChild(mozilla::layers::LayersId const&)::$_5::operator()() const (this=0x7ff4a014ea50) at /home/botond/dev/mozilla/central/gfx/layers/ipc/CompositorBridgeParent.cpp:1779 #21 mozilla::detail::RunnableFunction<mozilla::layers::CompositorBridgeParent::RecvAdoptChild(mozilla::layers::LayersId const&)::$_5>::Run() (this=0x7ff4a014ea30) at /home/botond/dev/mozilla/out-of-tree-objdirs/central-desktop-clang-opt/dist/include/nsThreadUtils.h:564 #22 0x00007ff4b7825479 in mozilla::layers::APZUpdater::ProcessQueue (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:533 #23 0x00007ff4b7825723 in mozilla::layers::APZUpdater::ProcessPendingTasks (aWindowId=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:130 #24 0x00007ff4b7826a82 in apz_run_updater (aWindowId=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:602 #25 0x00007ff4bb946c69 in webrender::scene_builder::SceneBuilder::run::h367fcc07cee0d257 (self=<optimized out>) at gfx/wr/webrender/src/scene_builder.rs:373 ``` ``` #19 0x00007ff4b78f765e in mozilla::layers::RemoteContentController::NotifyLayerTransforms (this=0x7ff4a7f3e920, aTransforms=...) at /home/botond/dev/mozilla/central/gfx/layers/ipc/RemoteContentController.cpp:35 #20 0x00007ff4b7821a8e in mozilla::layers::APZCTreeManager::SendSubtreeTransformsToChromeMainThread (this=<optimized out>, aAncestor=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:3318 #21 0x00007ff4b783dd9d in mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper> (this=0x7ff4b1d9d800, aRoot=..., aIsFirstPaint=false, aOriginatingWrRootId=..., aPaintSequenceNumber=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:607 #22 0x00007ff4b783b1f8 in mozilla::layers::APZCTreeManager::UpdateHitTestingTree (this=0x7ff4b1d9d800, aScrollWrapper=..., aOriginatingWrRootId=<error reading variable: access outside bounds of object referenced via synthetic pointer>, aPaintSequenceNumber=<optimized out>, aIsFirstPaint=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:638 #23 mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28::operator()() (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:220 #24 mozilla::detail::RunnableFunction<mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28>::Run() (this=<optimized out>) at /home/botond/dev/mozilla/out-of-tree-objdirs/central-desktop-clang-opt/dist/include/nsThreadUtils.h:564 #25 0x00007ff4b7825479 in mozilla::layers::APZUpdater::ProcessQueue (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:533 #26 0x00007ff4b7824fda in mozilla::layers::APZUpdater::CompleteSceneSwap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:122 #27 0x00007ff4b7826a26 in apz_post_scene_swap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:597 #28 0x00007ff4bb61da16 in _$LT$webrender_bindings..bindings..APZCallbacks$u20$as$u20$webrender..renderer..SceneBuilderHooks$GT$::post_scene_swap::hf24b64877d4d9769 (self=<optimized out>, document_ids=0x7ff4a7efd6c8, info=..., sceneswap_time=<optimized out>) at gfx/webrender_bindings/src/bindings.rs:944 #29 0x00007ff4bb947c6e in webrender::scene_builder::SceneBuilder::forward_built_transactions::h77eaf8cb3ef0f13d (self=0x7ff4a7efe4c0, txns=...) at gfx/wr/webrender/src/scene_builder.rs:607 #30 0x00007ff4bb946aec in webrender::scene_builder::SceneBuilder::run::h367fcc07cee0d257 (self=0x2) at gfx/wr/webrender/src/scene_builder.rs:330 ``` They're in WebRender specific code, which explains why the issue only occurs with WebRender enabled.
Bug 1576524 Comment 15 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Here is (the interesting part of) a stacktrace showing what is triggering the transforms to be re-set to their old values: ``` #19 0x00007ff4b78f765e in mozilla::layers::RemoteContentController::NotifyLayerTransforms (this=0x7ff4a7f3e920, aTransforms=...) at /home/botond/dev/mozilla/central/gfx/layers/ipc/RemoteContentController.cpp:35 #20 0x00007ff4b7821a8e in mozilla::layers::APZCTreeManager::SendSubtreeTransformsToChromeMainThread (this=<optimized out>, aAncestor=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:3318 #21 0x00007ff4b783dd9d in mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper> (this=0x7ff4b1d9d800, aRoot=..., aIsFirstPaint=false, aOriginatingWrRootId=..., aPaintSequenceNumber=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:607 #22 0x00007ff4b783b1f8 in mozilla::layers::APZCTreeManager::UpdateHitTestingTree (this=0x7ff4b1d9d800, aScrollWrapper=..., aOriginatingWrRootId=<error reading variable: access outside bounds of object referenced via synthetic pointer>, aPaintSequenceNumber=<optimized out>, aIsFirstPaint=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZCTreeManager.cpp:638 #23 mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28::operator()() (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:220 #24 mozilla::detail::RunnableFunction<mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::WRRootId, mozilla::layers::WRRootId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_28>::Run() (this=<optimized out>) at /home/botond/dev/mozilla/out-of-tree-objdirs/central-desktop-clang-opt/dist/include/nsThreadUtils.h:564 #25 0x00007ff4b7825479 in mozilla::layers::APZUpdater::ProcessQueue (this=<optimized out>) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:533 #26 0x00007ff4b7824fda in mozilla::layers::APZUpdater::CompleteSceneSwap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:122 #27 0x00007ff4b7826a26 in apz_post_scene_swap (aWindowId=..., aInfo=...) at /home/botond/dev/mozilla/central/gfx/layers/apz/src/APZUpdater.cpp:597 #28 0x00007ff4bb61da16 in _$LT$webrender_bindings..bindings..APZCallbacks$u20$as$u20$webrender..renderer..SceneBuilderHooks$GT$::post_scene_swap::hf24b64877d4d9769 (self=<optimized out>, document_ids=0x7ff4a7efd6c8, info=..., sceneswap_time=<optimized out>) at gfx/webrender_bindings/src/bindings.rs:944 #29 0x00007ff4bb947c6e in webrender::scene_builder::SceneBuilder::forward_built_transactions::h77eaf8cb3ef0f13d (self=0x7ff4a7efe4c0, txns=...) at gfx/wr/webrender/src/scene_builder.rs:607 #30 0x00007ff4bb946aec in webrender::scene_builder::SceneBuilder::run::h367fcc07cee0d257 (self=0x2) at gfx/wr/webrender/src/scene_builder.rs:330 ``` It's in WebRender specific code, which explains why the issue only occurs with WebRender enabled.