zed-industries/zed · error

Adapter {} ({:?}, device={:#06x}) does not support a usable

Error message

Adapter {} ({:?}, device={:#06x}) does not support a usable color atlas texture format with usages {:?}. Bgra8Unorm allowed usages: {:?}; Rgba8Unorm allowed usages: {:?}.

What it means

Error "Adapter {} ({:?}, device={:#06x}) does not support a usable color atlas texture format with usages {:?}. Bgra8Unorm allowed usages: {:?}; Rgba8Unorm allowed usages: {:?}." thrown in zed-industries/zed.

Source

Thrown at crates/gpui_wgpu/src/wgpu_context.rs:528

            return Ok(wgpu::TextureFormat::Rgba8Unorm);
        }
        if bgra_features.allowed_usages.contains(required_usages) {
            return Ok(wgpu::TextureFormat::Bgra8Unorm);
        }
        if rgba_features.allowed_usages.contains(required_usages) {
            let info = adapter.get_info();
            log::warn!(
                "Adapter {} ({:?}) does not support Bgra8Unorm atlas textures with usages {:?}; \
                 falling back to Rgba8Unorm atlas textures.",
                info.name,
                info.backend,
                required_usages,
            );
            return Ok(wgpu::TextureFormat::Rgba8Unorm);
        }

        let info = adapter.get_info();
        Err(anyhow::anyhow!(
            "Adapter {} ({:?}, device={:#06x}) does not support a usable color atlas texture \
             format with usages {:?}. Bgra8Unorm allowed usages: {:?}; \
             Rgba8Unorm allowed usages: {:?}.",
            info.name,
            info.backend,
            info.device,
            required_usages,
            bgra_features.allowed_usages,
            rgba_features.allowed_usages,
        ))
    }
    pub fn backend(&self) -> WgpuBackend {
        self.backend
    }

    pub fn uses_webgl_instance_data(&self) -> bool {
        matches!(self.backend, WgpuBackend::Gl) && cfg!(target_family = "wasm")
    }

View on GitHub (pinned to f4178619ac)

Solutions

  1. Return a Result with a descriptive error instead of panicking, letting callers degrade gracefully.
  2. Reduce required_usages (e.g. drop TEXTURE_BINDING or RENDER_ATTACHMENT) and retry format selection.
  3. Log adapter name/driver/backend in the error to aid driver-specific bug reports.
  4. Fall back to a smaller atlas or software rendering path if no supported format exists.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/gpui_wgpu/src/wgpu_context.rs:528 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20). Data as JSON: /api/errors/fa4c7a7a6cad6dd0. Report an issue: GitHub.