{"record":{"id":"7b95d85b0e345801","repo":"gfx-rs/wgpu","slug":"plane-based-external-textures-are-unsupported-on-w","errorCode":null,"errorMessage":"plane-based external textures are unsupported on WebGPU; use Device::import_external_texture","messagePattern":"plane-based external textures are unsupported on WebGPU; use Device::import_external_texture","errorType":"panic","errorClass":null,"httpStatus":null,"severity":"error","filePath":"wgpu/src/backend/webgpu.rs","lineNumber":2605,"sourceCode":"            drop_guard: None,\n            ident: crate::cmp::Identifier::create(),\n            desc: crate::TextureDescriptor {\n                label: None,\n                view_formats: &[],\n                ..desc.clone()\n            },\n        }\n        .into()\n    }\n\n    fn create_external_texture(\n        &self,\n        _desc: &crate::ExternalTextureDescriptor<'_>,\n        _planes: &[&crate::TextureView],\n    ) -> dispatch::DispatchExternalTexture {\n        // The browser builds external textures from a video source, not from\n        // plane textures. Use `Device::import_external_texture` on this backend.\n        unimplemented!(\n            \"plane-based external textures are unsupported on WebGPU; use Device::import_external_texture\"\n        );\n    }\n\n    fn create_blas(\n        &self,\n        _desc: &crate::CreateBlasDescriptor<'_>,\n        _sizes: crate::BlasGeometrySizeDescriptors,\n    ) -> (Option<u64>, dispatch::DispatchBlas) {\n        unimplemented!(\"Raytracing not implemented for web\");\n    }\n\n    fn create_tlas(&self, _desc: &crate::CreateTlasDescriptor<'_>) -> dispatch::DispatchTlas {\n        unimplemented!(\"Raytracing not implemented for web\");\n    }\n\n    fn create_sampler(&self, desc: &crate::SamplerDescriptor<'_>) -> dispatch::DispatchSampler {\n        let mapped_desc = webgpu_sys::GpuSamplerDescriptor::new();","sourceCodeStart":2587,"sourceCodeEnd":2623,"githubUrl":"https://github.com/gfx-rs/wgpu/blob/3e11ff59bf3f9795d285ecc045014089640d7248/wgpu/src/backend/webgpu.rs#L2587-L2623","documentation":"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.","triggerScenarios":"Thrown at wgpu/src/backend/webgpu.rs:2605 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3e11ff59bf3f9795d285ecc045014089640d7248","analyzedAt":"2026-09-03T01:43:21.459Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-10T07:17:11.731Z"}