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

  1. Only pass staging buffers obtained from the same Context/Queue instance that will write them
  2. 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.