Open Bug 1929809 Opened 8 days ago Updated 8 days ago

Panic in render_task_graph.rs if declaring the dependency to a picture's primary task

Categories

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

task

Tracking

()

People

(Reporter: nical, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [viewtransitions:m1:gfx])

This panic cannot be hit yet but it has to be addressed before we enable stacking context snapshots.

I ran into this by having both the cached and non-cached code paths in picture.rs's request_render_task declare the dependency like this:

            frame_state.surface_builder.add_child_render_task(
                task_id,
                frame_state.rg_builder,
            );

And running reftests/blend/backdrop-filter-blend-container.yaml.

Prior to that the dependency was not explicitly added there so it may be that there is picture code somewhere that already handles declaring the dependency in the right way (and that we don't need to do it in the cached code path) or it may be that something complicated has to be untangled with mixblend modes and tasks dependencies.

Here is the log around the crash for reference:

[task 2024-11-06T10:17:45.983Z] REFTEST reftests/blend/backdrop-filter-blend-container.yaml == reftests/blend/backdrop-filter-blend-container-ref.yaml
[task 2024-11-06T10:17:45.983Z] thread 'WRRenderBackend#0' panicked at webrender/src/render_task_graph.rs:344:17:
[task 2024-11-06T10:17:45.983Z] assertion failed: task_sorter.is_empty()
[task 2024-11-06T10:17:45.983Z] stack backtrace:
[task 2024-11-06T10:17:46.058Z]    0:     0x55aa4bd2e3e5 - std::backtrace_rs::backtrace::libunwind::trace::h649ab3318d3445c5
[task 2024-11-06T10:17:46.058Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
[task 2024-11-06T10:17:46.058Z]    1:     0x55aa4bd2e3e5 - std::backtrace_rs::backtrace::trace_unsynchronized::hf4bb60c3387150c3
[task 2024-11-06T10:17:46.058Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[task 2024-11-06T10:17:46.058Z]    2:     0x55aa4bd2e3e5 - std::sys::backtrace::_print_fmt::hd9186c800e44bd00
[task 2024-11-06T10:17:46.058Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/sys/backtrace.rs:65:5
[task 2024-11-06T10:17:46.058Z]    3:     0x55aa4bd2e3e5 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h1b9dad2a88e955ff
[task 2024-11-06T10:17:46.058Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/sys/backtrace.rs:40:26
[task 2024-11-06T10:17:46.059Z]    4:     0x55aa4bd5220b - core::fmt::rt::Argument::fmt::h351a7824f737a6a0
[task 2024-11-06T10:17:46.059Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/core/src/fmt/rt.rs:173:76
[task 2024-11-06T10:17:46.059Z]    5:     0x55aa4bd5220b - core::fmt::write::h4b5a1270214bc4a7
[task 2024-11-06T10:17:46.059Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/core/src/fmt/mod.rs:1182:21
[task 2024-11-06T10:17:46.059Z]    6:     0x55aa4bd2b53f - std::io::Write::write_fmt::hd04af345a50c312d
[task 2024-11-06T10:17:46.059Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/io/mod.rs:1827:15
[task 2024-11-06T10:17:46.059Z]    7:     0x55aa4bd2f371 - std::sys::backtrace::BacktraceLock::print::h68d41b51481bce5c
[task 2024-11-06T10:17:46.059Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/sys/backtrace.rs:43:9
[task 2024-11-06T10:17:46.059Z]    8:     0x55aa4bd2f371 - std::panicking::default_hook::{{closure}}::h96ab15e9936be7ed
[task 2024-11-06T10:17:46.059Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/panicking.rs:269:22
[task 2024-11-06T10:17:46.059Z]    9:     0x55aa4bd2f04c - std::panicking::default_hook::h3cacb9c27561ad33
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/panicking.rs:296:9
[task 2024-11-06T10:17:46.060Z]   10:     0x55aa4bd2f9d1 - std::panicking::rust_panic_with_hook::hfe205f6954b2c97b
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/panicking.rs:800:13
[task 2024-11-06T10:17:46.060Z]   11:     0x55aa4bd2f803 - std::panicking::begin_panic_handler::{{closure}}::h6cb44b3a50f28c44
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/panicking.rs:667:13
[task 2024-11-06T10:17:46.060Z]   12:     0x55aa4bd2e8a9 - std::sys::backtrace::__rust_end_short_backtrace::hf1c1f2a92799bb0e
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/sys/backtrace.rs:168:18
[task 2024-11-06T10:17:46.060Z]   13:     0x55aa4bd2f4c4 - rust_begin_unwind
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/std/src/panicking.rs:665:5
[task 2024-11-06T10:17:46.060Z]   14:     0x55aa4b3ed1c3 - core::panicking::panic_fmt::h3d8fc78294164da7
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/core/src/panicking.rs:74:14
[task 2024-11-06T10:17:46.060Z]   15:     0x55aa4b3ed24c - core::panicking::panic::hec978767ec2d35ff
[task 2024-11-06T10:17:46.060Z]                                at /rustc/eeb90cda1969383f56a2637cbd3037bdf598841c/library/core/src/panicking.rs:148:5
[task 2024-11-06T10:17:46.065Z]   16:     0x55aa4b644892 - webrender::render_task_graph::RenderTaskGraphBuilder::end_frame::ha6b12547e5d6ea72
[task 2024-11-06T10:17:46.065Z]                                at /builds/worker/checkouts/gecko/gfx/wr/webrender/src/render_task_graph.rs:344:17
[task 2024-11-06T10:17:46.069Z]   17:     0x55aa4b752814 - webrender::frame_builder::FrameBuilder::build::h0ee0faac999d2ef8
[task 2024-11-06T10:17:46.069Z]                                at /builds/worker/checkouts/gecko/gfx/wr/webrender/src/frame_builder.rs:600:28
[task 2024-11-06T10:17:46.074Z]   18:     0x55aa4bb7345f - webrender::render_backend::Document::build_frame::h33ad23f9fd660ff6
[task 2024-11-06T10:17:46.074Z]                                at /builds/worker/checkouts/gecko/gfx/wr/webrender/src/render_backend.rs:530:25
[task 2024-11-06T10:17:46.075Z]   19:     0x55aa4bb7c276 - webrender::render_backend::RenderBackend::update_document::ha2681d9869b169f3
[task 2024-11-06T10:17:46.075Z]                                at /builds/worker/checkouts/gecko/gfx/wr/webrender/src/render_backend.rs:1466:41
Whiteboard: [viewtransitions:triage]
Whiteboard: [viewtransitions:triage] → [viewtransitions:m1:gfx]
You need to log in before you can comment on or make changes to this bug.