gfx-rs/wgpu · error
plane-based external textures are unsupported on WebGPU; use
Error message
plane-based external textures are unsupported on WebGPU; use Device::import_external_texture
What it means
Panic from create_external_texture on the WebGPU backend: the browser constructs external textures directly from a video source, not from plane textures, so the plane-list signature is unimplemented. The faulty input is the planes-based construction on WASM.
Source
Thrown at wgpu/src/backend/webgpu.rs:2605
drop_guard: None,
ident: crate::cmp::Identifier::create(),
desc: crate::TextureDescriptor {
label: None,
view_formats: &[],
..desc.clone()
},
}
.into()
}
fn create_external_texture(
&self,
_desc: &crate::ExternalTextureDescriptor<'_>,
_planes: &[&crate::TextureView],
) -> dispatch::DispatchExternalTexture {
// The browser builds external textures from a video source, not from
// plane textures. Use `Device::import_external_texture` on this backend.
unimplemented!(
"plane-based external textures are unsupported on WebGPU; use Device::import_external_texture"
);
}
fn create_blas(
&self,
_desc: &crate::CreateBlasDescriptor<'_>,
_sizes: crate::BlasGeometrySizeDescriptors,
) -> (Option<u64>, dispatch::DispatchBlas) {
unimplemented!("Raytracing not implemented for web");
}
fn create_tlas(&self, _desc: &crate::CreateTlasDescriptor<'_>) -> dispatch::DispatchTlas {
unimplemented!("Raytracing not implemented for web");
}
fn create_sampler(&self, desc: &crate::SamplerDescriptor<'_>) -> dispatch::DispatchSampler {
let mapped_desc = webgpu_sys::GpuSamplerDescriptor::new();View on GitHub (pinned to 3e11ff59bf)
Solutions
- On the web, use Device::import_external_texture with an HTMLVideoElement or VideoFrame source instead of plane textures
- Use the plane-based API only on native backends
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at wgpu/src/backend/webgpu.rs:2605 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/7b95d85b0e345801.
Report an issue: GitHub.