Open Bug 1467008 Opened 2 years ago Updated 2 years ago

Firefox crash with WebRender enabled with specific mozconfig build on Windows

Categories

(Core :: Graphics: WebRender, defect, P3)

defect

Tracking

()

People

(Reporter: sotaro, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

When I built Firefox with latest m-c with the following mozconfig, Firefox crashed soon after startup.

ac_add_options --target=x86_64-pc-mingw32
ac_add_options --host=x86_64-pc-mingw32
ac_add_options --enable-profiling

The crash always happened at DisplayListBuilder::pop_clip_id(). The crash hit assert!(!self.clip_stack.is_empty()).

 https://dxr.mozilla.org/mozilla-central/source/gfx/webrender_api/src/display_list.rs#1499


But if I built with the following mozconfig, Firefox did not crash.

ac_add_options --enable-release
ac_add_options --target=x86_64-pc-mingw32
ac_add_options --host=x86_64-pc-mingw32
ac_add_options --enable-profiling
I checked comment 0 on 2 win10 machines.
Attached file crash log
I checked with visual studio debugger. When mBuilder->PopStackingContext(mReferenceFrameId.isSome()) was called with mReferenceFrameId.isSome() false, rust side pub extern "C" fn wr_dp_pop_stacking_context(state: &mut WrState, is_reference_frame: bool) handled is_reference_frame as true.

From it, the problem seems to be related to a compiler problem.
The crash seems to be triggered by Bug 1465058.
Summary: Firefox crash with WebRender enabled with specific config build on Windows → Firefox crash with WebRender enabled with specific mozconfig build on Windows
Interesting. We can make PopStackingContext a little more convoluted to try and work around the compiler bug.
Blocks: 1465058
You need to log in before you can comment on or make changes to this bug.