Closed
Bug 1513327
Opened 7 years ago
Closed 7 years ago
Assertion failure: ancestorTransform.IsIdentity(), at /builds/worker/workspace/build/src/gfx/layers/composite/AsyncCompositionManager.cpp:449
Categories
(Core :: Graphics: Layers, defect, P3)
Core
Graphics: Layers
Tracking
()
RESOLVED
DUPLICATE
of bug 1430787
| Tracking | Status | |
|---|---|---|
| firefox66 | --- | affected |
People
(Reporter: jkratzer, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: assertion, testcase)
Attachments
(1 file)
|
432 bytes,
text/html
|
Details |
Testcase found while fuzzing mozilla-central rev 0132b59bb093.
Assertion failure: ancestorTransform.IsIdentity(), at /builds/worker/workspace/build/src/gfx/layers/composite/AsyncCompositionManager.cpp:449
Unfortunately, we do not have symbols for debug builds at this time so a stack trace is not available.
Flags: in-testsuite?
Comment 1•7 years ago
|
||
I managed to reproduce this and caught it in the debugger.
Here's the backtrace.
> #5 0x00007ffb0acd43c0 in <signal handler called> () at /usr/lib/libpthread.so.0
> #6 0x00007ffaff85d2e8 in mozilla::layers::AsyncCompositionManager::AlignFixedAndStickyLayers(mozilla::layers::Layer*, mozilla::layers::Layer*, unsigned long, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::MarginTyped<mozilla::ScreenPixel, float> const&, std::map<mozilla::layers::Layer*, mozilla::layers::AsyncCompositionManager::ClipParts, std::less<mozilla::layers::Layer*>, std::allocator<std::pair<mozilla::layers::Layer* const, mozilla::layers::AsyncCompositionManager::ClipParts> > >*)
> (this=0x7ffaf7d1e580, aTransformedSubtreeRoot=0x7ffaeaaf2000, aStartTraversalAt=<optimized out>, aTransformScrollId=2, aPreviousTransformForRoot=..., aCurrentTransformForRoot=..., aFixedLayerMargins=..., aClipPartsCache=0x7ffaf95d7760)
> at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:449
> #7 0x00007ffaff85cc56 in mozilla::layers::AsyncCompositionManager::AlignFixedAndStickyLayers(mozilla::layers::Layer*, mozilla::layers::Layer*, unsigned long, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::MarginTyped<mozilla::ScreenPixel, float> const&, std::map<mozilla::layers::Layer*, mozilla::layers::AsyncCompositionManager::ClipParts, std::less<mozilla::layers::Layer*>, std::allocator<std::pair<mozilla::layers::Layer* const, mozilla::layers::AsyncCompositionManager::ClipParts> > >*)
> (this=0x7ffaf95d75c8, aTransformedSubtreeRoot=0x7ffaeaaf2000, aStartTraversalAt=<optimized out>, aTransformScrollId=<optimized out>, aPreviousTransformForRoot=..., aCurrentTransformForRoot=..., aFixedLayerMargins=..., aClipPartsCache=0x7ffaf95d7760) at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:428
> #8 0x00007ffaff85cc56 in mozilla::layers::AsyncCompositionManager::AlignFixedAndStickyLayers(mozilla::layers::Layer*, mozilla::layers::Layer*, unsigned long, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::MarginTyped<mozilla::ScreenPixel, float> const&, std::map<mozilla::layers::Layer*, mozilla::layers::AsyncCompositionManager::ClipParts, std::less<mozilla::layers::Layer*>, std::allocator<std::pair<mozilla::layers::Layer* const, mozilla::layers::AsyncCompositionManager::ClipParts> > >*)
> (this=0x7ffaee677800, aTransformedSubtreeRoot=0x7ffaeaaf2000, aStartTraversalAt=<optimized out>, aTransformScrollId=<optimized out>, aPreviousTransformForRoot=..., aCurrentTransformForRoot=..., aFixedLayerMargins=..., aClipPartsCache=0x7ffaf95d7760) at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:428
> #9 0x00007ffaff85cc56 in mozilla::layers::AsyncCompositionManager::AlignFixedAndStickyLayers(mozilla::layers::Layer*, mozilla::layers::Layer*, unsigned long, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::Matrix4x4Typed<mozilla::LayerPixel, mozilla::ParentLayerPixel> const&, mozilla::gfx::MarginTyped<mozilla::ScreenPixel, float> const&, std::map<mozilla::layers::Layer*, mozilla::layers::AsyncCompositionManager::ClipParts, std::less<mozilla::layers::Layer*>, std::allocator<std::pair<mozilla::layers::Layer* const, mozilla::layers::AsyncCompositionManager::ClipParts> > >*)
> (this=0x7ffb0a7afd8d <PR_GetCurrentThread+32>, aTransformedSubtreeRoot=0x7ffaeaaf2000, aStartTraversalAt=<optimized out>, aTransformScrollId=<optimized out>, aPreviousTransformForRoot=..., aCurrentTransformForRoot=..., aFixedLayerMargins=..., aClipPartsCache=0x7ffaf95d7760) at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:428
> #10 0x00007ffaff86c831 in mozilla::layers::AsyncCompositionManager::ApplyAsyncContentTransformToTree(mozilla::layers::Layer*, bool*)::$_4::operator()(mozilla::layers::Layer*) const (this=0x7ffaf95d7730, layer=0x7ffb0a98b710 <_IO_stdfile_2_lock>)
> at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:1067
> #11 0x00007ffaff85e033 in _ZN7mozilla6layersL11ForEachNodeINS0_15ForwardIteratorEPNS0_5LayerEZNS0_23AsyncCompositionManager32ApplyAsyncContentTransformToTreeES4_PbE3$_3ZNS5_32ApplyAsyncContentTransformToTreeES4_S6_E3$_4EENS_8EnableIfIXaasr6IsSameIDTclfp0_fp_EEvEE5valuesr6IsSameIDTclfp1_fp_EEvEE5valueEvE4TypeET0_RKT1_RKT2_
> (aRoot=<optimized out>, aPreAction=..., aPostAction=...) at /home/rhunt/src/fx/gfx/layers/TreeTraversal.h:145
> #12 0x00007ffaff85e00d in _ZN7mozilla6layersL11ForEachNodeINS0_15ForwardIteratorEPNS0_5LayerEZNS0_23AsyncCompositionManager32ApplyAsyncContentTransformToTreeES4_PbE3$_3ZNS5_32ApplyAsyncContentTransformToTreeES4_S6_E3$_4EENS_8EnableIfIXaasr6IsSameIDTclfp0_fp_EEvEE5valuesr6IsSameIDTclfp1_fp_EEvEE5valueEvE4TypeET0_RKT1_RKT2_
> (aRoot=<optimized out>, aPreAction=..., aPostAction=...) at /home/rhunt/src/fx/gfx/layers/TreeTraversal.h:142
> #13 0x00007ffaff85e00d in _ZN7mozilla6layersL11ForEachNodeINS0_15ForwardIteratorEPNS0_5LayerEZNS0_23AsyncCompositionManager32ApplyAsyncContentTransformToTreeES4_PbE3$_3ZNS5_32ApplyAsyncContentTransformToTreeES4_S6_E3$_4EENS_8EnableIfIXaasr6IsSameIDTclfp0_fp_EEvEE5valuesr6IsSameIDTclfp1_fp_EEvEE5valueEvE4TypeET0_RKT1_RKT2_
> (aRoot=<optimized out>, aPreAction=..., aPostAction=...) at /home/rhunt/src/fx/gfx/layers/TreeTraversal.h:142
> #14 0x00007ffaff85e00d in _ZN7mozilla6layersL11ForEachNodeINS0_15ForwardIteratorEPNS0_5LayerEZNS0_23AsyncCompositionManager32ApplyAsyncContentTransformToTreeES4_PbE3$_3ZNS5_32ApplyAsyncContentTransformToTreeES4_S6_E3$_4EENS_8EnableIfIXaasr6IsSameIDTclfp0_fp_EEvEE5valuesr6IsSameIDTclfp1_fp_EEvEE5valueEvE4TypeET0_RKT1_RKT2_
> (aRoot=<optimized out>, aPreAction=..., aPostAction=...) at /home/rhunt/src/fx/gfx/layers/TreeTraversal.h:142
> #15 0x00007ffaff85df3c in mozilla::layers::AsyncCompositionManager::ApplyAsyncContentTransformToTree(mozilla::layers::Layer*, bool*) (this=<optimized out>, aLayer=0x7ffb0a98a4e0 <_IO_2_1_stderr_>, aOutFoundRoot=<optimized out>)
> at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:869
> #16 0x00007ffaff85e5f7 in mozilla::layers::AsyncCompositionManager::TransformShadowTree(mozilla::TimeStamp, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>, mozilla::layers::CompositorBridgeParentBase::TransformsToSkip)
> (this=0x7ffaf7d1e580, aCurrentFrame=..., aVsyncRate=..., aSkip=mozilla::layers::CompositorBridgeParentBase::TransformsToSkip::NoneOfThem) at /home/rhunt/src/fx/gfx/layers/composite/AsyncCompositionManager.cpp:1327
> #17 0x00007ffaff88f736 in mozilla::layers::CompositorBridgeParent::CompositeToTarget(mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*) (this=0x7ffaf7d35400, aTarget=0x0, aRect=0x0)
> at /home/rhunt/src/fx/gfx/layers/ipc/CompositorBridgeParent.cpp:965
Here's the transform and layer.
ancestorTransform = [
[-1, 0, 0, 0],
[0, -1, 0, 0],
[0, 0, 1, 0],
[12, 23195, 0, 1],
]
layer=0x7ffaeaaf2c00
And here's the layer tree dump.
> LayerManager (0x7ffaf828a1a0) --- in 3D-sorted rendering order
> ContainerLayerComposite (0x7ffaeb40b000) [shadow-visible=< (x=0, y=0, w=1280, h=9); (x=-311, y=9, w=1591, h=16); (x=0, y=25, w=1280, h=49); (x=0, y=74, w=1408, h=861); (x=-1, y=935, w=1409, h=12); (x=0, y=947, w=1408, h=151); >] [visible=< (x=0, y=0, w=1280, h=947); >] [opaqueContent] [metrics0={ [metrics={ [cb=(x=0.000000, y=0.000000, w=1280.000000, h=947.000000)] [sr=(x=0.000000, y=0.000000, w=1280.000000, h=947.000000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=1280.000000, h=947.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [scrollId=3] [z=1] }] [color=rgba(0, 0, 0, 0.000000)] }]
> PaintedLayerComposite (0x7ffaeb40b400) [shadow-visible=< (x=0, y=0, w=1280, h=947); >] [visible=< (x=0, y=0, w=1280, h=947); >] { hitregion=< (x=0, y=0, w=1280, h=947); > dispatchtocontentregion=< (x=0, y=0, w=1280, h=33); >} [opaqueContent] [valid=< (x=0, y=0, w=1280, h=947); >]
> ContentHost (0x7ffae951d7c0) [buffer-rect=(x=0, y=0, w=1280, h=947)] [buffer-rotation=(0,0)]
> MemoryTextureHost (0x7ffaeefb37a0) [size=(w=1280, h=947)] [format=SurfaceFormat::B8G8R8X8] [flags=]
> RefLayerComposite (0x7ffaeaad6800) [shadow-clip=(x=0, y=74, w=1280, h=873)] [shadow-transform=[ 1 0; 0 1; 0 74; ]] [shadow-visible=< (x=1268, y=-1, w=12, h=1); (x=0, y=0, w=1408, h=861); (x=-1, y=861, w=1409, h=12); (x=0, y=873, w=1408, h=151); >] [clip=(x=0, y=74, w=1280, h=873)] [transform=[ 1 0; 0 1; 0 74; ]] [effective-transform=[ 1 0; 0 1; 0 74; ]] [visible=< (x=0, y=0, w=1280, h=873); >] [id=4294967309]
> ContainerLayerComposite (0x7ffaeaaee000) [shadow-visible=< (x=1268, y=-1, w=12, h=1); (x=0, y=0, w=1408, h=861); (x=-1, y=861, w=1409, h=12); (x=0, y=873, w=1408, h=151); >] [visible=< (x=0, y=0, w=1280, h=873); >] [opaqueContent]
> PaintedLayerComposite (0x7ffaeaaf4400) [shadow-clip=(x=0, y=0, w=0, h=0)] [clip=(x=0, y=0, w=0, h=0)] [not visible]
> ContentHost (0x7ffaee65c190) [buffer-rect=(x=0, y=0, w=0, h=0)] [buffer-rotation=(0,0)]
> ColorLayerComposite (0x7ffaeaaf4800) [shadow-visible=< (x=0, y=0, w=1268, h=861); >] [visible=< (x=0, y=0, w=1268, h=861); >] { hitregion=< (x=0, y=0, w=1280, h=873); >} [opaqueContent] [color=rgba(0, 0, 192, 1.000000)] [bounds=(x=0, y=0, w=1280, h=873)]
> ContainerLayerComposite (0x7ffaeaaee400) [shadow-clip=(x=0, y=0, w=1280, h=873)] [shadow-visible=< (x=-1, y=861, w=1269, h=12); >] [clip=(x=0, y=0, w=1280, h=873)] [visible=< (x=0, y=861, w=1268, h=12); >] [opaqueContent] [scrollbar]
> PaintedLayerComposite (0x7ffaeaaef000) [shadow-visible=< (x=0, y=861, w=1268, h=12); >] [visible=< (x=0, y=861, w=1268, h=12); >] { hitregion=< (x=0, y=861, w=1268, h=12); >} [opaqueContent] [valid=< (x=0, y=861, w=1268, h=12); >]
> ContentHost (0x7ffaee65c240) [buffer-rect=(x=0, y=861, w=1268, h=12)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8bc50) [size=(w=1268, h=12)] [format=SurfaceFormat::B8G8R8X8] [flags=]
> ContainerLayerComposite (0x7ffaeaaee800) [shadow-clip=(x=0, y=861, w=1268, h=12)] [shadow-visible=< (x=-1, y=861, w=48, h=12); >] [clip=(x=0, y=861, w=1268, h=12)] [visible=< (x=-1, y=861, w=48, h=12); >] [hscrollbar=2]
> PaintedLayerComposite (0x7ffaeaaeec00) [shadow-transform=[ 1 0; 0 1; 0 861; ]] [shadow-visible=< (x=-1, y=0, w=48, h=12); >] [transform=[ 1 0; 0 1; 0 861; ]] [visible=< (x=-1, y=0, w=48, h=12); >] { hitregion=< (x=0, y=0, w=46, h=12); >} [valid=< (x=-1, y=0, w=48, h=12); >]
> ContentHost (0x7ffaee65c920) [buffer-rect=(x=-1, y=0, w=48, h=12)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8bd40) [size=(w=48, h=12)] [format=SurfaceFormat::B8G8R8A8] [flags=]
> ContainerLayerComposite (0x7ffaeaaef400) [shadow-clip=(x=0, y=0, w=1280, h=873)] [shadow-visible=< (x=1268, y=-1, w=12, h=862); >] [clip=(x=0, y=0, w=1280, h=873)] [visible=< (x=1268, y=0, w=12, h=861); >] [opaqueContent] [scrollbar]
> PaintedLayerComposite (0x7ffaeaaf0c00) [shadow-visible=< (x=1268, y=0, w=12, h=861); >] [visible=< (x=1268, y=0, w=12, h=861); >] { hitregion=< (x=1268, y=0, w=12, h=861); >} [opaqueContent] [valid=< (x=1268, y=0, w=12, h=861); >]
> ContentHost (0x7ffaee65c870) [buffer-rect=(x=1268, y=0, w=12, h=861)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8be30) [size=(w=12, h=861)] [format=SurfaceFormat::B8G8R8X8] [flags=]
> ContainerLayerComposite (0x7ffaeaaef800) [shadow-clip=(x=1268, y=0, w=12, h=861)] [shadow-visible=< (x=1268, y=-1, w=12, h=48); >] [clip=(x=1268, y=0, w=12, h=861)] [visible=< (x=1268, y=-1, w=12, h=48); >] [vscrollbar=2]
> PaintedLayerComposite (0x7ffaeaaf0800) [shadow-transform=[ 1 0; 0 1; 1268 0; ]] [shadow-visible=< (x=0, y=-1, w=12, h=48); >] [transform=[ 1 0; 0 1; 1268 0; ]] [visible=< (x=0, y=-1, w=12, h=48); >] { hitregion=< (x=0, y=0, w=12, h=46); >} [valid=< (x=0, y=-1, w=12, h=48); >]
> ContentHost (0x7ffaee65cc90) [buffer-rect=(x=0, y=-1, w=12, h=48)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8bf20) [size=(w=12, h=48)] [format=SurfaceFormat::B8G8R8A8] [flags=]
> ContainerLayerComposite (0x7ffaeaaf1000) [shadow-clip=(x=0, y=0, w=1280, h=873)] [shadow-visible=< (x=1268, y=861, w=12, h=12); >] [clip=(x=0, y=0, w=1280, h=873)] [visible=< (x=1268, y=861, w=12, h=12); >] [opaqueContent]
> PaintedLayerComposite (0x7ffaeaaf1400) [shadow-clip=(x=0, y=0, w=0, h=0)] [clip=(x=0, y=0, w=0, h=0)] [not visible]
> ContentHost (0x7ffaee65cbe0) [buffer-rect=(x=0, y=0, w=0, h=0)] [buffer-rotation=(0,0)]
> ColorLayerComposite (0x7ffaeaaf1800) [shadow-visible=< (x=1268, y=861, w=12, h=12); >] [visible=< (x=1268, y=861, w=12, h=12); >] { hitregion=< (x=1268, y=861, w=12, h=12); >} [opaqueContent] [color=rgba(232, 232, 231, 1.000000)] [bounds=(x=1268, y=861, w=12, h=12)]
> PaintedLayerComposite (0x7ffaeaaf4000) [shadow-clip=(x=0, y=0, w=1268, h=861)] [shadow-visible=< (x=0, y=0, w=1408, h=1024); >] [visible=< (x=0, y=0, w=1408, h=1024); >] { hitregion=< (x=0, y=0, w=269390, h=92791); >} [opaqueContent] [metrics0={ [metrics={ [cb=(x=0.000000, y=0.000000, w=1268.000000, h=861.000000)] [sr=(x=0.000000, y=0.000000, w=269389.000000, h=92791.000000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=1408.000000, h=1024.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [scrollId=2] [rcd] [z=1] }] [color=rgba(0, 0, 192, 1.000000)] [clip=(x=0, y=0, w=1268, h=861)] }] [valid=< (x=0, y=0, w=1408, h=1024); >]
> ContentHost (0x7ffaee65cd40) [buffer-rect=(x=0, y=0, w=1408, h=1024)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8c1f0) [size=(w=1408, h=1024)] [format=SurfaceFormat::B8G8R8X8] [flags=]
> ContainerLayerComposite (0x7ffaeaaf2000) [shadow-clip=(x=0, y=0, w=1408, h=1024)] [shadow-transform=[ 0 1; -1 0; 19 23192; ]] [shadow-visible=< (x=-23192, y=-1389, w=1024, h=1408); >] [clip=(x=0, y=0, w=1408, h=1024)] [transform=[ 0 1; -1 0; 19 23192; ]] [visible=< (x=-23192, y=-1389, w=1024, h=1408); >] [metrics0={ [metrics={ [cb=(x=0.000000, y=0.000000, w=1268.000000, h=861.000000)] [sr=(x=0.000000, y=0.000000, w=269389.000000, h=92791.000000)] [s=(0,0)] [dp=(x=0.000000, y=0.000000, w=1408.000000, h=1024.000000)] [cdp=(x=0.000000, y=0.000000, w=0.000000, h=0.000000)] [scrollId=2] [rcd] [z=1] }] [color=rgba(0, 0, 192, 1.000000)] [clip=(x=0, y=0, w=1268, h=861)] }]
> PaintedLayerComposite (0x7ffaeaaf3c00) [not visible] { hitregion=< (x=0, y=23185, w=1, h=46413); >} [opaqueContent]
> ContentHost (0x7ffae951d920) [buffer-rect=(x=0, y=0, w=0, h=0)] [buffer-rotation=(0,0)]
> ContainerLayerComposite (0x7ffaeaaf2400) [shadow-transform=[ 0 1; -1 0; 11 23184; ]] [shadow-visible=< (x=-24573, y=22179, w=1408, h=1024); >] [transform=[ 0 1; -1 0; 11 23184; ]] [visible=< (x=-24573, y=22179, w=1408, h=1024); >]
> PaintedLayerComposite (0x7ffaeaaf3800) [not visible] { hitregion=< (x=0, y=0, w=269360, h=46413); >} [opaqueContent]
> ContentHost (0x7ffaee65cea0) [buffer-rect=(x=0, y=0, w=0, h=0)] [buffer-rotation=(0,0)]
> ContainerLayerComposite (0x7ffaeaaf2800) [shadow-transform=[ 0 1; -1 0; 11 -1; ]] [shadow-visible=< (x=22180, y=23176, w=1024, h=1408); >] [transform=[ 0 1; -1 0; 11 -1; ]] [visible=< (x=22180, y=23176, w=1024, h=1408); >]
> PaintedLayerComposite (0x7ffaeaaf3400) [shadow-visible=< (x=22180, y=23176, w=1024, h=1408); >] [visible=< (x=22180, y=23176, w=1024, h=1408); >] { hitregion=< (x=0, y=0, w=269360, h=46413); >} [opaqueContent] [valid=< (x=22180, y=23176, w=1024, h=1408); >]
> ContentHost (0x7ffaee65cf50) [buffer-rect=(x=22180, y=23176, w=1024, h=1408)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8c010) [size=(w=1024, h=1408)] [format=SurfaceFormat::B8G8R8X8] [flags=]
> ContainerLayerComposite (0x7ffaeaaf2c00) [shadow-visible=< (x=22180, y=23205, w=498, h=1379); >] [visible=< (x=22180, y=23205, w=498, h=1379); >] [isStickyPosition scrollId=2 outer=(-8947849.000,-8947849.000)-(8947849.000,8947849.000) inner=(-8947849.000,-8947849.000)-(8947849.000,8947849.000)]
> PaintedLayerComposite (0x7ffaeaaf3000) [shadow-transform=[ 1 0; 0 1; 0 23206; ]] [shadow-visible=< (x=22180, y=-1, w=498, h=1379); >] [transform=[ 1 0; 0 1; 0 23206; ]] [visible=< (x=22180, y=-1, w=498, h=1379); >] { hitregion=< (x=-23174, y=-1, w=23185, h=269360); >} [valid=< (x=22180, y=-1, w=498, h=1379); >]
> ContentHost (0x7ffaee6e3030) [buffer-rect=(x=22180, y=-1, w=498, h=1379)] [buffer-rotation=(0,0)]
> ShmemTextureHost (0x7ffaefb8bb60) [size=(w=498, h=1379)] [format=SurfaceFormat::B8G8R8A8] [flags=]
> ContainerLayerComposite (0x7ffaeb417800) [shadow-visible=< (x=0, y=923, w=445, h=24); >] [visible=< (x=0, y=923, w=445, h=24); >]
> PaintedLayerComposite (0x7ffaeb417c00) [shadow-visible=< (x=0, y=923, w=445, h=24); >] [visible=< (x=0, y=923, w=445, h=24); >] [valid=< (x=0, y=923, w=445, h=24); >]
> ContentHost (0x7ffaed6a4450) [buffer-rect=(x=0, y=923, w=445, h=24)] [buffer-rotation=(0,0)]
> MemoryTextureHost (0x7ffafc0132f0) [size=(w=445, h=24)] [format=SurfaceFormat::B8G8R8A8] [flags=]
> ContainerLayerComposite (0x7ffaeaabdc00) [shadow-visible=< (x=-311, y=9, w=480, h=16); >] [visible=< (x=9, y=9, w=16, h=16); >]
> ContainerLayerComposite (0x7ffaeaac4800) [shadow-clip=(x=9, y=9, w=16, h=16)] [shadow-transform=[ 1 0; 0 1; -311 9; ]] [shadow-visible=< (x=0, y=0, w=480, h=16); >] [clip=(x=9, y=9, w=16, h=16)] [transform=[ 1 0; 0 1; -279 9; ]] [effective-transform=[ 1 0; 0 1; -295 9; ]] [visible=< (x=0, y=0, w=480, h=16); >] [1 animations with id=92169998172169 ]
> PaintedLayerComposite (0x7ffaeaf3d400) [shadow-visible=< (x=0, y=0, w=480, h=16); >] [effective-transform=[ 1 0; 0 1; -295 9; ]] [visible=< (x=0, y=0, w=480, h=16); >] { hitregion=< (x=0, y=0, w=480, h=16); > dispatchtocontentregion=< (x=0, y=0, w=480, h=16); >} [valid=< (x=0, y=0, w=480, h=16); >]
> ContentHost (0x7ffae9524a80) [buffer-rect=(x=0, y=0, w=480, h=16)] [buffer-rotation=(0,0)] [paint-will-resample]
> MemoryTextureHost (0x7ffaeea7f880) [size=(w=480, h=16)] [format=SurfaceFormat::B8G8R8A8] [flags=]
Kats, I'm not super familiar with sticky positioning in APZ. What's going on here? I can dig more if it's not obvious.
Flags: needinfo?(kats)
Priority: -- → P3
Comment 2•7 years ago
|
||
I think the assertion is just not valid for sticky-positioned layers.
In this case, the layer 0x7ffaeaaf2c00 has "isStickyPosition scrollId=2" which indicates it's sticky relative to the scrollframe with scrollId=2, which is 0x7ffaeaaf2000. And the intervening layers have some transforms on them, which get accumulated in to the "ancestor transform" and causes the assertion to fail.
But the code, I think, was originally written for fixed-position layers, in which case the fixed layer would most likely be a direct descendant of the scrolling layer, or at least be a descendant with no transforms. Sticky positioned layers are somewhat different because they can be scrolled normally as well, and so I think it's not unreasonable to have intervening layers with transforms to make sure the sticky layer is positioned properly. The comment at [1] also seems specific to fixed layers. So I think in the case of sticky layers we should just not check that assertion.
Botond, does that make sense? Your knowledge of this is better than mine.
[1] https://searchfox.org/mozilla-central/rev/13788edbabb04d004e4a1ceff41d4de68a8320a2/gfx/layers/composite/AsyncCompositionManager.cpp#439-441
Flags: needinfo?(kats) → needinfo?(botond)
Comment 3•7 years ago
|
||
This is bug 1430787 cropping up again. I took another look at it and decided that we should just fix it.
Status: NEW → RESOLVED
Closed: 7 years ago
Flags: needinfo?(botond)
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•