Open Bug 1650173 Opened 5 years ago Updated 2 years ago

Assertion failure: !err, at src/gfx/ycbcr/yuv_convert.cpp:347

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

Tracking Status
firefox79 --- affected
firefox80 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

Attached file testcase.html

Assertion failure: !err, at /builds/worker/checkouts/gecko/gfx/ycbcr/yuv_convert.cpp:347

43|0|libxul.so|mozilla::gfx::ScaleYCbCrToRGB32(unsigned char const*, unsigned char const*, unsigned char const*, unsigned char*, int, int, int, int, int, int, int, mozilla::gfx::YUVType, mozilla::gfx::YUVColorSpace, mozilla::gfx::ScaleFilter)|hg:hg.mozilla.org/mozilla-central:gfx/ycbcr/yuv_convert.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|347|0x29
43|1|libxul.so|mozilla::gfx::ConvertYCbCrToRGB(mozilla::layers::PlanarYCbCrData const&, mozilla::gfx::SurfaceFormat const&, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, unsigned char*, int)|hg:hg.mozilla.org/mozilla-central:gfx/ycbcr/YCbCrUtils.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|205|0x17
43|2|libxul.so|mozilla::layers::ImageDataSerializer::ConvertAndScaleFromYCbCrDescriptor(unsigned char*, mozilla::layers::YCbCrDescriptor const&, mozilla::gfx::SurfaceFormat const&, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, unsigned char*, int)|hg:hg.mozilla.org/mozilla-central:gfx/layers/ImageDataSerializer.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|313|0x11
43|3|libxul.so|mozilla::layers::AttemptVideoConvertAndScale(mozilla::layers::TextureSource*, mozilla::gfx::SourceSurface const*, float, mozilla::gfx::CompositionOp, mozilla::layers::TexturedEffect const*, mozilla::gfx::BaseMatrix<float> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::DrawTarget*, mozilla::gfx::DrawTarget const*)|hg:hg.mozilla.org/mozilla-central:gfx/layers/basic/BasicCompositor.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|580|0xb
43|4|libxul.so|void mozilla::layers::BasicCompositor::DrawGeometry<mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> >(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::EffectChain const&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, bool)|hg:hg.mozilla.org/mozilla-central:gfx/layers/basic/BasicCompositor.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|718|0x1f
43|5|libxul.so|mozilla::layers::BasicCompositor::DrawQuad(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::EffectChain const&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/basic/BasicCompositor.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|598|0xb
43|6|libxul.so|mozilla::layers::Compositor::DrawGeometry(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::EffectChain const&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/Compositor.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|242|0x18
43|7|libxul.so|mozilla::layers::ImageHost::Composite(mozilla::layers::Compositor*, mozilla::layers::LayerComposite*, mozilla::layers::EffectChain&, float, mozilla::gfx::Matrix4x4Typed<mozilla::gfx::UnknownUnits, mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::SamplingFilter, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const*, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/Compositor.h:933c9f34edfab8d5cf2a5389304cf3708889eb1c|313|0x41
43|8|libxul.so|mozilla::layers::ImageLayerComposite::RenderLayer(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ImageLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|95|0x71c
43|9|libxul.so|void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ContainerLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|474|0x17
43|10|libxul.so|void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ContainerLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|646|0xe
43|11|libxul.so|void mozilla::layers::RenderLayers<mozilla::layers::RefLayerComposite>(mozilla::layers::RefLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ContainerLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|474|0x17
43|12|libxul.so|void mozilla::layers::ContainerRender<mozilla::layers::RefLayerComposite>(mozilla::layers::RefLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ContainerLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|646|0xe
43|13|libxul.so|void mozilla::layers::RenderLayers<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::RenderTargetPixel> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ContainerLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|474|0x17
43|14|libxul.so|void mozilla::layers::ContainerRender<mozilla::layers::ContainerLayerComposite>(mozilla::layers::ContainerLayerComposite*, mozilla::layers::LayerManagerComposite*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::Maybe<mozilla::gfx::PolygonTyped<mozilla::gfx::UnknownUnits> > const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/ContainerLayerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|646|0xe
43|15|libxul.so|mozilla::layers::LayerManagerComposite::Render(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&)::$_2::operator()(mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&) const|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/LayerManagerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|1166|0x51
43|16|libxul.so|mozilla::layers::LayerManagerComposite::Render(mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/LayerManagerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|1224|0x5
43|17|libxul.so|mozilla::layers::LayerManagerComposite::UpdateAndRender()|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/LayerManagerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|645|0x8
43|18|libxul.so|mozilla::layers::LayerManagerComposite::EndTransaction(mozilla::TimeStamp const&, mozilla::layers::LayerManager::EndTransactionFlags)|hg:hg.mozilla.org/mozilla-central:gfx/layers/composite/LayerManagerComposite.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|564|0x8
43|19|libxul.so|mozilla::layers::CompositorBridgeParent::CompositeToTarget(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::gfx::DrawTarget*, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const*)|hg:hg.mozilla.org/mozilla-central:gfx/layers/ipc/CompositorBridgeParent.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|1032|0xb
43|20|libxul.so|mozilla::layers::CompositorVsyncScheduler::Composite(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)|hg:hg.mozilla.org/mozilla-central:gfx/layers/ipc/CompositorVsyncScheduler.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|263|0x11
43|21|libxul.so|mozilla::detail::RunnableMethodImpl<mozilla::layers::CompositorVsyncScheduler*, void (mozilla::layers::CompositorVsyncScheduler::*)(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp), true, (mozilla::RunnableKind)1, mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp>::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.h:933c9f34edfab8d5cf2a5389304cf3708889eb1c|1240|0x1f
43|22|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|1234|0xe
43|23|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|513|0xc
43|24|libxul.so|mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|332|0xd
43|25|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:933c9f34edfab8d5cf2a5389304cf3708889eb1c|334|0x17
43|26|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:933c9f34edfab8d5cf2a5389304cf3708889eb1c|309|0x8
43|27|libxul.so|nsThread::ThreadFunc(void*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:933c9f34edfab8d5cf2a5389304cf3708889eb1c|447|0x8
43|28|libnspr4.so|_pt_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/pthreads/ptthread.c:933c9f34edfab8d5cf2a5389304cf3708889eb1c|201|0x7
43|29|libpthread.so.0||||0x76db
43|30|libc.so.6||||0x12188f
Flags: in-testsuite?

A Pernosco session is available here: https://pernos.co/debug/vJ1u18Qtn-plM8lnCQWcCg/index.html

If I'm using Pernosco correctly, then the assert is due to a zero destination width, caused by aNewTransform with a zero X-scale :

aNewTransform@0x7f86c96b8450={{
  _11=0.0, _12=0.0, 
  _21=0.0, _22=0.004166666883975267, 
  _31=8947849.0, _32=0.0}, 
components=[0.0, 0.0, 0.0, 0.004166666883975267, 8947849.0, 0.0}}

This would pass both !aNewTransform.HasNonAxisAlignedTransform() and !aNewTransform.HasNegativeScaling()) sanity checks.

Severity: -- → S3
Flags: needinfo?(jmuizelaar)
Priority: -- → P3

We should just add a check for degenerate transforms.

Flags: needinfo?(jmuizelaar)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: