Closed Bug 1381352 Opened 8 years ago Closed 8 years ago

Assertion failure: inverted (Attempted to get the inverse of a non-invertible matrix)

Categories

(Core :: Graphics: Layers, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox57 --- fixed

People

(Reporter: xidorn, Assigned: dvander)

References

Details

Attachments

(1 file)

I hit this in Youtube video page, and move the mouse pointer to the volume icon. The stack is: Assertion failure: inverted (Attempted to get the inverse of a non-invertible matrix), at \obj-firefox-stylo\dist\include\mozilla\gfx\Matrix.h:276 #01: mozilla::layers::TexturedRenderPass::AddItems (\gfx\layers\mlgpu\renderpassmlgpu.h:315) #02: mozilla::layers::SingleTexturePass::AddToPass (\gfx\layers\mlgpu\renderpassmlgpu.cpp:585) #03: mozilla::layers::RenderPassMLGPU::AcceptItem (\gfx\layers\mlgpu\renderpassmlgpu.cpp:186) #04: mozilla::layers::RenderViewMLGPU::AddItemBackToFront (\gfx\layers\mlgpu\renderviewmlgpu.cpp:318) #05: mozilla::layers::RenderViewMLGPU::AddItem (\gfx\layers\mlgpu\renderviewmlgpu.cpp:167) #06: mozilla::layers::LayerMLGPU::AddBoundsToView (\gfx\layers\mlgpu\layermlgpu.cpp:85) #07: mozilla::layers::FrameBuilder::AssignLayer (\gfx\layers\mlgpu\framebuilder.cpp:140) #08: mozilla::layers::FrameBuilder::ProcessChildList (\gfx\layers\mlgpu\framebuilder.cpp:225) #09: mozilla::layers::FrameBuilder::ProcessContainerLayer (\gfx\layers\mlgpu\framebuilder.cpp:164) #10: mozilla::layers::FrameBuilder::AssignLayer (\gfx\layers\mlgpu\framebuilder.cpp:124) #11: mozilla::layers::FrameBuilder::ProcessChildList (\gfx\layers\mlgpu\framebuilder.cpp:225) #12: mozilla::layers::FrameBuilder::ProcessContainerLayer (\gfx\layers\mlgpu\framebuilder.cpp:164) #13: mozilla::layers::FrameBuilder::AssignLayer (\gfx\layers\mlgpu\framebuilder.cpp:124) #14: mozilla::layers::FrameBuilder::ProcessChildList (\gfx\layers\mlgpu\framebuilder.cpp:225) #15: mozilla::layers::FrameBuilder::ProcessContainerLayer (\gfx\layers\mlgpu\framebuilder.cpp:164) #16: mozilla::layers::FrameBuilder::AssignLayer (\gfx\layers\mlgpu\framebuilder.cpp:124) #17: mozilla::layers::FrameBuilder::ProcessChildList (\gfx\layers\mlgpu\framebuilder.cpp:225) #18: mozilla::layers::FrameBuilder::ProcessContainerLayer (\gfx\layers\mlgpu\framebuilder.cpp:164) #19: mozilla::layers::FrameBuilder::AssignLayer (\gfx\layers\mlgpu\framebuilder.cpp:124) #20: mozilla::layers::FrameBuilder::ProcessChildList (\gfx\layers\mlgpu\framebuilder.cpp:225) #21: mozilla::layers::FrameBuilder::ProcessContainerLayer (\gfx\layers\mlgpu\framebuilder.cpp:164) #22: mozilla::layers::FrameBuilder::AssignLayer (\gfx\layers\mlgpu\framebuilder.cpp:124) #23: mozilla::layers::FrameBuilder::Build (\gfx\layers\mlgpu\framebuilder.cpp:72) #24: mozilla::layers::LayerManagerMLGPU::RenderLayers (\gfx\layers\mlgpu\layermanagermlgpu.cpp:347) #25: mozilla::layers::LayerManagerMLGPU::Composite (\gfx\layers\mlgpu\layermanagermlgpu.cpp:319) #26: mozilla::layers::LayerManagerMLGPU::EndTransaction (\gfx\layers\mlgpu\layermanagermlgpu.cpp:277) #27: mozilla::layers::CompositorBridgeParent::CompositeToTarget (\gfx\layers\ipc\compositorbridgeparent.cpp:1043) #28: mozilla::layers::CompositorVsyncScheduler::Composite (\gfx\layers\ipc\compositorvsyncscheduler.cpp:263) #29: mozilla::detail::RunnableMethodImpl<mozilla::layers::CompositorVsyncScheduler * __ptr64 const,void (__cdecl mozilla::layers::CompositorVsyncScheduler::*)(mozilla::TimeStamp) __ptr64,1,1,mozilla::TimeStamp>::Run (\obj-firefox-stylo\dist\include\nsthreadutils.h:1190) #30: MessageLoop::RunTask (\ipc\chromium\src\base\message_loop.cc:444) #31: MessageLoop::DeferOrRunPendingTask (\ipc\chromium\src\base\message_loop.cc:454) #32: MessageLoop::DoWork (\ipc\chromium\src\base\message_loop.cc:526) #33: base::MessagePumpForUI::DoRunLoop (\ipc\chromium\src\base\message_pump_win.cc:213) #34: base::MessagePumpWin::RunWithDispatcher (\ipc\chromium\src\base\message_pump_win.cc:58) #35: MessageLoop::RunHandler (\ipc\chromium\src\base\message_loop.cc:314) #36: MessageLoop::Run (\ipc\chromium\src\base\message_loop.cc:294) #37: base::Thread::ThreadMain (\ipc\chromium\src\base\thread.cc:184) #38: `anonymous namespace'::ThreadFunc (\ipc\chromium\src\base\platform_thread_win.cc:29) #39: BaseThreadInitThunk[C:\WINDOWS\System32\KERNEL32.DLL +0x12774] #40: RtlUserThreadStart[C:\WINDOWS\SYSTEM32\ntdll.dll +0x70d51]
It has MLGPU in the stack. Suspect to be a bug of Advanced Layers.
Blocks: 1375743
:dvander, can you comment to the bug?
Flags: needinfo?(dvander)
Assignee: nobody → dvander
Status: NEW → ASSIGNED
Flags: needinfo?(dvander)
Attached patch fixSplinter Review
Assuming that degenerate transforms will not be visible, we can simply skip adding draw calls here. If this turns out to not be true for some reason we'll have to move the check to the ItemInfo constructor, so the rectilinear bit doesn't get set.
Attachment #8893087 - Flags: review?(matt.woodrow)
Attachment #8893087 - Flags: review?(matt.woodrow) → review+
Pushed by danderson@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/1864ce9a909f Skip over layers with degenerate transforms. (bug 1381352, r=mattwoodrow)
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: