{"record":{"id":"1bf9d245dd4d09f8","repo":"zed-industries/zed","slug":"failed-to-create-wgpu-device-e","errorCode":null,"errorMessage":"Failed to create wgpu device: {e}","messagePattern":"Failed to create wgpu device: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/gpui_wgpu/src/wgpu_context.rs","lineNumber":279,"sourceCode":"                .using_resolution(adapter.limits())\n                .using_alignment(adapter.limits())\n        };\n        #[cfg(not(target_family = \"wasm\"))]\n        let required_limits = wgpu::Limits::downlevel_defaults()\n            .using_resolution(adapter.limits())\n            .using_alignment(adapter.limits());\n\n        let (device, queue) = adapter\n            .request_device(&wgpu::DeviceDescriptor {\n                label: Some(\"gpui_device\"),\n                required_features,\n                required_limits,\n                memory_hints: wgpu::MemoryHints::MemoryUsage,\n                trace: wgpu::Trace::Off,\n                experimental_features: wgpu::ExperimentalFeatures::disabled(),\n            })\n            .await\n            .map_err(|e| anyhow::anyhow!(\"Failed to create wgpu device: {e}\"))?;\n\n        Ok((\n            device,\n            queue,\n            dual_source_blending,\n            color_atlas_texture_format,\n        ))\n    }\n\n    #[cfg(not(target_family = \"wasm\"))]\n    pub fn instance(display: Box<dyn wgpu::wgt::WgpuHasDisplayHandle>) -> wgpu::Instance {\n        wgpu::Instance::new(wgpu::InstanceDescriptor {\n            backends: wgpu::Backends::VULKAN | wgpu::Backends::GL,\n            flags: wgpu::InstanceFlags::default(),\n            backend_options: wgpu::BackendOptions::default(),\n            memory_budget_thresholds: wgpu::MemoryBudgetThresholds::default(),\n            display: Some(display),\n        })","sourceCodeStart":261,"sourceCodeEnd":297,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/gpui_wgpu/src/wgpu_context.rs#L261-L297","documentation":"Raised in `WgpuContext::create_device` when `adapter.request_device` fails: the adapter cannot provide a logical device with the requested features/limits. Typical causes are required_features not supported by the driver, required_limits exceeding adapter.limits(), or the device being lost during creation.","triggerScenarios":"Thrown at crates/gpui_wgpu/src/wgpu_context.rs:279 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Derive required_limits from adapter.limits() (as this code already does) and avoid requesting features the adapter does not expose.","Call adapter.features() and intersect with desired features before requesting.","Retry after a device-lost event; a fresh adapter/device request may succeed.","Update GPU drivers or fall back to software/less-capable backends."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}