Examples on wgpu.rs no longer render
Categories
(Core :: Graphics: WebGPU, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr91 | --- | unaffected |
firefox99 | --- | unaffected |
firefox100 | --- | unaffected |
firefox101 | --- | disabled |
People
(Reporter: aosmond, Unassigned)
References
(Regression)
Details
(Keywords: regression)
Go to any wgpu.rs example with dom.webgpu.enabled set to true and it will fail to load, e.g. https://wgpu.rs/examples-gpu/?example=shadow
FWIW, it also panics in my debug build, but simply does not load in nightly:
#17 0x00007f44d7ada12d in core::panicking::panic () at library/core/src/panicking.rs:48
#18 0x00007f44d6471d32 in core::option::Option<T>::unwrap (self=...) at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/option.rs:752
#19 <wgpu_core::id::Id<T> as wgpu_core::id::TypedId>::zip (index=<optimized out>, epoch=1, backend=<optimized out>)
at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/id.rs:151
#20 <wgpu_core::id::Id<T> as core::convert::From<wgpu_core::id::SerialId>>::from (id=...) at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/id.rs:61
#21 core::ops::function::FnOnce::call_once () at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227
#22 core::result::Result<T,E>::map (self=..., op=<optimized out>) at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/result.rs:756
#23 wgpu_core::id::_::<impl serde::de::Deserialize for wgpu_core::id::Id<T>>::deserialize (__deserializer=<optimized out>)
at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/id.rs:29
#24 0x00007f44d64378eb in <core::marker::PhantomData<T> as serde::de::DeserializeSeed>::deserialize (deserializer=0x7f44b33f6f50, self=...)
at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:785
#25 <<&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_tuple::Access<R,O> as serde::de::SeqAccess>::next_element_seed
(self=<optimized out>, seed=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:314
#26 serde::de::SeqAccess::next_element (self=<optimized out>) at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:1721
#27 <wgpu_core::command::render::_::<impl serde::de::Deserialize for wgpu_core::command::render::RenderPassColorAttachment>::deserialize::__Visitor as serde::de::Visitor>::visit_seq (__seq=..., self=...) at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/command/render.rs:109
#28 <&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_tuple (len=3, self=<optimized out>, visitor=...)
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:326
#29 <&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_struct (self=0x0, _name=..., fields=..., visitor=...)
--Type <RET> for more, q to quit, c to continue without paging--
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:411
#30 0x00007f44d64c43a7 in wgpu_core::command::render::_::<impl serde::de::Deserialize for wgpu_core::command::render::RenderPassColorAttachment>::deserialize
(__deserializer=0x0) at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/command/render.rs:109
#31 0x00007f44d64341e9 in <core::marker::PhantomData<T> as serde::de::DeserializeSeed>::deserialize (deserializer=0x0, self=...)
at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:785
#32 <<&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_tuple::Access<R,O> as serde::de::SeqAccess>::next_element_seed
(self=<optimized out>, seed=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:314
#33 0x00007f44d644c985 in serde::de::SeqAccess::next_element (self=0x7f44b33f6b50) at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:1721
#34 <serde::de::impls::<impl serde::de::Deserialize for alloc::vec::Vec<T>>::deserialize::VecVisitor<T> as serde::de::Visitor>::visit_seq (self=..., seq=...)
at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/impls.rs:928
#35 0x00007f44d6435c79 in <&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_tuple (self=0x7f44b33f6f50, len=<optimized out>, visitor=...)
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:326
#36 <&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_seq (self=0x7f44b33f6f50, visitor=...)
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:350
#37 0x00007f44d6478f3e in serde::de::impls::<impl serde::de::Deserialize for alloc::vec::Vec<T>>::deserialize (deserializer=0x0)
at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/impls.rs:939
#38 0x00007f44d6440d11 in <core::marker::PhantomData<T> as serde::de::DeserializeSeed>::deserialize (deserializer=0x7f44b33f6f50, self=...)
at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:785
#39 <<&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_tuple::Access<R,O> as serde::de::SeqAccess>::next_element_seed
(self=<optimized out>, seed=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:314
#40 serde::de::SeqAccess::next_element (self=<optimized out>) at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:1721
#41 <<wgpu_core::device::trace::_::<impl serde::de::Deserialize for wgpu_core::device::trace::Command>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::__Visitor as serde::de::Visitor>::visit_seq (__seq=..., self=...) at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/device/trace.rs:127
#42 <&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_tuple (len=<optimized out>, self=<optimized out>, visitor=...)
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:326
#43 <&mut bincode::de::Deserializer<R,O> as serde::de::VariantAccess>::struct_variant (self=0x7f44b33f6f50, fields=..., visitor=...)
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:490
#44 0x00007f44d645829e in <wgpu_core::device::trace::_::<impl serde::de::Deserialize for wgpu_core::device::trace::Command>::deserialize::__Visitor as serde::de::Visitor>::visit_enum (self=..., __data=<optimized out>) at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/device/trace.rs:127
#45 0x00007f44d6431a6e in <&mut bincode::de::Deserializer<R,O> as serde::de::Deserializer>::deserialize_enum (self=0x0, _enum=..., _variants=..., visitor=...)
at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/de/mod.rs:290
#46 0x00007f44d64580d7 in wgpu_core::device::trace::_::<impl serde::de::Deserialize for wgpu_core::device::trace::Command>::deserialize (__deserializer=0x0)
at /home/aosmond/dev/gecko-2/third_party/rust/wgpu-core/src/device/trace.rs:127
#47 0x00007f44d646a140 in <core::marker::PhantomData<T> as serde::de::DeserializeSeed>::deserialize (deserializer=0x7f44b33f6f50, self=...)
at /home/aosmond/dev/gecko-2/third_party/rust/serde/src/de/mod.rs:785
#48 bincode::internal::deserialize_seed (bytes=..., seed=..., options=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/internal.rs:118
#49 bincode::internal::deserialize (bytes=..., options=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/internal.rs:106
#50 0x00007f44d648c0a1 in bincode::config::Options::deserialize (bytes=..., self=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/config/mod.rs:200
#51 bincode::deserialize (bytes=...) at /home/aosmond/dev/gecko-2/third_party/rust/bincode/src/lib.rs:181
#52 0x00007f44d63af447 in wgpu_bindings::server::wgpu_server_command_encoder_action (global=0x7f44ac322000, self_id=..., byte_buf=<optimized out>, error_buf=...)
at gfx/wgpu_bindings/src/server.rs:534
#53 0x00007f44d2725215 in mozilla::webgpu::WebGPUParent::RecvCommandEncoderAction(unsigned long, unsigned long, mozilla::ipc::ByteBuf const&) (this=
--Type <RET> for more, q to quit, c to continue without paging--
0x7f44a16b2200, aSelf=0, aDevice=2305843013508661248, aByteBuf=...) at /home/aosmond/dev/gecko-2/dom/webgpu/ipc/WebGPUParent.cpp:836
I used mozregression to pinpoint it on bug 1762730:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=a2aa25965e8b7d0450fa21cf9635306e31745dd6&tochange=40231b38fa73f59255c2f5ad07743705b5a629b8
Reporter | ||
Updated•3 years ago
|
Updated•3 years ago
|
Comment 1•3 years ago
|
||
Set release status flags based on info from the regressing bug 1762730
Updated•3 years ago
|
Comment 2•3 years ago
|
||
Okay, this is very interesting. Thank you for bisecting that. I'll take a look today.
Comment 3•3 years ago
|
||
This seems to be because the wgpu.rs examples haven't been updated for the new changes to WGSL syntax. For the shadows example, I get the following error in the console:
Shader '' parsing error: expected ',', found ';'
┌─ wgsl:2:27
│
2 │ view_proj: mat4x4<f32>;
│ ^ expected ','
, caused by: expected ',', found ';'
error matching VERTEX shader requirements against the pipeline, caused by: shader module is invalid
Comment 4•3 years ago
|
||
Could you confirm that you get an error like this in a nightly non-debug build, and not a crash?
Comment 5•3 years ago
|
||
Oh - please wait for bug 1765462 to land before trying again.
Comment 6•3 years ago
|
||
Andrew confirms fixed by wgpu update.
Updated•3 years ago
|
Description
•