Closed sagudev closed 1 month ago
I was able to narrow it down to https://github.com/gfx-rs/wgpu/commit/4a19ac279c4f81aacedb1d215c884c10fe115275 (first bad commit), cc @teoxoy.
The problem is that there is no if a_entry.binding != e_entry.binding {
check anymore.
I have a fix in #6012, but maybe it would be worth to fallback to dummy unknown error instead of panicking unwrap?
Ideally we'd show the same ExtraExpected
/ExtraAssigned
error for this case, that was the intent when I removed if a_entry.binding != e_entry.binding {
but I missed that having holes in the BGL is fine.
It's also confusing that we have the binding
in 2 places, we should just iterate over the values.
While updating servo from f25e07b984ab391628d9568296d5970981d79d8b to c0e7c1ef945a7dd61c81fb951ea554213811aee0 in https://github.com/servo/servo/pull/32827, I noticed new crash (also reproducible on latest firefox nightly) on: webgpu:api,validation,encoding,programmable,pipeline_bind_group_compat:bgl_binding_mismatch:* (src of the test: https://github.com/gpuweb/cts/blob/50b6e7a7435e8d1a973cbf67347938ce05188df0/src/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.spec.ts#L636)
Description On f25e07b984ab391628d9568296d5970981d79d8b there is validation error:
but c0e7c1ef945a7dd61c81fb951ea554213811aee0 (also on current trunk: 205f1e3ab60a4c8c6b6f901803eb9cfc3a5b62f3) panics on https://github.com/gfx-rs/wgpu/blob/205f1e3ab60a4c8c6b6f901803eb9cfc3a5b62f3/wgpu-core/src/command/bind.rs#L187:
Repro steps I was able to reproduce what CTS does by tracing wgpu functions that are called by servo; repro is available here: https://github.com/sagudev/wgpu-problem/tree/empty-bind-error