gfx-rs/wgpu · error
DispatchQueueWriteBuffer is not core
Error message
DispatchQueueWriteBuffer is not core
What it means
Panic in Queue::write_staging_buffer on the core backend: the DispatchQueueWriteBuffer argument is not the Core variant, meaning a staging buffer produced by a different backend (WebGPU/Custom) was passed to the core queue. The faulty input is the mismatched staging_buffer dispatch enum.
Source
Thrown at wgpu/src/backend/wgpu_core.rs:1547
}
}
fn write_staging_buffer(
&self,
buffer: &dispatch::DispatchBuffer,
offset: crate::BufferAddress,
staging_buffer: dispatch::DispatchQueueWriteBuffer,
) {
let buffer = buffer.as_core();
let staging_buffer = {
#[allow(
clippy::allow_attributes,
unreachable_patterns,
reason = "features may be disabled"
)]
match staging_buffer {
dispatch::DispatchQueueWriteBuffer::Core(value) => value,
_ => panic!(concat!(
stringify!(DispatchQueueWriteBuffer),
" is not core"
)),
}
};
match self.wgpu_queue.write_staging_buffer(
buffer.wgpu_buffer.clone(),
offset,
staging_buffer.wgpu_staging_buffer,
) {
Ok(()) => (),
Err(err) => {
self.wgpu_queue
.device()
.handle_error_nolabel(err, "Queue::write_buffer_with");
}
}View on GitHub (pinned to 3e11ff59bf)
Solutions
- Only pass staging buffers obtained from the same Context/Queue instance that will write them
- Check the dispatch enum variant before crossing backend boundaries
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at wgpu/src/backend/wgpu_core.rs:1547 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of gfx-rs/wgpu@3e11ff59bf (2026-09-03).
Data as JSON: /api/errors/1f6bef8c2656b278.
Report an issue: GitHub.