Closed Bug 1739661 Opened 4 years ago Closed 4 years ago

Crash in [@ mozilla::gfx::DrawTarget::PushLayerWithBlend]

Categories

(Core :: Graphics, defect)

Unspecified
Windows
defect

Tracking

()

RESOLVED FIXED
96 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox93 --- unaffected
firefox94 --- unaffected
firefox95 --- unaffected
firefox96 --- fixed

People

(Reporter: aryx, Assigned: jrmuizel)

References

(Regression)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

14 crashes from 6 installations, all with the latest Nightly (96.0a1 20211105093421).

Crash report: https://crash-stats.mozilla.org/report/index/80ac443a-b71c-448b-9527-102700211105

MOZ_CRASH Reason: MOZ_CRASH(GFX: PushLayerWithBlend)

Top 10 frames of crashing thread:

0 xul.dll mozilla::gfx::DrawTarget::PushLayerWithBlend gfx/2d/2D.h:1403
1 xul.dll mozilla::gfx::RecordedPushLayerWithBlend::PlayEvent const gfx/2d/RecordedEventImpl.h:2723
2 xul.dll static mozilla::gfx::RecordedEvent::DoWithEvent<mozilla::gfx::EventRingBuffer> gfx/2d/RecordedEventImpl.h:4062
3 xul.dll mozilla::layers::CanvasTranslator::TranslateRecording gfx/layers/ipc/CanvasTranslator.cpp:246
4 xul.dll mozilla::layers::CanvasTranslator::StartTranslation gfx/layers/ipc/CanvasTranslator.cpp:169
5 xul.dll mozilla::detail::RunnableMethodImpl< xpcom/threads/nsThreadUtils.h:1200
6 xul.dll mozilla::TaskQueue::Runner::Run xpcom/threads/TaskQueue.cpp:208
7 xul.dll nsThreadPool::Run xpcom/threads/nsThreadPool.cpp:305
8 xul.dll nsThread::ProcessNextEvent xpcom/threads/nsThread.cpp:1169
9 xul.dll mozilla::ipc::MessagePumpForNonMainThreads::Run ipc/glue/MessagePump.cpp:300
Flags: needinfo?(jmuizelaar)

So this is happening because we still use D2D for drawing SVG to canvas sometimes. (I'm surprised this didn't get caught in the test case). I can land a bandaid that will make this less common, but there's still this path:
https://searchfox.org/mozilla-central/rev/508562cc8579afc87f3738ad9102d54b77badfbe/image/VectorImage.cpp#981

Flags: needinfo?(jmuizelaar)

This avoids using D2D when creating a cached SVG image.
We can still hit D2D if we're not caching, but that should
be less common.

Assignee: nobody → jmuizelaar
Status: NEW → ASSIGNED
Pushed by jmuizelaar@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/407deac86804 Avoid using D2D when drawing SVG. r=aosmond
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 96 Branch
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: